Docker Cloud触ってみた(With Micorsoft Azure)

Docker-cloudを触ってみたメモ書き
Nodes、Services、Stacksというコンポーネントに分かれている様子。
Welcomeというチュートリアルがあるので、それに従っていくだけで概ね実行させるまではなんとかなった。

Microsoft AzureをDocker-Cloudで扱えるようにする

まず、Docker-CloudがAzureを制御するための入り口となる証明書をダウンロード。
それを
https://manage.windowsazure.com/
にアクセスして、アップロードしておく。こうすることで、Docker-CloudがAzureの中のリソースを制御できるようになる。そして、対象となるサブスクリプションのIDを取得(わけのわからないGUIDみたいなやつ)。それを、Docker-Cloudに渡してあげるという流れ。

Nodes

Nodesという、Dockerの本体そのものをまず作る。これがServicesを詰め込む居住スペースになる。当然、親(今だとAzureの仮想マシン)のマシンによってその空間は変わるだろうけれども(メモリとかCPUとか)。Azureのサブスクリプションを関連付けておけば、そこから自動的に仮想マシンを立ち上げてくれる。ただしこれはASM(クラシック仮想マシン)となる。データディスクがホストキャッシュなしで接続されていた(ノード用かな?)。また、2ノード以上は、課金が必要な様子。

Services

Servicesは、Nodesに詰め込むコンテナとなるサービスを定義する。これはDockerHubにあるものを使うことができる。自分用のPrivateなものもここで使える。このサービスは、公開ポートなど通常コマンドでやることも定義しておくことができる。

Deploy

定義したサービスを、Node上で動かすことになる。このときにServiceで定義された必要なポートは、Azure上のエンドポイントにも自動的に追加され開放された。また、サービスを変更した場合などは、Redeployすることができる。

 

Stacks

定義したServiceを組み合わせたものとなる様子。一括でデプロイできる様子。チュートリアルのものしか見てないけれども、他のサービスにリンクすることができるっぽい。

メモ

  • Nodeを削除したら、Azure上の仮想マシンも削除された。
  • DockerCloud上からRedeployすると、ポートの開放もやり直してくれる様子。
  • ロードバランスは、それ用のサービスを使うか、DNSを使うか。
  • 複数ノードのデプロイメントストラテジーとか試してみたいけど、課金して怒られるのは嫌なので、ぐっとこらえた。
  • 独自のServiceのリンクをどうやって動的に結ぶか
  • そういえば、DockerのホストOSには入れない。

DevOpsハッカソンに参加してきましたー

というわけでこれでした。

開発者、インフラ技術者のための DevOps ハッカソン~ DevOps のすべてをエバンジェリストと体験し学べる 2 日間~

二日間の日程でした、お仕事の都合で二日目は午前中までの参加でした。お弁当食べたかったなー。。。

一日目は、セッション、チーム分け、ハッカソン

二日目は、ハッカソン、発表

