先進的なDevOpsを実践する6社のケーススタディ

先進的なDevOpsを実践する6社のケーススタディ

昨今、DevOpsの認知は広まりを見せていますが、一方でDevOpsの導入や実践に向けては課題を抱える企業が多いのではないでしょうか。現在進行中にせよ、次のステップに進むにせよ、DevOpsの実現に向けた社内変革を進める際に大切なことの一つに、すでに大きな進歩を遂げ革新的なソフトウェアやサービスを世に送り出してきた企業のやり方を知ることがあります。汎用性のあるDevOpsの実現方法は存在しませんが、さまざまな企業におけるDevOps実現のケーススタディは、揺るぎないDevOpsを実現する上で役立つヒントやコツ、ときにはより実践的な方策を教えてくれます。今回の記事では、公開されている資料をもとに、実際に成果を上げている6社の「DevOps実現実践事例」をご紹介します。

そもそもDevOpsとは

はじめに、DevOpsについて簡単におさらいしておきましょう。

DevOpsの意味と目的

DevOpsとは、開発と運用の担当者が密に連携し、柔軟でスピーディーなシステム開発と運用を実現するという考え方です。非常にシンプルな考え方ですが、変化の激しい市場に即したスピードで開発し、ユーザーが求める高い品質でサービス提供していくことを求められている現代において重要な概念になります。

DevOps誕生の背景

DevOpsの考え方や目的は、誕生の背景を知ると理解が深まります。そもそもウォーターフォール開発をはじめとした従来の開発手法では、開発期間が長いことが課題でした。そこで、2000年代初頭に生まれたのがアジャイル開発という考え方になります。アジャイル開発では、小さな単位で実装とテストを繰り返して全体の開発期間を短縮し、プロダクト価値を最大化することをめざします。
アジャイル開発では開発チームが短期間のうちに頻繁にコードを作成するものの、運用チームでの品質確保のためにデプロイに時間を要し、高速開発の価値が損なわれてしまう事態が生じました。そこで、「スピーディなシステム開発と運用の実現には、開発チームと運用チームの密な連携が必要である」という認識が高まり始めます。そのようななか、2009年にFlickrエンジニアによるプレゼンテーションをきっかけに「DevOps」という用語が生まれ世の中に広まっていきました。

DevOpsとアジャイル開発の違い

その歴史的な背景からも「DevOps」と「アジャイル開発」は混同されがちですが異なる概念です。アジャイル開発は、具体的に開発のプロセスや方法を定めた開発手法の一種と言えるのに対して、DevOpsは「開発と運用の密な連携が重要である」という考え方を示した概念で企業文化と結びつきが強いことに一つの特徴があります。

DevOpsの重要性

DevOpsは開発と運用に対する総合的な視点であり、お客様に提供する価値に重きを置いています。分断された個々の業務ではなく、プロダクトの立案から提供までの全体で最適化を図り、大きなビジネス価値を迅速に提供することをめざす。そのためDevOpsへの取り組みや実現は、開発期間の短縮だけでなく、バグの減少や安定したサービス運用の実現にもつながります。

DevOpsの4つの基本原則

DevOpsは特定の方法論ではありませんが、DevOpsの実践においては次のような基本原則があります。これらの基本原則の実践によりシステム開発と運用のシームレスな統合に繋がっていきます。

  1. ソフトウェア開発ライフサイクルの自動化
  2. コラボレーションとコミュニケーション
  3. 継続的な改善と無駄の最小化
  4. ユーザーニーズの重視とフィードバックループの最短化

Devopsについては以下の記事でも詳しく解説しています。ぜひ併せてご覧ください。
「DevOps」とは?〜超基本から実践のポイントを解説〜

DevOps実践における様々な障壁

開発と運用の密な連携で、柔軟かつスピーディーな開発を実現し、システムの利用価値の最大化をめざすDevOps。日々激しく変化する市場において、顧客に価値を提供するためにDevOpsの実現は重要な要素であり、DevOpsを実践しようとさまざまな企業が取り組んでいます。しかし一方で、DevOpsは「企業文化や概念を示した概念」であり特定の実現の方法論ではないことからも、実際のDevOps実践において試行錯誤しながらさまざまな課題に頭を抱えている方もいらっしゃるのではないでしょうか。

例えば、「組織における文化の変革」「高頻度の改修・リリースにおけるサービス品質の確保」「複雑なシステムのモニタリングと自動化の実現」など、DevOps実現に際して企業が直面する課題は多岐にわたります。また、企業の規模や分野、状況によっても課題や難易度が変わってくるでしょう。ときには、DevOpsの必要性を理解しながらも、DevOpsのメリットよりも課題の方が大きいように感じる方もいらっしゃるかもしれません。

