アプリケーション開発・管理・運用

CNCFとは?活動内容やクラウドネイティブについて解説

大手ソフトウェア企業などが参画している「CNCF(Cloud Native Computing Foundation)」。本記事では、CNCFとはどういう団体で、何を行っているのか、またCNCFが推進する「クラウドネイティブ」とは何なのかについて詳しく解説します。

CNCFとは?活動内容やクラウドネイティブについて解説

アプリケーション開発における課題別の解決方法とは? 〜Azureを導入するメリットも紹介〜

CNCF(Cloud Native Computing Foundation)とは

CNCF(Cloud Native Computing Foundation)とは、クラウドネイティブの構築と形成を推進する非営利団体のことを指します。Google Cloud、Microsoft Azure、AWS、ORACLEなど、大手企業がメンバーとして参画しており、現在600社以上が賛同しています。

CNCFが主に行っているのは、オープンソースソフトウェア(OSS)の開発や促進のために、プロジェクトの拠点としての役割を果たすことです。実際に、コンテナ化されたアプリケーションを管理する「Kubernetes」や、システムの負荷管理に役立つ「Prometheus」、サービス間のネットワーク制御を行う「Envoy」などのオープンソースプロジェクトをサポートしています。

また活動目的には、「クラウドネイティブコンピューティングを普遍的なものにする(ユビキタスにする)こと」を挙げています。そのためにCNCFは、参画している企業とともに新しい技術の開発に取り組んだり、ベストプラクティスの共有を行ったりしています。

CNCFのプロジェクト一例

CNCFが提供しているオープンソースソフトウェアは100以上にも上ります。中でも有名なものが、2016年にGoogleから技術の運用や管理を譲り受けた「Kubernetes」です。Kubernetesは、コンテナに入れたアプリケーションのデプロイやスケーリングを自動的に行うためのソフトウェアです。CNCFでは、Kubernetesの提供だけでなく、Kubernetesの使用に関するウェビナーやケーススタディを提供しています。

そのほかにシンプルかつ堅牢なコンテナランタイムである「containerd」や、オープンソースソフトウェアのセキュリティ、制御に役立つ「Open Policy Agent」など、さまざまな場面で役立つソフトウェアをプロジェクトとして管理・提供しています。

国内外のIoT先進事例100選
Azure Cosmos DB 自習書 - Azure Cosmos DB Gremlin API 編 -

CNCFが推進する「クラウドネイティブ」とは

CNCFはオープンソースソフトウェアの提供を通じて、クラウドネイティブの構築と形成を目指しています。では、クラウドネイティブとは具体的にどういうものを指すのでしょうか。

CNCFはクラウドネイティブ技術の定義として、「拡張性のあるアプリケーションを構築・実行するための能力」と挙げています。つまり、最初からクラウドを活用することを前提にしたアプリケーションを利用することで、クラウドの長所を最大限引き出してビジネスに活用するためのアプローチが、クラウドネイティブだといえるでしょう。

クラウドネイティブのメリット

では、クラウドネイティブを導入することにより、企業にはどのようなメリットがもたらされるのでしょうか。ここでは、クラウドネイティブによる3つのメリットをご紹介します。

コストが削減できる

クラウドと相反するものに、物理的インフラを利用するオンプレミスがあります。オンプレミスでのシステム構築には、物理的なハードウェアやサーバーを用意する必要があり、初期費用がかかります。また運用する中でも、システム拡張にコストがかかったり、管理をするための人件費がかかったりと、多くのコストが発生します。

しかしクラウド基盤なら、物理的なインフラは必要なく、運用・管理も自社で行う必要はありません。クラウド基盤の提供者にこれらの業務を任せられるため、コストの削減が期待できます。

環境構築のスピードが上がる

クラウドネイティブなシステムには、自動的な回復や管理が備わっているため、エンジニアの労力は最小限に抑えられます。そのため、構築にも時間はかかりません。

