私は分散プログラミングの世界を改善するという夢を持っています:)
特に、分散システムの動作をデバッグ、監視、理解、視覚化するために必要なツールが不足していると感じています(つまり、要件を満たすために独自のロガーとビジュアライザーを作成する必要がありました)。私の自由な時間にそのようなツールの。
コミュニティ、どのようなツールがありますかあなたこの点で欠けていますか?ツールが何をすることになっているのかを大まかに考えて、回答ごとに1つ説明してください。他の人はそのようなツールの存在を指摘することができます、あるいは誰かがインスピレーションを得てそれらを書くかもしれません。
OK、始めましょう。
高精度のグローバル時間軸を備えた分散ロガー -分散システム内のさまざまなマシンからのイベントを高精度で、クロックオフセットとドリフトに依存せずに登録できるようにします。数百台のマシンと数千のロギングプロセスの負荷を処理するのに十分なスケーラビリティを備えています。そのようなロガーは見つけることを可能にします トランスポートレベルの遅延のボトルネック 分散システムでは、たとえば、メッセージがメッセージキューを介して発行者からサブスクライバに移動するのに実際に何ミリ秒かかるかなどを確認します。
Syslogは十分にスケーラブルではないため、問題があります。1秒あたり50000のログイベントが多すぎるため、このような負荷がかかるとタイムスタンプの精度が大幅に低下します。
FacebookのScribeは、グローバルな時間軸を提供しないため、問題があります。
実際には、syslogとscribeはどちらも、発生タイムスタンプではなく、到着タイムスタンプでイベントを登録します。
正直なところ、私はそのようなツールを欠いていません-私は自分のためにそれを書きました、私はそれを大いに満足しています、そして私はそれをオープンソースにするつもりです。しかし、他の人はそうかもしれません。
P.S.私はそれをオープンソース化しました: http://code.google.com/p/greg
親愛なるサンタさん、分散システム内のコンポーネント間の相互作用を視覚化したいと思います。
以下を示す視覚的表現が欲しいのですが。
私はできることを望みます:
私は一年中優れた開発者であり、本当にこれを望んでいます。
次に、この質問を参照してください--- 多くの同時多段階プロセスの動作を視覚化する方法は? 。
(私は恥知らずに自分のものを参照していますが、それはこのものによって解決された問題が私にとって重要であり、現在の質問は正確に誰かにとって重要な問題についてであるためです)。
Erlang/OTPに付属しているツールのいくつかを見ることができます。他の人が提案したすべての機能を備えているわけではありませんが、それらのいくつかは非常に便利で、多くの経験を積んで構築されています。これらのいくつかは、例えば:
もちろん、これらは、プラットフォームが提供する基本機能に加えて、Node Discovery、IPCプロトコル、RPCプロトコルとサービス、透過的な配布、分散型ビルド-データベースストレージ、プロセス名のグローバルおよびノードローカルレジストリ、およびプラットフォームをチックにするその他すべての基盤となるもの。
私の意見では、欠けているのは分散プログラミングプラットフォームです...分散システム上でのアプリケーションプログラミングを非分散プログラミングと同じくらい透過的にするプラットフォームです。
Akkaもご覧ください: http://akka.io
これは素晴らしい質問だと思います。これが、本当に便利だと思うツールの0.02です。分散プログラミングで私が見つけた課題の1つは、複数のマシンへのコードの展開です。多くの場合、これらのマシンの構成はわずかに異なり、さらに悪いことにアプリケーション設定も異なります。
私が考えているツールは、アプリケーションがデプロイされているすべてのマシンにオンデマンドで連絡を取り、システム情報を提供できるツールです。設定ファイルまたはレジストリなどのリソースを指定すると、すべてのマシンのリストが提供されます。また、アプリケーションを実行しているユーザーのユーザーアクセス権限を確認することもできます。
改良点は、設定が開発者によって提供されたマスターリストと一致しない場合に表示を提供することです。また、構成が異なり、差分機能を提供するサーバーを示している可能性もあります。
これは、構成(machine.config、application.config、IIS設定、ユーザー権限など)が非常に多いため、構成が異なる可能性が高いため、.NETアプリケーションに非常に役立ちます。
グレッグロガーを指して、この質問を気に入った人に通知しましょう- http://code.google.com/p/greg 。このスレッドの他の回答で説明したのは、高精度のグローバル時間軸を備えた分散ロガーです。
前述の「多数の同時多段階プロセスの動作を視覚化する」(splot)ツールとは別に、ログに定量的なパターンを表示するのに適した「tplot」も作成しました。