SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2024 セッションレポート(AD)

クラウドネイティブ時代の開発者体験を向上!「Platform Engineering」の概要と始め方

【16-C-6】開発者こそ幸せたれ!クラウドネイティブ時代の開発を支えるPlatform Engineeringのススメ

  • このエントリーをはてなブックマークに追加

 クラウドネイティブ開発が当たり前になっている昨今、ツールの学習コストも増大し、開発者の認知負荷が高まってしまうという課題もある。これを乗り越えるための解決策として注目されているのが、Platform Engineeringだ。レッドハット株式会社 スペシャリストソリューションアーキテクトの北村慎太郎氏が、この概念と実践方法について解説した。

  • このエントリーをはてなブックマークに追加

複雑化するクラウドネイティブ時代の開発環境

 北村氏は、多くの企業がクラウドネイティブ開発を進めている目的は「ITイノベーションの加速とシステムの信頼性を両立し、ビジネス成果を向上すること」だと指摘する。しかし実際は、クラウドネイティブのツールが飛躍的に進化した結果、開発者にはツールの学習コストが生じ、認知負荷が高まっている。これがイノベーションを阻害するという課題が生まれているのだ。

 「Platform Engineering」は、こうした課題を解決するために生まれたプラクティスである。

Platform Engineeringのイメージ
Platform Engineeringのイメージ

 Platform Engineeringは、プラットフォームの力で開発者のジャーニーを整備し、開発者体験を向上する取り組みだ。これによって開発者の作業を効率化することで、開発スピードと品質の向上を両立できる。また、開発者のストレス軽減を実現し、モチベーションと定着率の向上につなげることが可能だ。

 北村氏は、Platform Engineeringには「適切なツールやプロセス、テストシナリオ、そしてオンボーディングといった要素が必要になる」と説明する。

レッドハット株式会社 テクニカルセールス本部 クラウドサービス スペシャリストソリューションアーキテクト部 スペシャリストソリューションアーキテクト 北村慎太郎氏
レッドハット株式会社 テクニカルセールス本部 クラウドサービス スペシャリストソリューションアーキテクト部 スペシャリストソリューションアーキテクト 北村慎太郎氏

開発者向けプラットフォーム「IDP」とは

 こうした開発環境を実現するために、昨今注目されているのが「IDP(Internal Developer Platform)」である。これは「開発者体験の向上に寄与するためのあらゆるツールを具備して、開発者に提供していく」プラットフォームだ。さらに、ツールの適切な使い方を示すオンボーディングの機能も備える。

Internal Developer Platform(IDP)の構成
Internal Developer Platform(IDP)の構成

 多くの場合、IDPを整備・提供するチームとしてプラットフォームエンジニアリングチームが組成され、エンドユーザーである開発者(開発チーム)に必要な環境を届けていくことになる。

 北村氏は、プラットフォームエンジニアリングチームはIDPを「あたかも自分たちのサービスやプロダクトとして扱うべき」だとし、「開発者たちの満足度を高めるために必要な機能をIDPに実装して提供し、提供した後は利用状況のヒアリングを行い継続的な改善活動も行う必要がある」と説明した。

 プロダクトとして提供する限り、正しく価値を提供できているのか測る評価指標も必要になる。北村氏は、見るべき指標としていくつかのパフォーマンスインジケーターを示し、中でも「開発開始までの期間」を重視することを推奨した。

 チームの立ち上げから開発開始までの期間を短縮するためには、「開発環境」「ルール」「ノウハウ」の3つの要素をスムーズに整備する必要がある。従来、開発前には「開発環境」だけを準備することが一般的だった。しかし、クラウドネイティブ開発においては「いかに開発者の認知負荷を低くし、開発を始められる状況まで持っていけるかが鍵」。ツールを渡すだけでなく、それを活用して開発する上での明確なルール・ノウハウまで提供する必要があるのだ。

 そこでレッドハットは、「Golden Path」という仕組みによって開発者のノウハウ習得をサポートする方法を提唱している。

Golden Pathの仕組み
Golden Pathの仕組み

