1. はじめに
こんにちは!株式会社Definerのライターチームです!
今回は、CI/CDとは何か気になりますよね。
実際の画面や、資源を見ながら詳しく解説していきましょう。
2. アジャイル開発の課題
近年、ビジネスを取り巻く環境はダイナミックに変化しています。
開発の現場においても、それに適合するために、従来のウォーターフォール開発(上流工程から下流工程にかけて、順番に開発工程をこなしていく開発手法)からアジャイル開発へのシフトが起こりつつあります。
アジャイル開発とは、機能ごとなど、小さな単位で継続的に開発→テスト→リリース(デプロイ)を繰り返す開発手法です。
アジャイル開発によって、機能の変更や追加のハードルが下がり、リリース後のエンドユーザのリアクションを見て機能を追加するなど、柔軟な対応が可能となりました。
しかしアジャイル開発では、テストやデプロイなど、コーディング以外の作業にかかる工数も増大します。
アジャイル開発を成功させるためには、コーディング以外の作業をいかに効率化し、コアであるコード作成に注力できる環境づくりが求められます。
それを解決するのが、CI/CDです。
3. CI/CDとは何か
CI/CDとは、Continuous Integration / Continuous Delivery(日本語に訳すと、継続的インテグレーション / 継続的デリバリー)の略称です。
CI/CDは特定の技術を示すものではなく、テストやデプロイの作業を自動化するという開発手法のことです。
CI(Continuous Integration) / 継続的インテグレーション とは
この場合のインテグレーション(統合)とは、ビルド(ソースコードを元に、実行可能なファイルを作成する処理)やテストを指します。
自動ビルドや自動テストによりプログラムの挙動、品質が継続的にチェックされるので、素早い修正が可能となります。
CD(Continuous Delivery) / 継続的デリバリー とは
この場合のデリバリーは、公開や配信という意味で使われています。
すなわち、アプリケーションをユーザが利用可能な状態にすることです。
継続的なデリバリーにより、より早いスパンでの開発が実現できます。
CI/CDの導入により、以下のようなメリットが享受できます。
開発工数の削減
テスト〜デプロイの自動化により、開発に要する時間が短縮できます。
また、エンジニアはコアであるコーディングに集中することができます。
品質の向上
テスト自動化により、人為的なミスを減らしプログラムの品質向上が見込まれます。
また、バグを早期発見できる確率が高まるため、大きな手戻りが減ることも、品質担保において重要な観点です。
CI/CDを含むDevOpsの国内市場は2019年時点でおよそ270億円であり、年間成長率はおよそ20%になるというリサーチ結果が出ています。
ソフトウェア開発データ白書を参考にすると、開発におけるテストの工数割合は3-4割程度と試算されるため、それらを着実に削減できるCI/CDは、ますます伸びていくと予想されます。
4. 有名なCI/CDサービスの紹介
有名なCI/CDサービスの一例を以下に挙げます。
CircleCI
SaaS型のCI/CDサービスで、ビルド・テスト・デプロイなどが自動実行できます。
非常に実行が高速なことが特徴です。
GitHub Actions
GitHubが提供しているSaaS型のCI/CDサービスです。
GitHubの利用状況によっては無料で使用できる枠もあり、サービスを使い始めるハードルが低い場合が多いです。
Jenkins
オープンソースのCI/CDサービスで、サーバなどにインストールして使用します。
SaaS型でないため、社内の仕組みなどでセキュリティをより強固にすることが可能です。
Azure DevOps
Microsoft Azure公式のDevOpsサービスです。
AWSなど、Azure以外のクラウドサービスにも対応しています。
AWS CodePipeline、CodeBuild、CodeDeploy
AWSの公式サービスで、Code○兄弟という名称でも親しまれています。
5. CI/CDを採用するための注意点
一方で、導入時にはCI/CDについての注意点についても理解する必要があります。
初期費用・工数
特にアジャイル開発の場合は、開発初期にCI/CDの仕組みを整備する必要があるため、初期の工数やコストが必要となります。
エンジニアリングスキル
CI/CDに精通したエンジニアが必要となるため、採用コストや教育コストが発生する場合があります。
6. まとめ
本記事を以下にまとめます。
CI/CDとは、継続的インテグレーション / 継続的デリバリーの略称です。
CI/CDは特定の技術を示すものではなく、テストやデプロイの作業を自動化するという開発手法のことです。
CIとは、継続的な自動ビルド、自動テストなどを表します。
CDとは、継続的な自動デプロイ(アプリケーションをユーザが利用可能な状態にすること)です。
7. 引用・参考
IPA ソフトウェア開発データ白書
ITメディア 2024年の市場規模は693億円 IDCが国内DevOpsソフトウェア市場を予測
CircleCI CircleCI
GitHub GitHub Actions
Jenkins Jenkins Artwork
8. 独自ソリューション「PrismScaler」について
PrismScalerは、開発・運用を要さずにたった3ステップで、AWSやAzure、GCPなどのマルチクラウド基盤構築を実現するWebサービスです。
エンジニアの大変な作業を肩代わり
・自動構築
・自動監視
・構成可視化
クラウド基盤に関わる作業を以上のように効率化します。
SRE/DevOpsエンジニアが行う大変な作業を肩代わりします。
高品質な汎用クラウド基盤の実現
・クラウド基盤構築/クラウド移行
・クラウドの保守運用・コスト最適化
など幅広い利用シーンを想定しています。IaaSやPaaSを適切に組み合わせた数百を超える高品質な汎用クラウド基盤を容易に実現できます。
興味を持たれた方には、無料で資料を提供しております。
お気軽にご相談ください。
9. お問合わせ
株式会社Definerでは、
・ITの上流から下流まで一気通貫のワンストップソリューションをご提供。
・AIやクラウドのITインフラなど、先進的なIT技術のコンサルティングから要件定義 / 設計開発 / 実装、保守運用に至るまでの統合的な支援にコミット。
・少ないエンジニアで事業が成長する仕組みづくりの実現。
・エンジニアが喜ぶ、採用しやすい環境づくりの実現。
・高速なアジャイル開発環境の実現。
・自社プロダクトとしてPrismScalerを展開。
上記事業内容を進行しております。
※「開発者ブログ」では、エンジニアの入門編として有益な情報を無料公開しています。
ご相談やお問い合わせは「株式会社Definer」へ。
10. Definerに関して。
・ Definer Incは、ITの上流から下流まで一気通貫のワンストップソリューションをご提供しております。
・ AIやクラウドのITインフラなど、先進的なIT技術のコンサルティングから要件定義 / 設計開発 / 実装、保守運用に至るまでの統合的な支援にコミットしています。
・ DevOpsとCI/CDコンサルティングにより「少ないエンジニアで事業が成長する仕組みづくり」「エンジニアが喜ぶ、採用しやすい環境づくり」「高速なアジャイル開発環境」を実現しています。
・ また、自社プロダクトとしてPrismScalerを展開しております。PrismScalerは、AWS、Azure、GCPなどのマルチクラウド / ITインフラの高品質かつ迅速な、「自動構築」「自動監視」「問題検知」「構成可視化」を実現します。
©️ Definer Inc. All rights reserved.