Ciscoは現在,オープンソースの‘microservice-infrastructure’プロジェクトを進めている。Mesos,Consul, Dockerといったテクノロジを基盤として,継続的デプロイとマイクロサービスベースのアプリケーションをサポートするプロジェクトだ。開発はおもに,GithubのCiscoCloudアカウントを通じたオープンな形式で進められている。
Cisco Cloud Blogには,microservice-infrastructureプロジェクトの大きな目標として,マルチデータセンタ構成に対応するマイクロサービスベースのアプリケーションの展開能力を備えたサービスを,Ciscoのクラウドプラットフォーム上で提供することが挙げられている。同社のクラウドとパートナープラットフォーム(およびそのプラットフォームの利用者すべて)の間で一貫性を持った開発エクスペリエンス提供を目標として,TerraformやDocker,Kubernetesなど人気のオープンソース技術を活用した,モジュール性の高い,マイクロサービスベースの継続的インテグレーションとデプロイメントのためのオープンソースプラットフォームを開発している。
このようなプラットフォームで必要とされる主な属性として,Ciscoは次のようなものを挙げている。
- 複数のデータセンタ(あるいはクラウド)のリソースを活用して,アプリケーションをデプロイする能力
- 非集中型コントロールモデルでのデプロイ
- インテリジェントなエンドポイントのサポート
- 徹底した自動化
- ビジネス要件とスケールアップをサポートするために,このようなサービスがオンデマンドでデプロイ可能であること
InfoQでは,Ciscoでマイクロサービスインフラストラクチャのプロジェクトリーダを務めるKeith Chambers氏に,プロジェクトに関していくつか質問した。
InfoQ: このようなマイクロサービスプラットフォームが,基本的にオープンに開発されるというのは素晴らしいことだと思います。プロジェクトをオープンソースとした動機は,どのようなものだったのでしょう?
Chambers: 動機について話ができるのは嬉しいですね! CiscoはIoTに大きな賭けをしています。これはその一部なのです。私たちは分散IoTアプリケーション構築のプリミティブ(Kafka, Spark, Cassandra, Elasticsearchなど)を,誰でも使えるような,民主的なものにしたいと思っています。プロプライエタリなソリューションには不安要素がたくさんあります。開発者としては,クローズなプラットフォームや,特定のクラウドに囲い込まれるようなプラットフォームを採用することは,何としても避けたいのです。ですから何をするにせよ,成果はオープンにしなければならない,ということは分かっていました。 それが今回のように,プロジェクトとして実施できるようになるとは思ってもいませんでした。
私たちが知る限り,Cisco社外にも2つの製品デプロイメントがあります。私たちもCisco製品チーム向けに,“Marathon・アズ・ア・サービス”の提供を始めました。それよりもエキサイティングなのが,Fortune 100企業の2社を対象として,Mesosデプロイメントをサポートするサポート契約を締結できたことです(当社のオープンソースプロジェクトベースではありませんが)。本当に素晴らしい成果です!
InfoQ: Ciscoのmicroservice-infrastructureプラットフォームは,Apache Mesosクラスタマネージャをベースにしていますが,これをプラットフォームとして選択した理由を説明して頂けますか?
Chambers: しっかりした基盤が必要なことと,オープンソースのデータサービスを幅広くサポートしなければならないことは最初から分かっていました。また,アプリケーションの開発やデプロイを簡単にするために,ソフトウェアのパッケージングや配布は,Docker関連で標準化したいと思っていました。
いくつかのテクノロジを検討しましたが,そのひとつがMesoだったのです。MarathonやKubernetesを使って,Dockerコンテナ内で一時的なアプリケーションを簡単に実行したり,Apache KafkaやApache Cassandraのような複雑でステートフルなサービスもサポートしたいと思っています。私たち自身でテストした後,GoogleやDocker Inc., HashiCorpにもフィードバックを求めました。彼らも皆,Mesosがクラスタ管理とリソーススケジュールのためのゴールドスタンダードであると認めてくれたのです。
InfoQ: プロジェクトのGithubにあるREADME.mdには,Kubernetesを(Mesosフレームワークとして)サポートする計画があると書かれています。一般的に競合すると見られているMesos/MarathonとKubernetesを,どちらもサポートするという選択をしたのはなぜでしょう?
Chambers: 構成管理の分野では以前,PuppetとChefが分裂したことがありました。当時はPuppet派とChef派に分かれていました。とは言っても,大部分の人たちは,大して気にせずにどちらかを選択していただけなのですが!
MarathonとKubernetesについても,これと同じようにしたいのです。どちらもそれぞれ,強みがあります。両方を試してみて自分に合ったものを選択するということが,簡単にできるようにしたいと思っています。選択が可能というこの部分も,Mesosのおかげですね!
InfoQ: プロジェクト内ではConsulとVaultという,Hashicorpの2つのオープンソース製品が使われていると聞いています。さらにTerraformとPackerも導入されていますが,Hashicorpとは何か特別なつながりがあるのでしょうか,あるいは技術的にベストな選択ということなのですか?
Chambers: どちらも多少はありますね。4年前,私がCiscoにRyan Uberを雇い入れてから,私たちはWebExビジネスで,本当にエキサイティングなたくさんの“DevOps”を一緒に進めてきました。Mitchell Hashimoto氏からのオファーを受けた頃,彼はSerfに関する仕事をしていました。私はオファーを受けるように奨めて,もちろん彼もそうしました。Ryanとは今も親しくしています。彼が私を,HashiCorpのArmon DadgerとKevin Fisherに紹介してくれたのです。知り合って間もなく,彼らの才能や情熱,気力といったものに感銘を受けました。すぐに親しくなって,それからはいつも一緒に仕事をしています!
実はAtlasが公表される前に,最初のアーキテクチャの概略を作ったのはArmonと私なのです。残念ながらその時点では,TerraformはOpenStackをサポートしていなかったため,最初はAnsibleを使わざるを得ませんでしたが,ビジョンとしてはずっと,HashiCorpのテクノロジを活用するつもりでした。
HashiCorpが提供するオープンソースツールのポートフォリオ全体が一級品であることには,誰もが同意してくれると思います。彼らがAtlasで目指している方向性は本当に素晴らしいと思います。一緒に開発しているエキサイティング機能がいくつかありますので,ご期待ください!
InfoQ: CapgeminiのApolloなど,いくつかの企業がマイクロサービスプラットフォームを発表していますが,これに対して何かコメントはありますか? アイデアの共有やコラボレーションの考えはあるのでしょうか?
Chambers: もちろんです! 彼らがApolloで行っている仕事は素晴らしいですから,ぜひ協力したいと思っています。実はGraham Taylorとは,来週初めにも,共同作業の方法について電話で話をする予定です。
それにApolloは,オープンな技術に立脚したアプリケーション指向のハイブリッドクラウドオペレーティングシステムというものに対して,実際にニーズがあることの証明でもあります。私たちは今,コンピューティングの次の領域への入り口に立っているのです - とてもエキサイティングな時代の始まりです!
InfoQ: microservice-infrastructureプロジェクトの最新バージョンは0.2ですが, 今後の目標やロードマップについて,もう少し詳しく教えて頂けますか?
Chambers: あと2週間ほどで0.3をカットする計画です。Terraformを経由したAWS, GCE, OpenStackサポートの他,新たにmesos-consulとmarathon-consulのブリッジも加わります。すごいですよ!
0.4に向けての優先順位の決定には,コミュニティも協力してほしいと思っています。KafkaやElasticsearch, Kubernetesといったものはどれも,リストの上位にあります。
InfoQ: InfoQ読者がmicroservice-infrastructureプロジェクトに参加するには,どのような方法がよいのでしょう?
Chambers: 一番よいのは,私たちのGitHubページhttps://github.com/CiscoCloud/microservices-infrastructureを見てくれることです。プロジェクトのREADにはチャットルームへのリンクがありますから,困ったことや問題があれば,Githubイシューを開くとよいでしょう。チームがすぐに来て,サポートしてくれますよ!
InfoQ: その他,InfoQ読者に伝えたいことはありますか?
Chambers: まずはコミュニティに,それからContainer Solutions, Asteris, BDOSS, Mesosphere, HashiCorp, Twitter, Metaswitch, Elasticsearch, Bashoなど,プロジェクトのために努力してくれたパートナ企業に感謝したいと思います。
サンディエゴのCisco Liveに参加する予定があるのでしたら,DevNetZoneに立ちよって,まずはProject Shippedを直接見てください。Project Shippedでは,小規模な開発チームでmicroservice-infrastructureやMesosphere DCOS上で分散プリケーションを開発し,デプロイすることができます。きっと気に入って頂けると思います。
Ciscoのmicroservice-infrastructureプロジェクトはGithubで公開されている。コードを体験して,支援が必要ならばGithubイシューをオープンするとよいだろう。