Golden Pathを実現する開発者向けポータル

 Golden Pathは、開発者に遵守してほしいルールを付与し、実際に動作するサンプルアプリとコードを提供することで、開発者のノウハウ習得を支援する仕組みである。レッドハットの開発者向けポータル「Red Hat Developer Hub」では、このGolden Pathをセルフサービス化して提供することができる。

 北村氏は、その概要をデモを交えて解説した。Developer Hubは、Backstageをベースとした開発者向けプラットフォームの統合ポータル機能。Backstageが提供する機能に加えて、サンプルのGolden Pathや他のRed Hat製品と連携するプラグイン、エンタープライズのサポート等も提供する。

 レッドハットの提供するコンテナプラットフォームであるOpenShiftと組み合わせると、次のような世界が実現できる。

Developer Hubで実現できる仕組み
Developer Hubで実現できる仕組み

 まず、プラットフォームエンジニアリングチームがOpenShiftの開発環境とGolden Pathを準備する。開発者たちは言語やフレームワークに合わせてGolden Pathを選択し実行する。すると、Skeleton Repositoryという準備されたリポジトリから、今回の開発で必要なアプリ用のリポジトリとKubernetesのマニフェストが入っているリポジトリがコピーされる。

 併せて、OpenShift内ではArgo CDというCDツールにリソースがデプロイされ、マニフェストリポジトリ内にあるCIツール(Tekton)のパイプラインがデプロイされる。このCIパイプラインには、ビルドデプロイだけでなくテストやセキュリティスキャンのプロセスも含まれる。ここまでが、Golden PathをDeveloper Hub上で実行したときのステータスだ。

Golden Pathを実行し処理が完了すると、開発者独自の画面が構築される
Golden Pathを実行し処理が完了すると、開発者独自の画面が構築される

 その後、実際に払い出されたアプリケーションに変更を加えるには、アプリ用のGitをクローンし、ローカルで編集を加えてコミット、プッシュする。すると、Golden Pathであらかじめ設定されたWebフックが機能して、アプリをデプロイするためのCIパイプラインが実行される。ビルドの処理が走ってコンテナのイメージが作成され、Argo CDのSyncによってサンプルアプリケーションがデプロイされるといった流れだ。

 「サンプルアプリをデプロイするために開発者が行うことは、Golden Pathのデプロイと、アプリケーションのソースコードの修正のみ」と北村氏。

 また、Developer Hubでは、デプロイされたさまざまな環境をポータルから一元的に閲覧することも可能だという。たとえば、プルリクエストの情報やCIパイプラインの実行状況などを確認できる。

「CI」のカラムをクリックすると、CIパイプラインの実行状況や各タスクのログを確認できる
「CI」のカラムをクリックすると、CIパイプラインの実行状況や各タスクのログを確認できる

 北村氏はその他にも、SonarQubeの情報や、実際にデプロイされている環境のトポロジー、Argo CDのSyncの状況の履歴まで確認できることを紹介した。

 さらに、Developer Hubには開発者がこの開発環境をどのように使うべきかという情報をドキュメントにまとめて提供する機能も備えている。

まずはクラウドネイティブ開発のノウハウ習得が最優先

 北村氏は、Developer Hubを「プラットフォームエンジニアリングチームのノウハウの集大成を展開するためのツール」だと称する。プラットフォームエンジニアリングのメリットを開発者に届け、運用することにおいては強力な手段になる。しかし「Golden Pathの具体的な中身を作るためのノウハウやその習得には残念ながら向いていない」と補足した。

 そのため、Developer Hubのようなポータルを準備する前に「クラウドネイティブ環境における開発や運用のノウハウの習得に、まず全力を注ぐことが最重要」だと北村氏は言う。

 まずはKubernetesやOpenShiftといったクラウドネイティブ開発運用と親和性の高いプラットフォームを採用して各機能を学習し、単一クラスターの運用業務を定義する。その後、開発組織の規模やインフラが拡大したら、Platform Engineeringの思想を取り入れ、経験から得た開発のプラクティスをGolden Pathとして定義して展開するのが望ましい。

 「この営みを続けることで、人材・プロセス・技術といった3つの観点でチームの成熟度が高まり、最終的にビジネスの価値につながる」と北村氏。そのために、クラウドネイティブ時代のプラットフォームには従来のインフラ基盤からの変革が求められる。

 最後に北村氏は「Better Practice, NOT Best Practice」というメッセージを紹介。開発者の要望や世の中のトレンドを踏まえて継続的にプラットフォームを改善し、ベタープラクティスを追求していくことが重要だと強調した。

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加

提供:レッドハット株式会社

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/19249 2024/04/10 12:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング