TOP > Cloud > クラウドネイティブが求められる理由(前)
関連カテゴリー: Software
クラウドネイティブが求められる理由(前)
2021/09/07
クラウドネイティブの全体図
ソフトウエア開発手法の潮流がこのように変化する中、オープンソースのツールを中心として、クラウドネイティブ関連のサービスやプロダクトに新たな地平が広がりつつある。CNCFの「Cloud Native Interactive Landscape」では、その全体像をインタラクティブな図で確認できる。
クラウドネイティブコンピューティングには、理解しておくべき重要なレイヤーとして、次の4つがある。
・アプリケーションの定義と開発:クラウドネイティブのスタックで最上位のレイヤー。アプリケーションの開発で使用するツールを対象としており、データベース、メッセージングシステム、コンテナイメージ、CI/CD(継続的インテグレーション/継続的デリバリー)パイプラインなどが含まれる。
・プロビジョニング:アプリケーションが稼働する環境の構築と防御や、その反復のための要素を扱うレイヤー。クラウドネイティブの世界では一般に、IaC(Infrastructure as Code)、リポジトリへのイメージの保存、ビルド自動化などが含まれる。また、脆弱性スキャン、鍵管理、ポリシー管理、認証ツールなどを通じて、アプリケーションのセキュリティへのニーズに応えることも対象となる。
・ランタイム:クラウドネイティブアプリケーションの稼働に関連する要素を扱うレイヤー。引き続きDockerが主流のコンテナランタイムのほか、ストレージやネットワークが対象となる。
・オーケストレーションとマネジメント:オーケストレーションやスケジューリングなど、コンテナ化したアプリケーションのデプロイ、管理、スケールに必要なツールを扱う。広く利用されているKubernetesのほか、サービスディスカバリ、サービスプロキシ、APIゲートウエイ、サービスメッシュが対象となる。
これらのレイヤー以外では、オブザーバビリティ(可観測性)のプラクティスを取り入れて、一連のサービスを効果的に監視することも重要となる。また場合によっては、セルフサービス型の社内開発プラットフォームとしてスタックを構成したり、ベンダーが提供するPaaSを利用して開発者が容易に導入できるようにしたりといった選択もあり得る。