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

MicrosoftのPlatform Engineeringガイドを読んで実際になにかやってみた

MicrosoftのPlatform Engineeringガイドを読んで実際になにかやってみた

2024年4月20日開催されたGlobal Azureの登壇資料です。

概要

以下の内容について解説しました。
- Microsoftのプラットフォーム エンジニアリング ガイドを読んでプラットフォームエンジニアリング
- MicrosoftのDeveloper Technologiesを使ってプラットフォーム エンジニアリングを実現する方法
- GitHubを使ってどのようにしてプラットフォーム エンジニアリングを実現する方法

Microsoftのプラットフォーム エンジニアリング ガイド
https://learn.microsoft.com/ja-jp/platform-engineering/what-is-platform-engineering

スライド内で紹介したリンク

Azureの可能性を引き出せ!Terraform活用で変わるインフラ構築術 - connpass
https://youtu.be/eyAuD797AnE?feature=shared&t=1470

本の翻訳者による発表
『チームトポロジー』と Platform Engineering
https://speakerdeck.com/miholovesq/team-topologies-with-platform-engineering

チームトポロジー (単行本)
価値あるソフトウェアをすばやく届ける適応型組織設計
https://pub.jmam.co.jp/book/b593881.html

Azure Developer CLI support for Azure Deployment Environments
https://learn.microsoft.com/ja-jp/azure/developer/azure-developer-cli/ade-integration

引用:Microsoft Dev Box を構成する
https://learn.microsoft.com/ja-jp/azure/dev-box/quickstart-configure-dev-box-service

