- Google Cloudに関する記事
DevOps の意味と、Google Cloud で実現する方法や事例を紹介
こんにちは、クラウドエース編集部です。
システム開発や運用の現場において話題になっている「DevOps」という言葉。「スピーディな開発を実現できる」と評価される手法ですが、具体的にどんな内容なのかいまいちよくわからないという人も多いですよね。
今回は、DevOps とは何なのか、どんなメリットがあるのかについて解説した上で、Google Cloud で DevOps を実現する方法や実例について紹介していきます。
DevOps とは?
DevOps とは、Development(開発)とOperations(運用)を組み合わせた言葉で、「デブオプス」と読みます。
言葉の成り立ちからわかる通り、これはシステムの開発・運用において、今までサイロ化されていた開発チームと運用チームが協働することを指します。
ある1つのプロジェクトを開発・運用する際、これまでは開発部門と運用部門が独立してそれぞれの役割を担うことが一般的でした。しかし、このような分担構造では、「開発部門が新機能をリリースしたくても、運用部門は稼働へのリスクがあるため変更したがらない」といった対立が生まれやすいという問題がありました。
この問題を解消するために生まれた概念が、DevOps です。DevOps では、開発部門と運用部門が協調することで、開発者の生産性と運用の信頼性の両方の最適化を図ります。そして、これにより「開発・運用するシステムのビジネス的な価値を高める」という企業としての最終目標の効率的な達成を目指すのです。
なお、DevOps は必ずしも「開発チーム」と「運用チーム」の連携という訳ではありません。例えばエンジニア全員が両方の役割を担うケースもありますし、品質管理チームも含めて協業することもあるでしょう。
DevOps のメリット
続いては、DevOps の導入のメリットについて見てみましょう。DevOps の実現には、大きく 3 つのメリットがあります。
1 つ目のメリットは、システムやソフトウェアのリリースをスピーディに行えることです。開発部門・運用部門が連携する DevOps では、目的や進捗状況を共有しながら開発を進めることができます。両チームが密にコミュニケーションを取ることで、運用チームのフィードバックを繁栄しながら効率的に必要な機能を開発できるのです。
2 つ目のメリットは、生産性の向上が期待できることです。リリースまでの期間を短縮できる DevOps では、ユーザーからのフィードバックを早期に得て、新機能の追加やバグの修正などの変更を迅速に行えます。これにより、市場のニーズにも迅速に応えられるようにもなります。
3 つ目のメリットは、ヒューマンエラーを防止しやすくなることです。開発チームと運用チームが連携しながら、開発・テスト・デプロイを繰り返すことで、ミスや課題を早期発見しやすくなります。当然ですが、ミスの発見が遅くなるほど他機能への影響範囲も広くなるため、業務効率化やコスト削減にも効果的と言えます。
DevOps を導入すると、このようにさまざまなメリットが期待できます。スピーディな開発を、コストを抑えて実現することで、競合他社に差をつけることができるでしょう。
DevOps と アジャイル開発の違い
DevOps と混同されやすい言葉として「アジャイル開発」があります。
アジャイル開発とは、1~4 週間という短い期間において、計画、設計、開発、テストまでのサイクルを繰り返しながら、開発を進めていく手法のことです。優先度の高い機能から開発を行うことで、素早くリリースすることが可能だったり、リリース後に依頼主やユーザーの声を製品に反映しやすかったりというメリットがあります。
実は DevOps は、このようなアジャイル開発のトレンドから生まれた概念です。つまり、DevOps はアジャイル開発というシステムの「開発方法」の変革を、システムの「展開」「運用」さらに「組織文化」まで拡大して適用したものと言えます。そして、アジャイル開発の実施には DevOps というチームの在り方が非常に適しているのです。
Google Cloud を活用した DevOps の実現
Google Cloud では、このような DevOps を実現するためのいくつかのサービスを提供しています。具体的にどんなプロダクトがあるのかについて、詳しく見ていきましょう。
自社の DevOps を評価する「 DORA 」
Google Cloud では、DevOps の実現に役立つ DORA(= DevOps Research and Assessment )という仕組みを提供しています。DORA は簡単に言えば、DevOps の導入状況と企業のパフォーマンスを調査した「 State of DevOps Survey 」の調査及び結果報告書を取りまとめる組織です。
また、DORA では、各チームのシステム開発・運用の効率や、組織のパフォーマンスを改善するための能力を調査し、検証するサービスも実施しています。バージョン管理、デプロイの自動化、コードの保守性、変更承認の効率化などの能力から、チームにおける学習文化や仕事の満足度など、多岐に渡る項目を評価し、改善点を提示します。
DORA が蓄積した長年の業界データに基づく分析により、自社の DevOps が何に焦点を当てるべきか、どのように業務に優先順位を付けるべきかという洞察を得られます。評価結果を参考にしながら業務改善を実施することで、よりシステムのよりスピーディな開発や安定稼働に繋げられるでしょう。
実際に DORA の調査を受けたチームからは「チームの能力と開発速度の両方を伸ばせた」「市場のニーズに素早く応えられるようになった」「ユーザーとの信頼関係を築くことができた」といった声が上がっています。
参照元 Google Cloud “Google Cloud で実行されている DevOps 組織の有効性を評価する”
DevOps の各種プロセスで使えるプロダクト
Google Cloud では、分析結果から浮かび上がったポイントを改善するさまざまなプロダクトも提供しています。ここでは、DevOps の開発プロセスごとに、具体的にどんなプロダクトが利用できるのか紹介します。
プロセス | 内容 | 利用できる Google Cloud プロダクト例 |
---|---|---|
計画 | 開発するサービスに求められる機能を定義 | SLO の定義に関するドキュメント |
開発 | 計画に従って、コードの記述など開発を進める | Google App Engine、Google Kubernetes Engineなど |
継続的インテグレーション(CI) | 開発したコードのビルドとテストを継続的かつ自動的な実行 | Jenkin、Tokton など |
デプロイ | 開発サービスを実際の使用環境で使えるように設定 | Google Cloud Deploy など |
運用 | サーバーおよびアプリケーションの監視 | Cloud Monitoring など |
継続的フィードバック | サービスに関するユーザーからの意見や要望を継続的に取得・分析 | BigQuery など |
このほか、開発の効率化に繋げやすいサービスとしては、例えば複数の環境でビルド・テスト・デプロイできる「Cloud Build」 や、コンテナイメージと言語パッケージを保存、管理、保護できる「Artifact Registry」などがあります。
DevOps のための Google Cloud の活用事例
DevOpsを実現するためにGoogle Cloud の DORA を利用している、アメリカの金融大手企業「Capital One」の事例について紹介します。
コアシステムへの新機能の提供を加速させたいと考えていた同社は、開発・運用において何を改善すべきかを理解するために、自社で行っている DevOps を客観的に評価したいと考えていました。
そこで選ばれたのが、DORA です。当初は外部のコンサルタントへの依頼も検討していたそうですが、同社が知りたかった「自社の DevOps の能力の全体的な評価」「業界内の他社との比較」「どんな能力が最も重要か」の 3 つの項目を測定できるのは DORA だけけだったとのこと。
DORA の分析の結果、同行は「トランクベースの開発」と「変更管理プロセスの自動化」という 2 つに焦点を当てることで、パフォーマンスを向上できる可能性が高いことがわかりました。この結果に基づき業務改善を行ったところ、わずか 2 か月で、チームは本番環境へのリリース数を 20 倍に増やすことができたといいます。そして現在では、クラウドベースのアプリケーションが、毎日何度も本番環境にデプロイされているそうです。さらに、これらの結果はすべて、インシデントを増加させることなく実現されています。
このように DORA は、現状の DevOps の能力を測定するものであるのと同時に、学習の機会でもあるのです。同社のように分析結果をうまく活用することで、大きく業務効率を上げることができるでしょう。
まとめ
ここまで、DevOps の概念や DevOps を実現する Google Cloud のサービスについて紹介してきました。この記事を参考に、開発スピードの高速化と安定稼働の両方を実現できる DevOps の導入を検討してみてください。
弊社クラウドエースが新しいシステムインテグレーションのあり方として提唱する「SI2.0」では、DevOps を基本コンセプトとし、「なにを作るか」ではなく、「どのように作るか」にフォーカスし、お客さまにとっての成果を納品物のみで測るのではなく、事業を最もよく知るお客様自身の技術向上や知的創造の可能性を広げていくためのお手伝いをしております。
デジタルトランスフォーメーションで競争優位を得るために Google Cloud のインフラストラクチャを利用するのは非常に理に適った選択の一つです。
Google Cloud と クラウドエースのご紹介資料
まずは資料から、という方はこちらからダウンロードしていただけると幸いです。
この記事を共有する