Препродакшен (этап разработки):
- Описание API — инструменты, которые нам могут помочь, Postman или Swagger.
- Разработка — React или Vue.js со стороны фронтенда и java/python/go со стороны бэкэнда. При использовании шлюза API его нужно конфигурировать в процессе изменений в описании API.
- Непрерывная интеграция — Travis и Jenkins помогут с автоматизированным тестированием. После код будет упакован в образ Docker и развернут в песочнице.
Продакшен:
- NGinx — с помощью него организуем балансировщик нагрузки. Cloudflare/VK Cloud предоставляют CDN (сеть доставки контента).
- Шлюз API. Мы можем использовать сервисы AWS/Yandex для шлюза, а также Eureka/Zookeeper для обнаружения сервисов.
- Микросервисы развернуты в облаке. У нас есть варианты среди AWS, Microsoft Azure, Google, Yandex и VK.
- Кэширование и полнотекстовый поиск. Redis часто используется для кэширования пар ключ-значение. ElasticSearch используется для полнотекстового поиска.
- Связь между сервисами. Чтобы сервисы могли общаться друг с другом, мы можем использовать инфраструктуру обмена сообщениями Kafka или RPC.
- Хранилище. Мы можем использовать MySQL или PostgreSQL для реляционной базы данных и Amazon S3/VK Cloud Storage для хранилища объектов.
- Управление и мониторинг. Чтобы управлять таким количеством микросервисов, нам могут понадобиться Prometheus, Elastic Stack и Kubernetes.