全般 - よくある質問
ログはトレースとどのように異なりますか?
ログは単一のアプリケーションと、それに関連するイベントに限定されます。たとえば、ユーザーがマイクロサービスプラットフォーム上でホストされている Web サイトにログインし、そのサイトで購入を行った場合、複数のアプリケーションからそのユーザーに関連するログが出力される可能性があります。
- フロントエンド Web サーバー
- 認証サービス
- 在庫サービス
- 支払い処理バックエンド
- ユーザーに領収書を送信するアウトバウンドメーラー
これらのすべてがこのユーザーに関する何らかの情報をログに記録する可能性があり、そのデータはすべて価値があります。しかし、トレースは、これらすべての個別のコンポーネントにまたがる単一のトランザクション全体にわたって、ユーザーのインタラクション全体の単一の一貫したビューを提示します。
このように、トレースは単一のアクティビティのビューを示すことを目的とした複数のサービスからのイベントのコレクションであるのに対し、ログはそれを作成したアプリケーションのコンテキストに紐付けられています。
どのシグナルタイプが不変ですか?
3 つの基本シグナルタイプ(メトリクス、ログ、トレース)はすべて不変ですが、実装によってその保証の程度は異なります。たとえば、ログの不変性は多くのガバナンスフレームワークにおける厳格な要件であり、これを確保するための多くのツールが存在します。メトリクスとトレースも同様に、常に不変であるべきです。
これは「不正なデータ」、つまり不正確なデータの処理に関する疑問につながります。AWS オブザーバビリティサービスでは、誤って送信されたメトリクスやトレースを削除する機能はありません。CloudWatch Logs ではログストリーム全体の削除は可能ですが、一度収集されたデータを遡って変更することはできません。これは設計上の仕様であり、お客様のデータを最大限の注意を持って扱うための重要な機能です。
イミュータビリティはなぜオブザーバビリティにとって重要なのか?
不変性はオブザーバビリティにとって最も重要です!過去のデータが変更可能であれば、システムや運用を進化させる際の選択に影響を与える重大なエラーや異常な動作を見逃してしまう可能性があります。例えば、時間に大きなギャップを示すメトリクスのデータポイントは、単にデータ収集が行われていないことを示すだけでなく、インフラストラクチャにおけるより大きな問題を示している可能性があります。同様に、「null」データについても、空のタイムシリーズでさえ価値があります。
ガバナンスの観点から、アプリケーションログやトレースを事後に変更することは、否認不可性の原則に違反します。これにより、システム内のデータがソースアプリケーションによって意図されたとおりであることを信頼できなくなります。
ブラスト半径とは何ですか?
変更のブラスト半径とは、その変更が環境にもたらす可能性のある被害の範囲を指します。たとえば、データベーススキーマを変更した場合、潜在的なリスクにはデータベース内のデータと、それに依存するすべてのアプリケーションが含まれる可能性があります。
一般的に、変更の影響範囲を縮小することはベストプラクティスであり、変更を小さく、安全で、可逆的な単位に分割することは、実現可能な場合には常に推奨されます。
「クラウドファースト」アプローチとは何ですか?
クラウドファーストの戦略とは、組織がインフラストラクチャのすべてまたは大部分をクラウドコンピューティングプラットフォームに移行することです。物理的なサーバーなどのリソースを使用する代わりに、クラウド上にリソースを配置します。
共有ハードウェアに慣れている方にとっては、これは急進的に思えるかもしれません。しかし、その逆 もまた真実です。クラウドファーストの考え方を採用した開発者は、サーバーを物理的な場所に結びつけるという考え方を考えられないと感じます。クラウドファーストのチームは、サーバーを個別のハードウェアや仮想サーバーとして捉えません。代わりに、ビジネス機能を果たすためのソフトウェアとして捉えます。
クラウドファーストは、2020年代にとって、モバイルファーストが2010年代に、仮想化が2000年代初頭にあったものと同じ存在です。
テクニカルデットとは何ですか?
Wikipedia より:
ソフトウェア開発において、技術的負債(デザイン負債またはコード負債とも呼ばれる)とは、より時間のかかる優れたアプローチを採用する代わりに、今すぐ簡単な(限定的な)解決策を選択することによって生じる追加の手直しの暗黙的なコストのことです。
基本的に、レガシーコード、アプリケーション、または人的プロセスを削除せずにワークロードに追加し続けることで、時間の経過とともに負債が蓄積されます。技術的負債は、絶対的な生産性を低下させます。
たとえば、ビジネスにほとんどまたはまったく直接的な価値をもたらさないレガシーシステムのメンテナンスに時間の 10% を費やす必要がある場合、その 10% はあなたが支払 うコストです。技術的負債の削減は、価値を付加する新製品を生み出すための実効的な時間の増加に等しいといえます。
関心の分離とは何か
オブザーバビリティソリューションのコンテキストにおいて、関心の分離とは、ワークロードまたはアプリケーションの機能領域を、独立して管理される個別のコンポーネントに分割することを意味します。各コンポーネントは、個別の関心事(ログ構造やログの出力など)に対応します。基盤となるコードを変更せずにコンポーネントの設定を制御できることで、開発者はアプリケーションの機能やフィーチャー開発といった自身の関心事に集中でき、DevOps 担当者はシステムパフォーマンスの最適化とトラブルシューティングに集中できます。
関心の分離は、コンピュータサイエンスにおける中核的な概念です。
オペレーショナルエクセレンスとは何ですか?
オペレーショナルエクセレンスとは、ワークロードの運用に沿ったベストプラクティスを実践するこ とです。AWS には、Well-Architected に特化したフレームワーク全体が用意されています。オペレーショナルエクセレンスを始めるには、このページをご覧ください。