DevOpsは「文化」である
かつて、システムの開発手法はウォーターフォール開発が主流だったが、近年ではアジャイル開発への移行が進んでいる。DevOpsは、アジャイル開発のような動的な環境変化に対してうまく対処できるよう、組織が協力しあう文化運動を指す。だが、ときおりDevOpsの趣旨が誤解されてしまうこともあり、それによって3つの「残念なDevOps」が起こりうるという。
1つ目は「スーパーエンジニアに2人分の働きをしてもらうのがDevOpsである」というもの。スタートアップのフェーズで、いわゆる「なんでもできる人材」が求められるケースもあるが、この状態は決して長続きしない。組織がスケールしないうえに、エンジニアが疲弊してしまうためだ。
2つ目は「社内でDevOpsを推進しようとしているものの、現場にさっぱり浸透しない」というケース。これまでウォーターフォール開発をしていた組織では、アプリ開発者とインフラ運用者は全く違う組織であり、大きな壁が立ちはだかっている。その隔たりを解消しない限り、DevOpsは成功しないのだ。
3つ目は「DevOpsってつまり自動化ツールを導入すればいいんでしょ?」という勘違い。DevOpsにとって、自動化は重要な要素である。しかし、自動化はDevOpsにとっての必要条件ではあるが、十分条件にはならない。「ツールを入れればOK」ではないのである。
「DevOpsは『文化』です。何かのツールを導入しているから、何かを推進している人がいるからDevOpsなのではありません。文化を醸成できなければ、決して成功しないのです」(佐々木氏)
しかし、企業の文化を変えるのは容易ではない。各ステークホルダーが業務において大事にしているものは異なり、共通の行動指針を持っているわけではないからだ。文化を変容させていくには、全メンバーがなんらかの「共通項」を持つ必要がある。そのために必要なのが計測である。
「DevOpsにおいて、計測は文化醸成の助けとなります。アジャイル開発ではシステムとビジネスが日々変化していきますが、そうした変化を計測し、全メンバーが同じ情報を目にすることで、『何をすべきか』の共通認識が生まれるのです。計測ができているチームは、高度に成熟しているDevOpsチームといえます。
あるDevOpsに関するレポートによると、最も高度に成熟したDevOpsチームは、未熟なDevOpsチームと比較して46倍以上も頻繁にコードをデプロイし、コードのコミットからデプロイまでのリードタイムが2555倍短く、変更失敗率が7分の1であり、インシデントからの回復時間が2604倍早いという事例もあります」(佐々木氏)
だが、DevOpsにおいて適切に計測を行うことは難しい。その理由は大きく3つある。
1つ目は「ツールのサイロ化」だ。それぞれが違うKPIやミッションのもと行動しているため、DevOpsの各ロールが計測したい項目は異なっている。そのため、用いているツールもバラバラの状態になっている。
2つ目は「システムが複雑で動的である」ということ。アジャイル開発では、アプリケーションに最新の技術が導入されているケースが多い。構成要素の種類が多く、各コンポーネントも動的に変化している。変容し続ける要素を、どのように観測するかを考えねばならない。
3つ目として「多忙なメンバーにとって、計測のために時間を割くことが難しい」という課題もある。
New RelicがDevOpsの計測課題を解決する
これらの課題を、New Relicならば解決できる。
DevOpsにおける計測の実現に向けて、New Relicが提供しているものは大きく2つある。「フルスタックな計測プラットフォーム」と「DevOps計測に向けたソリューションガイド」だ。まず前者から解説していこう。
「New Relicは、すべてを計測し、見通すための場所」であると佐々木氏は語る。その理由は、アプリケーション・インフラのパフォーマンス、カスタマー・エクスペリエンス、ビジネスゴールといった各ロールが必要な情報を、New Relicという1つのサービス上で統合的に計測できる点にある。
「アプリケーションやインフラのパフォーマンス計測は重要です。なぜなら、パフォーマンスが向上することはデジタルビジネスにプラスの影響を与えるためです。いつパフォーマンスが劣化するか、何がボトルネックになっているのかを可視化することで、適切な対応策を考えられるようになります。
また、ユーザーがアプリケーションを開いてから、ページのロードにどれくらいの時間がかかっているのか。どんな箇所で離脱しているのかなどをチェックしていけば、カスタマー・エクスペリエンスの向上につながります。
さらに、取引あたりの収益やサービスの成長率といった指標を見ることで、どれほどビジネスゴールを達成しているのか可視化できるわけです。DevOpsチームにおいて、何が自分たちにとって重要なビジネスゴールなのかを定め、そのKPIを計測することが重要になります」(佐々木氏)
New Relicのさらなる特徴として、クラウドや最新鋭の技術要素に対応していることも挙げられる。Amazon Web Services(AWS)やGoogle Cloud Platform(GCP)、Microsoft Azureなどの主要クラウドプラットフォームはもちろん、コンテナオーケストレーションシステムのKubernetesにも対応している。
また、New Relicは導入・設定が非常に容易である。New Relic社の公式サイトからサインアップすると、2週間無料でトライアル利用ができる。セットアップ作業は、アプリケーションの実行環境にNew Relicエージェントを入れるだけ。佐々木氏自身も、はじめて触ったときにはその便利さに感動したそうだ。こうした数々の機能を用いて、DevOpsの構成メンバーに合わせた統合的な計測を行うことが重要だ。
「DevOps計測に向けたソリューションガイド」についても解説したい。このガイドは「準備」「活性化」「最適化」という3つのステップに分かれていることが特徴だ。各ステップでは、どのようなノウハウを解説しているのだろうか。
「ステップ1の『準備』においては、インストゥルメントと基準値の策定を行います。New Relicを導入し、現状を可視化してSLO(サービスレベル目標)を策定。さらにSLOに基づいてアラームを設定していきます。
ステップ2の『活性化』では、DevOpsの頻繁なリリースを支えるために、チームでゴールを共有して、変更の影響をきちんと計測できるようにしていきます。インシデント対応を自動化し、コードリリース状況も評価可能にしていくのです。
ステップ3の『最適化』では、継続的な自動化とコミュニケーションおよび改善を行っていきます。アプリの依存関係を把握し、顧客体験や運用体制、システムそのものを改善し続けていくのです。こうした運用を実現するための知識を、ソリューションガイドではご提供しております」(佐々木氏)
DevOpsは、動的に変化する環境に対してうまく対処するための文化だ。その実現において計測が重要であること。New Relicがその大きな助けになることが伝わるセッションとなった。
お問い合わせ
New Relic株式会社