Skip to content

Instantly share code, notes, and snippets.

@umegaya
Last active March 15, 2022 07:53
Show Gist options
  • Save umegaya/4e99991bc9a0dfe35c90fad0855d60fe to your computer and use it in GitHub Desktop.
Save umegaya/4e99991bc9a0dfe35c90fad0855d60fe to your computer and use it in GitHub Desktop.
CIサービスを使う理由
CIサービスを使う意味は大きいです。機材の保守に手間をかけなくて良い点、気をつけなくても実行環境を常に新しくしていってくれる点、またCIの規模が大きくなったときに処理能力を容易にスケールできる点などです。
上記のような利点は、ローカルマシンでやっていても、最初はあまり価値を感じないと思いますし、CIサービスに移行しようとしたら結構大変でコストに見合わないと感じると思いますが、
ローカルマシンでずっとCIを賄っていると、大体の場合、以下のような形でいきなり破綻します。
1. CIに必要なメモリ、CPU、ストレージの使用量が1台で処理し切れないぐらいの規模になる
2台以上のマシンを使って処理能力を拡張しようとすると、いきなり構築の難易度が増します。また2の理由により、同じように正しく動くローカルマシンを複数用意すること自体に大きな困難が伴うことがあります。
2. そのローカルマシンが利用できなくなる
ローカルマシンのような環境を使っていると、その環境に過度に依存したスクリプトになりがちで、例えばあるファイルがたまたまある場所に置いてある、といったことに知らずに依存していることがあります。
しばらくは問題ありませんが、自前の機材は故障ないし、機種としてのサポートが切れるなどして使えなくなる時が必ず来ます。
この場合、新しいマシンがたまたまその条件を満たしていないと急に動かなくなり、そして原因の判明や解決に非常に時間がかかる(あるいはできない)、といったことが起きます。
長く使うほど、こういった移行の時の問題は大きくなります。
CIサービスに移行して、CIサービスが用意している環境でCIが動作するようになれば、同じ環境がいつでもいくつも利用できるようになるため、環境への過度な依存がなくなりますし、
CIの環境は常に新しい環境に更新されていくため、少しずつ環境の変化に対応することで、こういった問題は起きなくなります。そして一旦CIサービスに移行すれば
1や2の問題の解決に多大な時間を費やすことがなくなるため、結果的に効率的になると思います。
開発組織の規模を大きくしていくのであればどこかで1の問題がおきますし、機材が壊れたり古くなりすぎたら2の問題が起きます。
今辛くなってきているのであれば移行の良いタイミングなのだとは思います。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment