YAPC::Asia 2014に行ってきた(8/29)
8/29(金), 30(土) の2日間で開催されているYAPC::Asia2014に参加してきました。
説明不要かもしれませんが、YAPCについて少しお話しておくと、元々はPerl系のカンファレンスだったのですが、いまではPerlだけではなく
などの新しめな言語を無理やり?Perlに紐づけて発表するセッションが多くなっていたり、開発プロセスやスタートアップなんかのお話を聞けるLL系言語やOSS界隈のお祭り的なイベントになっています。(ちなみに、YAPCは今回が初の参加となります)
初日(8/29)のスケジュールはこんな感じで、自分が聴いたセッションは以下。
- Go For Perl Mongers from @lestrrat (pecoの作者であるまきさん)
- Quiznowを支える技術 from @yosuke_furukawa
- Git を使ったツール開発 from @motemen (ghqを始めとするgit便利ツールの作者さん)
- コマンドラインツールについて語るときに僕の語ること from @deeeet
- DeNAが歩んだデプロイ自動化への道 from 青猫
- WHERE狙いのキー、ORDER BY狙いのキー from @yoku0825
- How's startup life? - working as CTO in Japan from @shohey1226
- 開発合宿!!!! from @yasuhiro_onishi
今日聴いたセッションの中で、これから自分が一休.comの中でやろうとしていることに沿っている「デプロイ自働化」について内容と所感を書きたいと思います。
DeNAが歩んだデプロイ自動化への道
※スライドが上がったら埋め込みます
なぜ、デプロイ自働化が必要なのか
キーワード「安全工学」
「早く、安全に届ける」ためにデプロイ自働化が必要。スピードと品質は「ある意味では両立できる」。
- 良いシステムと悪いシステム
- 悪いシステムは問題が後になって発見される。早い段階で問題を検知できればできるほど良いシステムに近づく
- リリース作業
- リリース作業の中に困難さや苦難があることはシステムの健全さを図る指標の1つになる
Mobageアーキテクチャについて
- 事業の急激な成長とともにシステムが肥大化してしまった背景がある
- 莫大な量の機能やコンテンツがContainerに詰め込まれている状態(カオスなコードベース)
- リリース手順も煩雑で困難
- 開発スピードの足かせになっていた
この難しい状態を適切なサイズに区切って疎結合な状態を目指した。具体的には巨大なコードベースを内部APIとか、インタフェースを用意して小さな意味のあるコンポーネント群にした、というお話。
デプロイ自働化導入の実例
- デプロイ自働化出来る条件
DeNAさんではJenkinsを使ってデプロイを自働化しているようで、「ビルドパイプライン」というプラグイン(多分)を使ってソースをcloneしてデプロイして、ユーザに届ける(リリース完了)までの流れを可視化しているようでした。これは、ドキュメントの代わりになるし、わかりやすいし、とっても良いアイデアだなと思いました。
E2Eのテストはかなり量が多いみたいで、詳しくは聞けませんでしたがかなり時間がかかっているようでした。このあたりはまだ整備中というか、クラスタ組んで並列実行みたいなアプローチをこれからしよう、といったフェーズのようでした。
コミット単位でリリースサイクルを繰り返すことが大事
- 問題を早期に発見できる
- これをやろうとすると、手動ではムリになる
- 手元の変更をどんどんpushして継続的にデプロイすることで、デプロイパイプラインの信頼性が上がる
ブランチ戦略
- master, testing, development の3ライン運用
所感
- 明らかに開発がラクになった
- リリースに対する心理的負荷が減った
- 他にも色々メリットはある
課題
- E2Eテストが遅い
- Component依存関係を考えなければいけない
- 人間が見なければいけないテストもある
所感・感想
タイミングよく、DeNAさんのデプロイ自働化事例を聞くことが出来て、とても参考になりました。基本的に目指している方向というか、思想は間違っていないことが確認できましたし、Jenkinsのビルドパイプライン・プラグインなど、新しい発見もありました。
他のセッションでも流行りのGoLangについての基本的なお話だったり、開発合宿についてのお話だったり、とても勉強になる内容が多くて、収穫がありすぎて、これから何をやろうか迷ってしまうくらいのおみやげを持って帰ることになりましたww
YAPC::Asia自体について少し触れると、今回初めての参加だったのですが、知った顔や有名人もいっぱいいて、とても楽しい雰囲気の中で楽しいセッションばかりで、本当に時間が経つのが早く、あっという間の1日でした。先週DevLoveで話をしたばかりですが、このイベントでまた刺激を受けたというか、「もう少し多くの人に聞いてもらえるようなイベントで一休の取り組みや自分の取り組みについて話したいな」と思ったYAPC::Asia 1日目でした。