Microsoft の DevOps ハッカソンに参加しました #DEVOPSJP
2016年1月23, 24日に開催された表題のハッカソンに参加してきました。
ハッカソンへの参加は初めてでした!楽しかった!
DevOpsとは
なんぞ、ということを牛尾さんと小塚さんがプレゼンしてくれました。
アジャイルマニフェストと違って、はっきりと明文化されたものがないため、言ってることが定まらなかったという変遷があるとのこと。
ただ、ツールをさすのではないので、特定のツールにたいして「このツールはDevOps対応ツールですよ」と売り込んでくる場合は注意が必要。
10 deploy / day
開発者とインフラ技術者が協力し、ソフトウェアライフサイクルやビジネス価値の創出を改善する活動
草の根から始まって、途中からトップダウンに
開発部門と運用部門の壁
開発部門
「リリース終わった やったー」
運用部門の気持ち
「上からなんか使えるのかわからないもの降ってきた」
いがみあったりするようにならないように。。。
PO , dev, qa, opsが1チーム
DevOps 1番最初にやること Dev側 = テスト駆動開発
システムテストをがっつり自動化
50時間以上のシステムテスト
Jenkinsを利用して、並列に2時間
※お金を扱うのでトランザクションミスったら終わる
クックパッド
単体テスト以上は必要ない
間違っていたら8秒で戻せるようにしている
DevOps 1番最初にやること Ops側 = Infrastructure as Code
Visual Studio Team services 便利そうです。
カンバン機能(its機能)とビルド機能などがつながっている。
gradle, xcode, gulpなどのビルドもできる。
ハッカソン実践 『Dockerでオートスケールを実現する』チーム
目指すのはサービスの負荷が高くなった時に自動的にコンテナが立ち上がり、ノードに追加されて負荷を分散するシステム
なんか、MS寺田さんに見せてもらったデモをとにかく参考にしたという感じです。
パクリかもしれない。
1日目はAzureの操作に戸惑いすぎてほぼ何もできず、みたいなかんじでした。
Jenkins入りのイメージを起動したのですが、そいつがDockerコンテナの中で動いていたのでDockerコンテナの外側からビルドなどのコマンドをすることはできず。。
2日目にやったことはタスクボードに張り付けてログを取ってました。
が、画像が荒すぎて見えない
チームで実現したDoneは以下のような感じ
足回り
- Visual Studio Team Services上にソースコードとDockerfile保存用のGitリポジトリを作る
-
Wordpressを動かすDockerfileを試作
Jenkinsが動かない問題
Jenkinsジョブ設定
- SCMポーリングでDockerfileの変化をフック
- dockerコンテナをビルドし、イメージをDockerHubにプッシュする(Jenkinsのプラグイン使用)
CloudBees Docker Build and Publish plugin - Jenkins - Jenkins Wiki
Tutumまわり
- webhookでDockerHubのイメージの変更を検知
- Azure上にDockerコンテナ作成、起動
- Tutum上でコンテナを増やす
ビルドパイプライン全体
- Dockerfileをgit pushするだけでAzure上にコンテナが立ち上がる
ただし、Wordpressは試作のDockerfileでは動かなかったです。
というわけで
1コンテナでWordpressを動かす
- bug: コンテナ上でリンクが作成できない(権限の問題)
- 上記bugfix: tarボールの解凍時に適切な場所にcpしてしまう
update for boot2docker aufs issue · CentOS/CentOS-Dockerfiles@d2b7b93 · GitHub
- bug: mysqld, httpdデーモンプロセスを動かしたコンテナが即終了する
- bugfix: tail -f /dev/nullを最後に実行する
複数コンテナでWordpressを動かす
- tutumでオートスケールできないか調査
- haproxyで2コンテナにロードバランス
といったところでタイムアウトです。
肝心のオートスケールは実現できませんでしたが自分一人ではできないこともチームで挑戦することでいろいろ実現できました。
DevとOpsという垣根はなかったです。Opsしかやってない感じはありましたが!
自分はGitまわりとWordpressを1コンテナで動かすというところに注力していたので、Tutumの操作はチームメンバーにやってもらっていましたが、非常に便利だと感じました。
発表自体はちょっと残念な感じになっちゃったのですが、個人的にはDockerを実際に使い、tutumにも関われて非常に満足でした。
ハッカソンというイベント自体もそんなにパーフェクトにやろうと構えず、失敗してもいいという気持ちで参加してもよいことが分かったので行ってよかったです。
声かけてくれた自動化コーチに感謝です。
牛尾さん、寺田さん、小塚さんをはじめとしたスタッフの皆さま、チームのメンバーの方、そのほか参加者の皆さま、本当にありがとうございました。
素晴らしいイベントでした。