Shoeisha Technology Media

EnterpriseZine(エンタープライズジン)

EnterpriseZine(エンタープライズジン)

テーマ別に探す

Pivotal Cloud FoundryでPaaSを体験! 構成管理なし・手ぶらでデプロイできる驚きの快適さにやはり感動

2017/05/17 06:00

ハンズオン後編:アプリケーションのスケールアウトとブルーグリーンデプロイメント

 続いて、ハンズオンの後編である。ここでは最初に、アプリケーションのスケールアウトが、PWSではいかに簡単に実行できるかを体験した。2つ目のサンプルアプリケーションは、アクセスしたアプリケーションのインスタンス番号を表示するというものだ。このアプリケーションをプッシュした後、“cf scale”コマンドを実行して、アプリケーションのインスタンスを5つへ増やす。

$ cf scale appichigo02 -i 5

 appichigo02は、プッシュ時に参照される設定ファイル「manifest.yml」で指定した、このアプリケーションのホスト名である。“cf app”コマンドを使うと、PCFから稼働中のapp-ichigo-02アプリケーションに関する情報を取得し、インスタンスが5つに増えていることを確認できた。

$ cf app app-ichigo-02
Showing health and status for app app-ichigo-02 in org Org-Ichigo / space development as (PWSに登録したメールアドレス)...

name:              app-ichigo-02
requested state:   started
instances:         5/5
usage:             128M x 5 instances
routes:            appichigo02.cfapps.io
last uploaded:     Mon 08 May 16:22:37 JST 2017
stack:             cflinuxfs2
buildpack:         python 1.5.18

     state     since                  cpu    memory         disk           details
#0   running   2017-04-06T07:24:09Z   0.1%   8.2M of 128M   164.9M of 1G
#1   running   2017-04-06T07:29:43Z   0.2%   8.2M of 128M   164.9M of 1G
#2   running   2017-04-06T07:29:43Z   0.2%   8.3M of 128M   164.9M of 1G
#3   running   2017-04-06T07:29:43Z   0.2%   8.3M of 128M   164.9M of 1G
#4   running   2017-04-06T07:29:42Z   0.0%   8.2M of 128M   164.9M of 1G

 また、PCFでは特定のインスタンスへアクセスが集中しないように、5つのインスタンスの間でアクセスを振り分け、ロードバランスを自動的に効かせてくれる。実際に、セミナー会場のパソコンやスマートフォンでアプリケーションにアクセスしてみると、表示されるインスタンス番号が毎回異なった。アクセス先のインスタンスが振り分けられている証拠である。

図17:市古氏のスマートフォンでインスタンス番号を確認。このときには4番目のインスタンスにアクセスした
図17:市古のスマートフォンでインスタンス番号を確認。このときには4番目のインスタンスにアクセスした

 次に体験したのは「ブルーグリーンデプロイメント(Blue Green Deployment)」。ブルーグリーンデプロイメントとは、稼働中のアプリケーションに対してパッチの適用やアップグレード、古いバージョンへのロールバックを行う場合に、アプリケーションのダウンタイムを最小化するための手法。具体的には、現行バージョンと並行して、変更を加えたバージョンのアプリケーションをしばらく稼働させ、ユーザーに両者を区別なく利用してもらい、問題がないかどうかを確認する。変更を加えたバージョンでも問題のないことが明らかになったら、現行バージョンから変更を加えたバージョンへ切り替えるというものだ。

 次図は、このハンズオンで体験したブルーグリーンデプロイメントの流れである。

