昨日3/10、弊社にて2度目のCircleCI Meetupが開催されました。
2017 CircleCI Meetup Tokyo #2 (2017/03/10 19:00〜)
CircleCI 2.0について
CircleCI社よりDeveloperのKim氏にご登壇頂き、現在クローズドベータ公開中であるCircleCI2.0について発表していただきました。
1.0問題
- ビルドイメージがUbuntuのみで、Dockerコンテナ上でのビルドにも未対応
- LXCのprivileged問題(Dockerは特権保持していないLXCコンテナ上で動作させることはできない)を突破するために、Dockerにパッチを当てて運用していたがこの手法は1.9で行き詰まってしまい、CircleCIのDockerのバージョンはだいぶ遅れをとってしまっている
- メモリ足りなくて落ちるよ問題(リソース決め打ち)
- CircleCI創業が2012年で、ベースの技術がその当時のものであり刷新の機運にあった
2.0では
- ビルドステップを自分で定義できる
- Dockerでビルドするか、VMでビルドするかを選択できる
- Local Buildができる!(機能制限はあるが、リポジトリにPushしなくてもtry and errorできる)
- カスタムイメージを作れる image-builder
- ビルドコンテナのスケジューリングにNomadを採用。ビルドジョブはバッチなので、KubenetesよりNomadを選択
- small, medium, largeでビルドリソースの選択ができる
- 内部のMicroservice間の通信にはgRPCを選択し、MicroservicesはKubernetesで運用
- credentialsの扱いにVaultを採用、CircleCIはhashicorpプロダクト大好き
という感じ。機能もよいのだが、内部的な構造の話がものすごく良かった。
ベータプログラムのフィードバックであがってきているのは
- Stepを自分で全て定義するので、Inference(リポジトリの構造を見てよしなにビルドをやってくれる1.0の機能)が無い
- 適切なDockerイメージを選択しなければならない
- そもそもドキュメントが足りない(これは今めっちゃ準備中らしい)
自分もCircleCI2.0を触り始めているけど、とにかく早く来てほしい💪
自分の発表
ちなみに自分もちょろっと喋ってきました。何故かCircleCI以外のことを喋って欲しい的なオーダーをいただきましたので、最近のCI界隈について雑に駆け足で喋ってきた。もっとスライドあったんだけどなるべく象徴的なものに絞ったつもり。
ノベリティ
CircleCIのノベリティといえばTシャツとステッカーだったんですが、今回はそれに加えてボールがあった。こういうノベリティいいなー。
というわけでまた次回もやりましょう💪