CI/CDについては、こちらの「CI/CDのエキスパートが解説:CI/CDとは何か? なぜ今、必要とされるのか?」が分かりやすいです。
抜粋しますと、以下のようになります。
CI/CDとは「Continuous Integration/Continuous Delivery」の略で、日本語では継続的インティグレーション/継続的デリバリーといいます。CI/CDは1つの技術を指すものでなく、ソフトウェアの変更を常にテストして自動で本番環境にリリース可能な状態にしておく、ソフトウェア開発の手法を意味します。CI/CDを取り入れると、バグを素早く発見したり、変更を自動でリリースしたりできるようになります。
CI/CDには大きく分けてオンプレミス型とクラウド型があり、オンプレミス型としてはJenkins、クラウド型としてはTravis CIやCircleCIなどが有名です。オンプレミス型は一般的に拡張性が高い一方、自分たちで構築・運用する管理コストが発生します。クラウド型は拡張性が低いですが、サーバーなどを自前で用意する必要がなく、すぐに使い始めることができるのが大きな魅力です。
オンプレミス型
- Jenkins
- Concourse CI
- Drone (クラウド版もあり)
クラウド型
以下はオンプレミス型とクラウド型のメリットとデメリットの対比です。どちらを選ぶかはチーム次第ですが、よほど大規模な組織でCI/CDを専任で運用できるチームがない限り、筆者はインフラの管理コストがかからないクラウド型をおすすめします。
オンプレミス型 | クラウド型 | |
---|---|---|
メリット | 拡張性が高い ビルドするマシンの性能を自分たちで調整できる オープンソース(であることが多い) | サーバーを自前で持たなくていい 簡単に始められる アップデートをしなくてよいコミュニティでナレッジを共有できる |
デメリット | 運用コストが高い サーバーを自前で用意する必要がある | 有料(通常無料枠もあります) ビルドするマシンの性能を選べないことが多い |
GitLabでもCI/CDの実現が可能
こちらにその内容が公開されています。「GitLabを使ったCI/CD入門」
抜粋:GitLab CI/CDはGitLabに組み込まれた強力なツールで、サードパーティ製のアプリケーションやインテグレーションを必要とせず、すべての継続的な開発手法(継続的インテグレーション、デリバリー、デプロイメント)をソフトウェアに適用できます。
コメント