Розробка виробничої мікросервісної архітектури. Ми проєктуємо та створюємо керовані подіями, контейнеризовані мікросервісні системи з належною спостережуваністю та автоматизацією розгортання.
Почати
Правильно реалізовані мікросервіси забезпечують незалежне масштабування команд та швидкість розгортання. Зроблені неправильно, вони створюють кошмари розподіленої складності. Ми створюємо мікросервісні архітектури, що ґрунтуються на Domain-Driven Design, підтримуються належною інфраструктурою та працюють з комплексною спостережуваністю — надаючи переваги без типового хаосу.
Ми створюємо на основі Kubernetes на AWS/GCP, Apache Kafka або NATS для обміну повідомленнями, gRPC для високопродуктивних внутрішніх API та REST/GraphQL для зовнішніх API. Кожен сервіс контейнеризовано за допомогою Docker, розгортається через ArgoCD та моніториться за допомогою розподіленого трасування.
Інженерні команди, що створюють нові системи, які повинні масштабуватися незалежно з першого дня, або організації з кількома командами, яким потрібна сервісна автономія. Ми також допомагаємо командам, які намагалися впровадити мікросервіси, але отримали "розподілений моноліт" — виправляємо архітектуру, щоб забезпечити фактичні переваги мікросервісів.
Моделювання бізнес-доменів, визначення меж сервісів, а також опис прав власності та комунікаційних контрактів.
Проектування інфраструктурної платформи — кластера Kubernetes, CI/CD, service mesh та спільних бібліотек.
Створення основних сервісів з належним тестуванням, контейнеризацією та автоматизацією розгортання.
Впровадження міжсервісної комунікації, контрактне тестування та валідація за допомогою chaos engineering.
Впровадження спостережуваності (observability), встановлення SLOs, документування архітектурних рішень та створення операційних інструкцій (runbooks).
Давайте спроєктуємо мікросервісну архітектуру, яка забезпечить незалежність та швидкість без розподіленого хаосу.
Ми застосовуємо domain-driven design для виявлення bounded contexts, визначаємо межі сервісів, встановлюємо контракти API за допомогою OpenAPI або protobuf, проектуємо шаблони міжсервісної комунікації та створюємо стратегії розгортання за допомогою Kubernetes.
Ми реалізуємо синхронну комунікацію через REST і gRPC, асинхронний обмін повідомленнями за допомогою Kafka і RabbitMQ, подієво-орієнтовані архітектури з CQRS та event sourcing, а також шаблони саги для управління розподіленими транзакціями.
Так, ми використовуємо strangler fig pattern для поступового виділення сервісів з вашого моноліту, починаючи з найбільш незалежно розгортаних доменів, зберігаючи зворотну сумісність та уникаючи будь-яких перебоїв для активних користувачів.
Ми налаштовуємо виявлення сервісів за допомогою Consul або Kubernetes DNS, конфігуруємо API шлюзи, використовуючи Kong, AWS API Gateway, або кастомні NestJS/Express шлюзи з обмеженням швидкості запитів, автентифікацією, маршрутизацією запитів та розривом ланцюга.
Розробка мікросервісів оцінюється від $10 до $50 за годину, при цьому проектування архітектури та початкова декомпозиція сервісів зазвичай займають від чотирьох до восьми тижнів до того, як почнеться поступове виділення сервісів.