CIとCDの違い

違い

最初にまとめ。

CI・・・
pushしたあとに「ビルド」「テスト」を自動で行う手法のこと

CD・・・
pushしたあとに「ビルド」「テスト」を行い、2つが成功したら自動で「デプロイ」まで行う手法のこと

もっと詳しく違い

違いは以下のとおり。

  • CI(Continuous Integration):継続的インテグレーション
    • ソースコードがGitHubなどのリモートリポジトリにpushされた際に「ビルド」と「テスト」を自動で実行して、想定どおりに動作するか自動でチェックする手法のこと。
    • 「ビルド」というのは、新たに追加・変更したソースコードに合わせて使用するライブラリをダウンロードしてきたり、たくさんあるソースコードを1つにまとめたり(webpack)、旧環境でも動くようなソースコードに変換したりすること(Babal)。
    • 「テスト」というのは、事前に「この関数にこういう値を突っ込んだらこういう値を返すべき」みたいな条件をいくつか作っておいて、「すべての条件がOKだったら正常に動いてるということだよね」みたいなのを担保する方法。
  • CD(Continuous DeliberyまたはDeployment):継続的デリバリー(またはデプロイ)
    • CIの拡張版のようなもの。
    • CDでは、ビルドとテストが成功した後に、さらにデプロイまで行う

 

旧来の方法だと

  1. ローカル環境で開発する
  2. 本番サーバーにて以下のような作業をする
    1. ソースコードをFTPなどでサーバーにアップロードする
    2. ビルドする
    3. 動かす
    4. 「ちゃんと動くかなー?」とブラウザなどで手動でポチポチしてテストする
  3. GitHubなどにpushする
  4. リリース作業完了

みたいな作業をすべて手動でしないといけないけど

 

CIを使えば

  1. ローカル環境で開発する
  2. GitHubなどにpushする
    • pushするだけで「ビルド」と「テスト」が自動で行われる(CI)
  3. 本番サーバーにソースコードをFTPなどで手動アップロードする
  4. 動かす
  5. リリース作業完了

みたいに簡略化できる。

 

CDなら更に

  1. ローカル環境で開発する
  2. GitHubなどにpushする
    • pushするだけで「ビルド」と「テスト」が自動で行われ、この2つがOKなら本番サーバーにソースコードのアップロードまで行われる(CD)
  3. 動かす
  4. リリース作業完了

まで簡略化できる。

・・・みたいな感じ。

CI/CDツール

実際のCI/CDツールとしては以下のようなものがある。

circleci

▲CircleCIの画面。

 

おわり

CI/CD
スポンサーリンク
この記事を書いた人
penpen

1991生まれ。
2019年くらいからフロントエンドエンジニアを目指している元アフィリエイターです💩

penpenをフォローする
penpenをフォローする
penpenメモ

コメント

タイトルとURLをコピーしました