2

私はマイクロサービスとサーバーレス ソリューションを研究しており、AWS の API ゲートウェイを介してさまざまな DynamoDb テーブルと通信する S3 および Lambda 関数でホストされる角度のあるフロントエンドで遊んでいます。

私が読んだり見たりするすべての例とビデオは、単純な「todo」アプリケーションなどの一部として単純な CRUD マイクロサービスを使用しています。私の問題は、ビジネス ロジックがどこにあるのかということです。複雑なアプリケーションを構築している場合、すべてのビジネス ロジックをフロントエンドの Angular アプリケーションに含める必要はありません。それとも私ですか?CRUD マイクロサービスを呼び出すアプリケーション API を構築することもできますが、それはモノリシックなアプローチのように感じます。

決定的な答えはないかもしれませんが、ベストプラクティスについて初心者にアドバイスできる人はいますか?

4

1 に答える 1

3

サーバーレスマイクロサービスを設計する際に従ういくつかのベストプラクティスがあります

  • 少数のマイクロサービスのみから開始します (サービスの分離方法を正確に把握していない限り、事前に少ないほど良いため、分割の決定が遅れます)
  • API に送られるビジネス ロジックを分離し、ハンドラーを MVC のコントローラーとして使用して、ビジネス ロジックを呼び出します。(これは、Lambda に依存せずにロジックを単体テストするのにも役立ちます)。
  • API に単純な CRUD だけを記述する必要はありません。ドメインと必要なビジネス ロジックによって異なります。(ただし、コードを異なるサービスに分離せずに別のモノリスを構築しないでください。いくつかの AWS サービスの制限により、サービス内に存在する必要があるエンドポイントの数などについてのガイドも提供されます。)
  • マイクロサービスで利用可能な設計パターンを適用します (たとえば、各マイクロサービス間でデータベースを同期する場合は、SNS、DynamoDB ストリーム、および Lambda を使用して Pub-Sub パターンを使用します)。
  • Angular アプリを使用して、ほとんどのプレゼンテーション ロジックを配置します。
  • CloudFront をプロキシおよび CDN として使用して、COR を回避します。

さらに詳しい情報が必要な場合は、私がこれについて書いた次の記事を参照してください。

注: AWS での Angular/React アプリのデプロイで CloudFormation を使用して、ベスト プラクティスに従って S3 と CloudFront の作成を自動化できます。

于 2017-11-23T10:13:49.830 に答える