3/5にあったCircleCIのミートアップにリモートで参加させてもらいました。
イベントのConnpassはこちら。
ちょうどCircleCIをPerformancePlanに移行したりしていたので、CircleCI Japanの方からZoomで参加しませんか?とtwitterのDMで連絡を頂きました。
せっかくの機会なので、参加させていただくことに。
この時に、社外の方も参加募集したのですが、悲しいことに集まらなかったので、社内のメンバー4人で参加しました。
皆同じような課題を抱えていた
弊社でもJenkinsでの並列テストを経た後にCircleCIの導入をしているので(1.0の頃から)、「あ〜、わかるわ〜」という感じでした。
うちのテスト事情の遷移
CI環境はCircleCIになるまではほぼ関与してないので、記憶で書く(間違ってるかも)
- ローカル環境でrspecをparallel_testsで実行する。テストが肥大化して30分くらいかかるようになって辛くなる。
- Jenkinsを導入。会社で空いていたMacでテストを実行するように。テストが肥大化して1時間くらいかかるようになる。
- Jenkinsで並列処理をするように。そのため、Mac miniを複数台購入した。テスト実行されると同時にbundle installが実行され、ネットワークが遅くなる等、問題が出始める。Mac miniの構成管理はChefとかでやってたはず。20〜40分くらいかかっていたかと思う。
- 並列数に限界を感じ、AWSで都度EC2を立ち上げてテストするように。スポットインスタンスが安いリージョンを探し求めていた。
- いろんなCIサービスを検討し始める。CircleCIのbundle installの速さがすごい!みたいなことで盛り上がっていた記憶がある。
- CircleCIへ移行!
- CircleCI 2.0に移行!(多分このあたりから自分がやった)
- CircleCIでparallel_testsを使う!
- CircleCI + parallel_tests + knapsack proで爆速化!
- CircleCIをPerformancePlanに移行!
高速化には色々と取り組みました。
課題を解決した後に入社した若者たち
今回の参加者は私以外は入社2年以内の若者が3名だったのだけれど、上記のような歴史を知らないので、
若者たち「Jenkinsってなに???🤔」
ってなっていたので、発表は聞きつつもCI導入の歴史を説明したりしました。まぁいい機会だったのかもしれないですねぇ。
リモート参加してみて…
現地はピザや飲み物があったりしたみたいで羨ましかったですが、実はこちらもピザを食べてました!
発表後のネットワーキングの時間とかはリモートだと参加できないので、やっはり現地がいいなぁと。まぁ岡山だとなかなか厳しいんですが。機会があったら現地参加したいと思います!