hiroktsのブログ

IT開発系の勉強会の感想とか雑記とか

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でオートスケールを実現する』チーム

目指すのはサービスの負荷が高くなった時に自動的にコンテナが立ち上がり、ノードに追加されて負荷を分散するシステム

 

f:id:hirokts:20160124221732p:plain

なんか、MS寺田さんに見せてもらったデモをとにかく参考にしたという感じです。

パクリかもしれない。

 

1日目はAzureの操作に戸惑いすぎてほぼ何もできず、みたいなかんじでした。

Jenkins入りのイメージを起動したのですが、そいつがDockerコンテナの中で動いていたのでDockerコンテナの外側からビルドなどのコマンドをすることはできず。。

 

f:id:hirokts:20160124223047j:plain

2日目にやったことはタスクボードに張り付けてログを取ってました。

が、画像が荒すぎて見えない

 

チームで実現したDoneは以下のような感じ

足回り

Jenkinsが動かない問題

  • DockerでJenkinsが動いているUbuntuの土台のほうにJenkinsを入れて動かす
  • JenkinsがエラーになるのでJDKインストール

Jenkinsジョブ設定

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コンテナにロードバランス

Tutumで負荷分散をやってみました - Qiita

 

といったところでタイムアウトです。

肝心のオートスケールは実現できませんでしたが自分一人ではできないこともチームで挑戦することでいろいろ実現できました。

DevとOpsという垣根はなかったです。Opsしかやってない感じはありましたが! 

 

自分はGitまわりとWordpressを1コンテナで動かすというところに注力していたので、Tutumの操作はチームメンバーにやってもらっていましたが、非常に便利だと感じました。

 

発表自体はちょっと残念な感じになっちゃったのですが、個人的にはDockerを実際に使い、tutumにも関われて非常に満足でした。

 ハッカソンというイベント自体もそんなにパーフェクトにやろうと構えず、失敗してもいいという気持ちで参加してもよいことが分かったので行ってよかったです。

 

声かけてくれた自動化コーチに感謝です。

 

牛尾さん、寺田さん、小塚さんをはじめとしたスタッフの皆さま、チームのメンバーの方、そのほか参加者の皆さま、本当にありがとうございました。

素晴らしいイベントでした。