「DevOps(デプオプス)」という考え方が注目されています。最新の用語ではなく、2008年から開発手法として議論されていました。注目されるようになった理由は、チームで大規模なシステム開発を行なうようになり、高品質のシステムを迅速に構築することを目的として、開発チームと運用チームの連携が重視されるようになったからです。
DevOpsは開発チーム(Development)の「Dev」と、運用チーム(Operations)の「Ops」を結合した用語です。運用を前提とした開発と実装を行い、運用した結果を開発にフィードバックするとともに作業を自動化します。
この考え方を基盤としてAzureには「Azure DevOps」という製品があります。
ここでは、DevOpsの基本的な考え方を確認するとともに、Azure DevOpsの機能と価格、AWSの動向を解説します。
DevOpsの考え方
DevOpsは2008年の「アジャイルカンファレンス」を発端として、2009年にベルギーで開催された「DevOpsDays」というタイトルのカンファレンスから普及しました。アジャイルの議論から派生した概念のため、アジャイルの開発技法と関連性があります。しかし、アジャイルが開発段階を細分化して開発担当者と運用担当者が密接に関わることを重視したこと、いわゆる開発者と運用者の意識改革を重視したことに対して、DevOpsは主に組織改革を重視します。
DevOpsは組織文化の改革が重要
開発部門、運用部門、品質管理部門のように縦型に分断された機能別組織では、それぞれの部門を横断したシステム開発が困難です。したがって「この最新機能を組み込みたい」という開発側の提案に対して「最新機能を組み込むと安定稼働が保証されない」など運用側がリスクを懸念して、部門間の対立が生じることがあります。
しかし「エンドユーザーにとってメリットのあるシステム構築をめざす」点で、開発側と運用側の目標は同じです。最新機能による品質向上や効率化も、安定稼働による持続的なビジネスの実現も、エンドユーザーには大切なメリットです。そこで、組織を横断して開発側と運用側の協力によって、全体を最適化したソリューションを提供します。
DevOpsに完全な定義はありませんが、組織文化の改革が必要です。重要なことは、開発者と運用者が相互の立場を尊重し、信頼することです。相手に失敗があったとしても非難せずに、合理的なカイゼンによって解決をはかる健全な姿勢が求められます。
DevOpsを支援するツール
組織文化だけではなく、DevOpsを実現するツールも重視されています。バージョンやメトリクス(測定値)を共有して管理し、新機能を有効にするか無効にするか、フューチャーフラグで決定します。Slackやチャットツールによって密度の高いコミュニケーションをとり、インフラストラクチャ、ビルド、デプロイを自動化して、高品質のアプリケーションを迅速にリリースできるようにします。
DevOpsが提唱された当初の組織文化の改革とツールの活用の考え方に、その後、各個人のマインドセットの重要性、効果的な開発と運用の手法など、さまざまな要素が検討されるようになりました。
継続的インテグレーションと継続的デリバリー
DevOpsに関連する用語として、継続的インテグレーション(Continuous Integration、以下CI)と継続的デリバリー(Continuous Delivery、以下CD)があります。
CIは開発者がコードを変更したときに、自動的にリポジトリも同期させ、自動化されたビルドとテストを実行します。このことによりバグなど問題の早期発見と品質の向上をはかります。CDは変更を加えたコードのビルドとテストを自動化し、ビジネス目標にしたがって運用環境にスムーズに移行させる手法です。変更されたコードは、テスト環境と本番環境のどちらかまたは両方にデプロイされ、開発者は常に最終的な成果物を入手できます。
このような考え方のもとにAzureで提供されているのがAzure DevOpsです。
Azure DevOpsの製品構成
Azure DevOpsには5つの製品があります。
Azure Boards
会議室でホワイトボードに書き込んでブレイン・ストーミングや計画を行なうことがありますが、大勢の開発者の予定を調整し、狭い会議室で長時間にも渡って議論することは、生産性が高いとはいえません。
Azure Boardsはオンライン上で、チームの枠組みを越えて作業の計画や追跡、異なるチームとの相談が可能になります。かんばんボード、バックログ、ダッシュボードといった複数のボードを備え、開発段階のアイディアやコード変更を追跡できます。アジャイル開発で使われるスプリント(計画、開発、検証によるユーザーストーリーのセットと時間枠)をドラッグ&ドロップで設定でき、分析ツールを用いてプロジェクトが正常であるかどうかの確認も可能です。
Azure Pipelines
CI/CDのツールで、変更されたソフトウェアを常時テストしてデプロイを迅速化します。Linux、macOS、WindowsのほかAndroidやiOS、Node.js、Python、Java、PHP、Ruby、C/C++、.NETなどあらゆる言語環境におけるビルドとデプロイが可能。AzureだけでなくAWS(Amazon Web Services)、GCP(Google Cloud Platform)など任意のクラウドやオンプレミスであっても、デプロイを自動化します。
Azure Repos
クラウド上で容量無制限のプライベートGitリポジトリを実現します。クラスや変数を認識するコード対応検索が可能です。Azure Pipelines によるCI/CD と連携させて、pull requestのビルド、テスト、デプロイを自動的に行なうことができます。事前にコードレビュー担当者のサインオフ、テスト合格などを要求し、カスタマイズされたポリシーをもとに、チームで作成した高水準のコードを維持するための製品です。
Azure Test Plans
アプリケーションの品質を高めるための、手動によるテストサービスです。デスクトップのアプリケーションはもちろん、Webアプリケーションにも対応しています。テスト実行時のデータをキャプチャすることによって、欠陥を検出、エンドツーエンドの追跡と対処が可能です。自動化されたテストをCI/DIワークフローに組み込めば、クリエイティブな作業の時間を増やすことができます。
Azure Artifacts
開発会社の小規模編成チームでも、エンタープライズのビッグプロジェクトであっても、規模に関わらず簡単にコードを共有できます。Maven、npm、NuGet、Pythonなどの成果物をUniversal Packagesで管理します。共有したパッケージは、Azure Pipelinesなど組み込まれたCI/CDでバージョン管理やテストができます。
拡張機能
5つの主要製品のほかに、コミュニティで構築された拡張機能を利用できます。Slack、SonarCloudをはじめとして1,000ものアプリやサービスがあります。
Azure DevOpsの料金
Azure DevOpsの製品のうち、Azure PipelinesとAzure Artifactsは条件付きで、無料で始めることができます。また、ユーザーライセンスでは「Basicプラン」は最初の5ユーザーまで無料、「Basic + Test 」プランは30日間の試用期間があります。
それぞれの無料期間と料金体系は以下のようになります。
個別サービス
サービス名 |
無料条件 |
有料価格 |
Azure Pipelines |
MicrosoftホステッドCI/CD :1個 |
MicrosoftホステッドCI/CD並列ジョブ追加ごとに ¥4,480 |
セルフホステッドCI/CD :1個 |
セルフホステッドCI/CD並列追加ジョブごとに ¥1,680(時間制限なし) |
|
Azure Artifacts |
2 GBまで無料 |
2 GB以降は1 GBあたり ¥224 |
ユーザーライセンス
サービス名 |
無料条件 |
有料価格 |
Basic プラン |
最初の5ユーザーまで |
¥672(ユーザー/月額) |
Azure Pipelines:個別サービスの無料プラン含む Azure Boards:作業項目トラッキング、かんばんボード Azure Repos:無制限のプライベートGitリポジトリ Azure Artifacts:2 GBまで無料 ロードテスト(20,000 VUM/月) |
||
Azure Artifacts |
30日間の無料使用版 |
¥5,824(ユーザー/月額) |
Basicプランの機能すべてを含む テストの計画、追跡、実行 ブラウザーベースのテスト(注釈付き) リッチクライアントのテスト実行 ユーザーの受け入れテスト 管理レポート |
AWSはDevOps認定制度、チャットボットを展開
AWSもDevOpsに注力し、トレーニングとともに試験による「AWS認定DevOpsエンジニア」の制度を設けています。対象者は、AWS環境によるプロビジョニングと運用管理で2年以上の実務経験を持つエンジニアです。試験時間は170分、受験料金30,000円(税別)で、4,000円(税別)の模擬試験もあります。
また、DevOps関連の機能としてはSlackのチャンネルやChimeに自動的に通知を送信する「AWS Chatbot」のパブリックベータ版を2019年7月に発表しました。自動化とともに、円滑なコミュニケーションのためのツールを拡充しています。
まとめ
IT関連の調査会社IDCJapanによると、2018年における日本国内のDevOpsソフトウェア市場は306億9,700万円(前年度比24.1%)で、2018年から2023年の年間平均成長率(CAGR:Compound Annual Growth Rate)は15.9%、2023年には641億5,400万円の市場に拡大すると予測しています。市場データもDevOpsに対する注目度を裏付けています。
Azureでアプリやソリューションを開発するのであれば、DevOpsの開発手法を取り入れるとよいでしょう。サービスの品質を向上し、開発期間の短縮化をはかることができます。