ページ)GMOペパボにおけるCI/CD活用事例を紹介する本連載。Actionsを利用してCI/CDを実践する方法を紹介します。健一郎,GMOペパボ]この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。ITがビジネスの中心となる中で「CI/CD」(継続的インテグレーション/継続的デリバリー)というキーワードは広く浸透してきています。CI/CDを導入、活用しているかは企業や現場で差があるのではないでしょうか。CI/CDを実践した際のパフォーマンスは、組織全体のパフォーマンスにも相関があることが知られています。本連載では、筆者らが所属するGMOペパボでどのようにCI/CDを取り入れて開発プロセスの効率化や組織全体のパフォーマンス向上を実現しているのかを3回にわたって紹介していきます。Actionsを利用してCI/CDを実践します。Integration(継続的インテグレーション)」を指します。インテグレーション(Integration)は「統合」と訳すことができますが、例えばソフトウェア開発なら、ソフトウェアのコードの統合を指します。コードの統合は「メインブランチにコードをマージする」を意味しますが、コードをマージしてもソフトウェアが「ビルドできること」「意図した通りに動くこと」を検証する必要もあります。多くの現場では複数の開発者が同時並行で開発をしているため、複数のブランチのコードを最終的には統合する必要があります。CIは上記のような開発環境におけるコードの統合を継続的に実現するための手法です。Deployment(継続的デプロイメント)」を指します。デリバリーやデプロイメントは同じ意味として説明されたり、関連はあっても別の意味で使われたりしますが、本連載では「継続的デリバリー」で統一します。デリバリー(Delivery)は「配送」や「引き渡す」と訳すことができますが、これは「(そのソフトウェアのユーザーにソフトウェアの)価値を届ける」と言い換えれば分かりやすいでしょう。「価値を届ける」とは、ソフトウェア開発なら「メインブランチにコードがマージされ自動テストもパスし、いつでもリリース可能(利用可能)な状態にする」や「本番にデプロイし、ユーザーが新しい機能を使えるようにする」などを指します。CDは上記のような「価値を届ける」ことを継続的に実現するための手法です。CIとCDは、手法としても重なることもあり、CIからCDへと連続したプロセスとして組み立てられます。そのためCI/CDとまとめられて語られることがほとんどです。CI/CDが重要なのかCIとCDのどちらもそれぞれが担うプロセスを自動化や仕組みなどで継続的に実現する手法です。「コードの統合やデリバリーを継続的に実現すること」を効率化することが重要なのでしょうか?それには、まずソフトウェアを中心とした現在のビジネス状況を整理する必要があります。大体のビジネスにおいては以下のようなことが求められます。市場における競争力を維持し続ける市場の変化に追従し続けるそもそもニーズが明らかではない市場を探すソフトウェアを中心としたビジネスにおいては、ソフトウェア開発が上記のような要求を満たす手段となります。ソフトウェア開発で上記のような要求を満たすためには、一度の開発で終わることはなく、何度も「開発、統合、デリバリー」を繰り返して市場からのフィードバックを受け取りソフトウェアを改善し続ける必要があります。「開発、統合、デリバリー」のサイクルを高頻度で回すことができれば、その分だけ市場からのフィードバックを基にソフトウェアを改善できます。結果としてビジネスにおける要求を実現できる可能性が高くなります。この「開発、統合、デリバリー」のサイクルを高頻度に継続的に回すための仕組みとなるのがCI/CDです。このような理由からCI/CDは重要とされているのです。)向上を促し、さらには組織文化を含む組織全体のパフォーマンスと相関があることが示されています。CI/CDを実践するための具体的なステップ本項では、CI/CDを実践するためにどのように進めていけば良いかを紹介します。ソフトウェア開発においては、CDを実践するためにCIが実践できていないといけません。これは開発プロセスの流れが「開発、統合、デリバリー」の順になっているためです。コードの統合が継続的に実践(CI)できていないと、そのコードの継続的なデリバリーやデプロイ(CD)は難しいといえます。CIを実践するためには以下の3つがあれば可能です。コードを統合するための共有リポジトリ環境コードが正しく動くかを検証する実行可能なテストコードテストコードを自動実行できる環境(CI環境)CDを実践するためには上記に加えて以下の2つがあれば可能です。コードのリリースやデプロイをする実行可能なコードリリースやデプロイをするコードを自動実行できる環境(CD環境)上記のCI/CDの実践に必要なものを見ると、環境とは別にテストコードやリリースやデプロイをするコードが必要だと分かります。これらは、それぞれのソフトウェアに合わせて用意するしかありません。CI/CD環境はさまざまなものが登場し、ますます便利になっていますが、意外にもCI/CDの導入以前の部分が一番の関門といえるかもしれません。筆者としては、CI/CDを以下のように進めることを推奨します。上記の順番を見て疑問に思う人もいるかもしれません。「テストコードを書く」より前に「CI環境の整備」があるためです。これは意外かもしれませんが、テストコードを実行するテスティングツールやテスティングフレームワークの多くはテストコードがゼロのときから実行できるのです。テストコードを書く前にCI環境を整備することで、最初に書くテストコードからCI環境の恩恵にあずかることができます。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。