Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Software Development in UZABASE SRE

tkitsunai
January 18, 2018

Software Development in UZABASE SRE

Closedな勉強会 SRE Lounge#1で発表した内容です。

tkitsunai

January 18, 2018
Tweet

More Decks by tkitsunai

Other Decks in Technology

Transcript

  1. • 橘内 孝幸 (Takayuki Kitsunai) • UZABASE SRE Team ソフトウェアエンジニア

    ◦ Product Development Team -> SRE Team • 主要言語:Java, Golang, JS 自己紹介
  2. Mision 経済情報で、世界をかえる Business Intelligence to Change Your World 私たちは、世界中で愛される経済情報インフラをつくります。 あらゆる経済情報を人とテクノロジーの力で整理・分析・創出し、

    ビジネスパーソンの生産性を高め、創造性を解放します。 私たちは経済情報を通じて世界中の意思決定を支え、世界をかえます。
  3. UZABASE SREの設立 SPEEDA DB Batch Dev Infra 従来の体制 SRE (

    Dev + Infra ) SRE設立後の体制 SPEEDA DB Batch
  4. UZABASE SREの設立 従来の体制 - システムの安定稼働をミッションに開発運用メンバーとインフラメンバーで SPEEDAを運用(守りの チーム) - 手運用が爆発し、自動化に中々着手できない -

    コードレベルの改善まで手が出せない SRE設立後の体制 - システムの信頼性向上をミッションに SREを設立(攻めのチームへ) - オペレーションの自動化の促進 - インフラと開発の視点での改善活動の促進
  5. • ソフトウェア開発 ◦ 社内ツール、ジョブ運用/構築、本番バグ対応 • 物理インフラ管理 ◦ SaaSサービス「SPEEDA」のオンプレ • ネットワーク管理

    ◦ 社内ネットワーク、各サービスネットワーク • AWS/GCP管理 ◦ コーポレートサイト、NewsPicks連携 • 社内インフラ管理 ◦ 入社時PCセットアップ、アカウント作成、電子錠 UZABASEでのSREの役割
  6. • ソフトウェア開発 ◦ 社内ツール、ジョブ運用/構築、本番バグ対応 • 物理インフラ管理 ◦ SaaSサービス「SPEEDA」のオンプレ • ネットワーク管理

    ◦ 社内ネットワーク、各サービスネットワーク • AWS/GCP管理 ◦ コーポレートサイト、NewsPicks連携 • 社内インフラ管理 ◦ 入社時PCセットアップ、アカウント作成、電子錠 今回話す内容
  7. • 年間計画、四半期計画をチームで作る ◦ 自走/自立する組織を目指し、自分たちで考える土壌 • ソフトウェアエンジニア+インフラエンジニアのMIXで作る ◦ キャリアの多様性 ◦ インフラエンジニアからソフトウェアエンジニアへの変化/転向

    • スキルではなく本人の意思でアサインする ◦ アプリケーション開発をしたいインフラエンジニアが、開発機会を得る • レガシーシステムの置き換え ◦ 技術的な挑戦要素、マイクロサービス化 • 自動化推進 ◦ レガシーな手動運用の自動化による、トイル排除 1. ソフトウェア開発プロジェクト
  8. • 「SPEEDA」における要「データ」運用 • 自動化課題 ◦ 手順書運用 -> DevフレンドリーのAPI, Client開発 ◦

    マニュアル運用 -> Workflow / Scheduler system 開発/導入へ レガシーな手動運用の自動化によるトイル排除 Data Supplier DB SPEEDA DB 手動処理 バッチ処理 ・Mail ・FTP ・ZIP ・DVD ロード バッチ 手動 多様な配信、多様な形式、多様な内容 データ精度担保、加工
  9. • 守破離 ◦ チームのフェーズとして、守破離の「守」を徹底する ◦ アジャイル開発技法 • 個人開発からチーム開発へ ◦ ペアプログラミング、モブプログラミングの導入

    ◦ 元Productチームのソフトウェアエンジニアによる、サービスのドメイン知識 ◦ 元Infraチームのインフラエンジニアによる、ミドルウェア/ネットワーク知識 • ソフトウェア開発手法 ◦ SREの立場でマイクロサービスを作る ◦ XP、DDD、TDD、クリーンアーキテクチャの技法を学ぶ ◦ SREと親和性の高いGolangの積極採用 2. チーム開発の取り組み
  10. • モニタリングによるデータドリブン開発 ◦ ✕ システムリソースのボトルネックから信頼性を高める ◦ ◯ サービスが顧客に届けたい価値を最大化するために顧客の理想から始める ▪ データアシュアランス

    ▪ 配信データのリードタイム • キャリア多様性 ◦ 「フルスタック」エンジニアの育成 ◦ キャリアを自分で選択する 3. 今後のSREにおけるソフトウェア開発