patorashのブログ

方向性はまだない

CircleCIをPerformance Planに移行した

会社で使っているCircleCIをPerformance Planに移行しました。

きっかけは以下のブログを読んだことでした。

moneyforward.com

弊社でのCIの課題

弊社ではMoney Forwardさんほどの並列数ではないんですが、16コンテナ契約していて、大きいプロジェクトでは8並列、他のプロジェクトでは4並列を基本として、テストしていました。

大きいプロジェクトを16コンテナではなく8コンテナにしたのは、

  • 大きなプロジェクトであってもテストが並列で2つは走るようにしたかった
  • 大きなプロジェクトにコンテナを占有されてしまわないようにするため

です。

昔は早くテストを終わらせたいということで16コンテナ全てを割り当てていたのですが、逆にテスト詰まり(CI待ちがどんどん増えていくこと)が発生してしまい、他のプロジェクトのテストが実行されるのが数時間後になることもありましたが、parallel_testsとknapsack proを使ってさらに並列化と実行時間の最適化を行なった結果、テスト時間が16コンテナ使っていた頃と遜色ないレベルになりました。

そのあたりの記事はここに書いています。

patorash.hatenablog.com

patorash.hatenablog.com

それでも詰まる

これまでの成果で、テスト待ち時間はかなり解消されてはいるのですが、それでも大きなプロジェクトのほうで修正がたくさんあると、時々詰まりが発生していました。テストの結果は早く見たいので、これが自分にとっては結構ストレスでした。

Performance Planの利点

Performance Planのポイントをまとめると、以下の通り。

  • 先払い式の従量課金(クレジットを消費していく)
  • 利用コンテナ数ほぼ無制限
  • リソースプラン(CIを実行するコンテナのCPU、メモリの性能のいいプラン)変更可能
  • 一度Performance Planに移行すると、前のプランには戻れない

利用コンテナ数がほぼ無制限なので、テストが詰まることがありません!テストは全てすぐ実行されます。助かる〜!

副次的効果のコスト削減

弊社の場合は、コストも削減される予定です。16コンテナ使っていたので、月額$50*(16-1)=$750かかっていました。 Performance Planに移行するにあたって、CircleCI Japanに問い合わせを行い、今までの利用状況から概算見積もりを頂いたところ、一月あたり$450程度になると言われました。その後、実際に2週間のトライアルを行わせてもらい、その結果を踏まえてまた見積もって頂いたところ、やはりその程度になりそうということでした。

Performance Planへ移行!

テストの実行時間の削減とコストまで削減できるので移行しない手はない!ということで、移行しました。

デメリットはほとんどないと思いますが、敢えて言うとすれば、請求費用が定額ではなくなるというあたりかなと思います。

問い合わせも日本語でOK

CircleCIはCircleCI Japanがありますから、私のように英語が不得意な方でも大丈夫。CircleCI Japanのウェブサイトから日本語で問い合わせを行いました。全て日本語でメールのやりとりをして、プラン変更できました。本当に助かりました。

CircleCI Japanのページはこちら。 circleci.jp