ルーメン:カスタム、セルフサービスダッシュボードのためにネットフリックス・バイ・トレント・ウィリス

からの翻訳

https://medium.com/netflix-techblog/lumen-custom-self-service-dashboarding-for-netflix-8c56b541548c

ネットフリックスは、大量のデータを生成します。私たちは便利な洞察を得る一つの方法は、によって達成されるインストルメントパネル、視覚的なデータを我々はすぐに大量の情報を理解できるようにということ。操作上の問題が発生した場合、当社のエンジニアが迅速に診断し、正しい問題領域する必要があるため、これは特に重要です。

 

ただし、操作はちょうど質問Netflixのダッシュボードの潜在的な使用例です。我々はまた、主要なビジネス指標を追跡し、比較結果を描画し、リアルタイムデータを監視し、さらにはランチメニューにハンバーガーを含めるかどうかを調べるためにダッシュボードを使用しています。

 

要するに、ダッシュボードには、Netflixのに非常に重要ですが、私たちのためだけでなく、任意のダッシュボードプラットフォーム。

 

具体的には、Netflixのに適した任意のダッシュボードのプラットフォームは、以下の制約を満たす必要があります。

  • ユーザーが独自の動的なダッシュボードを構築できるようにする必要があります。ネットフリックスのエンジニアであるため、フルサイクルの開発者たちは、セルフサービスプラットフォームでなければなりませんので、そのような集中型のチームは、サービスエンジニアが様々なニーズを持っている満たすためにボトルネックになることはありません。
  • 溶液は非常に柔軟でなければならないし、作成したダッシュボードをカスタマイズ可能にするように、上記によれば、それは、様々な実施形態およびモードでの使用をサポートしなければなりません。
  • 私たちは、異なる伝送方式は、WebSocketをクエリすることにより、トランスポートストリームとして、多数の異なるソースからのデータを使用してサポートしている必要がありますし、標準(キャッシュにリダイレクト完了後)RESTfulなAPIを長時間実行。
  • 操作でイベントをすばやく分析し、特定し、問題を解決することが可能に探索することができますように、インストルメントパネルの必要性を迅速かつ応答を発生します。
  • 必要がありますアトラスとNetflixの技術に不可欠なその他の動作は第一級のサポートを提供します

 

コントロールの多くを提供しながら、私たちのプラットフォームは、柔軟性の高い、ダイナミックかつ高性能を必要とします。8年前、我々は最初の営業指標は、ダッシュボードのプラットフォームに投資する場合には、合理的かつ費用対効果の高いソリューションを維持しつつ、Netflixの上の上の制約を満たすために方法はありません。だから我々は、自分を設定します。これは、ルーメンと呼ばれています

 

 

柔軟性のために設計さ

ルーメンのダッシュボードには、ユーザー定義され、解析されたブラウザのランタイムJSONプロファイルがカスタマイズされたダッシュボードを生成することを可能にするプラットフォームです。

 

高い視点から、アーキテクチャ内腔は、比較的単純なように見えます。バックエンド・ストレージからコンフィギュレーションをロードし、その後、内部データ構造にそれを解析します。データ構造は、次いでレンダラに渡され、レンダラは、インストルメントパネルとUIコントロールの視覚化を生成します。そして、ユーザーは1つのUIコントロールが相互作用し、プロセスが繰り返され、同じ設定に新しい値を提示しています。

 

この単純なアーキテクチャは、ルーメン構成が複雑になる可能性が隠されています。ユーザは、視覚効果の表示、表示すべきデータソースの使用、さらには、実行時に再構成可変条件を記述するように構成することができるUIコントロールなどのほとんどの態様、ダッシュボードを設定することができます。

 

JSONに牽引され、ユーザーの皆様が簡単に作成、編集、独自のダッシュボードを、だけでなく、他のツールとJSONを生成することができうまく統合。これらの構成は複雑になる可能性があるが、我々は内腔を改善し、ユーザが必要とする共通モードを排除しているので、しかし、それゆえ、我々は、組み合わせて、他の機能やモードのほとんどを実現することができるコアコンセプトの数を同定しました。

 

 

このように、今、ダッシュボード内腔はそれぞれ次の概念を主成分:

  • データソースは、 -特定のタイプのデータを使用するために、インストルメントパネルにロードする方法を定義します。彼らは、一般的な(例えば、RESTデータ・ソースが)タイプであってもよい(例えば、アトラス・データ・ソース)であってもよいです。データソースの種類は、コアの最上部にデータソースの一般的なタイプを構築することができます。たとえば、あなたができるElasticsearch RESTデータ・ソースを構築するために、データソースを、データソースがElasticsearch APIにクエリを発行するように構成されています。
  • 可視化 -ダッシュボード上のどのようにいくつかのデータを定義します。カスタムフォームのMarkdownフォーマットに標準の折れ線グラフや棒グラフからは、ルーメンは、可視化の様々なサポートしています。可視化のこれらのタイプは、特定のデータ・ソースとは無関係ですが、彼らは、特定の構造を有する入力データを必要とします。
  • マッパー -例えば、所望の視覚効果のデータ構造のために、ルーメンのフォーマットを理解されるようにソース及び使用からのペイロードデータを変換する方法を定義します。これは、可視化を用いた任意の方法からどのルーメンように任意のデータソースです。マッパーはまた、ダッシュボード自体を変換するために使用することができ、または以下に説明するようにコンフィギュレーションデータは、変数にマッピングされます。
  • 変数 -次に、部分的に、他の構成に置き換えることができる定義された値、。変数は静的設定で定義されてもよいが、そのような入力やスイッチなどの制御のために定義されてもよく、次いで、ユーザは、UIを変更することができます。たとえば、本番環境またはテスト環境データの表示を切り替えるには、ユーザーを可能にする可変制御を追加することができます。変数を使用すると、動的ダッシュボードに値を追加することができ、さらに高い柔軟性を提供するために、マッピング出力を変更するために使用することができます。

 

