レギュラートーク(40分)

CI/CDサービスをより活用するために改善活動を1年つづけた結果 iOSDC Japan 2021

5
tarappo tarappo tarappo

iOSプロダクトの開発においてCI/CDサービスを利用していることは多いかと思います。
しかし、あまりメンテしていないと次のような状態になったりすることがあります。

  • 実行時間が徐々に伸びている
  • 実行環境起因のテストが失敗したまま放置されている
  • 初期の設定のままで特にCI/CDサービスでやることが増えていない

これは私が関わったプロジェクトの状態でした。
結果として次のようなことが起きていました。

  • 実行時間がかかるためPR時に動かしていなかった
    • 定期的にメインブランチにビルドができないコードが入っていた
  • CI/CDサービス上でテストが成功していないため手元のテストコードが本当に動くかが試してみないとわからない

このようにCI/CDにより守られるものが守られていない状態でした。

そこで、これらの課題を解決しよりCI/CDサービスを活用していくためにプロジェクトの状況を加味しながら改善活動をして1年ほどが立ちました。
改善をし続けた結果、現在は実行時間はピーク時の80%削減になり月に1000回以上実行されています。

本発表では、これらの課題がどういった要因で起きていて、
どのようなアプローチをおこなって解決し、そして現在はどういう状態になっているかについて話していきます。

そして、改善し続けた結果見えてきた次の課題についても話していきます。

主に次のような内容について話していきます。

  • 課題の把握のための可視化
  • 実行時間の短縮(約80%削減)
    • 並列化、各ステップの最適化、チューニング
  • greenを維持するためにおこなったこと
  • 複数CI/CDサービスの活用とジョブの分け方
  • この1年間でのビルド回数の変化