2022/11/22投稿 Microsoft Dev Box を使ってみよう! 〜 詳細編 〜| Azure 入門 56 [# くらでべ ]
https://youtu.be/lCPwtC5w1k8?feature=shared&t=759

Platform reference architecture on Azure
https://humanitec.com/reference-architectures/azure
GitHub:https://github.com/humanitec-architecture/reference-architecture-azure

Platform tooling landscape
https://platformengineering.org/platform-tooling

Internal Developer Platform
https://internaldeveloperplatform.org/

What Is an Internal Developer Platform
https://humanitec.com/blog/what-is-an-internal-developer-platform

What is platform engineering
https://humanitec.com/platform-engineering

チームトポロジ
https://bliki-ja.github.io/TeamTopologies

Kento.Yamada

April 20, 2024
Tweet

More Decks by Kento.Yamada

Other Decks in Programming

Transcript

  1. • 自己紹介 • プラットフォームエンジニアリングとは ◦ 背景 ◦ 補足:プラットフォームエンジニアリングの誤解 ◦ 概要

    ◦ 要するにどういうこと ◦ もうちょっと踏み込んで • 内部開発者ってなんですか ◦ 内部開発者とは ◦ 2つのIDP • ゴールデンパスとか認知負荷ってなんですか ◦ ゴールデンパスとは ◦ ゴールデンパスを作るとどうなるか ◦ ゴールデンパスを作るタイミング ◦ 認知負荷とは ◦ 補足:認知負荷にまつわる話 話すこと 2 • プラットフォームエンジニアリングの原則 ◦ 顧客に優先順位を付ける ◦ 製品マインドセットを採用する ◦ セルフサービスによる強化 ◦ 検出可能性を向上させる • で、具体的になにしたらええの ◦ ドキュメントを整理する ◦ 問題領域を定義する ◦ プラットフォームチームを構築する ◦ 開発者テンプレートを作る ▪ 具体例1 ▪ 具体例2 ▪ 具体例3 ▪ 具体例4 • まとめ • Tips
  2. 自己紹介 3 Kento.Yamada • クラウドの運用分析・MSP向けのシステム開発・社内技術者向けの技術提供 • github@ymd65536 • Microsoft MVP

    for Developer Technologies(2024年〜) • 他 • Google Cloud Partner Tech Blog Challenge 2023 Cloud AI/ML 部門受賞 • LAPRAS OUTPUT AWARD 2024 01
  3. 背景 7 求められている技術スタック・概念が多い。幅広い専門分野における熟練した技術が必要 コンテナ ネットワーク セキュリティ DevOps 仮想化 クラウド CI/CD

    マイクロサービス AI 機械学習 IaC DR対応 データベース データ分析 QA 設計 マネジメント 自動テスト 可用性
  4. 背景 8 求められることが多すぎる!1人何役こなすんだ! コンテナ ネットワーク セキュリティ DevOps 仮想化 クラウド CI/CD

    マイクロサービス AI 機械学習 IaC DR対応 データベース データ分析 QA 設計 マネジメント 自動テスト 可用性
  5. 背景 9 技術が増えると生産性が上がるかというと… 技術 技術 技術 技術 技術 技術 技術

    技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術
  6. 背景 10 技術が増えると生産性が上がるかというと…そうでもない 生産性 要因:学習コストの増加、役割の多様化、コミュニケーションコストの増加 技術 技術 技術 技術 技術

    技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術
  7. 背景 11 技術が増えると生産性が上がるかというと…そうでもない 生産性 つまりは認知負荷が高いので生産性が下がっている! 技術 技術 技術 技術 技術

    技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術 技術
  8. 2つのIDP 21 内部開発者 プラットフォーム 内部開発者 ポータル ユーザーインターフェイス 基盤 内部開発者ポータル(IDP)※ Microsoft

    Learnでは単に「ポータル」と表現 ※内部開発者プラットフォーム(IDP)はポータルのバックエンドに位置
  9. (再掲)もうちょっと踏み込んで 34 • 内部開発者のニーズを特定したうえで最小限のセルフサービスを実装すること ◦ つまり、今必要とされていることを認識してサービスを実装すること • 内部開発者が自身の作業を自己解決できるようにすること ◦ つまり、ベースとなる作業はすべて自己解決できるようにすること

    • 内部開発者を主軸とした開発プロセスを定義してゴールデンパスを作ること ◦ つまり、実務に携わるときに準備のプロセスを「道」として示すこと • 内部開発者が再利用可能なことを低い認知負荷ですぐに活用できるようにすること ◦ つまり、ほぼ何も考えずに本当にやりたいことに集中できること
  10. ドキュメントを整理する 一番最初にできて、最も簡単なアプローチ • Private GitHub Pagesで社内ページを作成する • GitHub organizationにプライベートリポジトリを作成する •

    Azure DevOpsのWikiを整備する =>社内で使い慣れた製品を使って資料を作成する いずれにしても作ったら有識者を集めてレビューをしてもらう! 42
  11. 開発者テンプレートを作る 一貫性のある開発環境でチーム開発の統制をとりたい 45 活用できそうなサービス • Dev Containers • GitHub Codespaces

    • Azure Developer CLI(azd) • Azure Deployment Environments(ADE) • Dev Box + Visual Studio • Terraform Cloud + GitHub • Backstage
  12. 具体例3: Dev Box + Visual Studio 48 引用:Microsoft Dev Box

    を構成する https://learn.microsoft.com/ja-jp/azure/dev-box/quickstart-configure-dev-box-service 開発環境をOSまるごと提供する。Visual Studioで開発をコラボレーション
  13. 49 2022/11/22投稿 Microsoft Dev Box を使ってみよう! 〜 詳細編 〜| Azure

    入門 56 [# くらでべ ] https://youtu.be/lCPwtC5w1k8?feature=shared&t=759
  14. 具体例4: Terraform Cloud + GitHub 50 • Terraform Cloud:ステート管理、プロバイダの統一、Registryの利用 •

    GitHub:アプリケーションレイヤーのテストをGitHub Actions • インフラのテスト:Terraform Cloud上で担保※ • アプリケーションのテスト:GitHub Actions + その他で担保 ※Azureの可能性を引き出せ!Terraform活用で変わるインフラ構築術 - connpass https://youtu.be/eyAuD797AnE?feature=shared&t=1470