継続的インテグレーションと継続的デリバリー(CI/CD)

継続的インテグレーション/継続的デプロイメント(CI/CD)パイプラインは、DevOpsチームにとってのベストプラクティスです。これにより、開発者はコードの変更をエラーを出すことなく頻繁かつ確実に行うことができます。CI/CDパイプラインの構築は、最新のソフトウェア開発のフルAPIライフサイクル、つまり設計から管理、デプロイメントにいたる全体をとおして重要なものです。

継続的インテグレーション(CI)とは

継続的インテグレーションとは、開発チームによるリリースの準備や実装、品質管理の実行を容易にする手法であり、コーディング哲学です。継続的インテグレーションの目的は、開発チームで行うビルド、テスト、アプリケーションのパッケージ化を自動化し、これらの一貫性を確保することです。今日のアプリケーションの多くは、さまざまなツールやプラットフォームで開発されたコード上で構築されています。このため、開発チームは変更を統合し、検証するための方法が必要です。CIはエラーを起こしやすいデプロイメント作業を軽減し、バグを早期に可視化するなど、幅広いメリットをもたらします。

継続的デリバリー(CD)とは

CI/CDパイプラインのもう一方のコンセプトが、継続的デリバリー(CD)です。CDはアプリケーションやコード変更の配信を自動化します。多くの場合、配信先はテスト環境や開発環境など、複数のインフラストラクチャ環境です。さらに、CDの自動化では、アプリケーションのデプロイ後に更新または再起動の必要のあるデータベース、Webサーバー、および追加のサービスへの呼び出しが実行されます。これによりチームは、毎日、毎時、または継続的なデプロイメントスケジュールでプロダクションをデプロイできます。

CI/CDの実装

ITチームが、ソフトウェア開発ライフサイクル(SDLC)に基づく自動化された多面的なテストやレポートを含むアプリケーション開発モデルをデプロイし、徹底した継続的インテグレーションと継続的デリバリーを取り入れていれば、組織は新しい機能やアプリケーションのテストとローンチを迅速に行うことができます。成功を収めているこのような組織は、SDLCの測定基準とプロジェクトへの投資を密接に結びつけることによって、ビジネスに最も大きな効果を与えるプロジェクトを測定し、優先順位をつけています。

たとえば、Muleの開発者はCI/CDの手法を使用して、GitHubとJenkinsパイプラインを利用したMuleのデプロイメントを自動化しています。ほとんどの開発者はビルドのステージに精通しており、バージョン管理のためのGitHub、依存関係管理とビルドの自動化のためのMaven、テストの自動化のためのJUnitとMUnit、問題とサービスの管理のためのJIRAまたはServiceNowといった、前述の技術のいくつかを活用して、Anypoint Studioでの作業を継続的インテグレーションパイプラインに簡単に接続することができます。マイクロソフトのアプリケーションでMuleアプリを構築しているお客様は、多くの場合、Team FoundationやVisual Studioを活用しています。

コードの準備ができたら、MuleSoftのお客様は、多くの場合、Jenkins、Puppet、Chef、またはHP ALMを活用して、開発、テスト、ステージ、プロダクションといった、さまざまな環境にわたるデプロイメントの自動化とリリースプロセスのオーケストレーションの両方を行います。PuppetとChefは、Muleランタイムのインストールと設定の自動化に使用することもできます。Dockerは、継続的なデプロイメントの複雑さを軽減することで急速に人気が高まっており、MuleランタイムはDockerコンテナでの出荷も可能です。また、Anypoint Platform for APIsやAnypoint Platform CLIといった管理エージェントを用いることで、プロセスをさらに自動化できます。その際、Anypoint Platformユーザーインタフェースの代わりにPuppetやChef、Ansible、Saltなどの設定の自動化と管理のためのツールを使用します。