4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Jenkinsの代わりにCircleCIを導入したい

Last updated at Posted at 2021-02-23

背景

所属するチームでJenkinsを使ってCI/CDを取り込んでいます。最近業務の量が大きくなったので、PRの数も大変増えて来ました。その故に、Jenkinsの負担も結構重くなりまして、下記の問題が行っています。

  1. CIが重いので、単体テストは走れない状態で失敗になりました。
  2. PRのレビューやマージすることが一旦止まれてしまう。
  3. CDも影響されまして、デポロイも失敗になりました。

そして、最近ではなくて、いつでも存在している問題もあります。

  1. CI結果は見辛い。コケっている原因を調べる際に、まずJenkinsをログインして、後はタスクを探して、その「console出力ログ」をちゃんと観ないと原因が分からない。
  2. 今回のCI結果が後のタスクで被られる。CI結果を早く見ないと消えるの大変困っています。
  3. 改修はややこしい。Jenkinsの改修はインフラの方を頼まなければならない。CIはそもそも開発を上手く進めていくツールと思うので、開発チームが手軽で改修できれば助かります。
  4. 技術的負債

CircleCI

CircleCIは現在流行っているCIツールとして、いろんなプロジェクトに使われています。
例:
https://github.com/facebook/react/pull/20849
WX20210223-115639@2x.png

目の前のまとめ

  1. 並行性が優れてしまうので、「走れない状態で失敗する」ことを回避することができます。
  2. CDと分離しまうので、デポロイに影響を与えて来ないにする。
  3. Github Friendly。GithubでCircleCIの結果は見えやすいです。そして、他のタスクで被られることがないです。
    例:
    https://app.circleci.com/pipelines/github/facebook/react/10476/workflows/2145d75f-ea91-4fbe-b8fe-121c8b00e9f1/jobs/273374
    image.png
  4. 改修はやり易い。CircleCIの改修はチーム内で対応できます。そして、手数は大変減らしてしまう。
    例:https://github.com/facebook/react/blob/master/.circleci/config.yml

将来のメリット

既存の問題を解決するだけではなく、将来にもいろんなことができそうになります。

gemの導入

現在でrspec、rubocopだけの検証は大規模なプロジェクトにとって、コード品質を保証するために全然足りないと思うので、Dangerやbrakemanなど検証gemをどんどん導入する必要があります。
参考:
https://github.com/danger/danger
https://github.com/presidentbeef/brakeman
https://github.com/cucumber/cucumber-ruby

多言語対応

様々なプログラム言語は自身の特性によって、一番適用のシナリオンもそれぞれです。
例えば、 Railsのweb開発速度が早い。Pythonは豊富なlibraryを持っています。Golangの並行処理はすごい。云々。
多言語を取り込んだプロジェクトにとって、JenkinsでCI方針を作って実装することより多言語対応できるなCircleCIがやり易いです。

communityが強い

googleやstackoverflowでもcircleCIのcommunityが活躍なので、問題解決はとても便利です。

参考:
https://discuss.circleci.com/
https://stackoverflow.com/search?q=circleCI

価格も高くない

JenkinsやAWS側のアップグレードより、CircleCIの価格はあまり高くない。

参考:https://circleci.com/pricing/

まとめ

今回CircleCIを導入して来たい理由は、

  1. 目の前の問題を解決したい。CircleCIの並行処理を活用して、チーム開発を上手く進めて欲しい。
  2. 将来の改善やリファクタリングを準備する。
  3. 流行っていることを追いかけたい。
4
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?