DevOpsに関する小説が実際に書かれており、ある著者がDynatraceのPerformイベントで自身の見解を語りました。

Table of Contents

DevOpsに関する小説が実際に書かれており、ある著者がDynatraceのPerformイベントで自身の見解を語りました。

DevOps ライターの Gene Kim 氏は先週の Dynatrace Perform イベントで講演し、Dynatrace については一言も触れず、技術的負債と開発者の生産性に焦点を当てました。

Kim 氏は、Parts Unlimited という架空の会社のストーリーを通して DevOps の原則を解説した「小説」 The Phoenix Project (2018) とThe Unicorn Project (2019)の著者です。

ユニコーン・プロジェクトは、キムの「5つの理想」に基づいたソフトウェア開発に関するプロジェクトです。普段はこういう話には我慢がならないのですが、キムがバス・ファクター(「何人がバスに轢かれたらプロジェクトは深刻な危機に陥る?」)やランチ・ファクター(「何かを成し遂げるには、何人をランチに連れて行かなければならない?」)について話し始めた時、キムは心を開いてくれました。フェニックス・プロジェクトでは、パーツ・アンリミテッドはバス・ファクター1に悩まされていました。ブレントという男は、物事の仕組みに関する秘密をすべて頭の中に抱えていました。彼は有能でフレンドリーでしたが、チームにとっては災難でした。

バスの要素もランチの要素も技術的な概念ではなく、ツールやテクノロジーよりも、組織やチームの機能不全の程度の方が重要だというのが、この議論に共通する点です。とはいえ、テクノロジーの進歩は変化をもたらしており、キム氏はPerformで、DevOpsの動きは1980年代の製造業が「リーン原則の適用によって革命を起こした」のと同じように破壊的であると主張しました。重要なのは、「信頼性、セキュリティ、安定性」を維持しながら、1日に複数のデプロイメントを可能にする自動化です。キム氏の視点から見ると、これこそが、しばしば誤用されるデジタルトランスフォーメーションの概念の真髄です。

ジーン・キムがバーチャルDynatrace Performイベントで講演

ジーン・キムがバーチャルDynatrace Performイベントで講演

迅速な導入には、自動化だけでなく、アーキテクチャやコーディングのプラクティスも重要です。キム氏は、「理想的には、誰もが1つのファイルやモジュールを見て必要な変更を加えるだけで、必要なものを実装できる」と述べています。「すべてのファイル、すべてのモジュール、すべてのアプリケーション、すべてのコンテナを理解し、変更しなければならない」のは理想的ではありません。なぜなら、機能がその領域全体に分散しているからです。理想的には、変更は他のコンポーネントから分離してテストできる必要があります。

キム氏の5つの理想はどれも同じように提示されたわけではなく、おそらく最も重要なのは2番目の「集中、フロー、そして喜び」でしょう。彼はJava仮想マシン(JavaScript)用の関数型プログラミング言語であるClojureに言及しました。Clojureは非関数型プログラミング言語よりも「考えるための」優れたツールであり、不変性、構成可能性、冪等性といった中核概念が気に入っていると述べました。同じ概念がDevOps、例えばDockerコンテナなどに現れているとキム氏は言います。「コンテナに永続的な変更を加えることはできません。新しいコンテナを作る必要があります。Kubernetesは同じ概念を取り入れ、システム全体に適用しています。」

DevOpsのもう一つのメリットは、開発者がおそらく気に入らない事柄、つまり「自分のアプリケーション以外のすべて」、つまり依存関係、シークレット管理、YMLファイル、パッチ適用、Kubernetesデプロイメントファイルの構築、さらには「クラウドコストがなぜこんなに高いのか」といったことについての心配から解放されることだと彼は述べた。おそらく彼はこれを読んでいたのだろう。これらのことは重要だが、「人々の頭の中にあるのではなく、開発者が日々の業務で使用するツールの中にあるべきだ」と彼は述べた。彼はDevOpsの専門家について、「私たちの仕事は、開発者をこれらの事柄から解放することだ」と述べた。講演の後半では、企業は開発者の労力の3~5%を開発者の生産性向上に費やすべきだと主張した。

DevOpsの洞察はテスト駆動開発(TDD)の洞察に似ていますが、TDDは焦点がより狭く、強力なDevOpsワークフローが確立されれば、開発者は何かを壊すことを心配することなく、コードの改善に集中できるというものです。キム氏によると、測定すべきは「デプロイメントをどの程度恐れているか」です。これらすべてを正しく実行できれば、集中力、フロー、そして喜びが自然と湧いてくるという考えのようです。

キム氏は「技術的負債の返済」についても言及した。これは、機能を本番環境に投入するために近道を取ることで、品質の低下や不具合の増加につながることを意味する。やがて、これは「不具合の修正が仕事の大半を占める」ことを意味し、機能の提供が低下し、最悪の場合、顧客離れや士気の低下を招くことになる。

企業事例のセクションで、キム氏は2010年のノキアの事例を挙げた。当時のモバイルOSであるSymbianのビルドプロセスは48時間にも及ぶという、絶望的に遅いものだった。Windows Mobileでさえ、「Symbian OSを使い続けるよりはましだった」としながらも、「Windows Mobileもそれほど良い対応ではなかった」と述べている。マイクロソフトについては、キム氏は自社の「瀕死」の経験、つまり2002年のセキュリティ対策の停止と機能凍結、そして信頼できるコンピューティングに関するビル・ゲイツ氏のメモを挙げた。「機能追加とセキュリティ問題の解決のどちらかを選ばなければならない場合、セキュリティを選択する必要があります」と彼は述べた。これは技術的負債の返済だとキム氏は述べた。

なぜDynatraceはジーン・キム氏を講演に招いたのでしょうか?キム氏のアイデアは特定のツールに特化したものではありませんが、同社は自動化された可観測性のニーズに応える企業だと自負しています。つまり、現代のアプリケーションが生成する膨大なログやテレメトリデータをAIで解析する可観測性です。この製品は15年前に開発されましたが、2012年に刷新され、2014年には「全く新しいDynatrace」へと進化したと、CTO兼創業者のベルント・グライフェネダー氏は語りました。

Dynatraceによるサイト信頼性の監視

Dynatraceによるサイト信頼性の監視

「何が実行されているか、そしてその依存関係を検出し、水平方向と垂直方向のトポロジカルグラフを構築して、どのサービスがどのテクノロジー上で実行されているかを把握します」と彼は述べた。次にAIがデータを解釈し、異常を特定する。グライフェネダー氏によると、同社がBizDevSecOps事業に参入しているのは、「一般的な企業のセキュリティ対策ではクラウドネイティブ環境では全く不十分であることを学んだからです。(中略)もはや単純な境界ファイアウォールではアプリケーションを保護できないため、あらゆるサービスにセキュリティを組み込む必要があります」。

Perform では、Kubernetes とマルチクラウドのネイティブ ログ サポート、Dynatrace 拡張機能のカタログを形成するソフトウェア インテリジェンス ハブ、開発者が「ユーザーの視点からすべてのクリック、スワイプ、タップ」を確認できるモバイル アプリケーションのセッション リプレイ (データのプライバシーも尊重すると主張)、観測性と修復のための自動化ツールである Keptn を組み込んだクラウド自動化などの新機能が発表されました。

ツールの改善は良いことですが、バスやランチの問題は解決できるでしょうか?答えはノーですが、技術的負債の返済には役立つかもしれません。®

Discover More