NubesGenは、v0.8.0リリースで利用可能となった新しいコマンドラインインターフェイス(CLI)により、その構成を自動的に検出し、Infrastructure as CodeとしてAzureにデプロイするためのGitOpsワークフローをセットアップできるようになった。これにより、開発者は自身のプロジェクトのクラウドインフラストラクチャを簡単に起動して実行できる。
NubesGenは、Microsoftが提供するオープンソース製品である。Terraformを確定しているGitOpsワークフローと統合し、Azureにアプリケーションをデプロイできる。NubesGenは、クラウドインフラストラクチャを「Gitプッシュ」したい開発者、およびクラウド構成を正確に制御したい開発者を対象としている。
InfoQは、NubesGenのプロジェクトリーダーJulien Dubois氏にインタビューし、製品とその方向性についての見解を得た。
InfoQ: NubesGenを作成する動機について教えてください。
Julien Dubois: 開発者は同じ2つの話を私に言い続けています。彼らは、クラウドインフラストラクチャを簡単に「Git push」したいと考えており、そして、クラウド構成を正確に制御したいと考えています。私たちは2種類をターゲットとしています。Azureをあまり知らずに使い始めたい人と、「Infrastructure as Code」ワークフローをすばやく設定したい経験豊富な人です。
私たちのソリューションでは、Web UIで、あるいはコマンドラインツールを使って簡単なインターフェイスを提供する。このツールではTerraformテンプレートが生成され、AzureとHashiCorpによって慎重に作成および監査されます。オプションを微調整したり、Azureリソースをアップグレードしたりする必要があるときはいつでも、そのためのすべてが揃っています。NubesGenに限定されません。
InfoQ: GitOpsはNubesGenのための前提の中心となっているように感じます。NubesGenを最大限に活用するにはGitOpsが不可欠ですか?
Dubois: GitOpsはクラウドにデプロイするための優れた方法であると信じています。NubesGenを使うと優れた「Git push」体験を得られる。コードをGitブランチにプッシュするだけで、インフラストラクチャとアプリケーションの両方が自動的に更新されるのです。それがとても簡単であることが気に入っていて、TerraformテンプレートあるいはJavaコードを変更するだけで、本番環境で数分後にすべてが更新されます。開発者にとっては素晴らしい経験です。
InfoQ: オープンソースのTerraformテンプレートを使うよりもNubesGenを使うことにどのような利点がありますか?
Dubois: NubesGenを使うと、根本的に異なるものを提供できます。ニーズに応じてテンプレートを生成するREST APIがあります。このAPIは非常に強力です。たとえば、Azure Key Vaultを選択すると、使用するすべてのサービスのすべてのキーがAzure Key Vault内で保護されます。したがって、NubesGenを使ったコピー/貼り付けや調整が大幅に少なくなり、構成をはるかに簡単に再生成したり変更したりできるようになります。
InfoQ: NubesGenの次のバージョンの大きな計画はありますか?
Dubois: 現在、プレビューには2つの大きな機能があります。VNetのサポートとBicepのサポートです。
VNetはAzure仮想ネットワークであり、はるかに安全なインフラストラクチャを提供します。しかし、セットアップが著しく複雑になります。その際、NubesGenなどのコード生成ツールを使うと非常に強力です。
Bicepは、Terraformに代わる、Microsoftの新しいInfrastructure as Codeソリューションです。Bicepは、Azureにネイティブに統合されているため、Terraformに比べていくつかの独自の機能があります。しかし、これらのツールを比較するために私たちはここにいるわけではありません。NubesGenでは、ニーズや好みに応じて、生成時にどちらかのツールを選択できます。
InfoQ: NubesGenを他のクラウドプロバイダーで動作するように移植したいという要望や意向はありますか?
Dubois: オープンソースプロジェクトに必要なのは、NubesGenがより多くのユーザに使用されることだけです。別のクラウドプロバイダーがNubesGenをフォークして、独自のカスタム実装を作成することは難しくありません。興味のある方は、喜んでお手伝いさせていただきます。
NubesGenの詳細をご覧ください。