Cloud Native Computing Foundation

Cloud Native Computing Foundationは、Linux Foundationのプロジェクトの１つで、コンテナ技術の推進と、その進化を取り巻くテクノロジー業界の足並みを揃えるために2015年に創設された財団である。

CNCFの発表はKubernetes 1.0の発表と同時に行われた。Kubernetesは、Googleがシード技術としてLinux Foundationに寄贈したオープンソースのコンテナクラスタマネージャである。CNCFの創立メンバーには、Google、CoreOS、Mesosphere、Red Hat、Twitter、ファーウェイ、Intel、Cisco、Docker、Univa、VMwareなどが名を連ねており、現在では450を超えるメンバーによって支えられている。

CNCFが管理する技術の適格な代表者を擁立するため、2016年8月にトロントで開催された「CloudNativeDay」でプログラムが発表された。 2020年5月までは連続起業家のDan KohnがエグゼクティブディレクターとしてCNCFを率い、その後財団は、GitLab社のクラウドネイティブ・アライアンス・ディレクターのPriyanka Sharmaが、彼の後任としてジェネラルマネージャに就任することを発表した。Sharmaは、CNCFのことを「小さな集団によって、しかし非常に大きなエコシステムの中で構築された、非常にインパクトのある組織」と表現し、業界の認知度や採用率の向上によってCNCFは「第二の波」に突入していると強く考えている。

2018年8月、Googleは、Kubernetesの運用管理をコミュニティに引き渡したことを発表した。創設以来、CNCFは、自らがホストする多数のサブプロジェクトを立ち上げてきた。

2020年1月、前年のCNCF年次報告書が発行され、会員数、イベントへの参加、トレーニング、業界への投資などを通じてCNCFが著しく成長したことが報告された。2019年に、CNCFは前年比50%増の173人の新規会員を獲得し、エンドユーザーは90%近く増加した。また、実運用でのKubernetesの使用が78%増加したことを明らかにしている。

1. CNCFプロジェクト
-------------

CNCFの技術的なプロジェクトは、成熟度のレベルの順にSandbox、Incuvated、Graduatedとしてカテゴライズされる。定義の条件には、プロジェクトの採用、寿命、オープンソースプロジェクトがプロダクショングレードの製品を構築できるほどの信頼性を持っているか、などがある。

CNCFのプロセスはプロジェクトをincubatedプロジェクトとして取り上げ、graduatedプロジェクトにまで成長させることを目的としており、これはプロジェクトのプロセスと技術の成熟度を反映している。 graduatedにカテゴライズされたプロジェクトは全体的な成熟を反映しており、コントリビューションの多様性、コミュニティの規模や成長、プロジェクトの採用などについてティッピング・ポイントを超えたと判断されたプロジェクトということになる。

CNCF Sandboxは初期段階のプロジェクトのための場所として、2019年3月に初めてアナウンスされた。Sandboxは、もともと「inception project level」と呼ばれていた場所を置き換えるものである。

2020年7月、Priyanka Sharmaは、CNCFではクラウドネイティブエコシステム内のオープンソースプロジェクトの数を増やしていく予定であることを発表した。

1.1. Graduatedプロジェクト
--------------------

1.1.1. Containerd
-----------------

containerdは業界標準のコアコンテナランタイムである。現在はLinuxとWindows向けのデーモンとして利用でき、ホストシステムの完全なコンテナライフサイクルを管理できる。2015年、DockerはOCI Specificationをruncと呼ばれるリファレンス実装とともにLinux Foundationに譲渡し、2019年2月28日以降、公式のCNCFプロジェクトになった。2017年、Dockerはcontainerdが一般利用可能であること、プロジェクトをCNCFに寄贈することを発表した。

1.1.2. CoreDNS
--------------

CoreDNSはプラグインを組み合わせて使用するDNSサーバーである。2019年にgraduationが発表された。

1.1.3. Envoy
------------

