クラウドネイティブソフトウェアを開発・実装するためのチェックリスト。
長年にわたり、モノリシック・アプリケーションはビジネス・ニーズを実現するための標準的なエンタープライズ・アーキテクチャでした。しかし、クラウド・インフラがビジネスのスケールとスピードで加速し始めると、この状況は大きく変わりました。アプリケーション・アーキテクチャも、ハイブリッドおよびマルチクラウド・プラットフォーム上の不変のインフラストラクチャ上で実行されるクラウドネイティブ・アプリケーションや 、 、イベント駆動型サービスに対応するように変化しました。
クラウドネイティブとKubernetesの関係
「クラウドネイティブ・テクノロジは、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドといった最新の動的環境で、スケーラブルなアプリケーションの構築と実行を可能にします。コンテナ、サービスグリッド、マイクロサービス、イミュータブルインフラストラクチャ、宣言型APIは、このアプローチの一例です。
「これらの技術により、疎結合システムは弾力性があり、管理可能で、観測可能になります。強力な自動化と組み合わせることで、エンジニアは最小限の労力で、重要な変更を頻繁かつ予測可能に行うことができます。"
サーバーレス ようなコンテナ・オーケストレーション・プラットフォームにより、DevOpsチームはアプリケーション・サービスを開発、デプロイ、管理するための不変のインフラストラクチャを構築できます。イテレーションの迅速なペースは、今やビジネスニーズと一致しています。Kubernetesで実行するコンテナを構築する開発者は、そのための効率的な場所を必要としています。
クラウドネイティブソフトウェアの要件
クラウドネイティブ・アプリケーション・アーキテクチャを構築するにはどのような機能が必要で、開発者はそこからどのようなメリットを得られるのでしょうか。
クラウドネイティブ・アプリケーションの構築とアーキテクトにはさまざまな方法がありますが、ここでは考慮すべき部分をいくつか紹介します:
- ランタイム: コンテナファースト言語やKubernetesネイティブ言語で書かれることが多く、Java、Node.js、Go、Python、Rubyなどのランタイムがあります。
- セキュリティ: マルチクラウドやハイブリッドクラウドのアプリケーション環境にアプリケーションを展開し、維持する場合、セキュリティは最も重要であり、環境の一部であるべきです。
- 観測可能性: Prometheus、Grafana、Kialiなどのツールを使用します。これらのツールは、リアルタイムのメトリクスを提供し、クラウドでのアプリケーションの使用状況や動作に関するより多くの情報を提供することで、観測可能性を高めることができます。
- 効率性: ハイブリッド/マルチクラウド・プラットフォーム間でアプリケーションをポータブルにするため、非常に小さなメモリ・フットプリント、より小さなビルディング・ブロック・サイズ、高速起動時間に重点を置いています。
- 相互運用性: クラウドネイティブなアプリケーションを、Infinispan、MicroProfile、Hibernate、Kafka、Jaeger、Prometheusなど、これらの要件を満たすオープンソース・テクノロジーと組み合わせて、標準的なランタイム・アーキテクチャを構築します。
- DevOps/DevSecOps: これらの方法論は、本番環境への継続的なデプロイのために設計され、最小利用可能製品(MVP:Minimum Viable Product)と連携し、ツールの一部としてセキュリティを含みます。
クラウドネイティブの具体化
クラウドネイティブは抽象的な用語のように思えるかもしれませんが、定義を見直し、開発者のように考えることで、より具体的になります。クラウド ネイティブ アプリケーションを成功させるには、明確に定義されたコンポーネントの長いリストを含める必要があります。




