CI/CDツールを調査してみました


初めに

CI(Continuous Integration : 継続的インテグレーション)、CD(Continuous Delivery / Deployment:継続的なデリバリ/デプロイ)の学習のために、CI/CDを実現するツールを調査しました。

ツールと特徴

ほぼ利用しないで、インターネットの情報だけで勝手に特徴をまとめています。(Jenkinsは昔からあるツールなので少し触ったことはあります)

他にもツールは多数ありますが、私が小耳に挟んだものをピックアップしています。

以下は、私の思い込み及び勝手な感想です。

  • Jenkins(https://www.jenkins.io/)

    • オープンソースのCI/CDツール
    • 様々な環境(オンプレ/クラウド)、プラットフォーム(Linux/Mac/Windows...)で動作する
    • 汎用性が高く、プラグインも多数公開されてている。
    • WARファイル1個で実行できる。!!
    • K8sに特化した Jenkins X プロジェクトもある。
  • Tekton(https://tekton.dev/)

    • オープンソースのCI/CDツール
    • Kubernates Native
    • ビルド・テスト・デプロイもK8sのPod上で実行
    • Katakondaで動作するチュートリアル有(Tektonのページから「Get started with interactive tutorials」)
    • Open Shift Piplelineとして利用
  • CircleCI(https://circleci.com/ja/)

    • SaaSでサービスとして利用、有料ツール。ただし、無料プランあり
    • Mac/Windowsのビルド環境も構築可能
    • オンプレでも利用可能
    • コードリポジトリはGitHub または Bitbucket
    • マニュアル・サンプルが豊富

サマリー

クラスター環境を最大限に利用したい場合は、Tekton、過去のしがらみがなければ導入が用意で学習コストが低い CircleCI、汎用性を求める場合は Jenkinsが良いと考えます。私はクラスター環境でのCI/CDを試してみたいので、Tekton を学習しようと思います。

名前 特徴 クラスタ 汎用性 学習コスト
Tekton K8sクラスタで利用にに特化、シームレス
CircleCI SaaS提供で直ちに利用可能、Windows/Mac向けソースのビルド可
Jenkins 様々な環境・フラットフォームに対応、汎用性、プラグイン多数