図18:ハンズオンで体験したブルーグリーンデプロイメントの流れ(出典:本セミナー資料)
図18:ハンズオンで体験したブルーグリーンデプロイメントの流れ(出典:本セミナー資料)

 xxx-blueが現行バージョン、xxx-greenが変更を加えたバージョンのアプリケーションで、アプリケーションにアクセスするURL(これをルートという)はxxx-pro.cfapps.ioである。xxx-temp.cfapps.ioで進めていたxxx-greenの開発が終わったので、これからブルーグリーンデプロイメントでxxx-greenの動作確認を行う(図のBeforeの状態)。そのため、xxx-pro.cfapps.ioでもxxx-greenにアクセスできるようにし、ユーザーにはxxx-blueとxxx-greenのどちらにアクセスしているか分からなくしてアプリケーションを利用してもらう(図のDuringの状態)。それで何も問題がなければxxx-greenへ移行して差し支えないと判断し、xxx-pro.cfapps.ioからxxx-blueへのルートを削除して、xxx-greenへの移行を完了させる(図のAftreの状態)。

 まず、上図のBeforeの状態を作る(①)。xxx-blueアプリケーションをxxx-pro.cfapps.ioというルートで、xxx-greenアプリケーションをxxx-temp.cfapps.ioというルートでプッシュした(市古はxxxをichigoとした)。次に、Durgingの状態を作るため、xxx-greenに、xxx-blueと同じxxx-pro.cfapps.ioというルートを付加する(②)。これは“cf map-route”コマンドを使って行う。最後にAfterの状態を作るため、“cf unmap-route”コマンドでxxx-blueへのルートと、xxx-greenへの元のルート(xxx-temp.cfapps.io)を削除する。

①Beforeの状態を作る。xxx-blueのコードはblueディレクトリ、xxx-greenのコードはgreenディレクトリに入っていた。
$ cd blue
$ cf push xxx-blue -n xxx-pro

$ cd ../green
$ cf push xxx-green -n xxx-temp

②Duringの状態を作る。
$ cf map-route xxx-green cfapps.io -n xxx-pro

③Afterの状態を作る。
$ cf unmap-route xxx-blue cfapps.io -n xxx-pro
$ cf unmap-route xxx-green cfapps.io -n xxx-temp

 なお、各状態で正しくアプリケーションが稼働し、ルートを追加、削除できたことを確認するため、折に触れて“cf apps”コマンドを用いた。

 また、「アプリケーションのスケールアウトと新バージョンへの移行って、実は面倒だったり、神経をすり減らしたりするんじゃなかったけっけ?」というのが、市古の偽らざる感想のようだ。ハードウェアからミドルウェア、ランタイムまでの管理や操作をクラウド側でやってくれることのありがたさ、便利さ。たった1つや2つのコマンドを発行するだけで、あとは「おまかせ」なのである。コンテナ技術のメリットを活かす面でも、PaaSは積極的にトライしてみる価値があるだろう。

 ここまでで当初予定のハンズオンは終了である。ただ、この日は時間が残ったということで、キーバリューストア「Redis」のサービスをアプリケーションに追加する作業まで行うことができた。最後に吉田氏は「PaaSはデジタル変革に最適なプラットフォームです。そしてPFCは実績豊富なエンタープライズPaaSです。今日のハンズオンで簡単に使えることがお分かりいただけたと思います。ぜひ今後活用してみてください」と述べ、セミナーを締めくくった。

【無料】PaaSハンズオンセミナーを受講してみませんか!

 本稿でレポートしているPaaSハンズオンセミナーは、どなたでも受講できます。受講は無料です。詳細やお申し込みは、こちらのWebサイトをご覧ください。



著者プロフィール

  • EnterpriseZine編集部(エンタープライズジン ヘンシュウブ)

    「EnterpriseZine」(エンタープライズジン)は、翔泳社が運営する企業のIT活用とビジネス成長を支援するITリーダー向け専門メディアです。データテクノロジー/情報セキュリティの最新動向を中心に、企業ITに関する多様な情報をお届けしています。

  • 加山 恵美(カヤマ エミ)

    EnterpriseZine/Security Online キュレーター フリーランスライター。茨城大学理学部卒。金融機関のシステム子会社でシステムエンジニアを経験した後にIT系のライターとして独立。エンジニア視点で記事を提供していきたい。EnterpriseZine/DB Online&nbs...

All contents copyright © 2007-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5