自律性とアラインメントのバランスをとる - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

自律性とアラインメントのバランスをとる

マイクロフロントエンドアーキテクチャは、チームの自律性に強く偏っています。ただし、問題を解決するための柔軟性と多様なアプローチをサポートできる領域と、調整を達成するために標準化が必要な領域を区別することが重要です。シニアリーダーやアーキテクトは、これらの分野を早期に特定し、マイクロフロントエンドのセキュリティ、パフォーマンス、運用上の優秀性、信頼性のバランスを取るために投資を優先する必要があります。このバランスを見つけるには、マイクロフロントエンドの作成、テスト、リリース、ログ記録、モニタリング、アラートが含まれます。

マイクロフロントエンドの作成

理想的には、エンドユーザーのパフォーマンスの観点からメリットを最大化するために、すべてのチームが緊密に連携しています。実際には、これは難しい場合があり、より多くの労力が必要になる場合があります。複数のチームがオープンで透明性のある議論を通じて貢献できる、いくつかの書面によるガイドラインから始めることをお勧めします。その後、チームは Cookiecutter ソフトウェアパターンを徐々に採用できます。これにより、プロジェクトをスキャフォールドするための統一された方法を提供するツールの作成がサポートされます。

このアプローチを使用すると、意見や制約を活かすことができます。欠点は、これらのツールの作成とメンテナンスに多大な投資が必要であり、デベロッパーの生産性に影響を与えずにブロッカーに迅速に対処できるようにするためです。

マイクロフロントエンドのEnd-to-endテスト

ユニットテストは所有者に任せることができます。独自のシェルで実行されているマイクロフロントエンドをクロステストするための戦略を早期に実装することをお勧めします。この戦略には、本番リリースの前後にアプリケーションをテストする機能が含まれています。重要な機能を手動でテストするには、技術担当者と非技術担当者向けのプロセスとドキュメントを作成することをお勧めします。

変更によって機能的または非機能的カスタマーエクスペリエンスが損なわれないようにすることが重要です。理想的な戦略は、主要な機能とセキュリティやパフォーマンスなどのアーキテクチャ特性の両方について、自動テストに徐々に投資することです。

マイクロフロントエンドのリリース

各チームには、コードをデプロイし、意見を出し合い、独自のインフラストラクチャを構築するための独自の方法があります。このようなシステムを維持するための複雑さのコストは通常、抑止力です。代わりに、 に早期投資して、共有ツールで適用できる共有戦略を実装することをお勧めします。

選択した CI/CD プラットフォームを使用してテンプレートを開発します。その後、チームは事前承認されたテンプレートと共有インフラストラクチャを使用して、本番稼働用に変更をリリースできます。これらのシステムでは、テストと統合の初期期間後に大幅な更新が必要になることはほとんどないため、この開発作業に早期に投資を開始できます。

ログ記録とモニタリング

各チームは、運用または分析の目的で追跡するさまざまなビジネスメトリクスとシステムメトリクスを持つことができます。Cookiecutter ソフトウェアパターンは、ここでも適用できます。イベントの配信は抽象化でき、複数のマイクロフロントエンドが使用できるライブラリとして使用できます。柔軟性のバランスを取り、自律性を提供するには、カスタムメトリクスをログに記録し、カスタムダッシュボードまたはレポートを作成するためのツールを開発します。このレポートは、製品所有者との緊密なコラボレーションを促進し、エンドユーザーのフィードバックループを減らします。

配信を標準化することで、複数のチームが協力してメトリクスを追跡できます。たとえば、e コマースウェブサイトでは、「製品の詳細」マイクロフロントエンドから「カート」マイクロフロントエンド、「購入」マイクロフロントエンドまでのユーザージャーニーを追跡して、エンゲージメント、解約、問題を測定することができます。各マイクロフロントエンドが 1 つのライブラリを使用してイベントをログに記録する場合、このデータ全体を消費し、包括的に調査して、洞察力のある傾向を特定できます。

[アラート]

ログ記録とモニタリングと同様に、アラートはある程度の柔軟性を備えた標準化の利点があります。チームによって、機能アラートと非機能アラートの反応が異なる場合があります。ただし、すべてのチームが、共有プラットフォームで収集および分析されたメトリクスに基づいてアラートを開始する統合された方法を持っている場合、ビジネスはチーム間の問題を特定できます。この機能は、インシデント管理イベント中に便利です。たとえば、アラートは以下によって開始できます。

  • 特定のブラウザバージョンでの JavaScript クライアント側の例外の数の増加

  • 特定のしきい値でレンダリングが大幅に低下する時間

  • 特定の API を使用する場合の 5xx ステータスコードの数の増加

システムの成熟度に応じて、次の表に示すように、インフラストラクチャのさまざまな部分で労力のバランスをとることができます。

導入

研究と開発

昇順

成熟度

マイクロフロントエンドを作成します。

学習内容を実験、文書化、共有します。

新しいマイクロフロントエンドをスキャフォールドするためのツールに投資します。導入を助長します。

足場のツールを統合します。導入をプッシュします。

マイクロフロントエンドをエンドツーエンドでテストします。

関連するすべてのマイクロフロントエンドを手動でテストするメカニズムを実装します。

セキュリティとパフォーマンスの自動テストのためのツールに投資します。機能フラグとサービス検出を調査します。

サービス検出、本番環境でのテスト、end-to-endテストのためのツールを統合します。

マイクロフロントエンドを解放します。

共有 CI/CD インフラストラクチャと自動複数環境リリースに投資します。導入を助長します。

CI/CD インフラストラクチャのツールを統合する 手動ロールバックメカニズムを実装します。導入をプッシュします。

システムおよびビジネスメトリクスとアラートに基づいて自動ロールバックを開始するメカニズムを作成します。

マイクロフロントエンドのパフォーマンスを確認します。

システムイベントとビジネスイベントの一貫したログ記録のために、共有モニタリングインフラストラクチャとライブラリに投資します。

モニタリングとアラートのためのツールを統合します。チーム間のダッシュボードを実装して、全般的なヘルスをモニタリングし、インシデント管理を改善します。

ログ記録スキーマを標準化します。コストに合わせて最適化します。複雑なビジネスメトリクスに基づいてアラートを実装します。