IaCがもたらすインフラ管理のパラダイムシフト ~プラットフォームエンジニアリング~
クラウドネイティブNow

中谷 輝

富士通株式会社
ジャパン・グローバルゲートウェイ デリバリーテクノロジー推進統括部

プラットフォームエンジニアリング

近年、DevOpsの開発手法としてプラットフォームエンジニアリング(Platform Engineering)というものが注目されています。プラットフォームエンジニアリングは開発者の生産性を高めるプラットフォームを設計、構築、および運用し、開発者体験を向上することを主たる目的としています。2022年にGartner社のテクノロジーハイプサイクルに登場したことで急速に注目を浴びるようになりました。

IaCおよびGitHub Actions を使用したMicrosoft Azureへのデプロイ

  • 出典
    Gartner . "3 Exciting New Trends in the Gartner Emerging Technologies Hype Cycle". 2022. https://www.gartner.com/en/articles/what-s-new-in-the-2022-gartner-hype-cycle-for-emerging-technologies. (参照 2024-02-08).

クラウドの責任共有モデルは従来IaaS、PaaS、SaaSのような区分を用いて説明されてきました。しかし、近年ではDockerやKubernetesをはじめとしたコンテナ技術の普及、サーバレスなマネージドサービスの台頭、マイクロサービスの浸透、DevOpsやSREの普及によるエンジニアの担当範囲の拡大などが重なり、従来存在しなかったK8s-aaS(Managed K8s as a Servicee)、CaaS(Container-as-a-Service)、FaaS(Function-as-a-Service)等のより細分化されたサービス区分を含めた新たな責任共有モデルも提案されています。このように、現在パブリッククラウドにおける開発ではアプリケーションとインフラのレイヤは曖昧となっており、開発者が関わるレイヤも従来より増えるケースが多くなっています。

IaCおよびGitHub Actions を使用したMicrosoft Azureへのデプロイ

  • 出典
    CSA . "The Evolution of Cloud Computing and the Updated Shared Responsibility". 2021. https://cloudsecurityalliance.org/blog/2021/02/04/the-evolution-of-cloud-computing-and-the-updated-shared-responsibility. (参照 2024-02-08).

しかし、開発以外の部分で関与するレイヤが増すことは、開発者にとっては負荷が増大する要因になります。このような場合、開発者はアプリケーション開発に必要なプログラミング言語やフレームワーク等の知識に加え、パブリッククラウド(インフラ)の知識、Kubernetesをはじめとしたコンテナオーケストレーションの知識、IaCやCI/CDの知識、可観測性の知識など広範な知識やスキルセットが必要となってきます。DevOpsの文脈では開発者と運用者は互いに協力してアプリケーション開発に携わる必要があるためこの潮流は必然ですが、大規模なシステム構築において一人の開発者が単独でアプリ~インフラまであらゆるレイヤに対してフルスタックに深い知見やスキルを有するというのは非現実的です。そのため、インフラチームやSREチームがある程度アプリケーションの実行基盤を担保する必要があります。近年では、このように様々な技術や開発手法の発展によって高度に複雑化するクラウド上での開発プラットフォームの形成のために、プラットフォームエンジニアリングが必要とされています。

プラットフォームエンジニアリングにおいて、プラットフォームチームはソフトウェア開発時に必要となるアプリケーション以外の要素を担当します。具体的には、アプリケーションのデプロイ先となるクラウド環境の構築と提供、ソースコードリポジトリの作成、CI/CD環境の構築、モニタリング周りの設定などを実施します。これらの作業はSREでも実施しますが、プラットフォームエンジニアリングでは開発者の負担を減らすことに主眼を置いているので、これらの設定を抽象化した上で開発者の扱いやすい形で提供します。具体的には、標準的に使用するインフラの構成をTerraformのコードをテンプレートとして自組織で用意し、開発者の扱いやすい形でTerraform as a Serviceとして提供する、開発に必要な社内向けのKubernetes環境をKubernetes as a Serviceとして提供するといった、実行基盤のセルフサービス化が挙げられます。
昨年10月にはMicrosoft社から、上記のような思想に基づいたRadiusというツールが発表されました。こちらはビルディングブロックのような形でアプリケーションの実装に必要なリソースを配備すると、開発者がそれ以下のレイヤを意識することなく、IaCのテンプレート(Helm/Terraform/Bicepなど)によってリソースが任意のクラウド上でデプロイされるようになっています。このように、現在のパブリッククラウドでの開発は、複雑化しがちなインフラ実行基盤をいかに抽象化して開発者の扱いやすい形で提供するかといったことに重きが置かれています。

IaCおよびGitHub Actions を使用したMicrosoft Azureへのデプロイ

  • 出典
    Radius Docs . "Overview: Radius Applications". 2024. https://docs.radapp.io/guides/author-apps/application/overview/. (参照 2024-02-08).

「IaCがもたらすインフラ管理のパラダイムシフト」では、IaCの概要からIaCの導入によって引き起こされる開発手法の変容についてご紹介していきます。

関連情報

当社が提供するDX実現の課題にお応えするハイブリットITサービスの詳細は下記ページをご覧ください。

本コンテンツに関するお問い合わせ

お電話でのお問い合わせ

富士通コンタクトライン(総合窓口)

0120-933-200

受付時間:9時~12時および13時~17時30分
(土曜日・日曜日・祝日・当社指定の休業日を除く)

Webでのお問い合わせ

当社はセキュリティ保護の観点からSSL技術を使用しております。

ページの先頭へ