【前編】アプリ開発効率を次のレベルへ ‐ HCP Waypointで実現するIDP
近年、アプリ開発者の生産性を向上させることを目的とした「プラットフォームエンジニアリング」という言葉をよく耳にするようになりました。プラットフォームは IDP(内部開発者プラットフォーム)とも呼ばれ、アプリケーションを開発するための IDP を組織でどのように実現するかが注目されています。
本記事では、前編としてプラットフォームエンジニアリングが注目される背景と、HCP Waypoint による IDP の概要を説明します。
プラットフォームエンジニアリングとは
プラットフォームエンジニアリングは、開発者の生産性向上とアプリケーション開発の効率化を目的とした新しいアプローチです。主に以下の目標を達成するための取り組みになります。
1. アプリケーションのより迅速なデプロイを実現する。
2. インフラの自動化とセルフサービス機能の提供により、開発者体験と生産性を向上させる。
3. 再利用可能な標準の提供により、開発者の認知負荷を軽減する。
プラットフォームエンジニアリングが注目されている背景
プラットフォームエンジニアリングが注目される主な背景には、以下の要因があります。
-
開発環境の複雑化
・クラウドの普及により、コンテナ技術や仮想マシンなど多様なコンピューティングリソースが選択可能となり、システム全体の柔軟性・拡張性・耐障害性を向上させるマイクロサービスが広く採用されています。選択肢が増え利便性が高まった一方で、インフラに対する認知負荷が増大し、開発効率の低下が懸念されています。 -
DevOpsの壁
・DevOpsは開発と運用の融合を目指すものですが、高度なスキルを持つ人材が必要で、その実現が難しい側面があります。限られた人材リソースの中で、生産性を最大化することが求められています。 -
開発者体験の重視
・開発者がストレスなく快適に開発できる環境を提供することの重要性が認識されるようになりました。これは CNCF のホワイトペーパーでも言及されています。
参考資料:https://tag-app-delivery.cncf.io/whitepapers/platforms/ -
セルフサービス化への要求
・開発スピードの向上には、従来の多段階の手続きを経てリソースを調達するのではなく、開発者自身が必要なリソースを即時に調達・利用できる環境が求められています。 -
標準化・再利用性の向上
・組織全体で一貫した開発環境や手法を提供し、効率を高める必要性が高まっています。また、ガバナンスの観点からも、ワークロードの標準化が重要となっています。 -
IaCの普及
・インフラを標準化し、管理性と再利用性を向上させる方法として、IaC(Infrastructure as Code)の活用が広がっています。IaCの導入により、アプリケーションが動作するインフラのライフサイクル管理を効率化する動きがあります。
図は AWS の構成ですが、ビルド、デプロイ、リリースに必要なインフラの知識が多く、さらに複数のクラウドが存在すると、運用がより複雑になることが想像できます。
HCP Waypointとは
HCP Waypointは、HashiCorp社が提供するマネージドサービスで、開発者がインフラストラクチャの複雑さを意識することなく、アプリケーションのビルド、デプロイ、リリースを一貫したワークフローで実行できるよう支援するプラットフォームです。主な特徴は以下の通りです。
- ビルド:事前定義されたテンプレートや設定を使用してアプリケーションをビルドします。
- デプロイ:ビルドされたアプリケーションを、Kubernetesクラスターやクラウドプラットフォームなど指定されたインフラストラクチャにデプロイします。
- リリース:デプロイ後、Waypointがリリースプロセスを管理し、アプリケーションをエンドユーザーが利用可能な状態にします。
これらの機能を通じて、HCP Waypointはアプリ開発者とプラットフォームチームのコラボレーションを促進し、アプリケーションのライフサイクル管理を効率化します。
引用: https://www.hashicorp.com/blog/announcing-the-hcp-waypoint-private-beta-program
HCP Waypointの利用の流れ
以下にHCP WaypointにおけるDay0からDay2までのオペレーションをまとめました。
Day0オペレーション
- テンプレートの設定: プラットフォームエンジニアが、アプリケーションとそのインフラをデプロイするためのベースとなる共有テンプレートを作成します。
- アドオンの作成: 拡張要件のためのアドオンを作成します。パフォーマンス向上や、セキュリティ、コンプライアンス要件をコード化します。
Day1オペレーション
- アプリケーションのセットアップ: アプリ開発者が、プラットフォームエンジニアが作成したテンプレートとアドオンを活用して、アプリケーションとそのインフラをデプロイします。これにより、標準化されたインフラ上で再利用可能なプロセスを通じてアプリケーションの構築を行えるようになります。
Day2オペレーション
- アクションの設定: プラットフォームエンジニアが、CI/CDシステムとの連携、バックアップやリストアのトリガー、フィーチャーフラグの切り替えなどのカスタムワークフローを実装するアクションを作成します。
- アクションの利用: アプリケーション開発者が、これらのアクションを使用して、フィーチャーフラグの切り替え、新しいビルドの作成、バックアップの実行などの継続的なメンテナンス操作を行います。
引用:https://developer.hashicorp.com/hcp/docs/waypoint
次回は、各フェーズにおけるHCP Waypointを使ったビルドやデプロイのオペレーションについて掲載します。