最新のデジタル技術を活用して新しい製品・サービスを開発し、競争優位を目指す
デジタル・トランスフォーメーションの動きが加速している。
そして、それを支えるIT技術が、クラウド・ネイティブ・コンピューティング。
仮想化、クラウド、コンテナ、マイクロサービスなどの流れが1つに合流し、大きなうねりを起こし始めている。
伝統的な開発手法・技術では
対応しきれない
調査会社IDC Japanによると、「2017年は、デジタル・トランスフォーメーションの重要性が認知され、国内大手企業においてデジタル・ネイティブ企業へのトランスフォーメーションを目指す行動が開始されたエポックの年であった」という(*1)。 (*1)「2018年国内IT市場の主要10項目」2017年12月発表
ここで言う「デジタル・トランスフォーメーション」とは、クラウド、ビッグデータ、モバイル、ソーシャルなどの技術を活用して新しい製品・サービス・ビジネスモデルを創出し、市場における競争優位を確立すること、「デジタル・ネイティブ企業」とは、デジタル・トランスフォーメーションの取り組みを最優先に置く企業を指す。そして、このIDC Japanの指摘が意味するのは、ベンチャーやスタートアップ企業から始まった日本のデジタル・トランスフォーメーションの動きが、大手企業をプレイヤーに加えて、いよいよ本格フェーズに入るということである。
そのデジタル・トランスフォーメーションを目指す企業が、システム/アプリケーションの開発・運用に求める要件は、スピーディに開発でき、スモールスタートが可能で、サービスイン以降はビジネスの拡大・縮小に応じて柔軟かつ頻繁に変更・拡張・更新が行えることである。なぜなら、投入する製品・サービスが市場に受け入られるかは不透明であり、市場の反応による変更や修正、拡張・縮小をあらかじめ前提としているからである。
こうした要件には、長期間使用するシステム/アプリケーションの開発を得意とする伝統的な手法・技術では対応しきれない。アジャイルな開発手法や継続的なデリバリー、基盤の構成や外部サービスの利用をダイナミックに行えるクラウドベースの技術・手法が必要になる。
そして最近、以上のような開発・運用の考え方、手法、要素技術、プラクティスに対して与えられている呼称が「クラウド・ネイティブ・コンピューティング」である。
クラウド・ネイティブへの
動きが本格化する
クラウド・ネイティブ・コンピューティングは、既にIT市場のメインストリームを走り始めている。IDC Japanは、「2021年までに、PaaSを用いて開発される世界のアプリケーションの80%がマイクロサービスとクラウドファンクションズ(注:FaaS)を利用する」とし(図表1)、日本国内については「2021年までに、国内のエンタープライズ・アプリケーションがハイパーアジャイルアーキテクチャ(注:クラウド・ネイティブ・コンピューティングとほぼ同義)への移行を本格化し、新規アプリケーションの50%がマイクロサービスおよびクラウドファンクションズに対応したクラウドプラットフォーム(PaaS)で開発される」と予測している(図表2)。
従来以上のスピード、
柔軟性、ポータビリティ
クラウド・ネイティブ・コンピューティングを構成する要素の個々の歩みを振り返ると、それぞれの技術の飛躍的な進展と、技術と技術のダイナミックな組み合わせによって、新しいコンピューティングの地平が拓かれてきた観がある。次の一覧を見ていただきたい。
2001 VMwareリリース(ハードウェア仮想化)
2006 AWS公開(クラウドサービス)
2013 Dockerリリース(コンテナ普及へ)
2015 OCP(現OCI)発足(コンテナ規格統一へ)
2015 CNCF設立(クラウド・ネイティブなサービス/環境の開発・整備)
2015 Kubernetes v1.0リリース(オーケストレーション)
2017 IBM、Kubernetesをサポート(2018年に製品名をIBM Cloud Kubernetes Serviceに変更)
2017 AWS、CNCFへ加入
2017 マイクロソフト、CNCFへ加入(主要クラウドベンダーがKubernetesをサポート)
これは、VMware(ハードウェア仮想化)から始まったシステム資源活用の飛躍的な効率化が、クラウドによってさらに進展し、その上位層では、Dockerの登場によってアプリケーションの移動がきわめて容易になるとともに、標準規格化(OCI)によって利用範囲の拡大が図られ、そして複数のコンテナの管理・実行を行えるKubernetesが事実上のクラウド標準になったことにより、マルチクラウドを含め多様なプラットフォームを横断的に利用できる環境が整ったことを示している。
今、Kubernetesに対応するプラットフォームであれば、たとえばAWSからIBM Cloudへ、わずかなスクリプトの記述だけでコンテナ=アプリケーションを移動できる。この軽快な、プラットフォームを自由に横断可能なポータビリティとスピード、柔軟性こそ、デジタル・トランスフォーメーションの動きが拡大するなかで、クラウド・ネイティブ・コンピューティングが大きな注目を集める理由である。
コンテナは、必要とされるコンポーネントが少ないので、VMwareのようなハイパーバイザー型の仮想化と比較して、より速い(秒単位でのデプロイ)、より小さい(MB単位のサイズ)、よりポータブル(容易なデプロイ・移行)を実現する(図表3)。
そのコンテナ上に、マイクロサービス・アーキテクチャに基づくサービス(機能、アプリケーション)を実装可能で、アプリケーションの一部を変更・修正するときは、コンテナ単位で置き換えれば済むので、モノリス(一枚岩)型のアプリケーションと比べてスピーディに行える(図表4)。デジタル・ネイティブ企業が求める「柔軟かつ頻繁な変更・拡張・更新」(前出)を実現する技術である。
図表5は、Kubernetesがコンテナを統合管理する仕組みである。kubectlからコンテナへ向けて発せられたリクエストは、APIサーバーが、クラスタやノードの構成情報(etcd)やスケジューラを参照してノードに対して命令を出す。この仕組みにより、システムが稼働中であってもアプリケーションの実行基盤をスケールしたり、新しいサービスの追加が可能になる。これも、デジタル・ネイティブ企業が求める要件を満たす技術である。
[IS magazine No.20(2018年7月)掲載]