コンテナ技術をベースに標準化が進むクラウドネイティブ技術
近年、マルチ/ハイブリッドクラウドの活用が進みつつあります。その理由は、ベンダロックイン回避、高可用性、適切なクラウドサービス選択などです。
ベンダロックインを回避し、クラウドプラットフォーム特性を見極めてアーキテクチャを検討することは大変な労力です。そこで、どこでも同様に動作できるポータビリティの高いコンテナと、そのオーケストレーションツールであるKubernetes(※1)(以下、k8sと省略)をクラウドプラットフォームのベースとする動向が加速しています。
k8sは、パブリッククラウドでもマネージドサービスが提供され、プライベートクラウド上でも構築できます。Certified Kubernetes Conformance Program(※2)にて認定されたk8s上であれば、アプリケーションは同じ様に動作できます。このような背景から、クラウドネイティブ技術はコンテナを中心とするエコシステムを形成しつつあります。特にパブリッククラウドでサービス提供され始めて以降、k8sの利用は加速しているよう感じています。
図1:日本におけるパブリッククラウドのKubernetesサービス開始時期
コンテナ中心とするクラウドネイティブ技術の動向
数多くの製品群があり、その中から要件を満たす製品を選定する必要があります。この状況を改善するため、Cloud Native Computing Foundation(以下、CNCFと省略)というプロジェクトが発足しました。
CNCFでは、下記のような代表的なOSS製品をホスティングしています。そして、k8sを中心にエコシステムが形成され、グローバルスタンダードとなりつつあります。
要件 | 製品 |
---|---|
コンテナオーケストレーション | Kubernetes |
メトリクス監視 | Prometheus |
ロギング | Fluentd |
トレーシング | Jaeger |
NTTデータもCNCFに加盟(※3)し、これらの技術をインテグレーションしてクラウドネイティブなシステム開発を行い、お客様のDXを支援できるように活動しています。
今後、コンテナを中心としたOSS技術が成熟し、以下のような技術の活用も増えてくるのではないかと我々は見立てています。
要件 | 製品 |
---|---|
コンテナ開発・運用の効率化 | Cloud Native Build Pack |
アプリケーション間の通信・アクセス制御の効率化 | Istio、Envoy、Open Policy Agent |
コンテナFaaSアプリケーション開発 | Knative、riff |
GitOps | Argo CD、 Flux |
大規模アジャイル開発に活用されるコンテナを中心とするクラウドネイティブ技術
リリースなどの各種判断に要する時間の短縮は技術だけ解決することは難しく、アジャイル開発の方法論も合わせて活用し、且つビジネス規模に応じて大規模であってもアジリティを高める工夫が必要です。NTTデータでは小規模向けにはスクラム、大規模なアジャイル開発向けにはSAFe(※4)という方法論をクラウドネイティブと組み合わせ、この問題を解決しています。さらに、スケーラブルに分散開発しやすいマイクロサービスへのニーズも高まっています。この基盤としてもコンテナはデプロイ性に優れ、コンテナを中心とするクラウドネイティブ技術の活用が進んでいます。
このような開発スタイルは、社内やお客様にも浸透しつつあります。
従来の開発スタイルとの相違点に対するNTTデータの取り組み
従来のシステム設計と大きく異なる点もあります。
例えば、アプリケーション開発面、運用面では下記のような設計観点が必要なので、NTTデータでは様々な構成を想定して技術検証やシステム構成時の注意点を整理しています。
- アプリケーション開発面
- データの整合性
可用性
スケーラビリティ
など
- 運用面
- 可観測性
リリース自動化
など
また、組織・文化面では、強いリーダーシップと伴に権限を中央集権から分割統治へと変化させ、各々が自律的にビジネス価値を考え行動することが必要となります。そのため、コンサルティングやコーチングするための人材育成、資格取得や研修なども整備し、技術・方法論などトータルに支援できるようしています。