ちゃなべの備忘録

ほぼ備忘録です。

CICDツールを比較してみたお話【個人開発用】【備忘録】

はじめに

先日マイクロサービスをdeployして、自動起動も行いました。 じゃあ、開発環境から自動deployのしたいじゃないか! ということでCICDをやってみよう。 とはいえ、CICDのツールは世の中にアホほどあるので、個人開発に使いやすそうなコスパの良いものを探してみよう。

前提イメージ

  • 無料がいい
  • なるたけgithubActionかな(みんな使ってそう)
  • CIでやることのイメージはlint
  • CDはデプロイして起動する
  • clientのnpm buildもやってほしい
  • goファイルのbuildもやってほしい
  • dbのmigrationもやってほしいな
  • サーバー再起動もしたいね

調査

いろいろ調べてみて一旦一個に絞ろう。

市場調査

まずどれがだいたい主流なのかがわからないとお話にならない。初めてだし、主流がいいだろう。

上のサイトからピックアップ

ここらへんが良さげ。

デメリットを比較

あとはここら辺で調べて、どれがいいか決める。 個人的に夜やるのがデメリットの比較。メリットを挙げたらいっぱいサイトに出てくるけど、それだと決めづらい。だからデメリットを列挙して許されざるものから切っていくやり方。

よっしゃ調べる。 (一部抜粋)

デメリット

ツール名デメリット
Jenkins
  • 自前のデプロイサーバが必要
  • 運用大変、設定大変、職人芸
  • 複数プロジェクトのビルドをする際、一つのサーバ内でSDKやランタイムを共有してしまい、お互いに干渉して副作用が発生する場合がある
  • ....なんか怖ぇ。
CircleCI
  • 任意のタイミングや定期実行のジョブ管理には向いていない(方法はある)
  • コンテナ 月 / 1500分利用までは無料だが、追加コンテナ一つにつき月額50$
GithubActions
  • UI・UXはTravisやCircleに劣る
  • 外部のActionsを使ったときのセキュリティが怖い
Travis CI
  • 無料枠が...ほぼない...?
  • 参考サイトが少ない(感想)

以上の比較よりGithubActionsにしようと思います! 一応理由。

  • やすすぎる!(てかほぼ無料)
  • Actionsというテンプレートの存在
  • cloud上でほぼ完結する
  • 普段のGithubの使い方と親和性が高い(親和性というのか?)
  • CI導入しているところでGithubActionsを使っていないところを見たことがない