よくあるシステム現場の問題
- マージやデプロイなど手作業が発生する。また、オペレーションミスの発生リスクあり。
- テスト工程時にテストを行うため、初期不良の対応に工数がかかる。
- マージやデプロイ作業の属人化。
- バグ修正の度に上記問題点を抱えることとなり、不要な工数、品質低下となる。
CI/CDとは
こういった問題点を解決する仕組みに「CI/CD」というものがあります。
「CI/CD」とはどのようなものか確認していきましょう。
CI/CDを取り入れた流れフローイメージ
<自動化における効果>
•テストスクリプトを作成し、何度も繰り返しテストを行える状態にする。
⇒他機能影響をタイムリーに検知できる確率が上がる。
- 自動マージと自動デプロイによる作業工数削減、属人化の排除。
- リグレッションテストの工数低減。
⇒なんかよさそうだし、自動化ってかっこいい感じは伝わったかな。
CI(Continuous Integration):継続的インテグレーション について
継続的インテグレーションは、リリースプロセスにおけるコミットを起点とした、ビルド、テスト、結果の通知などの範囲を自動化していることをいいます。
繰り返しテストを行う環境、啓発することで、バグを早期発見し、修正を可能にすることでソフトウェアの品質を高めることを目的としています。
自動化した箇所は、開発者はビルドやテストの実行などの作業から解放されることで、チームの生産性もアップされます。
※テストコードのプログラミングは行う必要がある。
CD(Continuous Delivery):継続的デリバリー について
継続的デリバリーは、ソフトウェア全体のリリース作業の自動化を行うことをいいます。
CDを実現することで、1日に何度もリリースを行うことが可能となり、その結果、プロダクトの素早い提供と、そのフィードバックを獲得することができます。
顧客のフィードバックを受け、改善を繰り返すことで競争優位に立てることを可能にします。(無駄なビジネス価値の削除にも役立つ)
※継続してメンテナンスすることが大切
CI・CDを実現する構成イメージ
インテグレーションツール:CI・CDの中心ツール
バージョン管理:ソースコード、テストコードなどのバージョン管理
チケット管理:チケット、タスク、課題、バグ管理ツール
テスト:自動テストを実施するためのライブラリ
デプロイ:アプリケーションを環境配備するツール
※最新の情報の取得・更新に努めておりますが、掲載内容については、その正確性、完全性、有用性、最新性等についていかなる保証もするものではありません。