CI/CDにはいろんな工程があります。
イメージ図
コードリポジトリ
ソースコードを管理します。
- Git
- GitHub
CIツール
コードに変更があると、ビルド、テストを実行するため各種ツールにコードを連携します。
SaasとOSSの違い
Saasは自分たちでサーバー構築や管理などしなくて良いですが、基本的に料金が発生します。OSSは自分たちでサーバーを構築する必要がありますが、完全無料で使えることが多いです。
基本的にはSaaSを使うのが良いでしょう。ただ、SaaSが禁止されている会社の場合はGitLab CIなどが良いでしょう。(Jekinsだとコード化にコストがかかる。)
Saas
CI専用サービス
Circle CI
非常によく使われるCIサービス。GItHub Actionsが2018年に登場したことで状況は少し変わってきている。
YAMLに実行したいシェルコマンドを記述する。ある程度の無料枠がある。
Travis CI
Saas版は無料枠もあるが、その場合は並列処理など一部有料になる。
OSS版もあり、自分たちでサーバー構築をすれば完全無料になる。
Gitサービス
GitLab CI
GitLabに付属するものです。GitLab自体がSaaS版とOSS版があります。
もし、GitLabを使っているのであればこれを使うのが一択になる。
GItHub Actions
2018年に登場した非常に新しいCIサービス。
クラウド系
AWS Code Build
AWSが提供するサービス。YAMLファイルにシェルコマンドを記述していきます。使用感はCircleCI、TravisCI、GitLab CIに近い。
OSS
Jekins
最も有名なCIツール。CIのSaaSがよく使われるようになるまで最もよく使われていた。
最近はJekinsを利用することはなくなってきています。理由としてはCIをYAMLなどでコード化できないためです。(Jekins Pipelineというものを使えばコード化できるようですが、他のCIツールに比べて学習コストが上がります。)
ビルドツール(=パッケージ管理ツール)
ビルドに必要な処理を自動実行する。ビルドツールと呼んでるが、イコール「パッケージ管理ツール」という認識で概ね問題ない。
- Gradle
- Ant
- Maven
- npm
- bundler
- pip
テストツール
操作テストや、負荷テストを実施してアプリケーションの品質をチェックする。また、従来の操作テスト、負荷テストに加えてモバイルテストの自動化まで求められるようになってきている。
- UFT One
- Load Runner
- Professional
- sonarQude
テストデータ準備ツール
テストに必要なデータを準備します。
- DELPHIX
構成管理ツール
インフラ基盤の構築を自動化したり、構築手順を管理する。違いなどは以下の記事にまとめています。
- Ansible
- Chef
- Puppet
この記事へのコメントはありません。