Get Mystery Box with random crypto!

Какой технологический стек обычно используется для микросервис | ИТ-архитектура

Какой технологический стек обычно используется для микросервисов?

#перевод_для_канала_itarchitecture

На диаграмме показан стек микросервисных технологий, как для этапа разработки, так и для этапа эксплуатации.

Разработка

Определение API - устанавливает контракт между фронтендом и бэкэндом. На данном этапе мы можем использовать Postman или OpenAPI.

Разработка - React, Angular и Vue популярны во фронтенд-разработке и Node.js/Java/Python/Go для разработки бэкэнда. Кроме того, нам нужно подготовить конфигурации в API Gateway в соответствии с определениями API.

Continuous Integration (непрерывная интеграция) - JUnit и Jenkins для автоматизированного тестирования. Код упакован в образ Docker и развернут как микросервисы.

Эксплуатация

Nginx, HAProxy и Apache - распространенный выбор для балансировщиков нагрузки. Cloudflare предоставляет CDN (сеть доставки контента). 

API Gateway - мы можем использовать Spring Boot в качестве шлюза и Eureka/Zookeeper для Service Discovery (обнаружения сервисов).

Микросервисы развертываются в on-premise и в "облаках". У нас есть варианты: AWS, Microsoft Azure или Google GCP.

Кэш и полнотекстовый поиск: Redis - это распространенный выбор для кэширования пар ключ-значение. ElasticSearch используется для полнотекстового поиска.

Коммуникации - чтобы сервисы могли общаться друг с другом, мы можем использовать инфраструктуру обмена сообщениями Kafka или RPC.

Хранение - мы можем использовать MySQL или PostgreSQL для реляционной базы данных, NoSQL-решения (MongoDB/CosmosDB/DynamoDB) и Amazon S3/Minio для объектного хранилища. При необходимости можем использовать Cassandra для организации хранилища с широкими столбцами.

Управление и мониторинг - для управления таким количеством микросервисов потребуются инструменты Ops, включающие Prometheus, Elastic Stack и Kubernetes.