3

アプリをマイクロサービスに分割する作業を開始したいと考えています。私の最初のタスクは、各アプリで繰り返される機能を削除することです。メールの送信、エクスポート、インデックスの検索など、すべてのアプリで同じまたは類似のコードが繰り返されるもの。

私は少し圧倒され、始めるのに苦労しています。マイクロサービスの目的は、仕事に適した言語を選択できるようにすることだと理解していますが、現在の目的では、.NET がすべてを構築する主要なフレームワークであると想定しています。

基本的に、まず最初に、すべてのアプリが必要なメールを送信するように指示して通信できるメールを送信するだけのマイクロサービスを作成したいと考えています。私が考えていた方法は、メール送信者にはメールを送信するロジックがありますが、各アプリは受信者、本文などを伝える必要があります.

私は次のようなことに苦労しています:

  • アプリがこのサービスと通信するには、どのプロトコルを使用する必要がありますか? HTTP 経由の REST? この場合、電子メール送信マイクロサービスは実質的に Web API 2 アプリになります (これは、私が REST API を構築する場合に個人的に使用するものです)。

  • REST を使用する場合、バックエンドから安らかな呼び出しを行う最善の方法は何ですか? 現在、システム内のほとんどのメールはバックエンド コードを介して送信されています。RestSharp という名前が飛び交っているのを見たことがありますが、これが一般的に最善の方法と考えられていますか?

  • 将来の計画では、すべてのサービスを知っているある種のゲートウェイを持つことは有益だと思います。これにより、各アプリはこのゲートウェイについてのみ知る必要があり、ゲートウェイは必要なサービスと通信します。これは、アプリとマイクロ サービスの間の単なる別の REST API でしょうか?

質問ばかりで申し訳ありませんが、職場でステップアップするために、この種のもの (およびアーキテクチャ全般) を始めたところです。

4

2 に答える 2

0

これは実に大きなテーマです。マイクロサービスに移行するとき、頭痛の種の多くは「コード」ではなく運用 (devops 指向) になることを覚えておく必要があります。

また、最適かどうかに関係なく、ある時点で決定を下さなければならないことがたくさんあります。いずれにせよ、物事は途中で変わります。現時点で最善の決定を下し、それに従って進み、後で微調整してください。

あなたの質問に関しては、REST は一般的な方法です。他のオプション (WCF、Avro など) もあります。決定のタイムラインを自分に与えます。REST を知っていて、REST に慣れている場合は、決定してください。後で他のプロトコルを変更/追加できるように構築できるかどうかを確認してください。ただし、あまり遅れないようにしてください。

Udiが言ったように、このサービスを同期または非同期(メッセージバス経由)で呼び出す必要がある場合は、アーキテクチャに関する考慮事項がいくつかあります。また、はい、サービスの発見について考えてみてください。いくつかのオプションがあります(飼育係、領事)。

背景と概要については、次のリソースを参照してください:
http://blog.arkency.com/2014/07/microservices-72-resources/

また、マイクロサービス パターンの概要についても簡単に説明しています:
http://microservices.io/patterns/microservices.html

しかし、繰り返しになりますが、多くの情報と物事を行う方法があります。圧倒されないでください。

于 2015-04-20T07:40:24.347 に答える