ITコラム

クラウド・ネイティブという考え方――これからのIT基礎知識 Vol.1

記事をシェアする:

OpenShift/Kubernetesの導入で成果をあげる道

CNCF(Cloud Native Computing Foundation)にクラウド・ネイティブの定義などが公開され、これに賛同してクラウド・ネイティブを推進する約500団体が集結する。この中には世界の大手クラウドベンダーやソフトウェアベンダーが含まれ、IBMとRed Hatもプラチナ・スポンサーとしてCNCFの活動を支援する。この様な背景からCNCFのクラウド・ネイティブの定義は、IT業界横断の共通認識である。そこで、IT業界で働く者にとって重要かつ共通な基礎知識を、読み易い形に要約を試みた。

執筆者:高良 真穂

日本IBM クラウド&コグニティブ・ソフトウェア事業本部、「15Stepで習得 Dockerから入るKubernetes」の著者

 


クラウド・ネイティブ基礎知識解説

1. CNCFとは
2. クラウド・ネイティブの定義
3. クラウド・ネイティブの特徴的アプローチ
 3-1. コンテナ

 3-2. イミュータブル・インフラストラクチャー(Vol.2)
 3-3. マイクロサービス(Vol.3)
 3-4. サービスメッシュ(Vol.3)
 3-5. 分散トレーシング(Vol.3)
 3-6. 宣言型API:declarative APIs(Vol.3)
 3-7. コンテナ・オーケストレーター Kubernetes(Vol.4)
 3-8. モニタリングとロギング(Vol.4)
4. クラウド・ネイティブ推進の課題と解決の取り組み(Vol.4)
5. まとめ(Vol.4)


1. CNCFとは

CNCFは、2015年7月に発表され、約50社が集まり2016年1月に活動を開始した。最初の発表から4年後2019年11月のメンバーは約500団体に増加した。この中には、大手クラウド事業者、ミドルウェア企業、ハードウェア製造企業、オープンソース・ソフトウェア企業、大学、その他非営利団体などが加入している。

CNCFThe Linux Foundationの下で運営され、クラウドとコンテナに関連する横並びの活動としてCloud Foundry FoundationXen ProjectOpen Container Initiative(以下OCIとする)がある。

次の図はCNCFランドスケープと名付けられたWebページの全体図と一部の拡大である。ここにはカテゴリごとにグループ化され、CNCFが推進するOSSプロジェクト、参加企業のプロプライエタリ・ソフトウェアとオープンソース・ソフトウェアが混在して配置されている。

CNCFランドスケープ

CNCFランドスケープ


2. クラウド・ネイティブの定義

CNCFランドスケープから読み取れる様に、CNCFのクラウド・ネイティブの掲げる思想の元に、約500のIT関連団体が集結して活動している。つまり、CNCFが定義するクラウド・ネイティブは、業界として公式な見解とみなすことができる。このことは、IT業界で働く者にとって、大変重要な基礎知識と言える。

クラウド・ネイティブの定義は、CNCFのドキュメントが置かれたGitHubのCNCF Cloud Native Definition v1.0に、日本語を含む各言語で記載されている。


クラウド・ネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドなどの近代的でダイナミックな環境において、スケーラブルなアプリケーションを構築および実行するための能力を組織にもたらします。 このアプローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、イミュータブル・インフラストラクチャー、および宣言型API(declarative APIs)があります。

これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実現します。これらを堅牢な自動化と組み合わせることで、エンジニアはインパクトのある変更を最小限の労力で頻繁かつ予測どおりに行うことができます。

Cloud Native Computing Foundationは、オープンソースでベンダー中立プロジェクトのエコシステムを育成・維持して、このパラダイムの採用を促進したいと考えています。 私たちは最先端のパターンを民主化し、これらのイノベーションを誰もが利用できるようにします。


 

最初の段落で、対象範囲と価値が述べられ、アプローチの代表例が明記されている。さらに、次の段落では、アプローチによって得ることができる効果が示される。そして、三つ目の段落で、特定ベンダー主導ではない中立な立場であることを「民主化」という言葉で表現して、ユーザーやコミュニティ中心に進めることが宣言されている。

の中で注目するべき点は、そのアプローチであり、それがイノベーションの推進力となる。アプローチは、英語で「接近する」を意味する以外に、問題などへの「取りかかり」を意味があることから「推進方法」と意訳できる。

3. クラウド・ネイティブの特徴的アプローチ

3.1. コンテナ

コンテナとは、アプリケーションのコードと、Linux OSを含む、すべての依存関係をパッケージ化したソフトウェアの一式である。そして、コンテナは、OSレベルで仮想化して、複数のコンテナを OS カーネル上で直接実行する。言い換えると、仮想マシンのようなハードウェア・スタックの仮想化、すなわち、ソフトウェアによってハードウェアの振る舞いを再現した上でOSを稼働させることをしない。そのため、コンテナは、ファイル換算でサイズが小さく、プロセスのように起動が早く、少ないメモリ容量で実行できる。

コンテナは、Linuxカーネルの機能を使って実現されるが、Docker社によって、その基礎が作られ、OCIによって標準化された。これによりコンテナは、ある環境から別のサーバー上の環境へ簡単に移動できる。つまり、アプリケーションをサーバー環境から分離して自由な移動を可能にする。このことは、開発環境、テスト環境、本番環境で、アプリケーションは均一な環境で稼働させることができることを意味し、後述のイミュータブル・インフラストラクチャーを実現する一つの方法である。

仮想サーバーとコンテナの概念図

仮想サーバーとコンテナの概念図


 

次のクラウド・ネイティブのアプローチに挙げられたキーワードは、リンク先で解説します。

参考資料

関連リンク

More ITコラム stories
2020年2月14日

COBOLは「古い」のか?令和の時代にCOBOLの“いま”を語る

レガシー・システムがデジタル・トランスフォーメーション(DX)の妨げになるという「2025年の崖」が、話題にな […]

さらに読む

2019年12月6日

クラウド・ネイティブという考え方――これからのIT基礎知識 Vol.4

最終回のこのページでは、クラウド・ネイティブの代表的なアプローチであるコンテナ・オーケストレーター(ここではK […]

さらに読む

2019年12月2日

クラウド・ネイティブという考え方――これからのIT基礎知識 Vol.2

クラウド・ネイティブ基礎知識解説の連載2回目。イミュータブル・インフラストラクチャーを取り上げる。コンテナ移行 […]

さらに読む