CodeZine(コードジン)

特集ページ一覧

CI/CDに取り組むソフトウェア開発者に求められる「勇気」とは?【デブサミ2021】

【18-B-5】勇気が出るCI/CD!開発者は何を見る、何を知る、そして何をする?

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2021/03/12 12:00

 CI/CD(継続的インテグレーション・継続的デリバリー)の重要性やメリットは認識しているが、なかなか導入にこぎつけられない。CI/CDツールを導入したものの、思うような成果を上げられない……その要因はどこにあるのか。CircleCI マーケティング部 Developer Advocateの舟木将彦氏は、CI/CDに取り組むうえで想定される課題や自動化を成功させるポイント、開発者が目指すべき姿などを、「勇気」をキーワードに解説。エクストリームプログラミングやスクラムの価値観でも重視されている勇気が、CI/CDにおいてはどのような場面で、何に対して求められるのか説明した。

目次
CircleCI合同会社 マーケティング部 Developer Advocate CircleCIユーザコミュニティ 舟木将彦氏
CircleCI合同会社 マーケティング部 Developer Advocate CircleCIユーザコミュニティ 舟木将彦氏

「お願いドリブン」の開発から脱却する

 CI/CDによる自動化を成功させる前提として、そもそも何が自動化できるのかを理解しておく必要がある。舟木氏は、DevOpsの開発プロセスである「プラン」「コード」「ビルド」「テスト」「リリース」「デプロイ」「運用」「監視」を、それぞれ自動化できるか否かの観点でシンプルに整理した。

 プランおよびそれをコードに落とし込むフェーズでは、ツールによる効率化はできるものの、主要な作業の自動化はまだ難しい。自動化が可能なのは、ビルド、テスト、リリース、デプロイのフェーズだ。舟木氏によると、これらは言い方を変えれば「継続的であるために自動化すべき」部分でもあると言う。

 デプロイ後の運用や監視については、正常時はさまざまなツールによって自動化できるポイントも多い反面、何らかの異常が発生した場合に対応が難しく、現実的には自動化できない部分とした。

ビルド、テスト、リリース、デプロイが自動化の対象
ビルド、テスト、リリース、デプロイが自動化の対象

 なお、自動化が可能な部分のうち、ビルド、テスト、リリースが狭義の継続的インテグレーション(CI)の対象、デプロイが狭義の継続的デリバリー(CD)の対象ということになる。

 「忘れてはならないのは、CI/CDの前提として、ビジネスの継続があること。ビジネスが継続しているからこそ、開発も継続していくと考えるべき」(舟木氏)

 では、それをふまえたうえで、継続的な開発とはどういうことなのか。舟木氏はまず、「継続的ではない」例として、「お願いドリブン」の開発を挙げた。

 ソースコードを修正したら、速やかにビルド、テスト、リリースへと進められればよいが、そこが自動化されておらず人依存になっていると、次に進むために「お願い」が必要な状況に陥りやすい。例えば、ビルドするとコンパイルエラーが出たり、テストが通らなかったりした場合、コードを修正してもう一度、ビルドやテストをお願いしなければならない。節目節目でお願いするのも勇気が必要だが、「そこは勇気の発揮のしどころではない」と舟木氏は強調する。

 やり直しのお願いなどを何度も繰り返していると心理的に遠慮が生まれ、ディレイが生じ、継続性が損なわれてしまう。お願いドリブンから脱却し、遠慮なしに依頼が可能な状態、さらには依頼しなくてもビルドからテスト、リリース、デプロイへと自動的に流れる状態を作り出すことが重要だ。それが開発の継続、ひいてはビジネスの継続につながる。


関連リンク

  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:【デブサミ2021】セッションレポート

もっと読む

著者プロフィール

  • CodeZine編集部(コードジンヘンシュウブ)

    CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5