クラウドネイティブとは、クラウド環境に最適化された設計やアーキテクチャパターンを指します。クラウドの特性を最大限に活かし、クラウドインフラを活用することで高い俊敏性、スケーラビリティ、可用性を実現しようとするアプローチです。
クラウドネイティブの特長
機能単位に分割されたマイクロサービス
マイクロサービスアーキテクチャは、モノリシックではなく、機能単位に分割されたマイクロサービスで構成されています。これにより、敏捷な開発とスケーリングが可能になります。
コンテナ化
コンテナ化 アプリケーションはOSレベルの仮想化であるコンテナ上で実行されます。Dockerなどのコンテナ技術が活用されています。コンテナはポータブルでスケーリングしやすい特徴があります。
サービスメッシュ
サービスメッシュ マイクロサービス間の通信を効率的に制御するためのサービスメッシュ層があります。イーストウェストトラフィックの管理、認証、監視などの責務を担います。
ステートレスアプリケーション
アプリケーションの状態はイミュータブルなコンテナに保持されず、外部ストア(DBやキャッシュ)に保持されます。これにより、スケーリングや復元が容易になります。
Kubernetes
クラウドネイティブアプリケーションプラットフォーム Kubernetes、Cloud Foundryなどのアプリケーションプラットフォームを利用し、リソース調達、デプロイ、スケーリングなどを自動化します。
関連用語
Kubernetes
コンテナ
ステートレスアプリケーション