コラム

よくわかるIT新発見 第11回 「DevOps実践のための開発ツール活用に向けた第一歩」

更新

DevOps実践のための開発ツール活用についてCTCのエンジニアが解説

「DevOps」は開発と運用のギャップを埋めフィードバックに基づいた改善を継続的に行うソフトウェア開発手法の1つです。DevOpsの実践では、具体的な手法をともなう他の方法論と組み合わせて取り組む必要があります。その方法論の1つが前回ご紹介した「アジャイル開発」であり、もう1つが今回ご紹介する「開発ツール」です。
今回は開発ツールにフォーカスし、DevOpsの実践における開発ツールの要件と活用方法を整理します。

DevOps実践の際の開発ツールの要件

従来よく用いられてきたウォーター・フォール型の開発プロセスでは、専任のプロジェクトメンバーが、工程ごとに集中的に同じ作業を行います。例えば、プログラマは実装工程でプログラミングを行い、テスト工程ではデバッグを実施するといったように役割と工程別の作業内容は事前に明確に定義されます。

このようなプロセスでは、ある特定の役割に特化し、作業を集中的に効率化する開発ツールが効果的に機能します。もちろん短期間で開発しリリースを繰返し行うアジャイル開発のような開発手法においても、限定的ではありますが効果的です。

ウォーター・フォール型の開発とアジャイル開発との大きな違いは、ウォーター・フォール型の開発では要件定義、設計、実装、テストなどの各工程を順番に一度だけ行なうのに対して、アジャイル開発では要件定義からテストまでの短いプロセスを何度も反復していくため、完了したプロセスを終了して次のプロセスを開始するための作業の移行が各工程後に頻繁に発生するということです。今はプログラミングを行っていても、明日にはテストを行っているかもしれませんし、明後日には、また別の機能の設計を行っているかもしれません。作業の移行が発生すると作業対象となるソースコードのリビジョン(ハードウェアやソフトウェアの細かい変更を表す改訂番号)や環境、利用するツールが変わることもあります。

アジャイル開発環境では、開発ツールは作業の移行をサポートすることが重要です。個別の作業でのみ使うことができる開発ツールではなく、開発プロセス全体をカバーして、作業をスムーズに移行できるようサポートしてくれる開発ツールが必要です。

何からはじめるか?

アジャイル開発では、作業の移行は絶えず、繰り返し発生します。実装完了後のソースコード変更のコミット、レビューを行う担当者への差分情報の伝達、テスト実施前のインフラ構成の変更、サーバへのアプリケーション適用等、作業の移行時には煩雑な作業が必要となります。

システム内の項目を識別し、特定の項目とシステム全体の両方に対して変更管理を行うことを、アジャイル開発では構成管理と呼んでいます。次のプロセスへの移行作業は、構成管理やプロジェクトにおける成果物を管理する作業の1つで、スムーズに作業を移行するには効率的に構成管理を行うことが必要です。

効率的に構成管理を行うために、開発ツールの導入が効果的な領域は以下の2つです。

  • ソフトウェア構成管理
  • 継続的デプロイメント

ソフトウェア構成管理

ソフトウェア構成管理とは、ソフトウェア開発プロジェクトの管理を、成果物を通して行うことです。ソースコードやインフラ構成等の成果物の変更履歴を管理し、製品のバージョンやリビジョンに成果物のどのバージョンが対応しているかをわかるようにします。ウォーター・フォール型の開発ではリリースの単位で成果物の管理を行えば十分でした。一方、アジャイル開発のような、機能ごとに開発の作業や移行のタイミングが異なる開発手法では、機能の単位で成果物との対応関係を管理する必要があります。これを人手で行うのは現実的ではなく、開発ツールを活用すべきです。

継続的デプロイメント

継続的デプロイメントとは、統合テスト環境から本番環境への適応までの一連の実行プロセスを自動化するための方法論のことです。クラウドや自動化ツールが登場し、インフラ構成や運用作業もソフトウェアによって定義される時代になりました。ソースコードと同様にバージョン管理を行い、実行プロセスを自動化することによって、作業の移行にかかる処理や負荷が軽減されます。

開発ツールを使うことで、構成管理は効率化され、開発プロセス全体にわたる作業の移行を短期間、かつ、高い信頼性の下、行うことができるようになります。そのため、作業量を削減し、アプリケーション開発に注力する時間が増えるという効果が期待できます。DevOps実践の足がかりとして構成管理の効率化に取り組んでみてはいかがでしょうか。

全3回にわたってDevOpsの概要と実践の鍵となるアジャイル開発、開発ツールについて解説してきました。今回の連載がDevOpsの正しい理解と実践の一助になれば幸いです。

著者紹介

ITサービス事業グループ ソリューション事業推進本部 ソリューションビジネス部 羽田野 晋一

ITサービス事業グループ
ソリューション事業推進本部
ソリューションビジネス部
羽田野 晋一

  • このページについてツイッターでツイート(新しいウィンドウで開く)
  • このページをフェイスブックでシェア(新しいウィンドウで開く)

このコラムに関するお問い合わせはこちら

※記載内容は掲載当時のものであり、変更されている場合がございます。