マイクロフロントエンドアーキテクチャ
アプリを独立してデプロイ可能な単位に分割します
「マイクロフロントエンドアーキテクチャ」はCoddyKit上の無料Angular Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAngular Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Angular Academyコースには全4レッスンが含まれています。
マイクロフロントエンドとは
マイクロフロントエンドは、マイクロサービスの考え方をUIに広げたものです。大規模なWebアプリを、個別に開発、テスト、デプロイできる複数の部分に分割します。それぞれの部分を別のチームが担当し、実行時に1つの体験として組み合わせます。
解決する課題
単一の巨大なAngularアプリ(「モノリスフロントエンド」)では、すべてのチームが1つのリリース計画、1つのビルド、1つのデプロイに依存します。チームが大きくなるほど、開発全体が遅くなります。マイクロフロントエンドを使えば、各チームが独自のスケジュールでリリースできます。
独立してデプロイできる成果物
中核となる特性は独立デプロイ性です。チェックアウトチームは、商品カタログを再ビルドまたは再デプロイすることなく、新しいチェックアウトフローをデプロイできます。各リモートは、独自のパイプラインで管理される別個の成果物です。
ホストとリモート
アーキテクチャ上は、1つ以上のリモートを読み込むホスト(シェル)が存在します。シェルは最上位のルーティングとレイアウトを担当し、リモートは必要に応じて読み込まれる機能領域を提供します。
// conceptually
host -> loads -> remote: catalog
-> loads -> remote: checkout
-> loads -> remote: account構成方式
リモートは、ビルド時、サーバー上(SSI/エッジ)、またはブラウザーの実行時に組み合わせることができます。Module Federationによる実行時構成は、独立したデプロイを維持できるため、Angularでは最も一般的です。
Module Federationを一言で説明すると
Module Federationを使うと、ビルド済みのアプリがモジュールを公開し、別のビルド済みアプリが実行時にHTTP経由で読み込めます。共通ライブラリを共有するため、重複して含める必要もありません。これは、Angularの多くのマイクロフロントエンドを支える仕組みです。
チームの自律性と境界
各マイクロフロントエンドは、明確なビジネスドメイン(カタログ、チェックアウト、アカウントなど)に対応させる必要があります。明確なドメイン境界によってチーム間の結合を最小限に抑えることが、この仕組みの目的です。認証やデザインシステムなどの共通事項は、明示的な契約になります。
コスト
マイクロフロントエンドには、リモート間のバージョンのずれ、設定ミスによる依存関係の重複、境界をまたぐデバッグの難しさ、実行時の読み込み失敗など、現実的な複雑さが加わります。チーム規模によってそのオーバーヘッドが正当化される場合にのみ導入してください。
使用すべきでない場合
小規模なチームや単一のプロダクトでは、遅延ロードするルートを備えた、適切に構成されたモノリスの方がシンプルで高速です。マイクロフロントエンドの効果が発揮されるのは、複数のチームが同じアプリに対して独立してデプロイする必要がある場合です。
統一された見た目と操作感
フランケンシュタインのようなUIを避けるため、チーム間でデザインシステムのライブラリとグローバルスタイルを共有します。各リモートは別々にビルドされるため、一貫性は偶然ではなく、意図的な契約として保つものです。
Angular固有の考慮事項
Angularのリモートでは、実行時にAngularフレームワークのコピーを1つだけ共有する必要があります。2つのAngularバージョンを読み込むと、依存性注入が壊れ、バンドルも肥大化します。Native Federationなどのツールが、この共有を管理してくれます。
確認問題
マイクロフロントエンドの最大の利点は何ですか?
まとめ
マイクロフロントエンドでは、大規模なアプリを、ホストシェルが読み込む独立デプロイ可能なリモートに分割し、それぞれをビジネスドメインに対応させます。Module Federationによる実行時構成がAngularの標準であり、Angularフレームワークのコピーは1つだけ共有する必要があります。チーム規模による結合の問題を解決する一方で、運用上のコストも増加します。
よくある質問
「マイクロフロントエンドアーキテクチャ」レッスンは無料ですか?
はい。「マイクロフロントエンドアーキテクチャ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Angular Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Angular Academyコースには全4レッスンが含まれています。
「マイクロフロントエンドアーキテクチャ」で何を学びますか?
アプリを独立してデプロイ可能な単位に分割します ブラウザで直接実行するハンズオンコードでAngular Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Angular Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAngular Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「マイクロフロントエンドアーキテクチャ」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAngular Academyレッスンでコードを書いて実行できますか?
はい。すべてのAngular Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- マイクロフロントエンドアーキテクチャ
- AngularのNative Federation
- 依存関係の共有
- リモートモジュールの読み込み