2019に卒業したCNCF ProjectとMicrosoftの関わり


こちらのイベントで登壇してきました。
https://msdevjp.connpass.com/event/154913/
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/55285/1632ec13-d866-4193-ac41-f6e5265feb38.png)

クリスマスイブはクラウドネイティブ！

https://speakerdeck.com/sasukeh/30fen-dewakarukuraudoneiteibutomaikurosohutofalsequ-rizu-mi?slide=22

# イベントで話したこと
クラウドネイティブという言葉やどうやってというのは組織や人によって千差万別なところもあるので、先駆者による事例を参考にしていただくとして、時系列を振り返ったりマイクロソフトのクラウドネイティブって今どんな感じなのよというのを簡単に説明しました。

その中でこちらのようにGraduateしたProjectに関して言及しましたが、特に説明もしないままイベントを終えたのでMicrosoftが絡んでいる部分だけ解説できたらなと思ったのがこの記事のモチベーションです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/55285/f9c4682e-0e30-124d-4de2-926622b8f6a3.png)

# Graduated Project?
そもそもGraduted Projectというのは、Chasmを超えて熟れてきたProjectのことです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/55285/6b010235-a418-410c-afce-dea750401725.png)
https://www.cncf.io/projects/ より引用

# Spec??
どんな人でもこのProjectに参加し、Spec（仕様）を作るために協力することができ、Microsoft自身もそのSpecの議論に参加しているProjectがあります。いくらOSSだとしても多くのステークホルダーがいる中でこのSpecを作らずにすすめるのは、ガバナンスの観点から非常に難しいといえます。例えば、他のProjectとの整合が取れなくなることや、とあるベンダーに偏ったProjectになり将来性が見えなくなることなどです。

# MicrosoftがCNCF blogで言及されていた”卒業”Projectとその説明

##Core DNS 2019/01/24 Graduated Announce
https://www.cncf.io/announcement/2019/01/24/coredns-graduation/
### Projectの説明
```
CoreDNS は、クラウドネイティブ展開でサービス検索を提供する、高速で柔軟で最新の DNS サーバーです。
これは、下位互換性があり、拡張可能なKubernetesとの統合を提供するので、最新のKubernetesリリース(1.13)は、
今後のすべての展開のデフォルトDNSとしてCoreDNSを正式に推奨しています。
このサーバーは、AWS Route53 や etcd を使用して、AWS とのハイブリッドクラウド環境での
ネイティブクラウド統合にも使用でき、Google クラウド DNS サポートを間もなく追加する予定です。
```
とあります。

### Microsoftとの関連性
発表時には、Azure DNSのサポートが含まれていなかったのですが、現時点で実はAzrue DNSもAzure DNS pluginにて参照可能になっており、下記のCoreDNSのDocsが参考になります。
https://coredns.io/plugins/azure/

```
Azure プラグインは、Microsoft Azure DNS からゾーンを提供する場合に便利です。
azure プラグインは、AzureでサポートされているA、AAAA、CNAME、MX、NS、PTR、SOA、SRV、
および TXT レコード・タイプなどのすべてのDNSレコードをサポートします。
```

Azure DNS
https://coredns.io/plugins/azure/

## Containerd 2019/02/28 Graduated Announce
https://www.cncf.io/announcement/2019/02/28/cncf-announces-containerd-graduation/
### Projectの説明
```
2014 年に Docker で生まれたContainerdは、Docker エンジンの下位層ランタイムマネージャーとして
開始されました。2017 年 3 月に CNCF に承認された後、Containerdは、Docker エンジンと OCI Runc
executor間のレイヤーとして最も広範な使用方法と採用を備えた、シンプルさ、堅牢性、移植性に
重点を置いた業界標準のコンテナーランタイムになりました。
```
Containerdは、そもそもこちらに書いてあるとおり、当時、混沌としそうだったコンテナーランタイムの標準化のリーダーシップをとったプロジェクトでした。

