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

マルチプロダクト運用におけるSREのあり方/SRE NEXT 2023-link-and-mo...

マルチプロダクト運用におけるSREのあり方/SRE NEXT 2023-link-and-motivation

【SRE NEXT 2023】
リンクアンドモチベーション登壇資料(2023/09/29)

『マルチプロダクト運用におけるSREのあり方』

#srenext #リンクアンドモチベーション #リンモチ
=============================================
【イベント情報】
■イベントページ
 https://sre-next.dev/2023/

【株式会社リンクアンドモチベーション】
■お問い合わせ
 [email protected]
■Entrancebook
 https://note.com/lmi/n/n179505e048f4
■テックブログ
 https://link-and-motivation.hatenablog.com/
=============================================

More Decks by リンクアンドモチベーション

Other Decks in Technology

Transcript

  1. © Link and Motivation Group 2023/09/29 SRE NEXT 2023 マルチプロダクト運用における

    SREのあり方 リンクアンドモチベーション Developer Productivityユニット SREグループ 岸本 直樹・篠原 昂
  2. 2 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    岸本 直樹(@naoki-lmi) 株式会社リンクアンドモチベーション Developer Productivityユニット SREグループ • 2019年新卒入社。2020年からSREとして活動。 • モチベーションクラウドのECS移設から開発メトリクス 向上Pjtで4keysの一つであるデプロイ頻度をMiddleか らHighへ、生産性の高い組織へと牽引。 • モチベーションクラウドシリーズ全体の生産性向上に 従事 • 新規プロダクト立ち上げ 自己紹介
  3. 3 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    篠原 昂(@koh-sh) 株式会社リンクアンドモチベーション Developer Productivityユニット SREグループ • 2021年7月株式会社リンクアンドモチベーションに SREとして入社。 • 新規プロダクトであるストレッチクラウドの立ち上げ に従事。 • 現在はプロダクトや開発組織拡大のためのインフラ改 善を主に担当。 自己紹介
  4. 4 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    リンクアンドモチベーションについて 327億円(2022年12月時点) (2022年12月時点) 11社
  5. 5 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    プロダクト紹介 働きがい あふれる社会へ
  6. 6 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    近い未来に向けた挑戦(with AI) リアルタイム分析 LIVE バイタルやチャット等に 基づく即時分析 予兆検知・予測・予防 FORECAST 未来の組織改善 事前予防 AIアドバイザー データとセオリーを 元に支援 CONSULTANT
  7. 7 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    Generative AIを内包した機能 2023年3月7日 リリース 2023年4月7日 リリース
  8. © Link and Motivation Group 9 2023/09/29 SRE NEXT 2023

    アジェンダ ▷マルチプロダクトの運用の現状 ▷マルチプロダクトにおける課題 ▷標準化された世界とは? ▷標準化を進める上で大事なこと ▷標準化の効果 ▷まとめ
  9. © Link and Motivation Group 10 2023/09/29 SRE NEXT 2023

    アジェンダ ▷マルチプロダクトの運用の現状 ▷マルチプロダクトにおける課題 ▷標準化された世界とは? ▷標準化を進める上で大事なこと ▷標準化の効果 ▷まとめ
  10. 11 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    弊社開発組織の歴史 2018 2019 2022 2023 新規プロダクト開発 2020 SRE チームの誕生 弊社の開発組織は誕生して5年目です!
  11. 12 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    4つのプロダクトから成る、複数のチーム 社員 約80名 + パートナーさん 約20名 + SRE 4名
  12. © Link and Motivation Group 13 2023/09/29 SRE NEXT 2023

    アジェンダ ▷マルチプロダクトの運用の現状 ▷マルチプロダクトにおける課題 ▷標準化された世界とは? ▷標準化を進める上で大事なこと ▷標準化の効果 ▷まとめ
  13. 15 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    【課題】運用工数が線形にスケールする プロダクトA プロダクトB プロダクトC 運用 運用 運用 プロダクトA の運用してるよ Bの... Cの運用は特殊で 大変だなぁ...
  14. 16 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    【課題】運用工数が線形にスケールする プロダクトD 運用 運用 運用 時間 プロダクトA プロダクトB プロダクトC 運用 運用 運用 プロダクトが増えれば 運用も増えるのは 当たり前さ... プロダクトE プロダクトF
  15. 18 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    【課題】チーム・組織間の流動性を阻害する プロダクトA プロダクトB プロダクトC 運用 運用 運用 誰が代わりに C の 運用を見れるの? 異動・退職 プロダクトD 運用 運用 運用 プロダクトE プロダクトF
  16. 19 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    【課題】チーム・組織間の流動性を阻害する プロダクトA 開発・運用メニュー (CI・CD) アプリ 開発者 A プロダクトB 開発・運用メニュー (CI・CD) アプリ 開発者 B アプリ 開発者 C アプリ 開発者 B チーム間の異動 普段の開発や 本番のリリースが 違って辛い〜💦 フィーチャーチーム化してても、人材流動の阻害原因になる。 し辛い 💦
  17. 21 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    【課題】新規プロダクトの立ち上げのボトルネックに... 新規プロダクト立ち上げのために0から設計するため、インフラの立ち上げにも時間がかかる アプリ開発がほぼ終わったので テスト用の環境がほしいんですけど... インフラ担当 (SRE 等) 0からインフラ構築してるから ちょっと遅れてしまいそう リリース日が決まって それまでに本番環境を 準備してほしくて... アプリ開発者
  18. 23 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    解決方法 カスタマイズではなく 標準化された世界へ
  19. © Link and Motivation Group 24 2023/09/29 SRE NEXT 2023

    アジェンダ ▷マルチプロダクトの運用の現状 ▷マルチプロダクトにおける課題 ▷標準化された世界とは? ▷標準化を進める上で大事なこと ▷標準化の効果 ▷まとめ
  20. 25 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    当時の構成 ▷保守工数の増加や流動性低下という課題が起きていた時のアーキテクチャ プロダクトB ECS on Fargate プロダクトA プロダクトC ECS on EC2 EB プロダクトA用CI/CD プロダクトB用CI/CD プロダクトC用CI/CD プロダクトA用IaC プロダクトB用IaC 手動作成
  21. 26 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    当時の構成 ▷保守工数の増加や流動性低下という課題が起きていた時のアーキテクチャ プロダクトB ECS on Fargate プロダクトA プロダクトC ECS on EC2 EB プロダクトA用CI/CD プロダクトB用CI/CD プロダクトC用CI/CD プロダクトA用IaC プロダクトB用IaC 手動作成 アーキテクチャが異なることで CI/CDやIaC、運用フローがプロダクトの数だけ増える
  22. 27 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    プロダクト間で標準となるアーキテクチャの検討 ▷なるべくシンプルかつ、各プロダクトの要件に対応しやすい構成やサービスを検討 プロダクトB ECS on Fargate 弊社のケースだとシンプル + 運用負荷の 低さを鑑みてECS on Fargateを採用 プロダクトC ECS on Fargate ECS on Fargate プロダクトA
  23. 28 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    標準化された結果 ▷アーキテクチャが同じであれば、全プロダクトのCI/CDとIaCが共通化できる プロダクトB ECS on Fargate プロダクトA プロダクトC 全プロダクト共通CI/CD ECS on Fargate ECS on Fargate 共通IaC(Terraform)
  24. 29 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    標準化された結果 ▷アーキテクチャが同じであれば、全プロダクトのCI/CDとIaCが共通化できる プロダクトB ECS on Fargate プロダクトA プロダクトC 全プロダクト共通CI/CD ECS on Fargate ECS on Fargate 共通IaC(Terraform) 標準化されたアーキテクチャへ刷新することで 共通のCI/CDとIaCで運用できる状態を目指す
  25. 30 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    標準化を進めるうえでの 課題と解決策
  26. 31 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    当時の課題感 開発者の環境準備の依頼やミドルウェアアップデー ト作業の時間で改善活動する時間がない・・・ 定常業務や差し込みタスクが多くあり、改善活動が思うように進まなかった
  27. 32 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    現状の活動時間を可視化 ▷活動時間の60%を定常業務と緊急対応に使っているが判明 LeanとDevOpsの時間の分析 SREチームの時間の使い方 差し込み作業が多く、スイッチングコストが高い = ローパフォーマー
  28. 33 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    現状の活動時間を可視化 ▷活動時間の60%を定常業務と緊急対応に使っているが判明 LeanとDevOpsの時間の分析 SREチームの時間の使い方 新たな作業割合を50%以上を目標にし、 並行作業(スイッチングコスト)を減らす 差し込み作業が多く、スイッチングコストが高い = ローパフォーマー
  29. 34 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    ①Toilの撲滅 ▷(当たり前ですが) まず、Toilを洗い出して撲滅する ミドルウェアアップデート自動化 Snapshot RDS スナップショット取得自動化 例えば・・・
  30. 35 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    ②開発者への作業の委譲 ▷SREが実施せずとも、開発者が自律的に実行可能な業務を一部自動化して渡す SREタスクをアプリ開発者と分担することで、SREの工数を確保 ❏ 環境の構築・更新・削除 ❏ 性能テストのための環境構築 ❏ 環境変数の追加 ❏ etc ❏ データベースの作り直し ❏ 一部サービスのアカウント発行・削除 アプリ開発者 Before SREに依頼しないと 開発できない SREに依頼しなくても 開発ができる After アプリ開発者
  31. 36 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    結果 LeanとDevOpsの時間の分析 SREチームの時間の使い方 ▷3ヶ月という短い期間で新たな作業の時間を20%増やすことに成功
  32. 37 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    結果 LeanとDevOpsの時間の分析 SREチームの時間の使い方 ▷3ヶ月という短い期間で新たな作業の時間を20%増やすことに成功 スイッチングコストを減らし、 新たな作業に集中できる時間を確保することが重要
  33. © Link and Motivation Group 38 2023/09/29 SRE NEXT 2023

    アジェンダ ▷マルチプロダクトの運用の現状 ▷マルチプロダクトにおける課題 ▷標準化された世界とは? ▷標準化を進める上で大事なこと ▷標準化の効果 ▷まとめ
  34. 39 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    標準化を進める上で大事なこと 責任範囲の明確化
  35. 40 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    アプリケーション層 Dockerfile Dockerfile プロダクト差分を吸収する層 Dockerfile 変更管理 変更管理 アプリ 開発者 A プロダクトA 共通化層 terraform-modules プロダクトB プロダクトC terraform -stacks-C terraform -stacks-B terraform -stacks-A 運用者 (SRE, etc…) mod参照 mod参照 mod参照 責任範囲の明確化
  36. 41 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    プロダクト差分を吸収する層 変更管理 共通化層 terraform-modules terraform -stacks-C terraform -stacks-B terraform -stacks-A 運用者 (SRE, etc…) mod参照 mod参照 mod参照 責任範囲の明確化 アプリケーション層 Dockerfile Dockerfile Dockerfile アプリ 開発者 A プロダクトA プロダクトB プロダクトC Dockerfileよりも上、アプリケーションのランタイム は各プロダクトの開発チームの領域 変更管理
  37. 42 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    アプリケーション層 Dockerfile Dockerfile プロダクト差分を吸収する層 Dockerfile 変更管理 アプリ 開発者 A プロダクトA プロダクトB プロダクトC terraform -stacks-C terraform -stacks-B terraform -stacks-A mod参照 mod参照 mod参照 責任範囲の明確化 変更管理 共通化層 terraform-modules 運用者 (SRE, etc…) プロダクト間で標準となるインフラリソースはSREの領域
  38. 43 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    アプリケーション層 Dockerfile Dockerfile Dockerfile 変更管理 変更管理 プロダクトA 共通化層 terraform-modules プロダクトB プロダクトC mod参照 mod参照 mod参照 責任範囲の明確化 プロダクト差分を吸収する層 アプリ 開発者 A terraform -stacks-C terraform -stacks-B terraform -stacks-A 運用者 (SRE, etc…) プロダクト差分を吸収する層はチーム状況に応じて変更。 ※理想はアプリ側で責任を持つ形
  39. 44 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    標準化を進める上で大事なこと 抽象化と制約
  40. 45 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    プロダクトB プロダクトC プロダクトA プロダクト差分を吸収する層 共通化層 terraform-modules terraform -stacks-C terraform -stacks-B terraform -stacks-A mod参照 mod参照 mod参照 terraform apply AWS リソース AWS リソース AWS リソース 反映 反映 反映 module の呼び出しと プロダクト依存の定義 全プロダクトで 共通の基盤コード 抽象化と制約
  41. 46 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    プロダクトB プロダクトC プロダクトA 共通化層 terraform-modules terraform apply AWS リソース AWS リソース AWS リソース 反映 反映 反映 module の呼び出しと プロダクト依存の定義 全プロダクトで 共通の基盤コード 抽象化と制約 プロダクト差分を吸収する層 terraform -stacks-C terraform -stacks-B terraform -stacks-A mod参照 mod参照 mod参照 各プロダクトはmoduleを呼び出すだけで インフラ構築ができる
  42. 47 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    抽象化と制約 プロダクトごとに可変になる要素をmoduleのパラメータとする プロダクト差分を吸収する層 共通化層 terraform-modules terraform -stacks-C terraform -stacks-B terraform -stacks-A mod参照 mod参照 パラメータ • ECS task定義 • 最大 CPU (cgroup) • Auto scale 台数 • etc…
  43. 48 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    抽象化と制約 プロダクトごとに可変になる要素をmoduleのパラメータとする プロダクト差分を吸収する層 共通化層 terraform-modules terraform -stacks-C terraform -stacks-B terraform -stacks-A mod参照 mod参照 パラメータ • ECS task定義 • 最大 CPU (cgroup) • Auto scale 台数 • etc… 変数化されていない箇所のカスタマイズは 基本的に許容しない
  44. 49 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    Module 参照 terraform-stacks-A terraform- modules terraform-stacks-C terraform-stacks-B それぞれ別々の Github リポジトリに。 Terraform リポジトリ・ディレクトリ構造
  45. 50 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    Terraform リポジトリ・ディレクトリ構造 terraform-stacks-XXX stacks XXX.tfvars stages development.tfvars production.tfvars stacks.tf variables.tf terraform-modules modules variables.tf web variables.tf worker MODULES STACKS Github URL Github URL
  46. 51 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    Terraform リポジトリ・ディレクトリ構造 terraform-stacks-XXX stacks.tf variables.tf terraform-modules modules variables.tf web variables.tf worker MODULES STACKS Github URL Github URL stacks XXX.tfvars stages development.tfvars production.tfvars 【環境ごとのtfvarsを定義】 - stageごとの変数を定義 - development - production - stackごとの変数を定義 - 性能環境 - 自動テスト用 - 〇〇チーム用
  47. 52 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    Terraform リポジトリ・ディレクトリ構造 terraform-stacks-XXX variables.tf terraform-modules modules variables.tf web variables.tf worker MODULES STACKS Github URL stacks XXX.tfvars stages development.tfvars production.tfvars Github URL stacks.tf 【モジュール呼び出しを定義】 プロダクト固有、環境ごとの変数を定義した上で 共通モジュールを呼び出す。 ※ここでリソース定義はしない
  48. 53 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    Terraform リポジトリ・ディレクトリ構造 terraform-stacks-XXX variables.tf terraform-modules modules MODULES STACKS Github URL stacks XXX.tfvars stages development.tfvars production.tfvars Github URL stacks.tf 【実際のAWSリソース定義】 stacksから渡されたパラメータを元に、実際の AWSリソースを構築 - ECS Cluster, Service - ELB - SQS - など variables.tf web variables.tf worker
  49. 54 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    Terraform リポジトリ・ディレクトリ構造 terraform-stacks-XXX variables.tf terraform-modules modules MODULES STACKS Github URL stacks XXX.tfvars stages development.tfvars production.tfvars Github URL stacks.tf 【実際のAWSリソース定義】 stacksから渡されたパラメータを元に、実際の AWSリソースを構築 - ECS Cluster, Service - ELB - SQS - など variables.tf web variables.tf worker リポジトリ分割とモジュール化によって責任と制約を表す
  50. © Link and Motivation Group 55 2023/09/29 SRE NEXT 2023

    アジェンダ ▷マルチプロダクトの運用の現状 ▷マルチプロダクトにおける課題 ▷標準化された世界とは? ▷標準化を進める上で大事なこと ▷標準化の効果 ▷まとめ
  51. 56 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    【効果①】運用工数が最小化 プロダクトA プロダクトB プロダクトC 運用 運用 運用 プロダクトは増えても 標準化された運用だから 簡単だ ▷担当するプロダクトが増えても、運用コストがスケールしない SRE SRE SRE いなくていい いなくていい
  52. 57 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    【効果②】チーム・組織間の流動性がスムーズ プロダクトA 開発・運用メニュー (CI・CD) アプリ 開発者 A プロダクトB 開発・運用メニュー (CI・CD) アプリ 開発者 B アプリ 開発者 C アプリ 開発者 B チーム間の異動 どこでも同じ 開発者体験! ▷開発・リリース運用等、プロセスが同じだと人材流動しやすい。 💡
  53. 58 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    【効果③】新規プロダクトの立ち上げの初速が上がる 標準化されたIaCを使えば、インフラの構築の工数が大幅に削減 ローカル開発がほぼ終わったので テスト用の環境がほしいんですけど... インフラ担当 (SRE 等) 標準化されたIaCがあるから サクッと作っちゃうね!! CI/CDはこれ使って!! リリース日が決まって それまでに本番環境を 準備してほしくて... アプリ開発者
  54. © Link and Motivation Group 59 2023/09/29 SRE NEXT 2023

    アジェンダ ▷マルチプロダクトの運用の現状 ▷マルチプロダクトにおける課題 ▷標準化された世界とは? ▷標準化を進める上で大事なこと ▷標準化の効果 ▷まとめ
  55. 60 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    • マルチプロダクト運用ではカスタマイズによるサイロ化が課題 • 改善活動に時間を使うには実態の可視化と地道な改善が重要 • 標準化を進める上で責任と制約の明確化がポイント まとめ
  56. 61 © Link and Motivation Group 2023/09/29 SRE NEXT 2023

    お知らせ • エンジニアリングマネージャー • プロダクトマネージャー • テックリード • サーバーサイドエンジニア • フロントエンドエンジニア • SRE • データエンジニア • CRM • UXデザイナー 週1でテックブログ更新しています! まずはカジュアルにお話しましょう! ご連絡お待ちしております! 全職種、積極採用中です!