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

Team operations that are not burdened by SRE

Avatar for zosokh zosokh
June 27, 2025

Team operations that are not burdened by SRE

SREが抱え込まないチーム運用
PHP開発チームと築く共通基盤づくり

2025/06/28 PHPカンファレンス2025

Avatar for zosokh

zosokh

June 27, 2025
Tweet

More Decks by zosokh

Other Decks in Programming

Transcript

  1. 【今まで】SREとプロダクトエンジニアの関係性 SREチーム ・各事業のインフラ構築サポート ・SRE領域のリード ・品質、スピード担保の環境作成 プロダクトA アプリケーション開発 ・・・・・ プロダクトB アプリケーション開発

    プロダクトC アプリケーション開発 インフラ環境対応(例:AWSのリソース対応)に責務を持つ 主にアプリケーション開発(インフラ以外)に責務を持つ
  2. 課題まとめ PHPプロダクトA PHPプロダクトB PHPプロダクトC チケット依頼 Slack依頼 SRE • インフラ対応の属人化・ブラックボックス化 •

    依頼待ちによる開発停滞 • SREが「長期的改善」に時間を避けない構造的問題 👇👇👇 SREがすべての処理のハブになっていて「待ち」が発生 🔥 プロダクト側には操作手段がなく、すべて「依頼」で処理するしかない構造 ⌛
  3. • プロダクトエンジニアへのIaCを活用した安全にインフラ実行で きるワークフローづくり • ドキュメント化・レビューのガイドライン設計 👉 SRE・プロダクトエンジニアの開発効率化と世へのデリバリース ピードを上げていく プラットフォームエンジニアリング **プラットフォームエンジニアリング(Platform

    Engineering)とは、開発者がアプリケーションを効率的に開発 ・デプロイ・運用できるようにするための内部開発プラットフォーム(IDP: Internal Developer Platform)**を構 築・管理するエンジニアリング分野です。 目的 プラットフォームエンジニアリングの目的は、開発チームの生産性向上と、インフラ管理の複雑さを軽減すること です。これにより、開発者は本来の業務であるアプリケーション開発に集中できるようになります。 戦術:プロダクト側へ、インフラ対応の環境づくり
  4. • プロダクトエンジニアへのIaCを活用した安全にインフラ実行で きるワークフローづくり • ドキュメント化・レビューのガイドライン設計 👉 SRE・プロダクトエンジニアの開発効率化と世へのデリバリース ピードを上げていく 裏背景:私自身もプロダクトエンジニア 今はSREメインで仕事していますが、アプリケーションエンジニア(PHPer)でもあります。

    プロダクト・PHPer・アプリケーションなど「枠組み」を無視して、イチ開発者として具現化力を上げ世へのリリー スを多く行なっていくために、課題点だったインフラ裁量がなかった環境は当時開発とリリースへの煩わしさを感 じていた。 より開発体験を良くしてデリバリー多く・素早く届けていきたい 戦術:プロダクト側へ、インフラ対応の環境づくり
  5. 安全に実行できるワークフロー(CI/CD編) develop ブランチ release ブランチ main ブランチ featureなどの ブランチ PR

    自動 PR 自動 PR merge merge merge PR dev環境 stg環境 prd環境 Gitフローに基づいた、Terraform実行確認と反映を自動化設計
  6. 安全に実行できるワークフロー(CI/CD編) develop ブランチ release ブランチ main ブランチ featureなどの ブランチ PR

    自動 PR 自動 PR merge merge merge PR dev環境 stg環境 prd環境 plan apply apply plan plan plan Gitフローに基づいた、Terraform実行確認と反映を自動化設計 apply
  7. 安全に実行できるワークフロー(CI/CD編) develop ブランチ release ブランチ main ブランチ featureなどの ブランチ PR

    自動 PR 自動 PR merge merge merge PR dev環境 stg環境 prd環境 plan apply apply plan plan plan Gitフローに基づいた、Terraform実行確認と反映を自動化設計 apply
  8. レビューとapply権限制限による、フロー明確さと安心づくり ドキュメント化・レビューのガイドライン設計 develop ブランチ release ブランチ main ブランチ featureなどの ブランチ

    PR 自動 PR 自動 PR merge merge merge PR PR時に、Terraformコードの修正内容をレ ビュー • レビュアー(主にSRE)はplan実行内 容を確認できる 👉 誰が書いたコードでもレビューと実行内 容確認ができるフロー merge権限の限定 • applyさせるタイミング・人をコント ロールできる 👉 事故防止のため権限を制限させたapply 環境
  9. レビューとapply権限制限による、フロー明確さと安心づくり ドキュメント化・レビューのガイドライン設計 develop ブランチ release ブランチ main ブランチ featureなどの ブランチ

    PR 自動 PR 自動 PR merge merge merge PR PR時に、Terraformコードの修正内容をレ ビュー • レビュアー(主にSRE)はplan実行内 容を確認できる 👉 誰が書いたコードでもレビューと実行内 容確認ができるフロー merge権限の限定 • applyさせるタイミング・人をコント ロールできる 👉 事故防止のため権限を制限させたapply 環境 〜〜権限の制限による安心~~ 安心と思えるように、前提として、開発しやすい環境もセットで整備した • ローカル開発で簡単にTerraformコマンド実行環境が立ち上がる • ローカル開発時はplan実行はできるがapplyできない状態の権限を渡す(状況による) ◦ 実行確認が手元で行え、確認・修正を繰り返せる環境 という環境から 開発体験に極力弊害を抑え、尚且つ事故を起こさせない予防線による安心状態を作った
  10. プロダクトエンジニアへの不安への共感+対策提案 プロダクトエンジニアの声 対策・伝え方 インフラの知識や構造理解が乏しく、何をどうしたら良い か分からない IaCテンプレートや過去PRからやり方を踏襲できる環境を与 え、段階的に徐々にスキルと知識を取得していけるように する インフラ環境を壊さないか不安 何かあったときの責任が怖い

    • GitHub Actionsのみからインフラ反映できるように する • plan 👉 review 👉 approve 👉 merge・applyの構 造で、誤ってインフラを壊すなどの事故防御。レ ビューを経てインフラ反映させる構造へ • PRレビュー+実行者ログ+監視でトレーサビリティ を確保 制限が多いとローカル開発(Terraformコード拡張)がし にくそう ローカル環境の立ち上げやすさと、planを実行できる権限 を付与。時にはapply確認した開発を行いたい場合は、状況 に応じて権限を付与
  11. プロダクトエンジニアへの不安への共感+対策提案 プロダクトエンジニアの声 対策・伝え方 インフラの知識や構造理解が乏しく、何をどうしたら良い か分からない IaCテンプレートや過去PRからやり方を踏襲できる環境を与 え、段階的に徐々にスキルと知識を取得していけるように する インフラ環境を壊さないか不安 何かあったときの責任が怖い

    • GitHub Actionsのみからインフラ反映できるように する • plan 👉 review 👉 approve 👉 merge・applyの構 造で、誤ってインフラを壊せないようにし、レ ビューを経てインフラ反映させる構造へ • PRレビュー+実行者ログ+自動監視でトレーサビリ ティを確保 制限が多いとローカル開発(Terraformコード拡張)がし にくそう ローカル環境の立ち上げやすさと、planを実行できる権限 を付与。時にはapply確認した開発を行いたい場合は、状況 に応じて権限を付与 自由な実行や検証を行える環境 制限された実行環境 SRE側のレビューやチェックを行うなど 品質担保した環境
  12. SRE・プロダクトエンジニア SRE・プロダクトエンジニア SRE 進め方 共通基盤作成 Terraform PJ整備 ドキュメント整備 オリエン開始 インフラ教育

    実行 レビュー対応 基盤修正 都度ヒアリング プロトタイピングのこの部分を繰り返す 実行する中で、 • ローカル環境の権限種別 • PR時の terraform planを全環境分確認できるようにする • apply実行の通知 • リリースPRの自動化 などの修正とビルドアップを同時進行で行なっていく また、この期間にプロダクトエンジニア側に対応ナレッジも溜まって いく プロトタイピング
  13. プロダクトエンジニアの裁量変化によるメリット 分野 具体例(PHP開発と関連付け) 📌ログ設計 Laravel Auditingのログ出力先のS3バケット作成・またはFluentdで のログ転送先作成 📌 データベース運用・改善 AuroraやRead

    Replica追加を自分で試せる。DBマイグレーションで 扱うワンショットタスク用のECS環境を作る 📌 監視・モニタリング CloudWatchダッシュボード作成やアラート対応 📌 マネージドサービスとの連携 アプリケーションからAWSリソースアクセスの権限付与 📌 コンテナ環境構築 AWS App RunnerやFargateへのLaravelデプロイ、Docker化環境を 自分で試作可能 📌 セキュリティ改善 AWS Secrets ManagerやSSMをLaravelと組み合わせて安全に.env管 理
  14. プロダクトエンジニアの裁量変化によるメリット 分野 具体例(PHP開発と関連付け) 📌ログ設計 Laravel Auditingのログ出力先のS3バケット作成・またはFluentdで のログ転送先作成 📌 データベース運用・改善 AuroraやRead

    Replica追加を自分で試せる。DBマイグレーションで 扱うワンショットタスク用のECS環境を作る 📌 監視・モニタリング CloudWatchダッシュボード作成やアラート対応 📌 マネージドサービスとの連携 アプリケーションからAWSリソースアクセスの権限付与 📌 コンテナ環境構築 AWS App RunnerやFargateへのLaravelデプロイ、Docker化環境を 自分で試作可能 📌 セキュリティ改善 AWS Secrets ManagerやSSMをLaravelと組み合わせて安全に.env管 理 アプリと運用の両面を見通し、サービス全体を俯瞰する視点を持てるようになる 📌 長期的な視野でのサービス設計力アップ • サービスを拡張する際のインフラコストや運用負荷を意識するようになる • アプリケーションの機能設計とスケーラブルなインフラ構成を同時に検討していけるようになる。リファクタ リングのコストが低下 📌 トラブルシュート能力向上 • 障害発生時、アプリ・インフラ両面の知識があると迅速な原因特定・復旧が可能になる • 運用視点を持つことで、アプリケーションのコード段階で運用リスクを減らせる 📌 サービス全体への責任感と当事者意識の強化 • アプリケーションだけでなく、インフラや運用も「自分たちのもの」と捉えられるようになる • 開発者がサービスの将来を考え、自ら改善やコスト削減を提案するような文化が醸成される
  15. SREとプロダクトエンジニアの 裁量変更を意思決定した話 まとめ プロダクトエンジニアにもイン フラ対応を行える共通基盤作成 と、インフラ対応実行への検証 を「小さく早く」対応実績を 作って行った SRE以外からインフラ対応実績が も出てきている。SRE自身も長期

    的な改善対応に手が出し始めてい る。プロダクトエンジニアの裁量 が広がることで今後技術チャレン ジへの幅を広げていきたい SREの課題と意思決定 共通基盤作りとプロトタイピング 組織アクション結果と課題