### Microsoftとの関連
Microsoftとのかかわりですが、こちらのドキュメントが参考になります。
- Windows 上のコンテナープラットフォームツール
https://docs.microsoft.com/ja-jp/virtualization/windowscontainers/deploy-containers/containerd
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/55285/dbf7c3d4-27cc-641e-5e9d-541fb7dd2e44.png)

Windowsでは`runc`のフォークとして、`runhcs`を作り、それによってWindowsでもOCIのSpecに従ったContainerの実行を可能にしています。ただ、Windows Server 2016では、その`runhcs`と`containerd`はサポートするものの、CRIのサポートをするためには、Windows Server 2019以降が必要です。

- Windowsに対するKubernetesのEnhancementはこちらに。  
https://github.com/kubernetes/enhancements/tree/master/keps/sig-windows

## Fluentd 2019/04/11 Graduated Announce
https://www.cncf.io/announcement/2019/04/11/cncf-announces-fluentd-graduation/

有名な古橋 貞之氏が作った日本発のオープンソースコレクタです。とても有名なので、ここで特別に説明は必要ないと思います。

### Microsoftとの関連
Azure Monitorでは、Azureで取得できたログ以外にJsonやそのほかFluentdプラグインに対応するログをAzure Monitorで統合することができます。
- Azure Monitor での Linux 用 Log Analytics エージェントを使用したカスタム JSON データ ソースの収集
https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/data-sources-json

例えば、KubernetesのLogもFluent-bitを使うことでAzure Monitor - Log Analyticsに統合できます。

- Export Kubernetes Logs to Azure Log Analytics with Fluent Bit  
https://samcogan.com/export-kubernetes-logs-to-azure-log-analytics-with-fluent-bit/


<!--
## Jaeger 2019/10/31 Graduated Announce
MSに対する言及はなし
https://www.cncf.io/announcement/2019/10/31/cloud-native-computing-foundation-announces-jaeger-graduation/

## Vitess 2019/11/05 Graduated Announce
これはMSでない
https://www.cncf.io/announcement/2019/11/05/cloud-native-computing-foundation-announces-vitess-graduation/

## TUF 2019/12/18 Graduated Announce
https://www.cncf.io/announcement/2019/12/18/cloud-native-computing-foundation-announces-tuf-graduation/
TUFはCNCFよりこの記事で公式にGraduateしたと発表されました。本当に最近です。いまさっきくらいな勢いでした。
-->

## まとめ
調べてみてわかった（当たり前のこと）のですが、クラウドにてManaged Serviceを提供しており、そのサービスがProjectに絡むことがあれば、当然Pluginを作ったりするビジネス的な理由があるわけでして、そういうったところにも積極的に関与していくあたり、Kubernetesの普及に関して本気で取り組んでいるんだろうなという感じでした。個人としては2020年もこのあたり積極的にウォッチしていくつもりですが、他人事ではなく、自分事にするために、機会をいただけるなら、kubernetesを使った多くのお客様のProjectに参画していきたいなと思っています。それと、まだまだContainer化やマイクロサービス化についても、誤解が多くあると思うので、ここはこうするといいよねというアンカンファレンス+BoFみたいなイベントも開催していきたいなと思っています。今年に引き続き来年もクラウド、クラウドネイティブ、コンテナー、アプリケーションモダナイゼーション、DevOpsなどの文脈で引き続き頑張っていこうと思います。

<!--


## kubernetes 2018/03/06 卒業
https://www.cncf.io/blog/2018/03/06/kubernetes-first-cncf-project-graduate/
初めてCNCFを卒業したProjectは、Kubernetes

## Prometheus 2018/08/09 卒業
https://www.cncf.io/announcement/2018/08/09/prometheus-graduates/

## Envoy 2018/11/28 卒業
MS言及はあるもののGraduatedは2018年
https://www.cncf.io/announcement/2018/11/28/cncf-announces-envoy-graduation/



-->