2022年1月21日

Continuous Integration

CIの近代化。CIとは何か、なぜ使うのか、そしてCIのメリット

継続的インテグレーション(CI)を近代化することで、再現性、一貫性、可用性といういくつかの重要な利点が得られます。CIプロセスを近代化することで何ができるのか、詳細をご覧ください。



05.-Blog-header-1024x320-1-1920w.webp

 

組織に対して話をすると、一見、CIは解決済みの問題のように見えます。マイクロサービスの開花により、ますます分散したアプリケーションへの需要が高まり、開発チームは全てのコミットがビルドであるべきという期待を持っています。CIは、意外にも思わぬボトルネックになっているのです。このeBookでは、CIの柱と、CIのプラクティスとプラットフォームを近代化する方法について説明します。 

この記事は、私たちのeBook「Modernizing Continuous Integration」からの抜粋を含んでいます。気に入った内容があれば、eBookの全文を最後までご覧ください。無料です。

CIとは?

簡単に言うと、CIはビルドの自動化です。しかし、ビルドにはコンパイルされたソースコードだけでなく、CIにおける最終的なアーティファクトは、リリース候補です。このアーティファクトを作成するためには、バグの発見やその修正の特定など、品質に関する手順が必要になる場合があります。パッケージング、配布、および構成は全て、リリース候補に含まれます。例えば、JavaアプリケーションにはJARがあり、それがDockerイメージにパッケージされ、イメージが実行されるために必要な全ての環境設定が用意されています。リリース候補は、デプロイされるアーティファクトの最終形態です。

 

image-40-1024x604-1920w.webp

なぜCIを使用するのか

今日のソフトウェアエンジニアリング組織では、デプロイや継続的な検証(例えば、開発環境から品質保証環境へ)が可能なアーティファクトを持つことは賢明です。ソフトウェア技術者の仕事の主なアウトプットは、本質的に反復的です。実行可能なリリース候補が作られるまでに、いくつかのアーティファクトが作られることがあります。オンデマンドで構築し、統合と品質の道のりを歩むことができるのは、1日に何度も起こりうるビルドからです。「継続的インテグレーション入門」の共著者であるPaul Duvall氏によれば、CIは一言で、品質を向上しリスクを低減します。

CIのメリット

自動化されたCIのアプローチにより、チームは手作業によるビルドの負担から解放され、ビルドの再現性、一貫性、可用性が高まります。ソフトウェアエンジニアリングチームの主要な作業アーティファクト(デプロイ可能なユニット)を定期的にデプロイできるようにすることは、ソフトウェア開発ライフサイクル全体にとって有益であり、共通のボトルネックを回避することでエンジニア間の一貫したコラボレーションを実現します。

再現性

開発者がローカルで実行するだけでなく、ビルドを外部化することで、ビルドのステップに多くの目が向けられるようになります。CIの構成は、属人的なアプローチではなく、より広いチームが使用する資産となりえます。システムによって実行されるビルドは、繰り返し可能であり、一貫性を持たせることにつながります。

 

image-39-1920w.webp

 

一貫性

一貫したビルドを行う能力は、CIの主要な柱の1つです。反復可能なビルドができた後、CIがチーム内で成熟してくると、効率性と一貫性が向上します。一貫性のあるビルド/アーティファクトを持つことは、開発環境から本番環境へのパリティーを維持するための鍵です。この例として、環境を同じように保つことや、環境間の変更をよく理解することが挙げられます。一貫性があれば、ビルドをより簡単に利用できるようになります。

 

image-38-1024x356-1920w.webp

 

可用性

チームが必要とする同時ビルドの需要に合わせて拡張できること、そしてビルドを再作成できることが、ビルドの可用性になります。最新のコンテナ化されたビルドでは、アプリケーションバイナリーをビルドするだけでなく、より多くの馬力を必要とします。分散ビルドシステムは、それらのビルドの可用性を高めることを可能にします。ビルドは繰り返し可能で一貫性があるので、現代のソフトウェア開発の中核となるのは、プロセスのどの段階でも繰り返し可能であるとの考え方です。古いビルドや以前のバージョンも、過去のレシピを呼び出すだけで利用できるようになります。いつでもビルドを利用できることに重点を置くと、広範な技術をサポートするための課題が発生する可能性があります。

 

image-37-1024x535-1920w.webp

 

結論

CIを近代化するeBookの最初の抜粋をお楽しみいただけたでしょうか。次回は、CIのベストプラクティスと、CIで直面しうる課題について説明します。

次のブログ投稿まで待てない方は、今すぐeBook「Modernizing Continuous Integration」をダウンロードしてください。無料です。


この記事はHarness社のウェブサイトで公開されているものをDigital Stacksが日本語に訳したものです。無断複製を禁じます。原文はこちらです。

 

Harnessに関するお問い合わせはお気軽にお寄せください。

お問い合わせ