EnvoyはもともとLyftでアーキテクチャをモノリスから移行するために構築された。Envoyは高性能なオープンソースのエッジおよびサービスプロキシであり、アプリケーションにネットワーク透過性をもたらすことができる。2017年9月、LyftはEnvoyをCNCFに寄贈した。

1.1.4. etcd
-----------

etcdは、マシンのクラスター全体に渡ってデータを信頼性の高い方法で保存できる分散キーバリューストアである。CNCFのシアトルで開催されたKubeCon+CloudNativeCon North America 2018でincubatingプロジェクトになることが発表された。2020年11月にgraduatedプロジェクトになった。

1.1.5. Fluentd
--------------

Fluentdはオープンソースのデータコレクタであり、ユーザーが「データの使用と理解をより良く行うために、データの収集と消費を統合」することを可能にする。Fluentdは2016年にCNCFに参加し、2019年にgraduatedプロジェクトになった。

1.1.6. Helm
-----------

Helmは開発者が「アプリケーションの管理やKubernetesクラスターへのデプロイするのを簡単にする」のを助けるパッケージマネージャーである。2018年6月にincubatingレベルになり、2020年4月にgraduatedプロジェクトになった。

1.1.7. Jaeger
-------------

Jaegetは、GoogleのDapper論文とOpenZipkinコミュニティにインスパイアされたUberのエンジニアにより開発された分散トレーシングシステムである。マイクロサービスベースのアーキテクチャのトレーシングに利用できる。機能としては、分散コンテキスト伝搬、分散トランザクションモニタリング、根本原因の分析、サービス依存関係の分析、性能・レイテンシーの最適化などがある。2017年9月にCNCFのTechnical Oversight CommitteeはJaegerの受け入れを可決し、2019年にgraduatedプロジェクトになった。2020年には、CNCFエコシステムに認められた完全に統合されたパーツとなった。

1.1.8. Kubernetes
-----------------

Kubernetesはコンテナ化されたアプリケーションをクラスター環境で自動デプロイ・自動管理するオープンソースのフレームワークである。「Kubernetesは、さまざまなインフラストラクチャに関連する分散型のコンポーネントを管理するためのよりよい方法を提供することを目的としている。」

もともとGoogleで設計され、Cloud Native Computing Foundationを立ち上げるためのシード技術としてLinux Foundationに寄贈された。プロジェクトを支援する「大規模で多様性のある」コミュニティが、同様の目的を持った他の技術や古い技術よりも頑強な持続力をもたらしたと考えられている。2020年1月、CNCFはKubernetesに関連する関心、トレーニング、イベントへの参加、投資の大幅な成長を示す年次レポートを発表した。

1.1.9. Prometheus
-----------------

Prometheusは、CNCFのメンバープロジェクトで、初期にはSoundCloudによってスポンサーされていたクラウドモニタリングツールである。現在はDigital Ocean、Ericsson、CoreOS、Docker、Red Hat、Googleなどでも使用されている。2018年8月、PrometheusはCNCFのgraduatedプロジェクトになった。

1.1.10. Rook
------------

RookはCNCFの最初のクラウドネイティブのストレージプロジェクトである。2018年にincubationレベルのプロジェクトになり、2020年10月にgraduatedプロジェクトになった。

1.1.11. The Update Framework
----------------------------

The Update Frameworkは開発者が新規・既存ソフトウェアのアップデートシステムをよりセキュアにするのを補助するフレームワークである。TUFはこの広範に存在する問題に対して、包括的で柔軟なセキュリティフレームワークを提供することで、開発者が任意のソフトウェアアップデートシステムを統合できるようにする。TUFはCNCFの最初のセキュリティにフォーカスしたプロジェクトであり、CNCFがホストするプログラムの全体で9番目のgraduatedプロジェクトとなった。

1.1.12. Vitess
--------------

VitessはMySQLの水平スケーリングを実現するためのデータベースクラスタリングシステムである。もともとYouTubeの内部で使用するために開発されたものである。2018年にCNCFプロジェクトになり、2019年11月にgraduatedプロジェクトになった。

1.2. Incubatingプロジェクト
---------------------

