通りの名前のリストを見て、街を理解しようとすることを想像してみてください。メイン・ストリート」、「オーク・アベニュー」、「エルム・ドライブ」などが目に入るだろうが、それらがどのようにつながっているのか、高速道路はどこにあるのか、街の片側からもう片側へ行くにはどうすればいいのか、まったくわからないだろう。これが、Azureポータルで複雑なAzure Functionsアプリケーションを管理するときの感覚だ。関数のフラットなリストは得られるが、アーキテクチャ、つまり、すべてがどのようにつながっているかの実際の地図は見えない。
サーバーレスアプリケーションが成長するにつれて、これは不便なだけでなく、理解の障壁となる。見えないシステムをどうやってデバッグするのか?青写真のないプロジェクトに、どうやって新しいチームメイトを参加させることができるでしょうか?
ずっと欲しかった設計図
PrizmikFuncはリストだけでなく、マップも提供します。PrizmikFuncの依存関係グラフは、あなたの関数アプリ全体のインタラクティブで視覚的な設計図を自動的に生成します。それは、あなたが手動で描き、更新し続けなければならない図ではありません。コードから直接生成される生きたドキュメントであり、すべてがどのように配線されているかを示してくれます。
1つのシンプルなビューで、あなたは見ることができます:
- どのHTTPトリガーがイベントの長い連鎖を引き起こすか。
- どの関数が同じサービスバスのキューをリッスンしているか。
- どのようにデータがトリガーから関数を経由してCosmos DBコレクションに流れるか。
突然、街に地図ができた。アーキテクチャは、もはや頭の中の抽象的な概念ではなく、指差し、議論、デバッグが可能な具体的な図です。
推測からデータ主導の決断へ
これは単なるきれいな絵ではありません。より良いエンジニアリングの意思決定を行うための強力なツールなのだ。新しい開発者がチームに加わったとき、すべてのfunction.jsonファイルを何時間もかけて説明する必要はありません。グラフを見せるだけでいいのだ。大規模なリファクタリングを計画しているとき、グラフを見れば、どの関数が危険なほど結合していて、どれが独立して動かせるかがわかる。これによって、アーキテクチャー上の推測がデータ主導のプロセスに変わるのだ。
ブループリントとライブアクション
依存関係グラフはシステムの設計図です。しかし、PrizmikFuncは実写のリプレイも提供します。PrizmikFuncのDistributed Tracingビューは、実際にリクエストが実行時にどのようにシステム内を流れるかを示します。静的ブループリントと動的トレースを組み合わせることで、完全なストーリーを得ることができます。この組み合わせにより、最も複雑なバグでも簡単に発見し修正することができます。
見えないものは管理できない。電気をつける時です。