Работая над моим проектом, который больше обычного, я создаю веб-приложение, которое будет говорить с несколькими моими API, написанными на его собственном языке. Я использую две базы данных, один из которых MariaDB, а второй DgraphКак настроить Docker для приложения на основе полиглота на основе микросервисов?
Вот моя местная архитектура директор (базы данных граф.):
- услуги - все мои услуги
- апи - содержит все мои API
- auth - содержит мое использование г авт/регистрация API
- v1 - содержит мою текущую (только) API версия
- испытания - содержит мой АНИ моего называется испытание
- и т.д ...
- auth - содержит мое использование г авт/регистрация API
- приложение - содержит пользователей приложения будет взаимодействовать с
- демон - содержит мои программы, которые будут работать как демоны
- инструменты - содержит инструменты (импорт данных, скребки и т.д.)
- апи - содержит все мои API
- базы данных - чтобы содержать две мои конфиги (MariaDB и Dgraph)
Becaus Некоторые компоненты написаны в PHP7-NGINX, а другие - в PYTHON-FLASK-NGINX, как я могу сделать правильную настройку Docker с учетом этого? Каждая служба, api, daemon и инструмент независимы, и все они говорят через свои собственные конечные точки REST.
У каждого есть свой собственный репозиторий github, и я хочу, чтобы иметь возможность взять каждый и развернуть его на свой собственный сервер, когда это необходимо.
Я новичок в Docker, и все чтение меня смущает: должен ли я создать docker-compose.yml для каждой службы или для всего проекта? Но каждая служба развертывается отдельно, и как это известно docker-compose.yml?
Любые указатели на чистое решение? Должен ли я создать контейнер для каждой службы и в этом контейнере поставить NGINX, PHP или PYTHON и т. Д.?
Но все службы PHP7-NGINX будут работать на разных серверах, поэтому я должен создать столько контейнеров PHP7-NGINX, что у меня будут службы, работающие на них или только для одного? – Lazhar
@Lazhar да, каждый контейнер похож на экземпляр вашего приложения, работающего на сервере. Поэтому, если вы хотите запустить службу на каждом сервере, вам понадобится контейнер, работающий на каждом из них. С роутом докеров вы можете определить, где находится каждый контейнер, поэтому вы можете привязать контейнер к определенному серверу/докеру. В качестве альтернативы докерному рою вы также можете использовать Kubernetes. – Pitt