CI/CDという用語をご存知でしょうか。用語自体を聞いたことがあるという方も、説明するのは中々難しいと思います。今回はエンジニアとしての実務経験のない方でも、イメージのしやすいようにCI/CDについてご説明します。
CI/CDとは?
CI/CDはContinuous Integration、通称CIと、Continuous Delivery、通称CDを合わせたもので、日本語では継続的インテグレーション/継続的デリバリーといいます。
どちらもソフトウェア開発などの業務をより正確に、効率よく行うための手法の一つです。
ソフトウェア開発の背景
このようなツールが重要になった背景として、ソフトウェア開発の規模拡大があります。
以前は手作業で可能だったことも、業務が複雑化したことで、開発者の手作業だけでは対応しきれなくなりました。
このような背景から、ソフトウェア開発における作業→テスト→公開の流れを「自動化」することが課題となっていました。
CI/CDのようなツールが広く利用されるようになったのは、そんな自動化の問題を解消するためです。
CI/CDを超ざっくり解説!【何となく理解するIT】- クライン【KLEIN】
CIとは?
次に、CIとCDそれぞれの意味についてご説明します。
まず初めにCIとは、開発者による新しいコード変更が定期的にビルド・テストされ、自動化される手法です。
これにより、ソフトウェアのバグを早期に発見し、その発見にすぐ対応することができます。
CDとは?
CDとは、継続的インテグレーションを拡張した手法です。ビルドやテストだけでなく、本番環境のリリースプロセス全体を自動化することです。
CIとCDをセットで使用することによって、作業からテスト、そして公開までの流れを自動化によって効率よく迅速且つ継続的に実施することができます。
このツールを利用すれば、よりユーザーのニーズに応えやすくなり、バグの改善にも早く対応することができます。
現在主流の開発手法について
現在システムやソフトウェア開発においては、アジャイル開発が主流となっています。アジャイル開発の仕組みと、CI/CDの関係性についてご紹介します。
アジャイル開発とは?
アジャイル(Agile)とは、日本語で「迅速な」「素早い」という意味を持ちます。
従来はウォーターフォール開発という手法が主流でした。
ウォーターフォール開発手法は、公開までの工程をいくつかに分割した上で開発を進めていく手法です。
そしてこの工程を順番に実施していくので、進捗管理がしやすく一貫して作業がしやすいというメリットが一般的にありました。
しかし、大きなデメリットとして動作確認や変更への対応にかなりの時間がかかるという点がありました。
では、現在主流のアジャイル開発が実際にどのような手法なのでしょうか。
ウォーターフォール開発との相違点は、大きな単位でシステムを区切るのではなく、小さな単位で実装とテストを繰り返すという点です。
この開発手法は、スケジュール管理がしにくいというデメリットはあるものの、バグの発見など動作の確認を迅速に行うことができ、急な変更にも柔軟に対応することができます。
アジャイル開発とCI/CD
アジャイル開発にCI/CDの考え方を導入すると、小さな単位ごとにテストの実行、ビルド・デプロイを自動的に行うことができます。
また、これらは人の手を介さずとも継続的に行われるため、品質維持にも役立ちます。
つまり、CI/CDツールを用いることで、より良い品質と開発スピードを得ることができるのです。
CI/CDを実施するには
最後に、CI/CDの実施方法についてご紹介します。
CI/CDの実施にはさまざまな方法がありますが、今回は代表的な利用方法をお伝えします。
「Jenkins(ジェンキンス)」を利用
「Jenkins(ジェンキンス)」はCI/CD実現のための代表的なツールの一つです。
日本でも多くのユーザーに利用される人気なツールですが、人気の理由の一つに汎用性の高さが挙げられます。
こちらはオープンソースとして、Windows、macOS、Linuxなど多くの環境下でダウンロード可能です。
また、国内での利用者が多いことから、日本でもJenkinsに関する勉強会が開かれていたり、日本語での最新情報が素早く入手できたりすることも大きなメリットです。
CI/CDを実施するポイント
CI/CDを行う1番のポイントは、品質の向上と開発の効率化を同時に達成できる点です。
これらは継続的な実行と、自動化によって寄与されるものです。
現代のような変化の激しい社会においては、ソフトウェア開発においても迅速な変化への対応が非常に重要となってきます。
このような背景を踏まえた上で、CI/CDの活用を検討すると良いでしょう。
【公式サイト】 https://www.jenkins.io
おわりに
今回の記事では、CI/CDの概要から導入のメリット、実施方法について解説しました。
CI/CDを導入する際は、しっかりと開発組織の体制を整え、効果的に取り入れられるようにしましょう。
ONETECHはベトナムオフショア開発に15年以上携わる日本人とベトナム人で構成されています。
最近オフショア開発は単なる下請けから事業会社のDXパートナーへと進化しています。DXパートナーとして単なる開発だけではなく開発チーム(Development)と運用チーム(Operations)がお互いに協調しDevopsの概念を採用しています。特にAWSを利用したWEB開発やパッケージからのWEB化やクラウド化に力を入れています。