その理由として、クラウドネイティブなシステムは、一つひとつの小さなアプリケーションからできており、疎結合によってシステムを形作っていることが挙げられます。ひとつのサービスに対して変更をかけても、システム全体には影響がないため、スピーディーに環境の構築が行えます。

セキュリティが向上する

クラウドでは、会社の重要な情報をネットワーク上に預けることになります。それに少なからず不安を覚える方もいるでしょう。しかしオンプレミスの場合、自社内で物理的なセキュリティもネットワーク上のセキュリティも管理する必要があり、二重にリスクを負わなければなりません。

一方クラウドであれば、セキュリティ対策が施された場所で情報を保管できるため、負担なくセキュリティを向上できます。

クラウドネイティブを構成する5つの要素

クラウドネイティブは、「コンテナ」「マイクロサービス」「サービスメッシュ」「宣言型API」「イミュータブルインフラストラクチャー」の5つの手法から成り立っています。ここでは、この5つの技術についてご紹介します。

コンテナ

コンテナとは、OS環境を揃えたまま複数の仮想環境を作る仮想化技術のことです。従来の仮想化では、仮想化ソフトウェアを用い、OSやライブラリ、アプリケーションを仮想環境として構築していました。しかし、コンテナではコンテナエンジンを用いてライブラリやアプリケーションのみを構築するため、仮想環境の構築スピードが上がり、軽量化にもつながるのが大きなメリットです。クラウドネイティブにおいては、アプリケーションを展開し、利用するために活用されています。

マイクロサービス

マイクロサービスとは、アプリケーションを小さなサービスに分け、そのサービスを連携させる技術のことをいいます。アプリケーションを機能ごとに小さく分解することで、機能の置き換えが容易になり、アプリケーションのテストや機能追加が簡単に行えます。また、問題が起きた際に原因の特定や修正もしやすく、被害を最小限に抑えられます。クラウドネイティブにおいては、アプリケーションを拡張したり、最適化させたりするために使用されています。

サービスメッシュ

サービスメッシュとは、コンテナやサービス間の通信監理のために活用されるソフトウェアです。通信を最適化させたり、負荷を分散させたりして、通信をより簡素化させる機能を持っています。そのほかに、アプリケーション認証や暗号化などの機能も併せ持ちます。サービスメッシュは、特にマイクロサービスにおける通信において、通信の負荷を削減するために必要です。

宣言型API

宣言型APIとは、サービスやアプリケーションに、実行すべき命令だけでなく、最終的にサービスやアプリケーションがあるべき状態を示すAPIのことをいいます。通常の命令型APIでは、実行すべき命令を下すだけのため、途中で命令が失敗し、適切な結果が得られないおそれがあります。しかし宣言型APIであれば、結果の状態まで示しているため、自動的にシステムが命令の内容を修正し、最終的な結果が得られるようにしてくれます。そのため、ユーザーが命令内容を修正する必要がなく、運用しやすくなります。

イミュータブルインフラストラクチャー

イミュータブルインフラストラクチャーとは、インフラの管理方法のひとつです。これまでのインフラ管理では、OSやアプリケーションの修正がされる度にアップデートを行う必要がありました。しかし、イミュータブルインフラストラクチャーでは、運用中のOSやアプリケーションの修正はせず、アップデートされた状態の新規のインフラを立ち上げ、その後現在利用しているものを削除することで、インフラ環境の切り替えを行います。これにより、より簡単にインフラ環境の更新が可能です。

まとめ

CNCFは、OSSの開発や促進を行う団体です。またクラウドネイティブという考えを推奨しており、この考えは今後さらに展開されていくことが想定されます。企業にいち早くクラウドネイティブを取り入れたいなら、クラウドネイティブアプリケーションの構築が行えるMicrosoft Azureの導入がおすすめです。

Microsoft Azure製品カタログ
  • fb-button
  • line-button
  • linkedin-button
RELATED SITES

関連サイト

CONTACT

サイト掲載の
お問い合わせ

TOP