クラウドネイティブとは何のことなのか? なぜそれがIT組織の変革につながると期待されるのか[PR]
クラウドはアプリケーションの実行環境として確実にその重要性を高めてきています。そうしたなかで注目されるのが、「クラウドネイティブ」なアプリケーションです。
この「クラウドネイティブ」とは、具体的にどういうことを指すのでしょうか?
Kubernetesの開発をホストするなど、クラウドネイティブなアプリケーションのためのオープンソースソフトウェアの開発を進めている団体「Cloud Native Computing Foundation」(CNCF)は、クラウドネイティブの定義として「CNCF Cloud Native Definition v1.0」という文書を公開しています。前段部分を引用しましょう。
Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.
クラウドネイティブなテクノロジーは、パブリッククラウドやプライベートクラウド、ハイブリッドクラウドといったモダンかつダイナミックな環境においてスケーラブルなアプリケーションの開発と実行を行う組織の力を強化するものです。
コンテナやサービスメッシュ、マイクロサービス、イミュータブルインフラストラクチャ、宣言的なAPIなどがこうしたアプローチの例として挙げられます。
クラウドネイティブが具体的になにを指すかについてはいくつもの意見があると思いますが、クラウドネイティブに相当するのはコンテナを活用したマイクロサービスであると考えることは、おおむね広くコンセンサスを得ているように思います。
例えば、日本IBMでクラウドアーキテクトを務める樽澤広亨氏もクラウドネイティブなコンピューティングを実現する3つの技術要素としてコンテナやマイクロサービス指向を挙げています。
マイクロサービスの利点
クラウドネイティブのポイントであるマイクロサービスとは、アプリケーションが「サービス」(もしくは「マイクロサービス」)と呼ばれる独立したモジュールに分割されていて、サービスとサービスはそれぞれ独立したプロセスとしてネットワーク経由でAPIを通じて呼び出し合う疎結合の関係になっています。そしてそれらが互いに連携しながら動作することでアプリケーションとなる、という特徴を備えています。
(本記事は日本IBMの提供によるタイアップ記事です)
あわせて読みたい
Rustが過去最大のバージョンアップ、「Rust 2018 Edition」正式リリース
≪前の記事
Kubernetesが注目され続ける5つの理由。 KubeCon + CloudNativeCon North America 2018