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

Platform Engineeringへの招待

Platform Engineeringへの招待

第1回 Platform Engineering Meetupで発表した資料です。

#PFEM

Kazuto Kusama

March 10, 2023
Tweet

More Decks by Kazuto Kusama

Other Decks in Technology

Transcript

  1. 2012-2017 国内の通信事業者でPaaSの開発 2012- PaaS勉強会のオーガナイザー 2017-2021 Pivotal / VMwareで、Cloud FoundryやKubernetesの プロフェッショナルサービス

    および プラットフォームチームづくりの支援 2021 - HashiCorpでTerraformやVaultなどのプロダクトの ソリューションエンジニア 10年以上、プラットフォームに関連する仕事に携わってきました これまでやってきたこと
  2. Platform Engineeringとは 決まった定義はまだない Gartner: アプリケーションのデリバリとビジネス価値の創出を加速させるための、テクノロジに対する新しいアプロー チ プラットフォーム・エンジニアリングは、再利用可能なツールとセルフサービス機能を実装し、インフラスト ラクチャ・オペレーションを自動化することで、開発者のエクスペリエンスと生産性を向上させる Platformengineering.org :

    クラウドネイティブ時代のソフトウェアエンジニアリング組織のセルフサービス機能を実現するツールチェー ンとワークフローを設計・構築する分野 プラットフォームエンジニアは、アプリケーションのライフサイクル全体の運用に必要なものを網羅する、 「内部開発者プラットフォーム」と呼ばれる統合製品を提供することが多い。
  3. クラウドの登場とDevOps Dev Ops Configure Verify Package Plan Monitor Release Create

    Plan DevとOpsの垣根をなくし、ソフトウェアの開発とデリバリーを継続して行えるよ うにするアプローチ。 このプロセスの中にセキュリティ対策を組み込むDevSecOpsというパターンも登 場した そういった問題に対処するために、 DevとOpsの垣根をなくしていこうと いう考えがDevOps。クラウドの登場 とだいたい同じタイミングで出てきま した。 継続的にサイクルを続けていくという 考え方がキーです。
  4. よく陥るアンチパターン Ops Embedded in Dev Team DevとOpsのサイロ化を防ごうとした結果、Devチー ムの中にOpsを担う人材を抱えるようになる 多くの場合、幅広い知見を持つ、チームの中でもっ とも価値のあるエンジニアが

    シャドーオペレーションを行う形になる 結果として、チームの能力を最大限に発揮すること ができなくなる https://web.devopstopologies.com/#anti-types より引用 じゃあサイロに戻すかというとそれも微 妙。ということで、多くの組織がこのアン チパターンにハマっていきます。
  5. Internal Developer Platform プラットフォームチームによって構築される、開発者のセルフサービスによる利 用を可能にする基盤。 さまざまな技術やツールによって構成され、コンテキストや基礎となる技術を抽 象化することなく、開発者の認知負荷を軽減していく Kubernetes Buildkit Helm

    Dockerfile Grafana Prometheus GitHub Actions Security Terraform ArgoCD APM Compliance IDP Developer Platform Team self service 略称IDPですが、Internal Developer Portalという別のものがあったり、 Identity Provider(IdP)とも紛らわしいので注意
  6. どうやって 時代はマイクロサービスでしょ VMは古い。今はコンテナ 全社統一のセキュリティ コ ンプライアンス基準を リソースの利用率を向上さ せてコスト削減 コンテナ Kubernetes

    サービス メッシュ 分散トレー シング オブザーバ ビリティ 失敗するプラットフォームの考え方 はこうなんです。いろんなステーク ホルダーの思いをとりあえず突っ込 んで、あれこれ新技術が詰め込ま れたものが計画される
  7. どうやって 時代はマイクロサービスでしょ VMは古い。今はコンテナ 全社統一のセキュリティ コ ンプライアンス基準を リソースの利用率を向上さ せてコスト削減 コンテナ Kubernetes

    サービス メッシュ 分散トレー シング オブザーバ ビリティ Developer 別にコンテナにしなくても困っ てないし、マイクロサービスに するフェーズじゃないし・・・ セキュリティも、どうせあとで チェックシート記入求められる んでしょ ただ、顧客となる開発者の意見はこう だったりするのです。これじゃあ、使われ ないですよね。
  8. プラットフォームの悲劇 • 生まれながらに死んでいるパターン ◦ 開発者が欲しいものに全然マッチしてなかった ◦ 2年くらい頑張ったが、出したときには既に 技術がオワコンになっていた • 上手く回せず死ぬパターン

    ◦ 特定の技術に依存してしまったため、技術が廃れるのと同時に 使われなくなった ◦ 『プラットフォーム構築プロジェクト』が終わったらチームの半分が 召し上げられてしまって、普段の運用で手一杯。だんだん時代遅れに ◦ コストセンターとみなされ、予算が割り振られなくなって縮小
  9. 自分の場合 • 開発者の生産性を上げるため、認知負荷を下げ られるプラットフォームは重要と考えていた • 簡単なコマンドでデプロイ出来るPaaSを使っ て、開発者に提供しようとした • 刺さる人には刺さって、期待通りの効果を上げ ることができた。

    • ただ、多くの人には刺さらず、組織全体の改善 にはほとんど繋がらなかった • その後、コンテナ化の流れもあり、上手く要望 に応えられないようになってしまった
  10. 自分の場合 • 開発者の生産性を上げるため、認知負荷を下げ られるプラットフォームは重要と考えていた • 簡単なコマンドでデプロイ出来るPaaSを使っ て、開発者に提供しようとした • 刺さる人には刺さって、期待通りの効果を上げ ることができた。

    • ただ、多くの人には刺さらず、組織全体の改善 にはほとんど繋がらなかった • その後、コンテナ化の流れもあり、上手く要望 に応えられないようになってしまった これ自体は間違って いない 便利なんだからみんなこれ を使うべきだという、思い 込みと押しつけ ライフサイクルを考慮でき ていなかった 本当は何に困っているの か、正しく理解できていな かった
  11. 誰に 何を どうやって プラットフォーム の利用者 ◦◦という価値を 技術 ツールチェーン ワークフロー ここにちゃんとフォーカスすること

    これを継続的に回せること Howだけじゃなくて、WhoとWhatをしっか りつ突き詰めていく。それを続けていくこ とが重要です。
  12. Platform as a Product • 開発者を『顧客』として考え、顧客にプラット フォームという『プロダクト』を提供していく というアプローチ • 世の中に提供されているさまざまなプロダクト

    と同じ管理手法を、プラットフォームにも取り 込んでいく 顧客 Platform Product プロダクトを提供 プロダクトを提供 プラットフォームチーム それをやっていくときに有用な考え方が、 Platform as a Productです。 あなたがプロダクトを世の中に公開するとしたら、 ユーザーの調査からマーケティングから、ありとあら ゆる工夫をしますよね。それを、プラットフォームにも 適用するんです。
  13. Platform as a Product 顧客 Platform Product プロダクトを提供 プロダクトを提供 プラットフォームチーム

    どういう価値を提供できれば 使って貰えるか 顧客が何に困っているか どうやってサポートしていく か どうやって教育していくか どうやって安定したチームを 作るか プラットフォームによる効果 がどのくらい出ているか 何をいつまでに提供するか 世の中のトレンドはどうなっ ているか プロダクトであるプラットフォームを広めて いくために、こういうことを考えていく必要 があります。
  14. Platform as a Product 顧客 Platform Product プロダクトを提供 プロダクトを提供 プロダクト

    マネージャー プロダクトマネジメントの 手法がそのまま使える。 チームに専任のプロダクトマ ネージャーを置き、プロダク トとしてのプラットフォーム の方向性を決めていく プロダクトマネジメントには、先人がたくさ んいます。その知見を学んだ PMを、プ ラットフォームチームに入れて回していき ましょう。
  15. • 先人に学ぶ ◦ 言葉が流行る前から、プラットフォームエンジニアリングに取り組み、成功 しているチームがあります。その知見を学びます • 失敗を学ぶ ◦ 共通プラットフォームに果敢にも取り組み、上手くいかなかった事例も沢山 あります。どうして上手くいかなかったのか。上手くいくにはどうすれば良

    いかを振り返りながら学びます • マネジメントを学ぶ ◦ プロダクトマネジメントや人のマネジメントも重要です。そういったジャン ルで活躍している人から学びます。 • 技術を学ぶ ◦ 新しい技術を知ること、便利なツールを知ることも大事です。単に流行って いるからだけでなく、技術の根底にある思想を学ぶことで、プラットフォー ムに生かせるようにします。 今後、Platform Engineering Meetup は、こういう考えを大事に開催していきま す。登壇者募集!