はじめに
今年も年末で残すところあと僅かですがいかがお過ごしでしょうか?年末最後のイベントとしてConnect();2018に少しだけ(5分w)登壇してきました。その内容も踏まえて記事を書こうと思います。
Cloud Native Computing Foundation( https://www.cncf.io/ )
もうこちら皆さんもご存知かと思いますが、略してCNCFは、マイクロサービスアーキテクチャの一部であるオープンソースのコンテナエコシステムを持続的に構築することを目的としていますね。マイクロサービスアーキテクチャといえば、非常に難解で運用も難しいと揶揄されますが、KubernetesやService Fablic、Java Springなどだけではなく、構築、運用に必要な要素/コミュニティを支援してきていますよね。
その様子は、CNCF landscape( https://landscape.cncf.io/ )をご覧になると良いと思います。いつの間にかlandscapeがinteractiveになって公開されていますね。更新が早くこちらをで更新していくのが良いとされたのでしょうか?(もしかして昔からあった?)もちろんgithubの方には、pdf、ai、tiff、jpgなどで画像がuploadされております。( https://github.com/cncf/landscape )
Microsoft
そして、最近のMicrosoftはGitHubを買収するなど、いろいろと話題なることが増えましたよね。Open Sourceの取り組みを加速していったけっか、GitHub上のactivityでも上位に登るなど凄まじい勢いで変化を続けています。(社内の情報(出せない情報も含む)を見てると肌でそのことを感じます)
CNCF x Microsoft
先程landscapeをMicrosoftで抽出するといくつかのものが出てきますね。
OSSのものでいうと
-
ACS Engine
( https://github.com/Azure/acs-engine ) /AKS Engine
(https://github.com/Azure/aks-engine )Azure/AzureStack
でKubernetes
環境を構築するためインストーラ -
Azure Service Fabric
( https://github.com/Microsoft/service-fabric )
Microsoft謹製のMicroservice(Container)オーケストレーションソリューション -
Brigade
(https://github.com/Azure/brigade )
JavaScript Scriptingと設定可能なWebhook、パイプラインなどの定義ができるもの、後ほど紹介するCNABと似たような部分もあり。 -
Draft
(https://github.com/Azure/draft )
kubernetes
用のArtifactの作成とリリースを担うもの、後ほど紹介するCNABと似たような部分もあり。
Cloud Native Application Bundle(CNAB)
Connect2018();
の日本イベントにて少しお話しましたが、CNABというものが発表されました。
Azure DevOps(VSTS)
/Azure Pipeline
などを使って複数のOSSツールを組み合わせてなにかシステムを構築すること(Pipelineを設定し、デプロイすること)、アップデート(ソースコードを変更してPush、CIまわして、CDとか)することも可能です。例えば、Azure DevOps
+ Jenkins
+ Maven
+ Azure WebApp
とかも簡単にできます。
さて、Micro Serviceな場合はどうでしょうか?Kubernetesクラスタを作ったり、Kubernetes
で使う、Persistent Volume
の
ためにManaged Serviceを使ったりVM上にansibleでMySQLクラスタを構築したり、いろいろと手順的にまとめる=パイプライン化するのは、難しかったりします。
また、それぞれ誰がそのxxx as Codeを作ったのか責任を持つことは少々難しかったです。
CNABではそれを下記のような方法で回避します。
- それぞれのツールを
bundle.json
でまとめる - PGPを使い、
bundle.json
にsignしてbundle.cnab
とする
PGPという公開証明書基盤を使ってSigningするということで安全を担保したりします。厳密に言えば、誰というか、誰のコンピュータで作られたかということですね。もし、このPGPを強固にしたければYubiKey
などを使うと良いでしょう。(YubiKey
が無いとSingできないなど)
つづく(時間がなくてここまでしかまとまりませんでした(汗))