クラウドネイティブ化への道
クラウドネイティブ化を進めるにあたってどんなツール・サービスを活用すれば良いのか?どのような手順で進めれば良いのか?CNCFが情報を公開しているので共有します。
CNCFとは何か?
Cloud Native Computing Foundation(CNCF)はLinux Foundationのプロジェクトで、コンテナ技術の発展と、その進化に関連するテクノロジ業界の連携を支援するために2015年に創設された。
創立メンバーには、Google、CoreOS、Mesosphere、Red Hat、Twitter、ファーウェイ、Intel、Cisco、Docker、Univa、VMwareなどが名を連ねる。
https://ja.wikipedia.org/wiki/Cloud_Native_Computing_Foundation
クラウドネイティブ化とは何か?
CNCFはCloud Nativeの定義を各言語で定義しており、日本語では以下のような定義となっています。
クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドなどの近代的でダイナミックな環境において、スケーラブルなアプリケーションを構築および実行するための能力を組織にもたらします。 このアプローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、イミュータブルインフラストラクチャ、および宣言型APIがあります。
これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実現します。 これらを堅牢な自動化と組み合わせることで、エンジニアはインパクトのある変更を最小限の労力で頻繁かつ予測どおりに行うことができます。
Cloud Native Computing Foundationは、オープンソースでベンダー中立プロジェクトのエコシステムを育成・維持して、このパラダイムの採用を促進したいと考えてます。 私たちは最先端のパターンを民主化し、これらのイノベーションを誰もが利用できるようにします。
LandscapeとTrail Map
CNCFはクラウドネイティブ化までのステップを表したTrailMapと、Cloud Native化を実現するOSSやサービス一覧の情報を公開している。
-
Cloud Native Trail Map
- クラウドネイティブ化までのステップを示したもの
-
Cloud Native Landscape
- Cloud Nativeなサービス一覧
- Serverlessは別項目で定義
TrailMap
クラウドネイティブ化実現のステップ
クラウドネイティブ化の実現のために次のステップで進めると良いとしている。
- コンテナ化
- CI/CD
- オーケストレーション&アプリケーション定義
- 可観測性と分析
- サービスプロキシ、ディスカバリ&メッシュ
- ネットワーク&ポリシー
- 分散データベース/分散ストレージ
- ストリーミング&メッセージング
- コンテナレジストリ&ランタイム
- ソフトウェアディストリビューション
必ずしもTrailMapを辿る必要はない。
アプリケーションや会社の規模に左右されると思います。とても小規模でシンプルなアプリケーションに、豪華な可観測性やサービスメッシュは不要です。この点、セキュリティは特に顕著で、あまり担保しなくていい事業に、ガチガチなセキュリティは要らないのではないかなと。
サイバーエージェント、青山氏
https://www.atmarkit.co.jp/ait/articles/1911/12/news006_2.html
Landscape
- アプリケーション定義と開発
- データベース
- ストリーミング&メッセージング
- アプリケーション定義とイメージビルド
- CI/CD
- オーケストレーションと管理
- スケジュールとオーケストレーション
- コーディネーションとサービスディスカバリ
- RPC
- サービスプロキシ
- API Gateway
- サービスメッシュ
- ランタイム
- Cloud Nativeストレージ
- コンテナランタイム
- Cloud Nativeネットワーク
- プロビジョニング
- 自動化と構成管理
- コンテナレジストリ
- セキュリティとコンプライアンス
- キー管理
- プラットフォーム
- CloudFoundry
- OpenShift
- RANCHER
- 可観測性と分析
- モニタリング:Prometheus等
- ロギング:fluentd等
- トレーシング:JAEGER
- カオスエンジニアリング:Gremlin等