Dockerを用いたCI~CDまでのDevOpsを実現する仕組み
続いて寺田氏は、Java開発者という立場から、VSTS、Jenkins、DockerおよびDocker Cloudを用いてデモを実施。寺田氏の構成は図の通り「Javaの開発環境にNetBeans。ソースコード管理はGitやGitHub、そしてCI(継続的インテグレーション)ツールにJenkinsという、Javaエンジニアにとってはごく一般的な構成を採用した」と寺田氏は紹介。
続けて「CIだけではなく、CD(継続的デリバリー)まで紹介したい」と語り、Dockerを利用してビルド、テスト、デプロイまでを自動で行うデモを開始した。ローカルの統合開発環境でビルド・テストをした後、VSTSにあるGitリポジトリへソースコードをプッシュする。プッシュされたことをJenkinsが検知し、Jenkins上でビルド・テストを行い共に成功した際に、成果物を含むDockerのイメージを生成。生成したDockerイメージはDocker Hubへプッシュし、Docker Cloudでイメージが更新されたことを検知し、Microsoft AzureのDocker Machine上に公開するという流れである。「最近リリースされたDocker Cloudは便利に使えるので、ぜひ試してほしい」と寺田氏は語る。
Docker CloudはDocker Hub Registryと密に統合しており、単体のDockerコンテナの作成のほか、Dockerコンポーズのような複数コンテナの構成、さらには複数のDocker Machineを組み合わせたような構成も可能で、可用性を向上させることができる。「Docker Hubに存在するイメージの更新をトリガーに、稼働中のコンテナを自動的に再起動して更新するなど非常に便利に使える」と寺田氏は紹介した。
「今紹介したのはCI~CDまでの一つのやり方。DevOpsはいろんなやり方があり、みなさんの会社に応じたやり方を検討してほしい」と語った。ちなみに今回のデモ環境はすべてAzure上に構築したとのこと。
ここで牛尾氏は「ビルドシステムにVSTSを使わなかった理由はいけていなかったから?」という質問をした。寺田氏も「あくまでもJava開発者として慣れていた構成を選んだだけ。VSTSは.NET系だとVSTSがマッチするはず」と答えた。
継続的デリバリーの実現はRelease Managementで
続いて行われたのが、牛尾氏によるリリースマネジメントのデモ。「CIを回していてもそれだけでデプロイするのは怖い。より安全になるような環境を作らないといけない」と牛尾氏は語る。その一つの手法として最近注目を集めているのが、CDを支援する仕組みを便利に作れる、VSTSのRelease Managementである。Release Managementはテストから運用までのあらゆる環境を通して配置を自動化することにより、リリースサイクルの反復可能性、可視性、および効率性を向上するというソリューションだ。「負荷テストを実施し、本番デプロイでリリースをかけ、承認してもらうと、クラウドベースのロードテストも結果も見られるようになる」と牛尾氏は説明する。「承認者にメールを飛ばすことができるのか」という寺田氏の質問には「もちろんできる」と牛尾氏が回答。
またVSTSに搭載されたマイクロソフトらしい面白い機能として、負荷テストの結果をエクセルに出力できる機能を紹介。すると寺田氏も「上長へのレポートに便利」とあいづちをうつ。それを受けた牛尾氏は「この辺はさすがマイクロソフト」と評価した。いずれにしても「このような形で安全なリリースマネジメントの自動化の仕組みを作っていくことこれからは重要になる」と強く語る。さらに「今後VSTSとChefとかDockerが連携するようになる」と牛尾氏は付け加えた。
さらに牛尾氏はデプロイをより安心して行えるよう、サーバの内容を変更する際、既存のサーバに手を加えるのではなく、新規に作り直して切り替えるという「Blue Green Deployment」についても紹介した。その仕組みを構成するAzureのWeb Appsについて、「これは本当に便利に使えるPaaSだ」と言い切る。ただ、Java開発者の場合は「TomcatやJDKなどバージョンを最新するなど、気をつけて使ってほしい」と寺田氏は注意を促すことも忘れなかった。
エンタテインメント性に富んだデモのクライマックスは、寺田氏によるレゴマインドストームと「Azure IoT Hub」を組み合わせたデモ。マインドストームに超音波センサーを搭載し、障害物との距離を測定。障害物に近づくと走行スピードを落とし、ワーニング情報をIoTハブに送信するというデモが行われた。
「DevOpsの多くはコンソールを眺めるだけなので地味。それを地味じゃなくしてみよう」と牛尾氏は語り、本セッションを締めくくるべく「Dockercraft」の紹介デモを実施。DockercraftはMinecraft上でDockerコンテナのステータスが可視化できるというツールだ。その画面を見せ、Minecraft上のDockerコンテナの中に入ると、コンテナ停止レバーやコンテナ削除パネルが配備されており、それを操作してDockerコンテナを管理するのである。「こういったDockerの管理方法もあるということを紹介したかった」最後まで会場の笑いを誘う牛尾氏。最後に「みなさん楽しんでいただけたでしょうか」と呼びかけ、牛尾氏、寺田氏によるセッションは終了した。
お知らせ
お問い合わせ
日本マイクロソフト株式会社
- TEL: 03-4332-5300 (大代表)
- コーポレートサイト