継続的デリバリーを可能にするクラウドサービスとは
では、継続的デリバリーとフィードバック獲得には、どのような開発環境、実行環境、サービスが必要になるのか。江木氏は「実行環境と連携したデプロイ自動化など、チームによるアジャイル開発をサポートしている必要がある」と語る。継続的デリバリーの環境に加えて、定期的にフィードバックを得る環境を自前で用意するのはかなり大変だ。
そこで有用だと期待されるのが、IBMのクラウドサービス、開発環境である「IBM DevOpsサービス」と実行環境である「Bluemix」である。
DevOpsサービスはSaaSで提供されているチーム開発環境で、アジャイル開発と継続的なデリバリーをサポートしている。メニューにはソース管理、バックログ管理、ビルド&デプロイなどがあり、実行環境と連携したデプロイ自動化もできる。GitHub連携や、Web IDE(Orion)も使用可能となっている。
「フィードバックとの連携」ではモバイルが重要視されている。モバイルアプリの中にライブラリを組み込み、ユーザーが操作していて「何か変だな」と思ったときに機器をシェイクするとフィードバックモードに変わる。そこから画面キャプチャーや、メッセージを送信できるようになっている。その情報が開発者にフィードバックされる。
実行環境のBluemixはIBMクラウド上で提供されるPaaSで、様々なプログラミング言語に対応したアプリケーションのランタイムを提供している。ランタイムから容易に利用できる多くのサービスがあり、たとえばビッグデータ関連では、「オンデマンドでHadoopベースのアナリティクスをアプリケーションに追加する」というものがある。
ベースになっているCloud Foundryはオープン・スタンダードであることから、移植性が高い。
ここで江木氏はデモを披露した。シナリオは「開発環境を作ることから始め、Bluemix上に含まれているTwilioというサービスを使用したアプリケーションを構築する」というものだ。Twilioは、以前は多くの手間を要した「電話の機能」をアプリに簡単に組み込むためのサービスで、実際ここで使われたソースコードは25行程度だった。
デモではまずDevOpsサービスにおいて、様々なメニューを選択していくだけでチケット管理、進捗管理、スクラムのスプリント枠設定などができるチーム開発環境が、数十秒で構築される様子が披露された。
ソースコードが入ったZipファイルのドラッグ&ドロップで、Eclipseにコードをインポートし、実行環境のBluemix側にデプロイする。ここからアプリを実行すると、対象である江木氏のケータイが鳴る、という流れだ。以前であれば企画からリリースまで数か月を要した電話機能入りアプリの開発が、クラウドを使うことにより、個人のレベルにおいて数十分で実現できたことになる。
加えてこの「素早いリリース」を、継続的デリバリーに繋げる仕組みがある。チケット管理、コード修正後のPushをトリガー化などと組み合わせたデプロイ自動化だ。
江木氏はさらに「クラウドの特性により、デプロイ自体が変わってきている」と指摘する。一つは「Blue-Green Deployment」と呼ばれているもので、もともと動いていた環境(Blue)と同じ環境(Green)を用意する。新しいモデルを新環境にデプロイし、OKとなればルーターで外部からのリクエストが行く環境を切り換える。
この手法ではサーバーの停止と再起動が不要なのでダウンタイムが短くなる利点もあるし、不具合があればすぐに戻せばいい。リソースの調達が柔軟なクラウドならではの手法だ。
また「Canary Deployments」という手法もある。これも古いアプリから新しいものに切り換えるためのものだが、ここではルーターの切り替えを行わない。現在古いアプリが動いている環境に、新しいものをデプロイするが、その時点では古い方に100%のトラフィックがある。その後、動作を確認しながら、新しい方に徐々に移行していく。最終的に100%新しい方に交換するというものだ。
Bluemixでは、Canary Deploymentsに近いことが可能だ。 BluemixはCloud Foundryなので、cfコマンドが使える。
> cf create-route dev mybluemix.net -n egitest
> cf push --no-route -p A -m 64M egitest-a > cf push --no-route -p B -m 64M egitest-b
> cf map-route egitest-a mybluemix.net -n egitest > cf map-route egitest-b mybluemix.net -n egitest
> cf apps name state instances memory disk urls egitest-a started 1/1 64M 1G egitest.mybluemix.net egitest-b started 1/1 64M 1G egitest.mybluemix.net
2000年頃、アジャイル開発という考え方が出てきたが、当時はなかなか広がらなかった。環境が整っていなかったからだ。最後に江木氏は「今はクラウドによりアジャイル開発がやりやすくなり、継続的デリバリーが可能になっている。使わない手はない」と語り、セッションを閉じた。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- 【夏サミ2014】セッションレポート 連載記事一覧
-
- 【夏サミ2014】A3セッションレポート 「SoftLayer」でロンドンに「俺の」サーバ...
- 【夏サミ2014】B2セッションレポート 超速で電話機能をアプリに実装、クラウドが推し進め...
- 【夏サミ2014】A4セッションレポート いざ環境は整った!クラウドとCIツールを連携して...
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営する開発者のための情報メディアです。日々の開発に取り組むエンジニアやテクノロジーを学びたい方に向けて、プログラミングやAI活用、開発ツール、エンジニアの学びとキャリアに関する記事をお届けしています。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア

