Monitoring in the time of Cloud Native — Part 1
クラウドネイティブにおけるモニタリング — Part 1
今回からクラウドネイティブにおけるモニタリングに関しての記事をご紹介していきたいと思います。
とても長い文章になるので、いくつかに分けて投稿していきたいと思います。
とても役に立つ内容なので、ぜひご一読ください。
https://medium.com/@copyconstruct/monitoring-in-the-time-of-cloud-native-c87c7a5bfa3e
インフラストラクチャーのスペースはパラダイムの真っただ中にあり、常に変化しています。古くからある企業からスタートアップの小さい組織まで、ビルドとオペレーションシステムの方法は進化してきました。
コンテナ、Kubernetes、マイクロサービス、サービスメッシュ、イミュータブルインフラストラクチャー(不変なサーバー基盤)、サーバーレスはすべて、ものすごく将来性のあるアイデアで、ソフトウェアを運用する方法を根本的に変えてくれました。企業がよりそういったパラダイムにシフトするにつれ、私たちが構築したシステムはより分散型になり、コンテナ化においてはよりエフェメラルになっていっています。
まだまだこういったシステムを導入して間もない段階であり、新しいパラダイムの失敗がまだとても不明瞭なもので、あまり広く知りわたっていません。それらのツールは時間を経てよりよいものへと改善されていっています。それがまだの場合、すぐにネットワークと根本的なハードウェアの不良がしっかりとアブストラクトされていて、私たちのアプリケーションがネットワークとスケジューリングのアブストラクションの最新で最高のものに加え貯金箱としては十分なアプリケーションを確実なものとする単独の責任を私たちは請け負うことになります。
どのGIFEE (Google Infrastructure for Everyone Else:誰もが使えるGoogleインフラ)でも、もしくは産業グレードのサービスメッシュでも、私たちの書いたソフトウェアを修正することになります。既製品のコンポーネントからのよりよいレジリエンスと故障耐性パラダイムは今日、不良の原因はほとんどアプリケーションレイヤー、もしくは異なるアプリケーション間の複雑なインタラクションによることを意味します。既製品のコンポーネントが正しくコンフィギュアされたと仮定しての話ですが。 Kubernetesや友人に仕事を任せると、アプリケーションとビジネスロジックのパフォーマンス特性の変動に集中することがこれまで以上に重要になります。私たちは、アプリケーション開発者がサービスの頑丈さを高めることに集中するのがかつてないほど容易になり、そうすることで、その上に構築するオープンソースソフトウェアが付随する配当を支払うと信じています。
この勇敢な新しい世界をうまくコントロールするために、サービスとインフラストラクチャーを可視化することは、これらを理解し、運用し、維持し、進化させるためにこれまで以上に重要になっています。
幸運にも、この課題に立ち向かうのに役立つ新しいツールが登場しました。それらのツールは、全く同じ問題に苦しみながらも、コミュニティの関心、コミュニティ主導の開発などに関しての問題を解決し、 オープンガバナンスモデルは、これらのツールの持続可能性と開発を促進するために多くのことを行います。そのツールそれ自身は、そのインフラストラクチャーのパラダイムとすべての面において、初期段階でのものであるという点において共通しています。
オープンソースツールの波に加え、Google、Facebook、Twitterの国際的なツールを手本とした商業的なツールは初期のクラウドネイティブパラダイムを導入した人たちによって、真の必要なものとして登場しました。近年、両方のカテゴリーのツールがどの程度進化してきたかを考えると、今は本当に色々な選択肢があります。
Decision Making in the Time of Cloud Native
しかし、導入するか、または購入するかの自由に決められる多くのツールには、まったく異なる問題があります。それは意思決定の問題です。
自分のニーズに一番合ったツールをどうやって見つければいいのでしょうか? 色々なツールが似たり寄ったりの場合、どのようにその違いを見いだせればいいのでしょうか?モニタリング(モニタリング)はもう流行遅れですが、可観測性は今大人気だと聞いたことがあると思います。それは私たちがもう「モニタリング(モニタリング)」をしないという意味なのでしょうか?よく「可観測性の3つの柱」という言葉をよく聞くと思います。でも一体可観測性って一体何なんでしょうか。そしてなぜそれを気にしないといけないのでしょうか?ホントのところは、ログとメトリックをどこに送るか、ということは関係なく、その二つの違いは何なんでしょうか? 追跡について色々な情報を耳にしていると思います。でも、もしコンテクストを伴うのみであれば、トレーシングがどのくらい役に立つのでしょうか。メトリックはただのログなのか、それとも、保存するバックエンドシステムのために何度でも起こるトレースなのか…。本当にその三つが必要なのでしょうか?
以前書いた記事の中でも述べましたが、もう一度ここでもお話しておきます。特に、実現不可能なようなことをする新しいテクノロジーに夢中になっているとき、そういったテクノロジーの改善の余地がある問題を改善することはとても魅力的なことです。しかし、そのインターセクション(交点)を最小化することになります。ツールを購入/構築する前に、特定のチームが直面する独自のエンジニアリングの課題に対して提供できる最大のユーティリティを評価することが重要になります。特にモニタリングスタックのような需要なものを選択する場面において、よりよいテクノロジーを選択することができるようにするために、完全に理解することがとても重要なのです。
- それぞれのカテゴリーツールの強みと弱み
- それらが解決する問題
- それらの妥協点
- 導入の簡単さ/既存のインフラストラクチャーへの統合
一番大切なのは、目の前にある問題を解決しているかどうかきちんと確認することです。新しいツールを使って解決するのではなく、です。0から始めることは、ほとんどの人にとってまったく楽しいものではありません。そして、自分のモニタリングスタックをモダンにするときに一番難しいのは、それを何度も改善することです。モニタリングスタックのリファクタリングの繰り返される改善は組織的に見ても技術的に見てもとても大きな課題になります。
この記事の目的は、そういったテクノロジーに光を当て、私たちがこれから解決する問題のコンテクストの中で主に議論を組み立てることです。そして私がこれから行うトレードオフも大切です。また、特定のツールの包括的な答えやソリューション、デモをしているのではないことを前もって述べておこうと思います。この記事を通じて、読者に色々なアイデアと、できれば、よりよいシステムを設計するときの疑問が出てきた時のヒントになればと思っています。
Outline
- 可観測性とは一体何なのか、そしてモニタリングとはどう違うのか?
- 「モダンな可観測性の3本柱」とは:ロギング、メトリック収集、リクエストのトレース
- リソースのユーティライゼーションにおいての長所と単語、使いやすさ、オペレーションのしやすさ、費用対効果
併用する場合、3つすべてのスケーリングに伴う課題の正直な見解
何をモニタリングすべきか、そしてモダンなクラウドネイティブ環境においてどのように関しすべきか;ログされるよりもメトリックとして集計される方が適しているもの;どのように、3つのソースすべてからのデータを使用して、実用的なアラートと洞察に富んだ分析を導き出す方法とタイミング
上記の3つのツールにツールを追加することが理にかなっている場合
What to “monitor” and how in a modern cloud native environment?
この記事のタイトルは「 Monitoring in the time of Cloud Native(クラウドネイティブにおけるモニタリング)」です。なぜ可観測性ではなく、モニタリングと呼んでいるのかいつも質問されます。まさにタイトルに「Cloud Native(クラウドネイティブ)」とありますが、このあいまいな言葉により嫌味な感じを期待していました。これと同じような理由でそれを可観測性とは呼ばないようにしました。バズワード(もっともらしいけれど実際には定義や意味があいまいな用語)は2つも必要ないのです。
私はこの二つには違いがあると強く信じています。その理由は、「不具合」の性質が変わってきているからです。全体的なシステムの動き(誤差動)も変わってきていいます。そして、それらのシステムが必要とする条件や、それらのシステムが機能する保証条件も変わってきているからです。それらの課題を上手く解決するために、構築の方法やソフトウェアのオペレーションを変えるだけではなく、自分たちのサービスにより優れた可視性を取り込む必要があり、それは、プロダクションの中で自分たちのサービスのパフォーマンスのフィードバックループをより短くしてくれ、よりよいサービスの構築をできるようにさせてくれます。この好循環を作り出すために、可観測性とは何か、そしてモニタリングとはどう違うのかを理解することが重要なのです。
Orangesys.ioでは、kuberneteの運用、DevOps、監視のお手伝いをさせていただいています。ぜひ私たちにおまかせください。