Микросервисы на основе событий с Dapr

Системы оркестрации контейнеров существенно упростили управление многокомпонентными системами, в том числе основанными на микросервисной архитектуре. Но остался открытым вопрос организации надежного обмена сообщениями между микросервисами, координации последовательности операций при распределенной архитектуре. В этой статье мы рассмотрим подход Incubating (CNCF)-проекта Dapr (Distributed Application Runtime) по использованию Sidecar-контейнеров в Kubernetes для реализации микросервисной архитектуры, основанной на событиях. Читать


Централизация логирования микросервисов с Graylog

Трассировка и анализ ошибок в микросервисной архитектуре без средств централизации логирования обычно причиняет неудобства, поскольку для понимания «что и на каком микросервисе умерло» приходится обходить микросервисы по очереди, сверять и сопоставлять данные в логах. В данной статье рассмотрим централизацию логирования с помощью Graylog, с примерами кода на Python. Статья будет полезна в качестве пошаговой инструкции для разработчиков, столкнувшихся с трудностями сбора логов от нескольких микросервисов. Читать


Миграция монолитов в микросервисы на практике

Мы создаем монолиты, потому что с ними легче начинать работу. Микросервисы обычно возникают в силу необходимости, когда наша система уже находится в продакшне. Однако при принятии решения о необходимости миграции возникает множество вопросов: как вы определяете границы услуги? Как вы проверяете свойства самовосстановления архитектуры микросервиса?

Это особенно сложно с учетом распределенности сервисной сетки. Нам нужно иметь представление обо всем приложении, поскольку его фрагменты разделены. Наша цель — сохранить преимущества, которые мы имели в унаследованном монолите, избежав при этом сильной связанности. В данной статье расскажем о некоторых практических подходах, которые можно использовать при выполнении этой миграции. Читать


Оркестрация микросервисов с Activiti BPMN Engine

Микросервисная архитектура предполагает декомпозицию системы на независимые фрагменты с собственными источниками данных. Но в таком решении есть и оборотная сторона, связанная с необходимостью включения логики оркестрации или непосредственно в код сервисов, либо использовать внешний оркестратор.

Второй вариант может быть реализован в виде исполняемого кода, либо с использованием специальных движков для исполнения сценария бизнес-процесса. Стандартом в области описания бизнес-процессов является визуальная нотация BPMN 2.0. В этой статье мы рассмотрим основы BPMN и создадим простой процесс для управления системой полива в зависимости от измеренной влажности (все компоненты системы реализованы как микросервисы). Читать


Прокладываем тропинки до микросервисов

Одна из наиболее важных задач при разделении системы на микросервисы – обеспечить надежный механизм их репликации и обнаружения и создать набор правил для маршрутизации входящих запросов к соответствующим контейнерам или сетевым узлам. Идеальная система также должна уметь отслеживать состояние доступности и исключать недоступные реплики из маршрутизации. В этой статье мы поговорим об использовании маршрутизатора Kong, который принимает на себя не только задачи умной маршрутизации, но и возможности по протоколированию и трансформации запросов, контролю доступа, мониторингу запросов, а также может быть расширен с использованием плагинов. Читать


Как ускорить разработку в пять раз: архитектура микросервиса

На реализацию достаточно крупных проектов с рядом сложностей, как правило, в среднем уходит целый год. Автор статьи рассказывает о том, что его команда из шести разработчиков за один 2021-й год реализовала пять таких проектов, то есть их скорость разработки была примерно в пять раз выше «среднего по больнице».

Очевидно, что достичь такой скорости было не просто, да и приемов ускорения было использовано много. В этой статье автор сосредотачивается именно на архитектурных особенностях микросервисов в проектах, которые сыграли ключевую роль в успехе. Читать