"Continuous Integration"の著者であるPaul M. Duvall氏が公的医療部門の大規模な組織によるクラウドへの継続的なサービス提供についての事例を著した。この記事ではこの中で見つかった問題、ツールやソリューションについて書かれている。
この事例を見れば、ソフトウエア開発のためのコスト効率のよいクラウドソリューションが実現可能であることが分かる。サービス提供にかかる時間の短縮、リソースの効率的な利用、そして環境の再現しやすさなどの利点がある。欠点としてはネットワーク遅延が制御できないこと、クラウドの障害のようなクラウドベースの開発プラットフォームのリスクが管理できないことが挙げられる。
クラウドにアプリケーションをホストするのが選択肢の主要な選択肢になると、この事例はクラウドでの開発とテストという次のトレンドを反映していることになる。この開発とテストという組み合わせは開発とテストと運用を一緒に管理しながら、継続的にサービスを提供している組織にとって適用しやすい。
この組織は、サービス提供のサイクルが長くなってしまうという問題(官僚的なプロビジョニング手続きが原因のひとつ)やインフラのコストが視覚化されていないという問題(遊休資産を生み出す)、環境の構成が間違っているという問題を解決しようとしていた。
Amazon Web Services(AWS)へ移行したことで、EC2インスタンスを必要に応じて立ち上げてチームのメンバ(開発者、テスター、マネージャ)を受け入れられるようになった。このようなインスタンスは利用目的に応じて自動的に構成されるので、再現性がある。また、仮想インスタンスを監視することで、組織はインフラコストの評価を動的に実行できる。
継続的なサービス提供のパイプラインを作成する(Jenkinsをカスタマイズ)することで信頼性のあるソフトウエアを開発しテスターに提供するのに必要な時間が短くなった。ビルドと依存性管理の自動化のセットアップ、継続的統合環境の作成、データベース変更管理や自動テスト、静的解析、リモート配置のサポートなど継続的なサービス提供の内実は多岐にわたる。クラウド上の開発環境全体のインフラにも要求管理やテスト管理のためのツールを配置するためのEC2インスタンスのセットアップが必要だ。バージョンコントロールと問題管理にはSaaSソリューション(Jira Studio)を利用した。
世界中の異なる地域にある冗長なクラウドリソースの管理はしっかりとしたセキュリティと可用性を確保する必要がある組織によってすでに行われている。クラウドブローカーサービスは複数のクラウドに対するサービスの提供を管理するのに利用できそうだ。特に集約機能を使えば異なるクラウドをまたがる配置プロセスで発生する相互運用性の課題を簡単にできる。