2023年5月8日 月曜日 ·9読了時間:数分

6 River SystemsがJSON Schemaで時間を節約し、コラボレーションを強化する方法

ブログに戻る
Melinda Gutermuth
Ben Hutton

AIと協働ロボットの助けを借りて、6 River Systemsはフルフィルメント業務の業界リーダーとなりました。米国、カナダ、ヨーロッパの企業は、包括的なソリューションを使用して出荷ワークフローを最適化し、毎週何百万ものユニットをフルフィルメントしています。2015年の創業以来、6 River Systemsは急速に成長し、ビジネスの拡大に伴ういくつかの一般的な課題を経験しました。この過程で、JSON Schemaがこれらの課題のいくつかを克服するのに役立つことを発見しました。

課題

急速な成長を遂げた多くの組織と同様に、6 River Systemsは規模の拡大に伴い、組織的、技術的、そして進化的な課題に直面しました。6 River Systemsの倉庫クライアント数が10倍に増加したとき、会社自体も成長する必要がありました。6 River Systemsの運用、エンジニアリング、分析チームは大幅に拡大し、その結果、互いにだけでなく、フルフィルメントシステムとも、連携を維持し、期待、契約、理解を伝えるためのより良い方法が必要であることを認識しました。

6 River Systemsは大量のロボットとハードウェアを使用しており、これらの技術の多くは必ずしも連携するとは限りません。彼らは、クラス最高のデータ処理、ストレージ、分析ツールを既存のシステムに統合するのに苦労しました。たとえば、施設内のロボットは、メッセージ、コマンド、システムステータス情報を格納するRobot Operating System(ROS)フレームワークを使用しています。ROSbagなどのツールはロボットデータの収集と分析を容易にしますが、ElasticsearchやBigQueryなどの最新のデータスタックツールとは互換性がありません。さらに、最も広く使用されているバージョンのROSは、廃止されたPython 2.7に依存しています。

急速な成長に伴う避けられない副産物の一つは、技術的負債です。6 River Systemsは、Shopifyが2019年に買収するのに十分なほどの初期の成功を収めました。彼らが実装したソリューションのいくつかは近視眼的であり、次の成長段階では長期的に持続可能なプロジェクトと実践に焦点を当てる必要があることを認識していました。

自動化ロボット「チャック」

解決策

JSON Schemaの使用を拡大することで、6 River Systemsは多くの組織的および技術的な問題を解決することができました。実際、JSON Schemaは組織全体の自動化の中核となり、より一貫性のある高品質な結果を実現するのに役立っています。

コミュニケーションの課題に対処するため、6 River Systemsのアナリストは、製品エンジニアと直接協力して新しいスキーマのドラフトを作成し始めました。JSON Schemaを使用することで、アナリストはエンジニアがすぐに理解できる本番対応の仕様を作成できます。

6 River Systemsは、型付きSDKの生成にJSON Schemaが非常に役立つことを発見しました。アナリストとエンジニアがスキーマの反復を完了すると、スキーマを使用して、ロボットおよびアプリケーション全体で使用するためのTypeScriptインターフェイスを生成します。データ生成ポイントでの強い型付けにより、開発がスムーズになり、本番環境に到達する前にバグが排除されます。これは大きな違いを生みます。

6 River Systemsはまた、スキーマを使用して宛先データベースを自動的に更新し、不適合データを識別および分離し、パイプラインを流れるデータに関する洞察を提供します。

彼らが実装した技術的ソリューションのいくつかを以下に示します。

  • 新しいスキーマがリリースされるたびに、すべてが同期していることを確認するための一連のデータベース調整手順が実行されます。データベーステーブルは自動的に作成または移行され、スキーマはレジストリにプッシュされます。
  • データ処理システムは、JSONスキーマを使用してデータを継続的に検証します。スキーマ仕様に準拠していないデータは、「無効なイベント」テーブル(「デッドレタリング」とも呼ばれます)にリダイレクトされ、アラートがトリガーされます。無効なイベントの量を追跡し、必要に応じて関係者に通知します。
  • JSONスキーマを使用して、すべてのメトリックおよび監視システムに組み込まれるイベントレベルの名前空間を構築します。パイプラインを流れるものの正確な計装とバージョンを識別でき、問題はグラフにすぐに表示されます。
  • データカタログなどのデータディスカバリツールには、JSONスキーマがシードされるため、ツールはメタデータを手動でスクレイピングする必要がなくなりました。
  • 彼らは、一般的なウェアハウス分析プラットフォームであるdbtでソースの生成を自動化するためにJSONスキーマを使用し始めています。その結果、分析エンジニアやデータアナリストは、新しいJSONスキーマを作成してから、YAMLで同じものをもう一度記述する必要がなくなりました。

効果

JSON Schemaを使用することで、6 River Systemsは組織全体でメリットを享受しています。JSON Schemaは、テクノロジスタックのすべてのレイヤーで時間を節約することを発見しました。データの生成時点で構造化すると処理速度が低下するという意見もありますが、チームがTypeScriptインターフェースを使用してIDEで間違ったデータ型と欠落している属性を指摘できる場合はそうではないことが6 River Systemsによってわかりました。

JSON Schemaは、データアナリストと製品エンジニアの両方が理解できるツールです。これにより、TypeScriptやSQLなど、非常に異なる言語で作業する2人が直接コミュニケーションをとることができます。6 River SystemsのデータプラットフォームチームリーダーであるJacob Thomas氏は、「これは軽視できないメリットです」と述べています。