1.2.1. Argo
-----------

ArgoはKubernetes native workflows、events、CI/CDなどのオープンソースプロジェクトの集合である。Argo Workflows、Argo CD、Argo Events、Argo Rolloutsからなる。

1.2.2. CloudEvents
------------------

CloudEventsは「イベントデータを一般的な方法で記述するための仕様」である。このプロジェクトは2018年にアナウンスされ、2019年10月にCNCFの後援のもと1.0のマイルストーンに到達した。

1.2.3. CNI
----------

Container Network InterfaceはCNCFのプロジェクトの1つであり、Linuxコンテナのネットワーク機能を提供している。

1.2.4. Contour
--------------

ContourはKubernetesのトラフィックの管理を指示する機能があるEnvoyの管理サーバーである。ContourはKubernetesの組み込みのIngress仕様より高度なルーティング機能も提供している。2020年7月にVMWareがCNCFにプロジェクトを寄贈した。

1.2.5. Cortex
-------------

Cortexは、Amazon DynamoDB、Google Bigtable、Cassandra、S3、GCS、Microsoft Azureに対応した、水平スケーリングとマルチテナントを提供するPrometheus向けの長期ストレージである。Thanosとともに、2020年8月にincubatingプロジェクトとして追加された。

1.2.6. CRI-O
------------

ORI-OはOpen Container Initiativeベースの「Kubernetes Container Runtime Interfaceの実装」である。CRI-Oにより、Kubernetesは特定のコンテナランタイムに依存せずに利用できるようになる。2019年にincubatingプロジェクトになった。

1.2.7. Falco
------------

Falcoはオープンソースのクラウドネイティブのランタイムセキュリティイニシアティブである。「事実上のKubernetesの脅威検出エンジン」であるとされる。2020年1月にincubatingプロジェクトになった。

1.2.8. gRPC
-----------

gRPC}}gRPCは「どんな環境でも実行できる、オープンソースのモダンな高性能RPCフレームワークである。Googleが社内で使用していた「Stubby」と呼ばれる次世代のPRCインフラのプロジェクトをオープンソースにすることでプロジェクトが作られた。公開初期からSquare, Inc.、Netflix、Ciscoなどの多数の大規模な企業で採用された。

1.2.9. Kong
-----------

2020年6月、API管理プラットフォームのKongは、オープンソースのKumaコントロールプレーン技術をCNCFにsandboxプロジェクトとして既存することを発表した。

1.2.10. KubeEdge
----------------

2020年9月、CNCF Technical Oversight CommitteeはKubeEdgeをincubatingプロジェクトとして受け入れることを発表した。プロジェクトはFutureweiで開発された。KubeEdgeのゴールは「エッジデバイスをクラウドの拡張として利用できるようにすること」である。

1.2.11. Linkerd
---------------

LinkerdはCNCFの5番目のプロジェクトであり、クラウドネイティブなアプリケーションのために弾力性のあるサービスメッシュを提供する。ツールはJVMをベースとしており、「開発者がマイクロサービス間で通信するのを補助する」ために作られた。

1.2.12. Litmus
--------------

2020年7月、MayaDataは、Kubernetesネイティブで動作するオープンソースのカオスエンジニアリング用ツールLitmusをCNCFにsanboxプロジェクトとして寄贈した。

1.2.13. NATS
------------

NATSはオープンソースのメッセージング技術のコレクションからなり、「セキュアで性能の高いプロセス間通信の手段の構築を助けるために、publish/subscribe、request/reply、分散キューなどのパターンを実装」している。NATSは長年独立して存在してプロジェクトだったが、CNCFのincubatingプロジェクトになった後に幅広く採用されるようになった。

1.2.14. Notary
--------------

Notaryは任意のデータコレクションに広範囲の信頼性を与えることを可能にするオープンソースのプロジェクトである。NotaryはDockerにより2015年に公開され、2017年にCNCFのプロジェクトになった。

1.2.15. Open Policy Agent
-------------------------

