Microsoftが提供する「Azure DevOps」は、DevOpsの実現に有用な機能を多数そろえたプラットフォームです。本記事では、このAzure DevOpsの機能や使い方、さらにはAzure DevOpsを活用したエムティーアイ社の「DX推進サービス」について紹介します。
Azureの概要やメリットについては、下記の記事で解説しています。ぜひ本記事と併せてご覧ください。
Microsoft Azureとは|何ができる?入門内容からわかりやすく解説
DevOpsとは
「DevOps」とは、「Development(開発)」と「Operations(運用)」を組み合わせた造語のことです。これという定義はありませんが、一般的には「システム開発における開発チームと運用チームの連携によって、安定的な開発体制を構築し、高品質かつ高利便な製品の素早い提供を目指す取り組み」を指します。
従来の開発シーンでは、開発・運用の連携がうまくとれず、しばしば対立関係に陥ってしまうことがありました。というのも、開発チームには「新しい製品やサービスの提供」、運用チームには「製品やサービスの安定稼働」という異なる目的があり、この違いがときに意見の衝突をもたらすことがあったからです。そのため、多くの企業では開発・運用の部門を区分けし、それぞれ独立した体制を取ってきました。
しかし、ユーザーニーズが目まぐるしく変化する現代では、このような体制を続けているとニーズの変化に対応しきれず、競合他社に後れを取ってしまう恐れもあります。特に近年ではシステムのクラウド化が進み、システム開発に参入する企業も続々と登場しているため、この問題がより顕在化しつつあります。
DevOpsの推進は、この両チームの摩擦を緩和するとともに、開発業務の効率化を促し、エンドユーザーへのスピーディな製品提供を実現します。そして、その安定化を可能にする体制の構築は、ひいてはDX(デジタルトランスフォーメーション)の推進にもつながると考えられています。
DevOpsとアジャイル開発の関係
従来のシステム開発においては、「ウォーターフォール開発」と呼ばれる開発手法が主流でした。この手法では、要件定義から始まる一連の開発プロセスを、流れ落ちる滝のように上から順番に進めていきます。
各工程には明確な成果物が設定されており、それらを一つひとつ完結させることで次の工程に進む仕組みです。その性質上、工程ごとの品質が担保されるうえ、スケジューリングや進捗把握も容易です。しかし、途中追加や仕様変更に弱く、修正時には工程を大きく巻き戻さねばならないデメリットがあります。
このデメリットを解決し、新たに主流とされているのが「アジャイル開発」です。この手法では、大きな単位でシステムを区切らず、小単位で実装とテストを繰り返して開発を進めていきます。サイクルの一つひとつが独立しているため、急な追加や仕様変更にも強く、少ないリスクで柔軟に対応できるのが特徴です。「アジャイル(Agile)」が「俊敏」を意味している通り、従来の手法と比べて開発期間の短縮が見込めます。
DevOpsの推進にあたっては、基本このアジャイル開発の採用により、移ろいやすいユーザーニーズへの即応性を得ることが前提となっています。そのため、DevOpsとアジャイル開発は包括関係にあると言えますが、かといってアジャイル開発の採用が必ずしもDevOpsに直結するわけではありません。なぜなら、DevOpsの本質は「いかにして開発・運用を連携させるか」という部分にあるからです。アジャイル開発はあくまで前提に過ぎず、開発・運用の連携体制の定着が肝要であることを留意しておきましょう。
Azure DevOpsとは
「Azure DevOps」とは、Microsoftが提供するDevOps推進に有用なオンプレミス・クラウド両対応プラットフォームです。かつては「Team Foundation Server (オンプレミス)」「Visual Studio Team Services(クラウド)」の名でそれぞれ提供されていましたが、2018年9月に「Azure DevOps Server/Services」としてリブランドされました。Azure DevOpsというと一般的には後者を指すため、ここではクラウド型を前提に紹介します。
Azure DevOpsでは、アジャイル開発を支援する5つのサービスを内包しており、導入により共同作業の効率化が実現します。また、拡張性やオープン性に優れ、多くのアプリケーションを追加・併用できるため、活用の幅がとても広い点も特徴です。
Azure DevOps のサービス
Azure DevOpsでは現在、下記5つのサービスを提供しています。これらは必要なものだけ選んで利用することも、すべて利用することも可能です。一つひとつ詳しく見ていきましょう。
(1)Azure Boards
ワークフローの作成やプロジェクトの進捗管理を支援し、タスクの可視化に有用なかんばん機能を提供するサービスです。具体的には、必要な作業項目を一元管理する「ダッシュボード」や、それを管理するための「バックログ」、スプリント(開発期間)や工数を管理する「スプリント」などの機能を備えています。
加えてダッシュボードは自由にカスタマイズ可能なので、プロジェクトに合わせたレイアウトしていけます。また、外部ツールと連携することで、より効果的に活用できるのも特徴です。
(2)Azure Repos
プロジェクトで用いられる容量無制限のプライベートGitリポジトリです。ソースコードなど成果物の管理やチーム内共有、バージョン管理といった役割を持ち、最新データを一目で把握できます。リポジトリは「Git」「TFVC」をそれぞれベースとする2種類が提供されるため、プロジェクトに合わせて選べるのも魅力です。そのほか、システムの更新を通知してくれる機能や、コードをある程度認識した検索機能なども備えています。
(3)Azure Test Plans
手動によるテストの実行を支援してくれるサービスです。デスクトップアプリ・Webアプリの両方のテストに対応しており、キャプチャーしたデータを基に問題への対処が可能です。
また、テストケースを必要としない探索的テストも支援してくれるため、テスト管理において非常に心強いシステムです。ただし探索的テストの場合、内容次第ではエンジニアに高い技術が求められることもあるため、その点は注意が必要です。
(4)Azure Pipelines
手動テストを補助するTest Plansとは対照的に、CI/CD(継続的インテグレーション/継続的デリバリー)の支援を目的としたサービスです。ビルドやデプロイ、テストなどを自動化し、省人化や作業効率の向上に一役買ってくれます。
さまざまな言語・プラットフォームに対応するうえ、柔軟な拡張機能も有しているため、例えばGitHubのリポジトリからNodeサービスを作成・テストし、それをAWSのコンテナーにデプロイする、といった使い方も可能です。
(5)Azure Artifacts
プロジェクトやチームで作成したパッケージの共有に役立つサービスです。チームの規模によらず簡単にコードを共有でき、Python/Maven/npm/NuGetなどさまざまなパッケージの管理が可能です。また、Pipelines と連携することで、パッケージ管理をCI/CDにワンクリックで組み込めます。
Azure DevOpsの料金
Azure DevOpsでは、「個別サービスとして利用する場合」と「ユーザーライセンスを購入する場合」とで料金体系が異なります。前者の場合、Pipelinesは並列ジョブ1個まで無料、Artifactsは2 GiBまで無料となっており、それぞれ超過すると料金が発生します。
後者の場合は、さらに「Basic」「Basic+Test」の2種類のプランが用意されています。Basicは5人まで無料、6人目以降は1人あたり月額672円がかかります。同プランではTest Plansを除く4つのサービスを利用できることが利点ですが、PipelinesとArtifactsには多少の制約が付くため注意しましょう。
一方Basic+Testでは、1人あたり月額5,824円がかかります。Basicとは違い、全サービスを制約なく利用できるほか、テストの計画・追跡・実行・管理レポートといった機能も充実しています。30日間の無料トライアルも用意されているため、試しに触れてからじっくり導入を検討することも可能です。
なお、上記の料金は変更となる可能性もありますので、導入の際は各自Azure DevOpsの製品ページをご確認ください。
Azure DevOpsの使い方
チームでAzure DevOpsの各種サービスを利用する場合、まずは組織とプロジェクトを設定する必要があります。初めての方は、Microsoft アカウントでAzure DevOpsにサインインし、[New organization]を選択してください。続いて組織名と地域を入力し、[Continue]を押すと組織が作成されます。
組織が作成されると、そのままAzureポータルが表示され、プロジェクトの作成に移行します。プロジェクト名・アクセスポリシー・開発言語・リポジトリのバージョンなど、開発に必要な情報を設定していきましょう。設定を終えるとプロジェクトが作成され、概要が表示されます。
作成したプロジェクトを開き、[Project homepage]を選択すると、専用のダッシュボードに移動します。ダッシュボード上では上記5つのサービスが集約されており、最新のビルド・デプロイといったプロジェクトのステータス確認や、さまざまなタスク管理が行えるようになっています。
なお、メンバーを追加したい場合は、プロジェクトの管理者がメンバーを招待する必要があります。
招致方法としては、[Organization settings]→[Users]→[+Add new users]の順に選択し、追加したいメンバーのメールアドレスやアクセスレベルなどを設定したのち、[Add]をクリック。すると招待メールが送信されますので、メンバーは記載のリンクにアクセスし詳細情報を入力すれば、許可されたプロジェクトに参加できるようになります。
あとは上記5つのサービスを活用して、開発を進めていくだけです。Boardsで開発の方針を決め、開発が済み次第Repoに登録。プログラムが組めたらPipelinesに検知させ、機械的にビルド・テスト・デプロイを実施します。その後、Test Plansを使って品質確認テストを実行し(テスト内容はあらかじめBoardsに記録しておく)、本番環境にデプロイします。最後にAzure Monitorなどで各環境からテレメトリーデータを取得し、Boardsにフィードバックを記載したら、それらを基に改善していきます。
導入から開発までの大まかな流れは以上となります。
Azure DevOpsを活用したDX推進支援サービス
「DX推進支援サービス」とは、株式会社エムティーアイが提供するアジャイル体制構築支援サービスです。主にDX対応を目指す企業向けのサービスとなっており、モバイル分野の激動期をアジャイル運用によって生き抜いた、同社ならではのノウハウが活かされています。
本サービスではDXの進め方や必要な目線、アジャイル開発・運用のポイントなど、エムティーアイが有するナレッジを同社スタッフと一緒に作業する中で学習できます。自社のステージに合わせてサービス内容を提案してくれるため、効率的なステップアップが可能です。
エムティーアイは「DX銘柄2020」において、535ある応募社の中でもトップクラスの評価を得ており、確かな実績を持つDX企業です。さらにAzure DevOpsを活用し、アジャイル開発プロセスや開発体制を提供するなど、DX文化の醸成にも力を注いでいます。アジャイル体制の構築でお悩みの際は、ぜひ本サービスの利用を検討してみてはいかがでしょうか。
まとめ
Azure DevOpsはDevOps推進を助けるプラットフォームとして、アジャイル開発に役立つ機能を提供しています。プランによっては無料の試用期間も用意されているため、十分に検討してから導入できるでしょう。自社だけで導入するのが難しい場合は、株式会社エムティーアイの支援サービスの利用も選択肢としておすすめです。