JSON Schemaにより、6 River Systemsはスタック全体で自動化を実装することができました。計装SDK用のTypeScriptインターフェイスを実装し、データウェアハウス用のテーブルを生成するために使用し、ストリーミング環境で使用してKafkaトピックとdbtソースを生成しました。大規模なフルフィルメントセンターでは、コードがリリースされた後にデータの問題を追跡することは非常に困難であるため、JSON Schemaを使用してコードが公開される前に検証することで、時間と安心感が得られます。

企業が拡大するにつれて、個人が複雑なインフラストラクチャを通じて物事を追跡することは持続可能ではありません。組織全体で共通言語としてJSON Schemaを使用することで、あらゆるレベルでデータの品質と可視性が向上し、持続可能なプラクティスが可能になります。

オペレーターコマンドセンター - 「ブリッジ」

主要な効果の結果

6 River SystemsがJSON Schemaの使用から得た最大の利点は、節約できた時間です。これほど大規模な作業を管理する小さなチームにとって、一分一秒が重要です!彼らは自動化できるものはすべて自動化したいと考えています。

「私たちは数億件のイベントを処理しました。それぞれが「既知の良品」です。これはうまくいくモデルであり、非常にうまく機能します。」

6 River Systemsは、JSON Schemaを使用することで、次のことができることを発見しました。

  • 既知の良好な計装を現場の何千ものロボットに展開する。
  • TypeScriptとJavaScriptで考える製品エンジニア、Pythonで考えるデータエンジニア、SQLで考えるアナリスト間で効果的なコラボレーションを可能にする。
  • データ収集インフラストラクチャに到達するすべてのペイロードを検証する。
  • ツールが手動でメタデータをスクレイピングするのではなく、データディスカバリメカニズムとカタログを事前にシードする。

JSON Schemaを使用することで、QuicktypeTypeBoxなどのツールをプロデューサー側で、JSON Schemaベースのバリデーターをクライアント側で実装することができました。2つを接続するロジックにより、データウェアハウスは最新の状態に保たれます。

6 River Systemsの歩み

6 River Systemsは2015年にマサチューセッツ州ウォルサムに設立され、2019年にShopifyの子会社となりました。急速に成長した多くの企業と同様に、6 River Systemsは初期の成功を維持するためにいくつかの変更を加える必要があることを発見しました。6 River Systemsが直面していた課題と検討したさまざまな解決策を特定するプロセスをどのように経てきたかを見てみましょう。

ペインポイントの特定

6 River Systemsは創業当初、コンテキストなしで送信される多くの半構造化データを処理していました。データの意味、構造化の方法、許容されるものと許容されないものを知る方法はありませんでした。彼らは

新規顧客が継続的に増加する中で、これらすべてが起きていました。組織全体でコストが増加しており、6 River Systems は、現在の開発を阻害することなく、持続可能で長期的なソリューションを使用して可能な限り迅速に拡張する必要があることを認識していました。

「私たちは、期待、契約、および理解を表現するためのソリューション、つまりさまざまなチーム内のシステムと人間の両方のための IDL が必要であることを非常に迅速に特定しました。」

ソリューションの発見

データとの明示的な契約を維持するためのソリューションを探求する中で、彼らが検討したオプションの一部を以下に示します。

  • Protobuf: Protobuf は非常にうまく機能しますが、JSON ほど一般的ではありません。アナリストは Protobuf を知らない傾向がありますが、JSON は彼らが毎日扱うものです。6 River Systems のエンジニアリングチームと分析チームは緊密に連携しているため、両方が等しく理解できるソリューションが必要でした。
  • Apache Avro: Avro には多くの利点がありますが、6 River Systems が使用していない Kafka エコシステムに大きく依存しています。
  • JSON Schema: スタックを新しいテクノロジーで完全に書き直すのではなく、JSON Schema を使用することは、理解しやすい漸進的なソリューションでした。JSON はすでにフロントエンドエンジニアによって広く使用されており、Node.js および TypeScript エコシステムと適切に統合され、変更をほとんどまたはまったく行わずに既存のコードに「ボルトオン」できます。

ソリューションの検証

JSON と JSON Schema の使用は、スタックのすべてのレベルで最良のソリューションであることが判明しました。ゼロから始めるのではなく、JSON Schema を使用してアップストリームプロセスを強化し、ダウンストリームプロセスを自動化できました。彼らは、各スキーマを以前よりも厳密にし、データに関するより多くの制約を適用することができました。

「『なるほど!』と思った瞬間は、チームが新しいインストルメンテーションをプッシュするために私たちに話しかける必要がなくなったときでした。製品チームとアナリストは互いに話し合うことができ、優れたデータが BigQuery に表示されるようになりました。」

6 River Systems は以前、社内の多くの領域で JSON Schema を使用していましたが、現在では、UI コンポーネント、ワークフローと構成管理システム、倉庫管理システムとの入出力統合を強化するために使用しています。組織全体で JSON Schema を一貫して実装することにより、彼らは常に高い品質のソリューションを維持しながら成長とスケーリングを続ける能力に自信を持っています。

Jacob Thomas 氏と 6 River Systems に、このケーススタディを共有することを許可していただいたことに感謝いたします。

画像は許可を得て使用しています。