大規模なコネクタ戦略とは、1回の同期リクエストでBureau Worksに5000以上の作業単位を生成するものと定義します。Bureau Worksにおける作業単位は、ファイル + ワークフローステップ + 言語ペアの組み合わせです。 つまり、5つのファイル、2つのワークフローステップ(翻訳+レビュー)、5つの言語からなるプロジェクトでは、50のワークユニットが作成されます。 これらの変数を掛け合わせ始めると、5000の作業単位を超えるのがそれほど難しくないことがわかります。すべてを単一のプロジェクトに集中させたくなるかもしれませんが、私たちの経験では、大規模なコネクターの場合、言語ペアごとにプロジェクトをグループ化するのが最良の方法です。これは単にプロジェクトをどのように定義するかという問題のように見えるかもしれませんが、それ以上に深い意味があります。 この記事では、この決定の影響を次の観点から分析します。
- メッセージ仲介
- 問題解決
- リスク軽減
- キューイング/パフォーマンス
- 自動化ポテンシャル
- 管理のしやすさ
- スケーラビリティ
メッセージ仲介1) メッセージングは大規模なコネクターで指数関数的に成長します。 コネクターが1MM以上のメッセージを同期リクエストごとに作成するのを見たことがあります。 これにより、サーバーの活動とパフォーマンスの問題が大幅に発生し、ロケールごとにプロジェクトを分割することで軽減できます。問題解決2) これはリスク軽減に直接結びついています。 しかし、ローカライゼーションでは、特定のロケールに限定された問題や、それが解析、セグメンテーション、特定のファイルセットの前処理/後処理にどのように影響するかをよく見かけます。 ロケール間で分割することにより、ロケール固有のRegularExpressions、処理ルール、セグメンテーションを作成することで、全体的なアーキテクチャに関してはるかに柔軟性を提供できます。 全体に適用される修正に制限されて作業するのではなく、ロケールに基づいて反復することで、最終的により成熟した予測可能な行動パターンに到達できます。リスク軽減3) プロジェクトをロケールごとに分離することで、特定のロケールで問題が発生しても、全体のプルリクエスト/デリバリーメカニズムが損なわれるわけではないため、管理リスクを軽減できます。 問題を分離し、自然に区分けすることができます。 これはSOP中には重要でないように思えるかもしれませんが、予期せぬ問題が発生したとき(ローカリゼーションでは必ず起こります)、干し草でできた家ではなくレンガ造りの家を建てたことに感謝するでしょう。キューイング/パフォーマンスの観点から言えば、たとえば150,000個の要素を一度に処理する代わりに、15,000個の要素を10回に分けて処理することができます。 再び、最終的には同じ150,000の要素を処理しなければならないので、大きな違いには見えませんが、直列で処理するか、並列で処理するか、または機会に応じて処理する柔軟性を持つことは、はるかに多くの柔軟性とパフォーマンスの帯域幅を提供します。自動化の可能性5) 通常、プロジェクトの決定とワークフローは地域によって非対称になります。 ロケールごとにプロジェクトを分けることで、長期的な自動化の可能性に関してはるかに大きな柔軟性が得られます。 ロケールごとに分離する場合、全体の要素をまとめるのとは対照的に、全体的に異なるパラメーターやデータセットを持つシナリオが考えられます。Management6) これも直感に反します。 経営の観点からは、通常、統合はガバナンスを改善するためのベストプラクティスです。 しかし、大規模なコネクターではその逆が当てはまります。 プロジェクトは自然にロケールごとにフィルタリングされ、異なるプロジェクトマネージャーがプロジェクトの異なる部分をより簡単に管理できるようになり、レポートを生成するためのフィルターの使用を減らし、ロケールごとの進捗を追跡する際のシンプルさを向上させます。スケーラビリティ7) 大規模なコネクターを使用すると、すべての作業ユニットを単一のプロジェクトにまとめてスケールすることが単に管理不能になるポイントに達します。 分離することで、長期的に拡張しやすいプログラムのフレームワークを構築できます。 作業単位とメッセージに関しては、物事が倍増することを忘れないでください。 ロケールごとに分離することで、大きな乗算変数の1つを排除し、はるかに簡単にスケールアップできます。結論として、統合した方が良いという錯覚があります。 プロジェクトごとに 1 つのプルリクエストにより、全員の生活が楽になります。 小規模なコネクターには当てはまりますが、大規模なものには当てはまりません。 私たちの目標は常に、顧客に最もエレガントで信頼性の高いソリューションズを提供することであり、大規模な状況では分割して征服することが最善の方法であることを何度も確認しています。
単一のプロジェクトで統合ロケールごとに分離プロジェクト全体が0または1のステータスステータスはロケールごとに層別化可能単一の解析、フィルタリング、およびRegExフレームワークロケールごとの柔軟なフレームワークプロジェクトごとの単一レーンキューイング柔軟なキューイングと処理が自然に処理を分散プロジェクト内のロケールごとのフィルタリングフィルタリングステップが1つ少ない全体で機能する自動化ルールロケール固有の自動化パラメータとデータリスクの観点からすべての卵を1つのバスケットにロケール全体にリスクが分散分離とトラブルシューティングが複雑トラブルシューティングを容易にするための巨大な変数が1つ少ない