の流れだったようです。(二日目の詳細はよくわかっていない

1日目セッション中

ひたすら、つぶやいてました。以下一部

 

と、マイクロソフトのエバンジェリストと非常にテクニカルなつぶやきに@ツイートをいただいたり。

講師は、牛尾さん、安納さん、松崎さんでした。

最初はDevOpsとはから始まりました。ツールのことではなくて、取り込みといったところでしょうか・・・日本語での表現が非常に難しいところですが、思想というか文化というか。ツール感覚のものではないとは言えます、顧客ももちろん巻き込んだもので、あり方そのものともいえるかもしれません。Azureでも定期的にアップデートされ、不具合も出ては修正されてといったことが日常おきています。ただ、進化は明らかに早いですし、利用者側の立場にしてみれば、少しづつ変化しているところは、新作ゲームの発売日を待つような感動はなくとも、日々動いているんだなぁと感じます。小さな変化でも地道にアップデートされていくというのは面白いものです。

AzureResourceManagerによる、インフラのコード化、構成のコード化について。このメリットは、再現性あるインフラを作れるというところが一番なんじゃないかと思います。再現性があるから、だれでも作れる。どこでも作れる(とはいっても、Azureの異なるサブスクリプション、リージョンとかにはなりますが)、また可視化するという意味で少しづつVisualizeな部分も出てきています。上から下にながれるスクリプトバッチによって組み立てられているのではなく、オブジェクトとしてJSON形式で組み立てられているというのが面白いですね。これを、ポータルまたはPowerShellから流し込んでいくことができるということでした。他にサイドメニューとして、AutomationというAzure上のインフラを自動的に構成するツールの話も出ていました。

VSTS(VisualStudioTeamService)ちょっと前まで、VisualStudioOnlineとか言われてたものです。TeamFoundationServerから見ればクラウド版というか、開発版というか。主たる昨日を上げれば、ソース管理、チケット管理、自動ビルド、自動テスト、ロードテスト、リリース管理、チーム可視化の看板でしょうか。AzureADによる認証を用いれるので、組織には便利なんじゃないかと思います。(Office365のアカウントでもいけるということ)うまいこと使うと、チェックインから始まる自動ビルドの自動テストのデプロイ、またはリリースフローにまでほぼ自動化するデモが展開されていました。ここから先は、AzureのWebアプリにデプロイということで、締めくくられます。まだ、かゆいところは少しあるかなぁという気もしますが、Webアプリへの自動デプロイと展開スロット、A/Bテスト、バックアップなどと組み合わせていくことで、実験的に投入されたデプロイで障害が発生したとしてもすぐに戻せる。少しづつ試せる。戻すことができる。という話でした。

 

チーム分け

お弁当が支給され食した後はチーム分けでした。どういうわけか気づいたら「美女からAzureを1から10まで教えてもらえる・・・」という謎のチームに所属しました。テーマとしては面白いのと、プライベートの活動であるために、こうした学びのテーマには興味がひかれたというのはありました。自分のスケジュールを管理するといったものでは、すでにクラウドの何らかのサービスを使えばいいんじゃないかとか、Cortanaやらでいいんじゃないかとかもあったり。(ログイン時に必ず直近の予定が表示されるように)ツイッター検索は・・・APIを使えば簡単な反面、何をどうするかっていうのがないとなかなか難しいのもあって、こうした場合明確なソリューションがほしいと思ったり。クラウディアさんじゃなきゃいやだー!俺のクラウディアとなったわけではないです。

さぁミーティング

というわけで、集まったチームは3人。@ag0uさんと優れた院生と私。・・・Dev私だけ?というわけで、どう考えて。インフラ二人と私一人で、ものづくりを受けるには無理があります。というのも翌日にすでに予定があったので、私だけがモノづくりを引き受けてしまうと、その後何もできなくなる可能性がありました。ので、ここはMIX!すべての人に平等に転職のチャンスがあってもいいんじゃないか!?という建前ですね。全員が、VSもって、だれでもチェックインできる環境を作り、難しいビルドとかデプロイは、チェックイントリガーにすべて仕込んでしまえばよく、互いの作業は何かツールを使うより隣を見るほうが早かったのでした。(今思えば、徹夜するならKANBAN使ったほうが良かったかもしれないとは少し思う。)

そんな妄想をしているうちに、内容が決まり3次元より2次元(@ag0uさんが、最初からクラウディアさん、クラウディアさんといってた。おそらく隠れファン。)となりました。そして、学習として1(はじまり)とは何か?とした場合に、自習書シリーズとか、Blogとか。そして最新情報を知りたければ、英語になるけど、本家のチームブログとか。そういうステップがあるよねぇという話になりました。継続的学習には楽しいと感じるものでなければなかなかできないということで、素材を探しました。画像だけじゃなくて何か支えてくれるを感じるものがほしいということで、声を入れてみようとか。

初日打ち上げ

これは継続的にやらなくてはならないことの一つです。(ツイートの都合上)しっかりチーム全員で全うしましたっ!誇るべきことですね!ただし、継続的なので深酒は厳禁じゃないかと思います。

2日目

朝から、無謀にもWebJobsを用いた、限定的なクローラーを実装していました。Queueに追加したURLを拾って、データストアにコンテンツを突っ込んで、そこから独自検索エンジンでも作ったらいいんじゃないかと思ったんですが、数時間でできるものではありませんでした。デプロイメントの定義をテンプレートのままとしていた場合、プロジェクトをソリューションに追加するとデプロイが失敗しました。このあたり、継続的にチェックインごとに自動的にデプロイされていたので、変更セットの内容で何が問題か絞り込んでトレースできたのはとても楽でした。これいいなぁと心から思ったこと。結局問題は、デプロイメントの部分で、Zipファイルが一意じゃないからどれあげればいいかわからないっていう感じでした(Zip化されたファイルができるということを牛尾先生から伺ってました)なので、対象とするZipファイルを固有ファイル名にして、無事に解決。そのまま、お仕事するため、リタイアとなりました・・・(悔しかったのは、心にしまっておきましょう)

その後、チームの方にお話しを伺ったところ、何やらいい結果が出た!ということでおおーやったぜ!という感動と、こんなゆるくてよかったのかというものと・・・wあとチームの方が、ARMを用いて開発系のWebアプリをデプロイしようとしてたのは面白かったw

最後に

ただ、継続的にリリースしていく仕掛けを作って、挑戦していくっていう姿勢は実現できた気がします。そのために選ぶツールは、チーム構成やらソリューションにわりとあっていたかなぁと思います。人数が少ないので、看板とかやると逆に手間じゃないかとか、リリース管理とはいっても、3人での変更で、展開スロットに開発系のものがあがるので、スワップをもって完全リリースとしてしまえばよいとか。小さく初めて、少しづつ大きくしていくスマートな感じが構えずに継続的。個人のレベルから、複数人、本格的なチーム開発みたいなのが普通にできる気がした。ただこればかりは、やってみないとわからない。

問題ももちろん継続的におきるけど、それには小さな節目さえしっかり作れれば(変更の内容を掌握できること)、大きなリリースよりも、実は対処しやすいんじゃないかとか、そんな発見もあったり。ただし、明らかに使う人も巻き込んだものなので、今日からいきなりこれに変えますというのは少し難しいとは思います。スピードを上げたいとか、少しづつ変化させて様子を見ておきたいとかそういった声があれば動機になりそう。

そんな刺激的な二日間でした。

それでは!

 

JAZUG 札幌支部第10回勉強会 ~祝!! きたあず2周年記念勉強会~

無事に終了しましたー

そして、ひさしぶりにBlog更新

今回、登壇がメインで、ほとんどスタッフ業務にかかわらなかった分、いろいろ聞けて良かったー(懇親会参加される方はお金払ってください。というくらいしかしていない。ごめんなさい。ごめんなさい・・・)

今回は、きたあず2名、福岡から2名、SendGridの方が1名のセッションでした。

1.BaaSとAzureを絡めたお話(仮)

前半はかるたの話で、いつの間にかWebな話に。

2.Webアプリと他のサービスを絡めてみよう!

自分のセッションは、がんばった!!・・・として。Webアプリの話はできたので、よかったけど、時間があればApplicationInsghtsで、PowerBIのダッシュボード表示を説明したかった!!

 

3.Web制作的にWebAppsを活かす使い方

実際に使った話で、黒い画面がコワイ人でも安心して使えるというWebアプリサービス。

非常にわかりやすいセッションでした!そんな視点でAzure見たことなかったので、IaaSとか出したら、大変なことになりそうと。いろいろ考えさせられました。

4.PaaSを使い倒すためにApp Serviceのおさらいしよう

おさらいのあと、API中毒になればいい!と言い残し、気付いたら登壇者はとうじょうのぞみさん(仮)に変身していて、ライブプログラミングのうえ去っていかれました。

5.Azureでサードパーティサービスを活用する。SendGridを例に。

メールサービスの在り方が変わってきてるよねー。から始まり、スパムメールとして扱われてしまった話、AzureのMarketPlaceからでもサービス開始できるよーと。ただしアカウントは公式サイトで作ったものと違うので注意してねーとのこと。さっそく作ってみましたが、まだ何も活用はしてません。API使えるってことで、SchedulerやらWebJobやら、自動処理の結果を返すものとして組み合わせてみたいですね。

発表資料
Twitterのまとめ
余談

ApplicatoinInsightsをPowerBIに出してましたが、結果報告していませんでしたので、ここで。

人気のあった例外は、Null参照の16回!

ログイン者のアクセストップは67回!

・・・みなさんストレスたまってなくて何よりです!

デバイスは、

Windows10、Windows7、Ubuntu、Windows8.1、OSX10.11、なぜか、WindowsPhone10.0、OSX10.10の順でした。

これは、サーバーサイドにいろいろ埋め込めるってのが面白いサービスですねー

 

ちなみに、上は私の独自ダッシュボードですが、PowerBIのテンプレートのApplicationInsghtsで作ると、日ごとに情報を集約してくれるレポートとダッシュボードがありました。こんな感じ。

さいご

次回は未定です。

個人的に少し回数増えてもいいのじゃないかとも思いますが、アンケートの結果も踏まえてまたよりよくしていきたいなぁときっとおそらくスタッフ一同思っているんじゃないかと思います。

それでは!