ITコラム
クラウド・ネイティブという考え方――これからのIT基礎知識 Vol.1
2019年12月2日
カテゴリー ITコラム
記事をシェアする:
OpenShift/Kubernetesの導入で成果をあげる道
CNCF(Cloud Native Computing Foundation)にクラウド・ネイティブの定義などが公開され、これに賛同してクラウド・ネイティブを推進する約500団体が集結する。この中には世界の大手クラウドベンダーやソフトウェアベンダーが含まれ、IBMとRed Hatもプラチナ・スポンサーとしてCNCFの活動を支援する。この様な背景からCNCFのクラウド・ネイティブの定義は、IT業界横断の共通認識である。そこで、IT業界で働く者にとって重要かつ共通な基礎知識を、読み易い形に要約を試みた。
![](https://admin02.prod.blogs.cis.ibm.net/blogs/think/jp-ja/wp-content/uploads/sites/21/2019/10/takara-300.jpg)
執筆者:高良 真穂 ID:maho.takara
日本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団体に増加した。この中には、大手クラウド事業者、ミドルウェア企業、ハードウェア製造企業、オープンソース・ソフトウェア企業、大学、その他非営利団体などが加入している。
CNCFはThe Linux Foundationの下で運営され、クラウドとコンテナに関連する横並びの活動としてCloud Foundry Foundation、Xen Project、Open Container Initiative(以下OCIとする)がある。
次の図はCNCFランドスケープと名付けられたWebページの全体図と一部の拡大である。ここにはカテゴリごとにグループ化され、CNCFが推進するOSSプロジェクト、参加企業のプロプライエタリ・ソフトウェアとオープンソース・ソフトウェアが混在して配置されている。
![CNCFランドスケープ](https://admin02.prod.blogs.cis.ibm.net/blogs/think/jp-ja/wp-content/uploads/sites/21/2019/11/cloud-native1-1.png)
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によって標準化された。これによりコンテナは、ある環境から別のサーバー上の環境へ簡単に移動できる。つまり、アプリケーションをサーバー環境から分離して自由な移動を可能にする。このことは、開発環境、テスト環境、本番環境で、アプリケーションは均一な環境で稼働させることができることを意味し、後述のイミュータブル・インフラストラクチャーを実現する一つの方法である。
![仮想サーバーとコンテナの概念図](https://admin02.prod.blogs.cis.ibm.net/blogs/think/jp-ja/wp-content/uploads/sites/21/2019/11/cloud-native1-2.png)
仮想サーバーとコンテナの概念図
次のクラウド・ネイティブのアプローチに挙げられたキーワードは、リンク先で解説します。
- イミュータブル・インフラストラクチャー
- マイクロサービス/サービスメッシュ/分散トレーシング/宣言型API:declarative APIs
- コンテナ・オーケストレーター Kubernetes/モニタリングとロギング
参考資料
関連リンク
女性技術者がしなやかに活躍できる社会を目指して 〜IBMフェロー浅川智恵子さんインタビュー
ジェンダー・インクルージョン施策と日本の現状 2022年(令和4年)4⽉から改正⼥性活躍推進法が全⾯施⾏され、一般事業主⾏動計画の策定や情報公表の義務が、常時雇用する労働者数が301人以上の事業主から101人以上の事業主 […]
Qiskit Runtimeで動的回路を最大限に活用する
私たちは、有用な量子コンピューティングのための重要なマイルストーンを達成しました: IBM Quantum System One上で動的回路を実行できるようになったのです。 動的回路は、近い将来、量子優位性を実現するため […]
Qiskit Runtimeの新機能を解説 — お客様は実際にどのように使用しているか
量子コンピューターが価値を提供するとはどういうことでしょうか? 私たちは、価値を3つの要素から成る方程式であると考えます。つまりシステムは、「パフォーマンス」、「機能」を備えていること、「摩擦が無く」ビジネス・ワークフロ […]