HashiCorp創業者でTerraformを開発したMitchell Hashimoto氏,Puppet Labsのシニア・ソフトウェアエンジニアであるGareth Rushgrove氏,そしてChefで開発リーダを務めるJohn Keiser氏が参加するパネルディスカッションが,Config Management Campで行われ,コードによるインフラストラクチャ生成やクラウドリソース,APIが議論された。
ディスカッションに先立ち,参加者によるそれぞれのプロジェクトのデモが行われ,Terraformによるデプロイメント,PuppetによるEC2インスタンスとリソースの生成管理,Chefを使用したクラウドプロビジョニングが紹介された。
インフラストラクチャ・アズ・コードと各製品が解決する問題について問われたMitchellは,実際にマシンやインフラストラクチャを作り出すものではなく,それらを管理したり,ライフサイクルを組織化したり,あるいは正しい順序で生成するためのものだ,と返答した。HashiCorpが開発しているものはOpenStackやCloud Formationとは違って,リソースを一度生成するだけではなく,変更を管理するものだ,と氏は説明している。例えばTerraformは,ローリング展開や,一部のサーバのみをアップデートすることが可能だ。氏はさらに,自身の会社が取り組んでいる拡張性の問題についても,次のようにコメントした。
もし100万台のサーバがあったとすれば,Puppetで一日中APIコールをすることになるでしょう。 HasiCorpはこのような問題について検討中です。
インフラストラクチャを管理するには,多くの場合,Webインターフェースにログインする必要がある。大規模な組織であれば,誰がその権限を持つのか,という疑問に対する回答を用意しなければならない。Garethは,インフラストラクチャがソースコントロールの管理下でバージョニングされ,継続的パイプラインを通して構築とテストが可能になれば,多くの問題は解決されることになる,と述べている。
Johnは自身にとってのきっかけが,インフラストラクチャに関するあるWikiページを見たことだった,という話を紹介した。そのページに,何をするべきかということに加えて,実行すべき一連のコマンドが記載されていたことが,氏がインフラの技術的説明を記述する動機になったという。インフラストラクチャの内容やマシン同士の関係について正確に記述しておくことによって,複数の製品やクラウドが関連する作業が再現可能になる。
よいAPIとは何かという質問に対してはJohnが,それは利用する人次第だと回答した。その例としてAmazonのAPIを挙げて,いくつかの操作が一度に可能であること,加えてドキュメントが整理されていることを指摘した。APIはプロバイダ毎に大きく異なる。Garethが指摘したのは,マシンやサーバは抽象化されているものの,ネットワークについては大きな差異があり,リソースの表現もさまざまである点だ。
XML,JSON,その他何でも構わない,確実に動作するAPIが必要だ,というのがMitchellの意見である。HashiCorpがTerraformを試験した時,並行動作する数百台のマシンにまたがるテストでは,Googleを除くすべてのクラウドプロバイダで問題が発生した。クラウドプロバイダの分散システムに大きな問題があって,リソースの障害や,さらにはサーバが意図せず削除されてしまう,という苦労があったということだ。