2017-03-05 3 views
0

は、私はこれらのmicroservicesの私はすべて互いに通信する複数のフラスコマイクロサービスを持っていますが、どのようにドッカーを構成しますか?

├── README.md 
├── api_starter.py 
├── app_api.py 
├── service1 
│   ├── __init__.py 
│   ├── api.py 
│   └── service1.py 
├── service2 
│   ├── __init__.py 
│   ├── api.py 
│   ├── service2.py 
├── dags 
│   ├── airflow_pipeline_runner.py 
├── service3 
│   ├── __init__.py 
│   ├── api.py 
│   ├── service3.py 
├── service4 
│   ├── __init__.py 
│   ├── api.py 
│   └── service4.py 
├── service5 
│   ├── __init__.py 
│   ├── api.py 
│   └── service5.py 
├── service6 
│   ├── __init__.py 
│   ├── api.py 
│   └── service6.py 
├── requirements.txt 
└── service7 
    ├── __init__.py 
    ├── api.py 
    └── service7.py 

各1 api_starterによって運営されている(これは明らかにIPを保護するために難読化された)複数のフラスコmicroservicesを持っています。これらのマイクロサービスの各々は、互いに通信する。このアプリケーションをドッキングするための最良の方法は何ですか?私は各マイクロサービスにドッカーファイルを与えて、そのディレクトリのルートにdocker-compose.ymlを持っていますか?これらのマイクロサービスの各々は、互いに通信する。すべてとすべて

+0

これらのサービスは相互にインポートしていますか、またはTCPポート経由で通信していますか? –

+0

現在、基本的にhttpリクエストを使用している気流パイプラインを介して通信しています(tcpはより良いですが) –

+0

実際にはもっと情報なしでは助けがありません。はい、それぞれDockerfileが必要で、適切なポートをEXPOSEします。あるいは、一つのDockerfileを使い、すべてのポートを公開し、それぞれのサービスを 'python'バイナリで実行するだけです。 –

答えて

1

ドッカーの哲学を尊重し、マイクロサービスアーキテクチャが提供しなければならないすべての機能を利用するには、各マイクロサービスを専用のコンテナに置く必要があります。

microservicesアーキテクチャの利点のいくつかを:

  • 改善された障害分離
  • が、それは新しい開発者のためのより容易なの機能 を理解することができ、単一の技術スタックへの長期的なコミットメントを排除サービス
  • アップグレード管理の簡素化
  • セキュリティの向上
  • 容易な展開
  • スケーリングResiliance
  • 簡単... ​​

ことを行うためには、まず自分の関連するコンテナ用のユーザー定義のネットワークを作成する必要があります。ユーザー定義のネットワークには内部DNSがあり、同じネットワーク上の他のコンテナIPを名前で解決できます。

api_starterを分割して、マイクロサービス固有のものにする必要があります。行うには

他のタスク:

  • (当てはまる場合)
  • 各microserviceための永続的なデータ・パスを指定して公開するネットワークポートを指定します。
+0

お返事ありがとうございます!これは私が探していたものに対する素晴らしい答えです!一人一人をそれぞれのドッカーコンテナに入れたら、ドッカーの作者をディレクトリのルートに入れますか? –

+0

それは正しいです、あなたはドッカーを作成する必要がありますファイルを作成し、ネットワーク、コンテナ、画像を指定します(あなたもその場で構築することができます) –

+0

恐ろしい!ありがとうございます:)私はそれについてもっと学ぶことができる良いガイドを知っていますか? –

関連する問題