見出し画像

【採用担当が学ぶエンジニアリング #2】CI(Jenkins、CircleCI)について学ぶ

昨日に引き続き第2回となります。今回は、CIについて学びます。一応毎日投稿で、知識を底上げしていくつもりです。

主に自社の募集要項を深掘りしていき、非エンジニアなりにも理解を深めていこうという試みです。

自分メモ用として機能させるため、内容に不足があったり、認識が足りていない部分もあったりします。

1 . CIとは何か? 

参考サイト

CI/CDを知らないおじさんにCI/CDを説明した話~CI編~

CI/CDとは                             

CIは、Continuous Integrationの略です。日本語に直すと、継続的インティグレーションとのこと。

継続的インテグレーションを一言で言うと、「ソフトウェアのリリーススピードの向上」を目的とするソフトウェア開発の手法の1つ。頻繁に、ビルドとテストを実行できるが特徴。

私のような素人にはこの辺が限界だけど、もう少しエンジニア的な説明を調べてみます。

ソフトウェア開発のプロセスを自動化することで、開発者がソースコードをコミットし、共有しているリポジトリにマージされることで、ビルドとテストが自動的に実行される手法のこと。

じゃあ、CI =継続的インテグレーションで得られる利点は何?  

ソフトウェアのバグを早期に発見し対処することができ、チーム開発のスピードを上げ、コードの品質を保証することが可能となる。

2 . Jenkinsとはなんぞや?

参考サイト 

Jenkinsとは

Jenkinsを一言で言うと、「継続的インテグレーション(CI)/継続的デリバリー(CD)実現のためのツール」とのこと。

さっき勉強した、CI(自動化やらなんやで、開発スピードを上げる手法)を実現するツールなんですね。

Jenkinsの特長

継続的インテグレーション(CI)/継続的デリバリー(CD)のツールがたくさんある中で、JenkinsはシェアNo.1のツールらしい。(すごい。)

なぜかと言うと、汎用性が高いという大きな長所を持っているため。具体的に言うと、Javaが動く環境であれば、Windowsでも、Linuxでも動作するらしい。

コミュニティが大きいこともあり、プラグインが豊富で、1400以上のプラグインを利用可能とのこと。

利用者が多いので、情報の手に入れやすさや勉強会が多いのも、日本人にとっては大きなメリット。

2 . CircleCIとはなんぞや?

参考サイト

クラウドサービス/CircleCIとは

CircleCIもJenkinsと同じく、継続的インテグレーションができるサービス。参考サイトによると、コミットからデプロイまでのパイプラインを作成し、継続的な統合/配信を使用してソフトウェア開発プロセスを自動化可能とのこと。

Jenkinsとの違いは?

ここで気になったのは、「Jenkinsと同じじゃないの?」です。Jenkinsが自前でサーバを立てる必要があるのに対し、CircleCIはWebサービスであるため、登録するだけで使えるのが特徴。

Jenkinsに対する利点

① Jenkinsサーバの運用コストがない。(これはありがたい。)
② Jenkinsは属人化しやすい。

Jenkinsの不便なところ

① Jenkinsより任意のタイミング実行には向いていない。(GitHubのPush/Pull Requestに反応して、ジョブが動きだすため。)

JenkinsもCircleCIも利点があり、欠点もありなんですね。

最後に

今日は、CIについて学びました。基本的には、参考リンクの情報をまとめているだけなので、詳しくは参考リンクをご覧ください。

広く浅くがテーマなので、うわべの情報を拾いつつ、今後も徐々に知識を深めていく予定です。



サポートいただけると嬉しいです!励みになります。