Open Policy Agentは、「クラウドインフラストラクチャーのためのオープンソースで汎用のポリシーエンジン・ポリシー定義言語」である。2019年4月にCNCFのincubatingプロジェクトになった。

1.2.16. OpenTelemetry
---------------------

OpenTelemetryは、CNCFによるOpenTracingおよびOpenCensusプロジェクトの統合によって作られたオープンソースの可観測性フレームワークである。OpenTracingは「人気のあるプラットフォームのための一貫性があり、表現性が高く、ベンダーニュートラルなAPI」を提供し、Googleが開発したOpenCensusプロジェクトは、「アプリケーションのインストルメント、statsの収集、対応するバックエンドへのデータのエクスポートのための特定言語用のライブラリのコレクション」として機能する。OpenTelemetryのもとで、プロジェクトは「マイクロサービスやその他の種類のモダンな分散システムに適した、ほとんどの主要なOSSおよび商用バックエンドと互換性のある完全なテレメトリーシステム」を開発することを目指している。OpenTelemetryは「2番目に活発な」CNCFプロジェクトである。2020年10月、AWSはOpenTelemetryのディストリビューションの公開プレビューを発表した。

1.2.17. Thanos
--------------

Thanosはメトリックのグローバルクエリビューと無制限の保持を可能にするプロジェクトである。Prometheusのdeploymentに簡単に追加できるように設計されている。

1.2.18. TiKV
------------

TiKVはRustで書かれた「分散キーバリューデータベース」である。CNCFのTechnical Oversight Committeeは、2019年5月にプロジェクトをincubatingレベルに移動することを決定した。

2. CNCFイニシアティブ
--------------

CNCFはクラウドネイティブコミュニティに対して、以下のような多数の取り組みやイニシアティブをホストしている。

2.1. イベント
---------

CNCFは同じ場所で行われるカンファレンスKubeConとCloudNativeConをホストしており、Kubernetesとクラウドネイティブの知識を増やしたいと考えているテクニカルユーザーとビジネスプロフェッショナルにとって重要なイベントになっている。イベントは、業界の仲間や思想的リーダーとのコラボレーションを可能にすることを目指している。KubeCon + CloudNativeCon North America 2018はシアトルのWashington Convention Centerで開催された。KubeCon + CloudNativeCon North America 2019は11月18日から11月21日にカリフォルニア州サンディエゴで開催された。同じ場所で開催されるイベントはKubeCon EuropeとKubeCon Chinaも行われるようになった。North Americaのイベントは、COVID-19パンデミックのために2020年のシーズンから完全にリモートモデルに移行した。11月17日から11月20日までオンラインで行われる。

2.2. ダイバーシティ奨学金と公平とインクルージョンに対する立場
---------------------------------

CNCFのダイバーシティ奨学金プログラムは、KubeCon + CloudNativeConのカンファレンスのチケット代と旅費を支給するものである。2018年には、多様性を拡大してマイノリティの背景がある人々がシアトルで行われるKubeConとCloudNativeConに参加できるように支給された金額は、300,000ドルに上った。

2020年8月、Priyanka SharmaはCNCFはBlack Lives Matter運動に対して「連携する」という立場を取ることを発表した。また、Sharmaは次のようにも述べている。「個人的にコードから人種的に問題のある言葉を根絶するプロジェクトにも関わって」おり、CNCFは「クラウドネイティブエコシステム内部でのジェンダーと人種的バランスを向上するために活発に取り組んで」いる。特にKubeConに関しては、LGBTQIA+、女性、黒人や褐色人種の人たち、能力の異なる人たちなどに対して場所や機会を作ることに引き続き取り組んでいく、と。

2.3. その他
--------

その他にも以下の取り組みやサービスの提供を行っている。

Kubernetes certification and education
Kubernetes software conformance and training
Cloud Native Landscape
Cloud Native Trail Map
DevStats
//CNCF Technology Radar//

3. 出典
-----

4. 外部リンク
--------

https://www.cncf.io/
https://landscape.cncf.io/