The post has been translated automatically. Original language: Russian
Which technology stack is commonly used for microservices?
The diagram shows the stack of microservice technologies, both for the development stage and for the operational stage.
▶️ Development
API definition - establishes a contract between the frontend and the backend. At this stage, we can use Postman or OpenAPI.
Development - React, Angular, and Vue are popular in front-end development and Node.js/Java/Python/Go for backend development. In addition, we need to prepare configurations in the API Gateway according to API definitions.
Continuous Integration - JUnit and Jenkins for automated testing. The code is packaged in a Docker image and deployed as microservices.
▶️ Operation
Nginx, HAProxy, and Apache are common choices for load balancers. Cloudflare provides a CDN (Content Delivery Network).
API Gateway - we can use Spring Boot as a gateway and Eureka/Zookeeper for Service Discovery.
Microservices are deployed in on-premise and in the clouds. We have options: AWS, Microsoft Azure or Google GCP.
Cache and full-text search: Redis is a common choice for caching key-value pairs. ElasticSearch is used for full-text search.
Communications - in order for services to communicate with each other, we can use the Kafka or RPC messaging infrastructure.
Storage - we can use MySQL or PostgreSQL for relational database, NoSQL solutions (MongoDB/CosmosDB/DynamoDB) and Amazon S3/Minio for object storage. If necessary, we can use Cassandra to organize storage with wide columns.
Management and monitoring - Ops tools, including Prometheus, Elastic Stack, and Kubernetes, will be required to manage so many microservices.

Какой технологический стек обычно используется для микросервисов?
На диаграмме показан стек микросервисных технологий, как для этапа разработки, так и для этапа эксплуатации.
▶️ Разработка
🔹 Определение 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.