こうした「DevOps実践の課題」にぶつかったときには、DevOpsの成功事例を参考にするのがおすすめです。具体的な事例やケーススタディからは、それぞれの課題に対するより実践的なDevOpsの実現に向けたヒントを得られるとともに、DevOpsがビジネスの成長にとって有益であることを再認識できます。この記事で紹介する「Docusign(ドキュサイン)」「Gengo(ゲンゴ)」「Turnitin(ターンイットイン)」「Forter(フォーター)」は、DevOpsのユニコーンでも象徴的存在でもありません。しかし、それ故にどのようなシステム・アプリケーションにも関連しうる話であり、DevOpsの実践に課題を抱える企業にとって参考になり得ます。また、「Netflix(ネットフリックス)」と「Etsy(エッツィ)」は、世界的なDevOpsの象徴的存在ともいえ、徹底したDevOpsの実践がビジネスの成功に結びつくことを再認識するのに役立つでしょう

事例1: Netflix(ネットフリックス)

NetflixのDevOps実現

動画配信サービスを提供するNetflixは、大規模にDevOpsを実践し、成功している企業といえます。Netflixには「組織力をフル回転させて、素晴らしい業績を上げる環境をいかに整えているか」という数多くのエピソードがあります。また、PagerDutyはそのNetflixのインフラを支えるサービスの一つです。
公開されているこちらのNetflix社の資料で特に注目したいのは「リファレンス・アーキテクチャ」つまり「Cassandraのデータベースを導入する際にリスクをどう乗り越えたのか」という点です。このエピソードからは、DevOpsがいかに危機に強い体制であるかを理解できます。CassandraはNoSQLの一つで、分散してスケールすることに注力して開発されたデータベース管理システムです。Netflixでは、Cassandraデータベースのテストを、リリース前にかなりの時間を割き徹底的に行っています。このプレゼンテーションとは別のところで、Netflixでは人為的に障害を起こすツール「カオスモンキー」を開発して日々実行し、開発を邪魔する形で障害対策にエンジニアを巻き込み訓練していたことが語られています。一方でバックエンドのテストは、リリース後に限られたシナリオだけで行っています。システム運用開始後には、実際にCassandraを動かしているAWSに大規模な再起動が必要になったことがありますが、事前のエンジニアを巻き込む障害対応の訓練をしたおかげで乗り越えられたとされています。

事例2: DocuSign(ドキュサイン)

DocusignのDevOps実現

DocuSignは、契約書など向けの電子署名ソリューションサービスを提供する企業です。DocuSignでは、アジャイルな開発を行なっていましたが、DevOpsの実現に際して大きな課題がありました。それは、DocuSignのビジネスでは、継続的インテグレーションやデリバリーなどが求められるということです。取引を扱うビジネスで重要になるのが、「金銭的な取引」だけでなく「署名や承認のやり取り」です。例えば、不具合により承認プロセスに間違いが生じれば、それは深刻な問題につながります。そのため、革新的なシステム開発と同時にリリース時の品質も求められます。そこで、スピードを落とすことなく革新的な開発を継続させるために採用されたのが、アプリケーションモックアップ、特にAPIモックと呼ばれる、非常に洗練されたツールです。このツールは、実際のAPIと同様に提供されるデータや機能に対して応答を返します。さらに、インシデント管理システムと連携させることで実環境と同様の環境でシミュレーションテストを行うことができ、問題があればリリース前に修正できます。

Docusignの事例から学べるのは「重要な取引や機密情報を扱い品質の高さが求められるアプリケーションでも、DevOpsの基本原則により革新的な開発を継続させられること」です。特にAPIモックの活用、そしてインシデント管理システムとの連携による実環境に則したテストは、スピードと安定性を両立させるための具体的なヒントになるかもしれません。

事例3: Etsy(エッツィ)

EtsyのDevOps実現

Etsyは、ハンドメイド作品やヴィンテージ商品などの出品および購入ができるマーケットプレイスです。Etsyはその分野に特化したテクノロジーとツールの開発だけでなく、DevOpsの実践企業としてもよく話題に挙がります。Etsyは、DevOpsの採用・実践をトップダウン方式で行なったことを明らかにしています。全社を通じて「企業文化、採用方針、モチベーションアップのテクニック」などをボトムアップ方式で変更することは非常に長い時間がかかり大変であることを初期段階から理解していたのです。また、インフラなどの戦術的な面では、特に「チーム間の相互交流」「オープンドアポリシー」「関係者全員への可視性」に重点が置かれていました。

事例4: Gengo(ゲンゴ)

GengoのDevOps実現

