SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【夏サミ2014】セッションレポート (AD)

【夏サミ2014】B2セッションレポート
超速で電話機能をアプリに実装、クラウドが推し進める継続的デリバリー

  • このエントリーをはてなブックマークに追加

継続的デリバリーを可能にするクラウドサービスとは

 では、継続的デリバリーとフィードバック獲得には、どのような開発環境、実行環境、サービスが必要になるのか。江木氏は「実行環境と連携したデプロイ自動化など、チームによるアジャイル開発をサポートしている必要がある」と語る。継続的デリバリーの環境に加えて、定期的にフィードバックを得る環境を自前で用意するのはかなり大変だ。

 そこで有用だと期待されるのが、IBMのクラウドサービス、開発環境である「IBM DevOpsサービス」と実行環境である「Bluemix」である。

 DevOpsサービスはSaaSで提供されているチーム開発環境で、アジャイル開発と継続的なデリバリーをサポートしている。メニューにはソース管理、バックログ管理、ビルド&デプロイなどがあり、実行環境と連携したデプロイ自動化もできる。GitHub連携や、Web IDE(Orion)も使用可能となっている。

 「フィードバックとの連携」ではモバイルが重要視されている。モバイルアプリの中にライブラリを組み込み、ユーザーが操作していて「何か変だな」と思ったときに機器をシェイクするとフィードバックモードに変わる。そこから画面キャプチャーや、メッセージを送信できるようになっている。その情報が開発者にフィードバックされる。

 実行環境のBluemixはIBMクラウド上で提供されるPaaSで、様々なプログラミング言語に対応したアプリケーションのランタイムを提供している。ランタイムから容易に利用できる多くのサービスがあり、たとえばビッグデータ関連では、「オンデマンドでHadoopベースのアナリティクスをアプリケーションに追加する」というものがある。

 ベースになっているCloud Foundryはオープン・スタンダードであることから、移植性が高い。

Bluemixとは? ~実行環境~
Bluemixとは? ~実行環境~

 ここで江木氏はデモを披露した。シナリオは「開発環境を作ることから始め、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コマンドが使える。

まずRouteを作成
> cf create-route dev mybluemix.net -n egitest
no-routeオプションで、2つのアプリをPush
> cf push --no-route -p A -m 64M egitest-a 
> cf push --no-route -p B -m 64M egitest-b
2つのアプリに同じURLを割り当てる
> cf map-route egitest-a mybluemix.net -n egitest 
> cf map-route egitest-b mybluemix.net -n egitest 
2つのアプリ
> 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年頃、アジャイル開発という考え方が出てきたが、当時はなかなか広がらなかった。環境が整っていなかったからだ。最後に江木氏は「今はクラウドによりアジャイル開発がやりやすくなり、継続的デリバリーが可能になっている。使わない手はない」と語り、セッションを閉じた。

お問い合わせ

 日本アイ・ビー・エム株式会社

 〒103-8510 東京都中央区日本橋箱崎町19-21

 TEL: 0120-04-1992

 Rational 関連情報

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
【夏サミ2014】セッションレポート 連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8012 2014/09/08 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング