BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Bamboo Continuous Integration ServerがAmazon EC2ビルドエージェントを追加

Bamboo Continuous Integration ServerがAmazon EC2ビルドエージェントを追加

原文(投稿日:2009/3/26)へのリンク

継続的統合(CI)によって、パフォーマンスの高いアジャイルチームを支援するデイリービルドとテスト駆動開発プラクティスは容易になる。しかし、CIはリソースに対して変化しやすいかなりの負担をかける。チームの計算リソースは決まっていて、チームがリリースに近づくにつれてリソースへの要求が増加する場合(多くのテストが導入されればされるほど、さらに多くのコードをビルドして統合する必要がある)、待ち時間が大きな不利益になることがある。

AmazonのEC2が提供するクラウドは、そのような様々な要求に応えるようにリソースを調整する方法を備えている。Atlassian社のBamboo Continuous Integration Server(サイト) ver.2.2を公表するブログをKen Olofsen氏が投稿し(サイト)、直接この調整の課題に取り組む新機能「Elastic Bamboo」(しなやかな竹)に言及している。

... Bambooは、クラウドの中にリモートビルドエージェントや弾性エージェントを開始できます。
これは、皆が一日中非常に多くの変更をチェックインする場合に重要な点となり、今日のビルドの待ち行列を減らすのに最適です。待ち行列が少ないことにより素早くフィードバックを得られ、しなければならない他のことをどんどん進められます。

弾性エージェントが標準的なリモートエージェントと異なるのは、クラウドに存在し、それゆえ、要求を保証しながら初期化、使用、そして終了できるという事実だけだ。利用しなければ、リソースのコストは発生しない。Atlassian社は、厳密に決めるには早すぎるけれども、チームがこの解決策を使ってかなりのコスト削減を実現すると信じている。

Atlassian社は社内開発でBamboo 2.2を使い、顧客が遭遇しそうな出来事を発見し、それに取り組んだ。より興味深い出来事の1つは、CIサーバがエラーに強いという状況に対する仮定だ。Atlassian社のEdwin Wong氏が言及した(サイト):

... ビルドは完全に「環境を認知できない」わけではありません。つまり、ビルドはその環境においてある設定がすでに発生していると仮定します。

他の問題は、チームで何人かのエンジニアが「インターネット全体をダウンロードする」問題を起こしたときです。... 公開されているリポジトリから依存するものをかなり大きく取り出す必要がありました。これらの依存物のほとんどは、まったく静的なものです。しかし、毎回インスタンスを消してしまうので、インスタンスが始まるたびにこれらのダウンロードを行う必要があります。(これは、ビルド毎の可能性があります)

EC2は、Elastic Block Store (EBS)というサービスを提供する。EBSは、クラウドイメージにインスタンスを結びつける「マウント可能なドライブ」として動く。実行中インスタンスのスナップショットと同様に、静的依存をすべて保存することで、EBSドライブの中では、クラウドイメージのカスタマイズとそのイメージのスナップショットを作成する簡単な方法を提供する。Wong氏の投稿には、さらに詳しい情報が含まれている。

Atlassian社は、非営利、かつ、オープンソースの開発者コミュニティの支援で知られている。その支援を示す手段として、この製品には特別なライセンス期間(サイト)が提供されている。

この記事に星をつける

おすすめ度
スタイル

BT