翻訳プラットフォームのGengo資料では、「サービス」「サーバー」「顧客」それぞれのモニタリングでどのようなツールやサービスを活用しているかが説明されています。「モニタリングの自動化」は、DevOpsの基本原則であるソフトウェア開発ライフサイクルの自動化の実践であるとともに、情報の蓄積から継続的な改善をはじめとした他の基本原則の実現にもつながる重要な要素です。Gengoは、一般的な商用ユーザーだけでなく、各社のアプリケーションに統合されて使用されています。広範に使用されているAPIであるからこそ、アップデートの結果発生している問題の特定は容易ではありません。またGengoでは「より優れたアプリケーションの開発」だけでなく「チームがイノベーティブな活動により時間を割けるようにする」という大きな目標があります。これらの課題解決と目標達成ができるスマートなモニタリングツールとしてPagerDutyを含むいくつかのサービスの活用が具体的に紹介されています。

事例5: Turnitin(ターンイットイン)

TurnitinのDevOps実践

Turnitinは、論文やレポートなどの品質向上のためのアカデミック向けプラットフォームです。資料のなかで、Turnitinのデータベース管理者は「Turnitinのアプリケーションのでモニタリングがデータベースパフォーマンスをどう向上させるのか」という点について非常に有益なポイントを確認することができます。「スパイク(データの急激な変動)に対する異常の判断」「バックエンドの応答時間の監視」「異常時の早急な対応」といったシステム運用にかかる能力がデータベース管理者以外にも求められることがよく理解できます。資料の中ではGengoと同じくモニタリングについて紹介されていますが、DevOpsの基本原則のなかにおいても、特に「コラボレーションとコミュニケーション」の実践として顕著な例であり、それがサービスの品質向上に直結することを示しています。

事例6: Forter(フォーター)

ForterのDevOps実践

Docusignと同様に、Forterは機密情報を扱い処理の迅速さが求められる決済アプリケーションです。Forterは、DevOpsの基本原則の一つである「自動化」において、強力なインシデント管理による自己修復に重点を置いています。例えば、頻発する課題をフィルタリングして自動で解決する、または事後に人間が参照できるようにシステムに取り込むなど、あらゆる課題に対応できるよう優れたアーキテクチャを構築しています。また、課題解決だけでなく再発防止にも力を入れていることは、DevOpsの基本原則である「継続的な改善と無駄の最小化」につながります。このことは、EC業界のさらなる進化につながる可能性を秘めていると言えます。

まとめ: 自社に合う事例をヒントにDevOpsを推進しましょう!

自社の状況に合った事例を参考にすることは、段階的にDevOpsを導入していく際のチェックリストとしても役立ちます。スタックやアプリケーション、チームなど異なる点があるため、他の組織のプロセスをそのまま使うことはできないかもしれませんが、DevOpsの実現・実装ですでに実績を上げている事例から学べることは多く、それがさらに新たな可能性につながります。

また、今回ご紹介した事例からは、ツールやシステムの存在がDevOpsの実践を支えていることもわかります。そこでおすすめなのが、DevOpsを実践する企業に多く採用されているPagerDutyの高度なインシデント管理です。PagerDutyは、エンジニアと本番環境に展開されたコードとのつながりを維持し、AI・機械学習によってノイズを低減させながら、重大な事態が発生した際にはエンジニアが適切に介入できるようにサポートします。特に、PagerDuty AIOpsは、AIによる自動化で革新的なインシデント管理を実現します。インシデントへの対応時間を削減し、エンジニアがシステム開発やイノベーションにより集中できることを支援します。DevOpsの実践で課題を抱える方や新機能の「AIOpsアドオン」にご興味のある方は、この機会にぜひPagerDutyをお試しください。
また、PagerDutyの導入事例はこちらからご確認いただけます。

▼こちらの記事もおすすめ
システム障害を未然に防ぐ「インシデント管理」とは?
「DevOpsにおけるE2Eテスト」顧客体験を高める重要ポイント解説

NTTデータ様 事例
大規模組織における
「インシデント対応設計方法」

NTTデータ様では、決済をはじめ様々なシステムのパブリッククラウド化に取り組む中で、SRE/CCoEとしてPagerDutyを標準的に活用可能とする設計を実現しています。
「大規模組織においてPagerDutyを展開するための設計・展開方法」を動画で解説!→ PagerDutyの資料をみる(無料)

NTTデータ様 大規模組織における「インシデント対応設計方法」

この記事が気になったら

  • Facebook
  • LinkedIn
  • twitter
  • はてなブックマーク

PageDuty公式アカウントをフォロー

  • Facebook
  • LinkedIn
  • twitter

関連ブログ記事関連ブログ記事

検索検索
タグタグ
インシデントをより早く・少ないリソースで解決
閉じる