ユーザーの皆様のこれら四つの概念の組み合わせが柔軟になり、動的に任意のデータとの反応性、独自のダッシュボードを構築することができます。これらの概念の可視化「セル」のそれぞれについても、必要なときにそれらは、インストルメントパネルの複数で再利用できるように、一緒に非常によくレンダリングされます。

 

私達のユーザーが正確に彼らが望む制御することができますし、動的なフィールドと値は、ユーザインターフェースから制御することができます。これは、一部のユーザーは非常に具体的なユースケースのためのインストルメントパネルを構築することができ、他のユーザーは、実施形態及び探索の非常に広い範囲のためのインストルメントパネルを構築することができます。

 

 

 

 

応答性を維持するための柔軟性を維持しながら、

ルーメンアーキテクチャは、ユーザーの皆様のための柔軟かつダイナミックなプラットフォームを提供しますが、デフォルトでは、必ずしも自分の敏捷性と応答性の高いユーザー体験をもたらすことはありませんが。たとえば、データソース内腔は、インストルメントパネルを実行する方法の少しの知識を与えられました。彼らは大規模なペイロードそれを送るのだろうか?彼らはそれを処理し、クライアントの多くのデータが必要になりますか?彼らは合理的な遅延、それを持っていますか?

 

 

ユーザーエクスペリエンスの当社のビジネスニーズを満たし、快適で患者に提供するために、我々はすぐに我々は、Webアプリケーションのように、いつものようにデータを取得し、解析できなかったことに気づきました。

 

アクセスのほとんどのWebアプリケーションとは、ブラウザのJavaScriptのメインスレッドでデータを解析します。あなたは、あなたのアプリケーションが遅れに始まるか、メインスレッドがビジー状態のときにもフリーズするときに特に明らかであるブラウザで「混乱」、につながる可能性があり、データや複雑なユーザ・ロジック、大量のを扱うとき。

 

この問題と関連する問題を回避するために、ほとんどのデータ操作のルーメンは、  ウェブの労働者すべてのデータは、メインスレッドができでき、ロードされたダッシュボードである場合管腔は、単一グラフでスクロール、および相互作用として、ユーザとの対話のためにアイドル状態のままです。

 

这种设计意味着我们还可以在worker中加载和执行mapper函数。 由于用户能够定义自定义转换,因此这是有益的,因为它使我们能够最大程度地减少失败或错误的爆炸半径。 即使数据转换灾难性地失败,也不会导致整个应用程序崩溃。 除了阻止数据转换阻塞主线程之外,还会发生这种情况。
 
除了工作人员之外,我们还投资了利用本机Web组件技术来保持应用程序轻巧及其组件的可移植性。尽管并非所有内容都有意义,但流明的各个方面(例如我们的交互式Atlas图,URL管理库等)可以在其他内部工具之间轻松共享。
 
 

 

 

 

展望未来

自从Lumen最初构想成为一个功能强大,灵活而又动态的平台,满足Netflix各种仪表板需求后,Lumen有了很大的发展。每周大约有1,500个唯一用户通过5,000个唯一的仪表板接收超过150,000次观看。这些视图每天从十几个不同的后端数据源中生成超过45万张图表。

 

 

该平台的灵活性极大地推动了Lumen在内部的采用,我们不断面对我们的用户,为该平台找到新的有趣的用例,包括有趣的“ hacks”,例如构建午餐食品仪表板。

 

 

随着Netflix的持续增长,我们预计对强大的仪表板平台的需求将继续增长,并为继续改进Lumen感到兴奋。我们认为流明目前有三个主要方面需要改进。

 

首先是减少不再适合Lumen现在所基于的核心概念的旧功能。与许多长期存在的项目一样,过去添加的某些功能不再有意义。一些解决方案只针对有限的用例,而另一些则被更通用的解决方案所取代,这些解决方案为用户提供了更多的控制权。

 

 

第二个是通过使用户更容易创建和管理仪表板来提高流明的可用性。当前,这意味着改进我们为用户提供的配置编辑工具。将来,这将意味着为用户提供一个强大的WYSIWYG风格的界面,该界面可以减轻认知负担,同时更容易发现Lumen提供的强大功能。

 

最后,我们要继续投资流明的可扩展性。尽管当前的体系结构可以轻松带来自己的数据源,但是创建自定义可视化效果或添加对与其他工具集成的一流支持都需要更改Lumen的源代码。我们计划使系统更加可插拔,以使用户能够扩展平台而无需维护人员的直接支持。

 

 

我们与Lumen的最终目标是应对众多用户的所有挑战,同时为他们提供体验,使他们能够专注于仪表板中的关键信息和价值,而不是所使用的工具。流明的未来是光明的!

 

Lumen由Netflix的Trent Willis,John Tregoning和Matthew Johnson开发和维护。 我们一直在寻找新的想法和改进方法。因此,如果您有兴趣在这个领域中贡献或只是谈论想法,请访问LinkedInTwitter

おすすめ

転載: www.cnblogs.com/CherryTab/p/12098347.html