Архитектура МСА - C4 Container - BookingGA.png
1.3 MB
🔵 C4 / Container - пример для микросервисной архитектуры с брокером, БД и ФХ 🔵
Уровень C4 / Container показывает независимые по коду приложения системы.
И когда мы говорим про микросервисный подход к архитектуре (МСА), то этих контейнеров ооочень много.
Что мы видим на C4 / Container:
✔️ Пользователи
✔️ Внешние системы
✔️ Мобильные и веб-приложения [контейнеры]
✔️ Микросервисы [к]
✔️ API Gateway (маршрутизатор API-запросов) [к]
✔️ БД и ФХ [к]
✔️ API для взаимодействия сервисов
✔️ Брокер для асинхронного обмена [к]
Сравните схему с монолитом и увидите, как лаконично смотрится один контейнер монолитного Backend, и как перегружена схема микросервисов.
Поэтому, как лайфхак, можно показать все микросервисы, брокеров, БД и ФХ на уровне C4/Component (который нужен для модулей кода), но это будет противоречить нотации. Хотя станет удобнее читать и понимать схемы.
На практике команды часто адаптируют C4 под себя. Я рекомендую придерживаться нотации, здравого смысла и принципа понятности.
-----------
❗️ Чтобы это был не просто еще один сохраненный пост, выполните небольшие упражнения:
В результате бронирования надо занять даты в календаре и отправить уведомления владельцу + арендатору о создании нового бронирования на email.
Пройдите алгоритм по цепочке:
➡️ Пользователь нажимает кнопку бронирования ⬇️
➡️ Frontend отправляет API-запрос ⬇️
➡️ API Gateway принимает запрос и направляет на Сервис Бронирований
➡️ Сервис Бронирований...
Обратите внимание на чтение и запись событий из брокера.
-----------
Ответы разберу на следующей неделе, когда познакомлю вас с брокерами поближе 🙂
Материалы, которые помогут в понимании прикрепленных схем:
🔗 C4 - знакомство с нотацией моделирования
🔗 C4/Context - как строить для проекта BookingGA
🔗 C4/Container для монолита
🔗 Ключевые элементы МСА
🔗 Выделение микросервисов BookingGA
#АрхитектураGA
Уровень C4 / Container показывает независимые по коду приложения системы.
И когда мы говорим про микросервисный подход к архитектуре (МСА), то этих контейнеров ооочень много.
Что мы видим на C4 / Container:
✔️ Пользователи
✔️ Внешние системы
✔️ Мобильные и веб-приложения [контейнеры]
✔️ Микросервисы [к]
✔️ API Gateway (маршрутизатор API-запросов) [к]
✔️ БД и ФХ [к]
✔️ API для взаимодействия сервисов
✔️ Брокер для асинхронного обмена [к]
Сравните схему с монолитом и увидите, как лаконично смотрится один контейнер монолитного Backend, и как перегружена схема микросервисов.
Поэтому, как лайфхак, можно показать все микросервисы, брокеров, БД и ФХ на уровне C4/Component (который нужен для модулей кода), но это будет противоречить нотации. Хотя станет удобнее читать и понимать схемы.
На практике команды часто адаптируют C4 под себя. Я рекомендую придерживаться нотации, здравого смысла и принципа понятности.
-----------
❗️ Чтобы это был не просто еще один сохраненный пост, выполните небольшие упражнения:
1. Как будет реализован алгоритм создания нового бронирования?
В результате бронирования надо занять даты в календаре и отправить уведомления владельцу + арендатору о создании нового бронирования на email.
Пройдите алгоритм по цепочке:
➡️ Пользователь нажимает кнопку бронирования ⬇️
➡️ Frontend отправляет API-запрос ⬇️
➡️ API Gateway принимает запрос и направляет на Сервис Бронирований
➡️ Сервис Бронирований...
Обратите внимание на чтение и запись событий из брокера.
2. Напишите список сервисов, которые пишут сообщения в брокер Kafka, и которые читают сообщения из него.
-----------
Ответы разберу на следующей неделе, когда познакомлю вас с брокерами поближе 🙂
Материалы, которые помогут в понимании прикрепленных схем:
#АрхитектураGA
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15❤3
💥 Открытый урок по Архитектуре уже завтра 💥
Чтобы помочь вам в изучении основ проектирования архитектуры, мы проводим открытый урок:
💎 Проектирование архитектуры: от монолита к микросервисам
🗓 Доступ с 1 по 3 марта (сб-пн)
🔗 Подробности и регистрация
Зачем нужно это обучение:
+ Узнаете, как аналитики могут влиять на архитектуру.
+ Разберетесь в отличиях монолита, сервисов и микросервисов.
+ Научитесь проектировать схему архитектуры с нуля.
+ Поймете, с какими проблемами сталкиваются при делении монолита.
+ Получите готовые схемы и подходы по проектированию.
Навыки, полученные на практике во время занятия, вы сможете применять в реальных проектах. Они помогут стать более ценным специалистом на рынке 🙌
Регистрируйтесь, чтобы получить доступ к этому обучению!
Чтобы помочь вам в изучении основ проектирования архитектуры, мы проводим открытый урок:
Зачем нужно это обучение:
+ Узнаете, как аналитики могут влиять на архитектуру.
+ Разберетесь в отличиях монолита, сервисов и микросервисов.
+ Научитесь проектировать схему архитектуры с нуля.
+ Поймете, с какими проблемами сталкиваются при делении монолита.
+ Получите готовые схемы и подходы по проектированию.
Навыки, полученные на практике во время занятия, вы сможете применять в реальных проектах. Они помогут стать более ценным специалистом на рынке 🙌
Регистрируйтесь, чтобы получить доступ к этому обучению!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍3😁1👌1
Как каждый год деградировать в навыках и опыте? 😬 Дорасти до топовой должности.
Перейти в режим "я уже всё знаю".
Годами сидеть в одной компании.
Получать стабильное повышение 5-10% в год.
И быть уверенным, что ты вау!
А потом, спустя 5+ лет, выйти на рынок, потому что стало скучно… и офигеть.
👉 Потому что технологии ушли далеко вперёд, а твои "ценные знания" вдруг оказались базой, на которой уже давно строят что-то более сложное.
Хотя бывает, что повезло, компания в тренде, и ты постоянно пробуешь новые подходы, внедряешь современные технологии. Но так бывает не всегда. И из таких компаний не уходят, потому что скучно))
Как пример, по моим ощущениям, 5 лет назад REST API, Kafka и микросервисы были чем-то уникальным для СА 🙌
Это были бонусы, которые ценились на отдельных проектах, и делали умножение ЗП на лучший коэффициент при выходе в новую компанию.
Сегодня же про Kafka и микросервисы спрашивают на каждом третьем собеседовании. REST API — вообще must-have для Middle СА. И не выпендриться уже, что я такая вот уникальная 🙁
👉 Такой вот жестокий мир IT.
Сидеть на месте тут не очень получается.
Я вообще постоянно переживаю, что могу отстать и не узнать что-то важное. Это отлично мотивирует.
Сейчас будущее за нейросетями.
Поэтому, на страхе отстать от жизни, я:
+ Пишу прототипы приложений
+ Езжу на конференции по AI
+ Разбираюсь с инфраструктурой, безопасностью и архитектурными проблемами AI
+ Считаю токены и оптимизирую запросы
И при всём при этом...
Я сижу с "синдромом самозванца" 😁
Это обычное явление, если ты постоянно изучаешь что-то новое))
Те, кто приходят в IT только ради денег, надолго здесь не задерживаются.
Мы постоянно учимся.
Много работаем.
Это сфера, где ты либо постоянно растёшь, либо быстро устареваешь.
Так что если вам кажется, что вы ничего не знаете — это нормально.
Это ощущение заставляет
шевелить извилинами 🧠,
постоянно расти,
и быть лучшими в нашей профессии))
Перейти в режим "я уже всё знаю".
Годами сидеть в одной компании.
Получать стабильное повышение 5-10% в год.
И быть уверенным, что ты вау!
А потом, спустя 5+ лет, выйти на рынок, потому что стало скучно… и офигеть.
👉 Потому что технологии ушли далеко вперёд, а твои "ценные знания" вдруг оказались базой, на которой уже давно строят что-то более сложное.
Хотя бывает, что повезло, компания в тренде, и ты постоянно пробуешь новые подходы, внедряешь современные технологии. Но так бывает не всегда. И из таких компаний не уходят, потому что скучно))
Как пример, по моим ощущениям, 5 лет назад REST API, Kafka и микросервисы были чем-то уникальным для СА 🙌
Это были бонусы, которые ценились на отдельных проектах, и делали умножение ЗП на лучший коэффициент при выходе в новую компанию.
Сегодня же про Kafka и микросервисы спрашивают на каждом третьем собеседовании. REST API — вообще must-have для Middle СА. И не выпендриться уже, что я такая вот уникальная 🙁
👉 Такой вот жестокий мир IT.
Сидеть на месте тут не очень получается.
Я вообще постоянно переживаю, что могу отстать и не узнать что-то важное. Это отлично мотивирует.
Сейчас будущее за нейросетями.
Поэтому, на страхе отстать от жизни, я:
+ Пишу прототипы приложений
+ Езжу на конференции по AI
+ Разбираюсь с инфраструктурой, безопасностью и архитектурными проблемами AI
+ Считаю токены и оптимизирую запросы
И при всём при этом...
Я сижу с "синдромом самозванца" 😁
Это обычное явление, если ты постоянно изучаешь что-то новое))
IT — это про вечное обучение.
Те, кто приходят в IT только ради денег, надолго здесь не задерживаются.
Мы постоянно учимся.
Много работаем.
Это сфера, где ты либо постоянно растёшь, либо быстро устареваешь.
Так что если вам кажется, что вы ничего не знаете — это нормально.
Это ощущение заставляет
шевелить извилинами 🧠,
постоянно расти,
и быть лучшими в нашей профессии))
💯72👏24❤🔥17❤7👍5⚡1
📚 Системным аналитикам: полный набор материалов для подготовки к техническим собеседованиям 📚
В этой подборке вы найдёте теорию вместе с разборами реальных рабочих задач.
Каждый материал подкреплён примерами для лучшего восприятия информации 🙌
REST API
▫️ Проектирование REST API: спорные вопросы с проектов и собеседований
🔹 Вопросы и ответы по REST API: собеседование на системного аналитика
▫️ Книга по JSON в REST API
▫️ Headers
▫️ Виды авторизации в API
▫️ Протокол HTTP
🔺 Связь базы данных и дизайна REST API
🔺 Postman: навык тестирования REST API за вечер
Интеграции
▫️ Как аналитику работать с задачами на интеграции — пошаговая инструкция
▫️ Интеграции - что это и основные способы
▫️ Отличия между обычными и интеграционными Use Case
▫️ Пример интеграционного Use Case
▫️ Практическое руководство по Postman - тестирование API DaData (с нуля до результатов)
▫️ Полный шаблон постановки задачи на интеграционный REST API-метод
🔹 Проблемы в работе с задачами на интеграции
▫️ UML-диаграмма: разбор задачи и инструменты
БД и SQL
🔹 Связь "многие-ко-многим": разбор задачи с собеседования
🔺 Проектирование БД: логический уровень
🔹 Нормальные формы БД
▫️ ER-диаграмма БД через код
Архитектура
▫️ 7 шаблонов проектирования архитектуры, которые важно понимать СА
▫️ Монолит, Сервисная и Микросервисная архитектура - сравнение
▫️ Как показать схему архитектуры: примеры решений
▫️ Нотация C4 для моделирования архитектуры
🔹 gRPС vs REST - что выбрать для проекта
🔹 Нефункциональные требования
▫️ GraphQL — знакомство на практике через Postman [пошаговая инструкция]
▫️ Очередь сообщений VS Брокер - вопросы с подвохами
▫️ Kafka
▫️ - статьи и книги
🔹 - подкасты
🔺 - видео YouTube
Сохраняйте, чтобы не потерять 👌
В этой подборке вы найдёте теорию вместе с разборами реальных рабочих задач.
Каждый материал подкреплён примерами для лучшего восприятия информации 🙌
REST API
▫️ Проектирование REST API: спорные вопросы с проектов и собеседований
🔹 Вопросы и ответы по REST API: собеседование на системного аналитика
▫️ Книга по JSON в REST API
▫️ Headers
▫️ Виды авторизации в API
▫️ Протокол HTTP
🔺 Связь базы данных и дизайна REST API
🔺 Postman: навык тестирования REST API за вечер
Интеграции
▫️ Как аналитику работать с задачами на интеграции — пошаговая инструкция
▫️ Интеграции - что это и основные способы
▫️ Отличия между обычными и интеграционными Use Case
▫️ Пример интеграционного Use Case
▫️ Практическое руководство по Postman - тестирование API DaData (с нуля до результатов)
▫️ Полный шаблон постановки задачи на интеграционный REST API-метод
🔹 Проблемы в работе с задачами на интеграции
▫️ UML-диаграмма: разбор задачи и инструменты
БД и SQL
🔹 Связь "многие-ко-многим": разбор задачи с собеседования
🔺 Проектирование БД: логический уровень
🔹 Нормальные формы БД
▫️ ER-диаграмма БД через код
Архитектура
▫️ 7 шаблонов проектирования архитектуры, которые важно понимать СА
▫️ Монолит, Сервисная и Микросервисная архитектура - сравнение
▫️ Как показать схему архитектуры: примеры решений
▫️ Нотация C4 для моделирования архитектуры
🔹 gRPС vs REST - что выбрать для проекта
🔹 Нефункциональные требования
▫️ GraphQL — знакомство на практике через Postman [пошаговая инструкция]
▫️ Очередь сообщений VS Брокер - вопросы с подвохами
▫️ Kafka
▫️ - статьи и книги
🔹 - подкасты
🔺 - видео YouTube
Сохраняйте, чтобы не потерять 👌
❤89🔥41👍9❤🔥5😁1
📚 Открытый урок по архитектуре
Проектирование архитектуры: от монолита к микросервисам
‼️ Сегодня последний день доступа
Подробности и регистрация
📚 Старт обучения на программе Архитектура
4 марта открываем первый модуль для самостоятельного обучения.
Подробности о программе и заявка на участие
📚 Освоение SQL на практике в DBeaver
+ Всем участникам этой практики доступ к уроку по архитектуре продлили до 10 марта.
+ Доступ к записи онлайн-занятия будет.
‼️ Сегодня в 19:00 Мск, онлайн
Подробности тут
Такой вот бодрый понедельник в GetAnalyst 🙂
Желаем вам продуктивной недели!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4🔥3
🚦 Очередь сообщений VS Брокер 🚦
Очередь сообщений — это структура данных, которая хранит сообщения до тех пор, пока их не заберёт получатель.
Брокер сообщений — это программное обеспечение, которое управляет обменом сообщений между приложениями. Он может включать в себя множество очередей сообщений и дополнительно поддерживать топики, маршрутизацию, обработку и механизмы гарантии доставки.
❗️Вопросы с подвохом:
👉 1. Если у нас есть очередь сообщений, зачем нужен брокер?
Очередь сообщений — это только структура данных для хранения сообщений, а брокер сообщений предоставляет дополнительные функции, такие как:
+ Управление множеством очередей.
+ Маршрутизация сообщений.
+ Поддержка нескольких потребителей.
Брокер — это более комплексная система, в состав которой входят очереди.
👉 2. Может ли очередь работать без брокера?
Да, тогда это будет просто временное хранилище сообщений.
👉 3. Могу ли я использовать брокер без очередей сообщений?
Нет. Очереди — одна из базовых составляющих большинства брокеров. Однако брокеры предоставляют более широкую функциональность, например, топики для публикации/подписки, что выходит за рамки простых очередей.
👉 4. Если я использую очередь сообщений, могу ли я гарантировать доставку сообщения?
Не всегда. Очередь сообщений сама по себе не гарантирует доставку, если нет спец. механизмов. Брокер сообщений, с другой стороны, предоставляет такие функции, как подтверждение доставки и повторная доставка сообщений в случае сбоя.
👉 5. Очередь всегда работает по принципу FIFO (первое пришло - первое вышло из очереди)?
Нет, не всегда. Хотя FIFO — это распространённый механизм, очереди могут быть:
+ Приоритетными (Priority Queue)
+ LIFO (Last In, First Out)
и другие.
👉 6. Может ли очередь работать с несколькими производителями и потребителями?
Технически да, но это усложняет реализацию, если очередь реализована без брокера.
Развёрнутая статья:
🔗 Брокер и очередь сообщений: что это и в чем отличия?
#АрхитектураGA
Очередь сообщений — это структура данных, которая хранит сообщения до тех пор, пока их не заберёт получатель.
Брокер сообщений — это программное обеспечение, которое управляет обменом сообщений между приложениями. Он может включать в себя множество очередей сообщений и дополнительно поддерживать топики, маршрутизацию, обработку и механизмы гарантии доставки.
❗️Вопросы с подвохом:
👉 1. Если у нас есть очередь сообщений, зачем нужен брокер?
Очередь сообщений — это только структура данных для хранения сообщений, а брокер сообщений предоставляет дополнительные функции, такие как:
+ Управление множеством очередей.
+ Маршрутизация сообщений.
+ Поддержка нескольких потребителей.
Брокер — это более комплексная система, в состав которой входят очереди.
👉 2. Может ли очередь работать без брокера?
Да, тогда это будет просто временное хранилище сообщений.
👉 3. Могу ли я использовать брокер без очередей сообщений?
Нет. Очереди — одна из базовых составляющих большинства брокеров. Однако брокеры предоставляют более широкую функциональность, например, топики для публикации/подписки, что выходит за рамки простых очередей.
👉 4. Если я использую очередь сообщений, могу ли я гарантировать доставку сообщения?
Не всегда. Очередь сообщений сама по себе не гарантирует доставку, если нет спец. механизмов. Брокер сообщений, с другой стороны, предоставляет такие функции, как подтверждение доставки и повторная доставка сообщений в случае сбоя.
👉 5. Очередь всегда работает по принципу FIFO (первое пришло - первое вышло из очереди)?
Нет, не всегда. Хотя FIFO — это распространённый механизм, очереди могут быть:
+ Приоритетными (Priority Queue)
+ LIFO (Last In, First Out)
и другие.
👉 6. Может ли очередь работать с несколькими производителями и потребителями?
Технически да, но это усложняет реализацию, если очередь реализована без брокера.
Развёрнутая статья:
#АрхитектураGA
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥13❤5❤🔥1
Брокеры — это посредники в передаче сообщений между системами или сервисами.
Они позволяют асинхронно обмениваться данными и обеспечивают гарантию доставки сообщений.
👉 Принцип работы:
1. Сервис 1 (Producer / Производитель) хочет отправить данные в Сервис 2 (Consumer /Потребитель).
2. Сервис 2 в это время может быть перегружен или занят.
3. Чтобы Сервис 1 не ждал, пока Сервис 2 станет доступен, он кладет сообщение в Брокер и продолжает свою работу.
4. Брокер сохраняет сообщение и ставит его в очередь к обработке.
5. Как только Сервис 2 становится доступен, то он забирает сообщение из Брокера и обрабатывает его.
По сути брокеры - это временные Базы Данных, которые гарантируют, что сообщения (данные) в них будут храниться, пока их не заберут и не обработают соответствующие системы или сервисы.
👉 Брокеры могут использоваться:
+ в сервисной и микросервисной архитектуре,
+ в событийно-ориентированной архитектуре (EDA),
+ когда нужна фоновая обработка событий в монолите,
+ для асинхронных интеграций.
👉 Брокеры сообщений предлагают два основных паттерна (шаблона) обмена данными:
1. Точка-точка (Point-to-Point Messaging)
Это паттерн, используемый в очередях сообщений, где существует один отправитель и один получатель. Каждое сообщение в очереди отправляется только одному получателю и может быть обработано только один раз.
2. Публикация-подписка (Publish/Subscribe Messaging)
В этом паттерне отправитель (producer) публикует сообщения в определённую тему (topic), а подписчики (consumers) подписываются на темы, чтобы получать сообщения.
Все сообщения, опубликованные в теме, доставляются всем приложениям, подписанным на неё.
Применяется в случаях, где несколько систем должны получить одну и ту же информацию.
Возможности и логика работы брокеров отличаются в зависимости от конкретного решения.
Основные решения по брокерам на рынке:
✅ Apache Kafka
✅ RabbitMQ
✅ ActiveMQ
✅ Amazon MQ, Amazon SQS
✅ Яндекс Message Queue (YMQ) - аналог Amazon
✅ и другие.
#АрхитектураGA
Please open Telegram to view this post
VIEW IN TELEGRAM
❤24🔥10👍6😁1
🔥 3 реальных задачи, которые решают брокеры 🔥
Брокеры сообщений — это не просто очереди для передачи данных. Это ТОП-инструмент для построения асинхронных, отказоустойчивых и масштабируемых систем.
Они позволяют сервисам взаимодействовать без жесткой связанности, гарантируют доставку сообщений и помогают балансировать нагрузку.
Разберем три основных кейса, когда без брокеров не обойтись:
📌 1. Централизованная отправка уведомлений
Без брокера каждый сервис должен напрямую взаимодействовать с системой уведомлений, что создает жесткую зависимость.
Вместо этого сервисы просто отправляют события в брокер, а сервис уведомлений обрабатывает их, когда будет готов.
👍 Почему так лучше?
+ Уменьшается связанность между сервисами
Если сервис уведомлений перегружен и не может принять сообщение сразу, оно сохранится в брокере.
Отправивший задачу на уведомление сервис не зависает в ожидании ответа, а продолжает работу.
+ Гибкое масштабирование
Когда 15 сервисов генерируют уведомления, для их обработки может понадобиться от 5 до 15 экземпляров сервиса уведомлений.
Без брокера система должна мгновенно реагировать на всплески нагрузки и увеличивать количество работающих копий сервиса уведомлений.
С брокером это не критично — сообщения просто ставятся в очередь и обрабатываются позже.
+ Можно легко добавлять новые каналы уведомлений (почта, пуши, SMS)
Например, в сервисе заказов сменился статус товара на "Доставлен".
Пользователь подписан на push, SMS и email-уведомления
Вместо того, чтобы сервису заказов делать три запроса или один долгий и ждать, пока каждое уведомление отправится, мы положим событие о смене статуса в брокер с пометкой о каналах доставки. А сервис уведомлений позже его обработает.
Таким образом, сервису заказов не придётся длительно ожидать ответ о доставке всех уведомлений.
📌 2. Централизованный сбор событий для мониторинга
Все сервисы отправляют в брокер данные о своих состояниях, ошибках, метриках. Из брокера эти события забирает система мониторинга, анализирует их и отправляет алерты DevOps-инженерам.
👍 Почему так лучше?
+ Все данные собираются в одном месте
Логи, ошибки, метрики и другие события поступают в брокер от всех сервисов, упрощая их обработку и анализ.
+ Гибкость и независимость от конкретной системы мониторинга
Можно легко подключать новые инструменты анализа и визуализации (Prometheus, ELK, Grafana и др.), не внося изменения в код сервисов, которые генерируют события.
Без брокера пришлось бы перенастраивать все сервисы на доставку в новый сервис мониторинга.
+ Гибкое масштабирование
📌 3. Реакция нескольких сервисов на одно событие
Один сервис отправляет событие в брокер, а сразу несколько других сервисов на него реагируют.
Пример:
При успешной оплате заказа в Интернет-Магазине сервис платежей отправляет событие "Оплата успешна" в брокер.
На это событие реагируют три сервиса:
▫️ Сервис заказов переводит статус заказа в "Оплачен"
▫️ Сервис склада списывает товары и создает задачу на сборку
▫️ Сервис уведомлений отправляет клиенту подтверждение об оплате
Если бы сервис платежей напрямую дергал API каждого сервиса, это привело бы к сильной связанности и проблемам при сбоях.
Сервис склада упал?
➖ Прервали процесс обработки события оплаты, потому что не получилось достучаться до склада
➖ Или потеряли уведомление о платеже и оно не дошло на склад
Брокер позволяет сделать процесс асинхронным и надежным.
👍 Почему так лучше?
+ Уменьшается связанность между сервисами
За счет асинхронного обмена и отвязки от режима реального времени, когда все должны работать и быть доступны.
+ Можно легко добавлять новые подписчики без изменений в коде исходного сервиса
Например, когда после успешной оплаты надо еще начислить бонусные баллы в сервисе лояльности, то мы добавим новый обработчик события из брокера, но не будем трогать код сервиса платежей.
+ Лучше отказоустойчивость
Нет риска, что событие не обработается в каком-либо сервисе - брокер даёт гарантию доставки.
+ Гибкое масштабирование
Итого:
Брокеры — залог гибкой, масштабируемой и отказоустойчивой архитектуры 👍
#АрхитектураGA
Брокеры сообщений — это не просто очереди для передачи данных. Это ТОП-инструмент для построения асинхронных, отказоустойчивых и масштабируемых систем.
Они позволяют сервисам взаимодействовать без жесткой связанности, гарантируют доставку сообщений и помогают балансировать нагрузку.
Разберем три основных кейса, когда без брокеров не обойтись:
📌 1. Централизованная отправка уведомлений
Без брокера каждый сервис должен напрямую взаимодействовать с системой уведомлений, что создает жесткую зависимость.
Вместо этого сервисы просто отправляют события в брокер, а сервис уведомлений обрабатывает их, когда будет готов.
👍 Почему так лучше?
+ Уменьшается связанность между сервисами
Если сервис уведомлений перегружен и не может принять сообщение сразу, оно сохранится в брокере.
Отправивший задачу на уведомление сервис не зависает в ожидании ответа, а продолжает работу.
+ Гибкое масштабирование
Когда 15 сервисов генерируют уведомления, для их обработки может понадобиться от 5 до 15 экземпляров сервиса уведомлений.
Без брокера система должна мгновенно реагировать на всплески нагрузки и увеличивать количество работающих копий сервиса уведомлений.
С брокером это не критично — сообщения просто ставятся в очередь и обрабатываются позже.
+ Можно легко добавлять новые каналы уведомлений (почта, пуши, SMS)
Например, в сервисе заказов сменился статус товара на "Доставлен".
Пользователь подписан на push, SMS и email-уведомления
Вместо того, чтобы сервису заказов делать три запроса или один долгий и ждать, пока каждое уведомление отправится, мы положим событие о смене статуса в брокер с пометкой о каналах доставки. А сервис уведомлений позже его обработает.
Таким образом, сервису заказов не придётся длительно ожидать ответ о доставке всех уведомлений.
📌 2. Централизованный сбор событий для мониторинга
Все сервисы отправляют в брокер данные о своих состояниях, ошибках, метриках. Из брокера эти события забирает система мониторинга, анализирует их и отправляет алерты DevOps-инженерам.
👍 Почему так лучше?
+ Все данные собираются в одном месте
Логи, ошибки, метрики и другие события поступают в брокер от всех сервисов, упрощая их обработку и анализ.
+ Гибкость и независимость от конкретной системы мониторинга
Можно легко подключать новые инструменты анализа и визуализации (Prometheus, ELK, Grafana и др.), не внося изменения в код сервисов, которые генерируют события.
Без брокера пришлось бы перенастраивать все сервисы на доставку в новый сервис мониторинга.
+ Гибкое масштабирование
📌 3. Реакция нескольких сервисов на одно событие
Один сервис отправляет событие в брокер, а сразу несколько других сервисов на него реагируют.
Пример:
При успешной оплате заказа в Интернет-Магазине сервис платежей отправляет событие "Оплата успешна" в брокер.
На это событие реагируют три сервиса:
▫️ Сервис заказов переводит статус заказа в "Оплачен"
▫️ Сервис склада списывает товары и создает задачу на сборку
▫️ Сервис уведомлений отправляет клиенту подтверждение об оплате
Если бы сервис платежей напрямую дергал API каждого сервиса, это привело бы к сильной связанности и проблемам при сбоях.
Сервис склада упал?
➖ Прервали процесс обработки события оплаты, потому что не получилось достучаться до склада
➖ Или потеряли уведомление о платеже и оно не дошло на склад
Брокер позволяет сделать процесс асинхронным и надежным.
👍 Почему так лучше?
+ Уменьшается связанность между сервисами
За счет асинхронного обмена и отвязки от режима реального времени, когда все должны работать и быть доступны.
+ Можно легко добавлять новые подписчики без изменений в коде исходного сервиса
Например, когда после успешной оплаты надо еще начислить бонусные баллы в сервисе лояльности, то мы добавим новый обработчик события из брокера, но не будем трогать код сервиса платежей.
+ Лучше отказоустойчивость
Нет риска, что событие не обработается в каком-либо сервисе - брокер даёт гарантию доставки.
+ Гибкое масштабирование
Итого:
Брокеры — залог гибкой, масштабируемой и отказоустойчивой архитектуры 👍
#АрхитектураGA
🔥29❤9👍8🤔1
Forwarded from 👩🏻💻 Подкаст Системных Аналитиков | GetAnalyst
В этом эпизоде мы подробно разбираем устройство Kafka и ключевые особенности, которые важно понимать аналитикам.
Вы узнаете, что важно учитывать при постановке задач разработчикам, познакомитесь с принципами работы распределенной архитектуры и асинхронным взаимодействием сервисов внутри системы на примере подсистемы технической поддержки.
Эпизод будет полезен как опытным аналитикам, уже работающим с Kafka, так и тем, кто только планирует развиваться в этом направлении, чтобы начать работать на проектах с распределенной архитектурой.
Видео эпизода доступно в:
⏯ RuTube
⏯ YouTube
⏯ VK Video
⏯ Telegram
Аудио-эпизод доступен в:
⏯ Apple Podcast
⏯ Яндекс.Музыка
⏯ Castbox
⏯ Spotify
Получайте новые знания с сообществом системных аналитиков GetAnalyst каждый день!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22👍6❤4
This media is not supported in your browser
VIEW IN TELEGRAM
💫 Kafka - что надо знать для работы Системному аналитику 💫
Apache Kafka — это распределённая платформа потоковой обработки данных.
Предназначена для публикации, хранения и обработки событий/сообщений в реальном времени.
Основные компоненты:
✔️ Продюсеры (Producers)
1) Генерируют сообщения/события к обработке и отправляют в топики (темы).
2) Определяют, в какую партицию топика записывать данные: автоматически или по заданным правилам.
3) Могут быть чем угодно: микросервисы, устройства IoT и другие приложения.
4) Поддерживают режимы отправки:
+ Синхронный — ждёт подтверждения от Kafka перед отправкой следующего сообщения.
+ Асинхронный — отправляет сообщения без ожидания ответа.
5) Могут гарантировать доставку с разными уровнями подтверждения (acks):
+ acks=0 — без ожидания подтверждения (возможна потеря данных, высокая скорость).
+ acks=1 — подтверждение только от лидера партиции (среднее).
+ acks=all — подтверждение от всех реплик (максимальная надёжность).
✔️ Потребители (Consumers)
1) Подписываются на один или несколько топиков и получают сообщения/события.
2) Могут работать как отдельные клиенты или объединяться в группы (Consumer Groups) для параллельной обработки сообщений.
3) В группе консьюмеров каждый участник обрабатывает свою часть партиций.
4) Kafka гарантирует, что каждое сообщение будет обработано хотя бы одним потребителем в группе.
5) Модели доставки сообщений:
+ at-least-once — как минимум 1 раз, возможны дубликаты.
+ exactly-once — ровно один раз.
✔️ Топики (Topics) — логическая тема, куда продюсеры отправляют сообщения, а потребители их читают
✔️ Партиции (Partitions) — подмножество данных внутри топика, которое позволяет распределять нагрузку и масштабировать обработку сообщений. Каждый топик состоит из одной или нескольких партиций
✔️ Брокер (Broker) — сервер Kafka, который отвечает за хранение, управление и передачу данных внутри кластера
✔️ Кластер — это группа брокеров, работающих вместе для масштабирования и распределённой обработки данных
#АрхитектураGA
Apache Kafka — это распределённая платформа потоковой обработки данных.
Предназначена для публикации, хранения и обработки событий/сообщений в реальном времени.
Основные компоненты:
✔️ Продюсеры (Producers)
1) Генерируют сообщения/события к обработке и отправляют в топики (темы).
2) Определяют, в какую партицию топика записывать данные: автоматически или по заданным правилам.
3) Могут быть чем угодно: микросервисы, устройства IoT и другие приложения.
4) Поддерживают режимы отправки:
+ Синхронный — ждёт подтверждения от Kafka перед отправкой следующего сообщения.
+ Асинхронный — отправляет сообщения без ожидания ответа.
5) Могут гарантировать доставку с разными уровнями подтверждения (acks):
+ acks=0 — без ожидания подтверждения (возможна потеря данных, высокая скорость).
+ acks=1 — подтверждение только от лидера партиции (среднее).
+ acks=all — подтверждение от всех реплик (максимальная надёжность).
✔️ Потребители (Consumers)
1) Подписываются на один или несколько топиков и получают сообщения/события.
2) Могут работать как отдельные клиенты или объединяться в группы (Consumer Groups) для параллельной обработки сообщений.
3) В группе консьюмеров каждый участник обрабатывает свою часть партиций.
4) Kafka гарантирует, что каждое сообщение будет обработано хотя бы одним потребителем в группе.
5) Модели доставки сообщений:
+ at-least-once — как минимум 1 раз, возможны дубликаты.
+ exactly-once — ровно один раз.
✔️ Топики (Topics) — логическая тема, куда продюсеры отправляют сообщения, а потребители их читают
✔️ Партиции (Partitions) — подмножество данных внутри топика, которое позволяет распределять нагрузку и масштабировать обработку сообщений. Каждый топик состоит из одной или нескольких партиций
✔️ Брокер (Broker) — сервер Kafka, который отвечает за хранение, управление и передачу данных внутри кластера
✔️ Кластер — это группа брокеров, работающих вместе для масштабирования и распределённой обработки данных
#АрхитектураGA
🔥32👍12❤7
This media is not supported in your browser
VIEW IN TELEGRAM
✔️ Топики (Topics)
1) Логическая категория или тема, куда Продюсеры отправляют сообщения, а Потребители их читают.
2) Представляют собой поток сообщений, где каждое имеет: ключ, значение, метаданные.
3) Не удаляют сообщения сразу после обработки — данные хранятся в топике в течение заданного времени.
4) Могут быть разделены на партиции, что позволяет распределять нагрузку между Продюсерами и Консьюмерами.
✔️ Партиции (Partitions)
1) Каждый топик состоит из одной или нескольких партиций (разделов).
2) Сообщения внутри партиции хранятся в строгом порядке (FIFO — "первым пришёл, первым обработался").
3) Разные партиции могут обрабатываться параллельно, что увеличивает производительность Kafka.
4) Каждое сообщение в партиции получает уникальный порядковый номер (offset), который используется Потребителями для чтения данных.
5) Продюсеры могут отправлять сообщения в партиции автоматически или по определённому ключу (например, все заказы одного клиента попадут в одну партицию).
6) Один потребитель из Группы Консьюмеров читает данные только из своей партиции, что позволяет распределять нагрузку.
7) Повышение надежности обеспечивается через репликацию: выделяют Leader Replica (основная копия данных партиции) и Follower Replica (копирует данные лидера в синхронном или асинхронном режиме).
✔️ Брокеры (Brokers)
1) Хранят топики и их партиции.
2) Обрабатывают запросы Продюсеров на запись и Консьюмеров на чтение данных.
3) Управляют репликацией партиций для отказоустойчивости.
4) Автоматически перераспределяют нагрузку при добавлении новых брокеров в кластер.
✔️ Кластер (Cluster)
1) Это группа брокеров, работающих вместе для масштабирования и распределённой обработки данных.
2) Использует ZooKeeper или KRaft для координации (назначает лидеров партиций, отслеживает состояние брокеров).
3) Позволяет добавлять новые брокеры без остановки системы.
4) Поддерживает автоматическое восстановление при сбоях отдельных узлов.
#АрхитектураGA
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥27👍13❤6
GetAnalyst_Интеграции_мини_книга_для_БА_и_СА.pdf
10.7 MB
📚 Мини-книга по Интеграциям для Системных аналитиков: самое важное 📚
Интеграция — это процесс объединения различных систем и приложений в единое целое, чтобы они могли работать вместе, обмениваться данными и выполнять задачи, как одна система.
Например, нам в приложении для медитаций надо сделать возможность оплаты подписки 🧘♀️
Получается, надо делать сложный банковский процессинг для проверки карт кучи банков, списания с них денег, проверки CVV, отправки проверочных кодов, безопасность приема и обработки платежей...?
В общем эту всю кучу банковских задач мы делать не хотим. Мы же не банк! 🥲
Поэтому, для упрощения своей жизни, мы подключим готовое банковское решение "Интернет-эквайринг" - то есть сделаем интеграцию с банковской системой.
Обычно это интеграции по API.
Главная идея интеграций:
👉 Виды интеграций:
1) по окружениям:
▫️ Внешние - когда мы хотим подключить к нашей системе чужую систему, от других разработчиков.
▫️ Внутренние
- у нас на проекте сервисная или микросервисная архитектура, и нам надо сделать так, чтобы сервисы обменивались данными друг с другом по API или через брокеры (очереди).
- мобильное приложение работает с данными благодаря интеграции с сервером по API.
2) по направлению:
▫️ Во внешние системы - когда мы используем API чужих систем.
▫️ К нашей системе - когда мы сами разрабатываем свой API, чтобы к нам подключались (например, по примеру выше, мы банк, и даем другим свой API для подключения)
👉 Способы обмена данными:
▫️ Синхронный - отправили данные и получили ответ сразу.
▫️ Асинхронный - отправили данные и продолжили работу без ожидания ответа. Обработка в фоне.
👉 Основные способы интеграции:
▫️ API
▫️ Библиотеки и SDK
▫️ Брокеры (очереди сообщений)
▫️ Файлы
▫️ Общая БД
📚 Подробнее о том, что такое интеграции и какие они бывают, рассказала в мини-книге с картинками и примерами.
Файл прикреплен к посту.
Загружаем, изучаем и запоминаем 👍
#ИнтеграцииGA
Интеграция — это процесс объединения различных систем и приложений в единое целое, чтобы они могли работать вместе, обмениваться данными и выполнять задачи, как одна система.
Например, нам в приложении для медитаций надо сделать возможность оплаты подписки 🧘♀️
Получается, надо делать сложный банковский процессинг для проверки карт кучи банков, списания с них денег, проверки CVV, отправки проверочных кодов, безопасность приема и обработки платежей...?
В общем эту всю кучу банковских задач мы делать не хотим. Мы же не банк! 🥲
Поэтому, для упрощения своей жизни, мы подключим готовое банковское решение "Интернет-эквайринг" - то есть сделаем интеграцию с банковской системой.
Обычно это интеграции по API.
Главная идея интеграций:
Если не хочешь "изобретать велосипед", просто подключи (интегрируй) уже готовое решение в свою систему.
👉 Виды интеграций:
1) по окружениям:
▫️ Внешние - когда мы хотим подключить к нашей системе чужую систему, от других разработчиков.
▫️ Внутренние
- у нас на проекте сервисная или микросервисная архитектура, и нам надо сделать так, чтобы сервисы обменивались данными друг с другом по API или через брокеры (очереди).
- мобильное приложение работает с данными благодаря интеграции с сервером по API.
2) по направлению:
▫️ Во внешние системы - когда мы используем API чужих систем.
▫️ К нашей системе - когда мы сами разрабатываем свой API, чтобы к нам подключались (например, по примеру выше, мы банк, и даем другим свой API для подключения)
👉 Способы обмена данными:
▫️ Синхронный - отправили данные и получили ответ сразу.
▫️ Асинхронный - отправили данные и продолжили работу без ожидания ответа. Обработка в фоне.
👉 Основные способы интеграции:
▫️ API
▫️ Библиотеки и SDK
▫️ Брокеры (очереди сообщений)
▫️ Файлы
▫️ Общая БД
📚 Подробнее о том, что такое интеграции и какие они бывают, рассказала в мини-книге с картинками и примерами.
Файл прикреплен к посту.
Загружаем, изучаем и запоминаем 👍
#ИнтеграцииGA
❤43👍18❤🔥12🔥2👏1🍾1
GetAnalyst - Архитектура С4 с Kafka - BookingGA.png
1.3 MB
Рассказываю про внутреннюю интеграцию через Kafka и, в завершении проекта с микросервисами #BookingGA, показываю на нём наглядный пример.
📌Процесс:
Оплата бронирования жилья
📌Сложность:
Сразу после оплаты надо в фоне (асинхронно) выполнить несколько внутренних задач. Обеспечить гарантию их выполнения.
📌Алгоритм:
1. Пользователь произвел платеж за аренду в любом Frontend-приложении.
2. Сразу после завершения оплаты, с Frontend идёт запрос на Backend (API Gateway) для проверки статуса платежа, т.к. оплата проводилась на стороне внешней платежной системы и надо подтвердить её успех на бэке.
3. API Gateway перенаправляет запрос на Сервис Платежей, который:
+ выполняет проверку статуса в системе RaifPay
+ обновляет статус платежа в БД
+ кладёт событие (сообщ.) об оплате 👉в Kafka(4), чтобы на него среагировали связанные сервисы - это нужно для дальнейшей асинхронной работы системы
-> После этого Сервис Платежей возвращает успешный ответ на API Gateway
-> API Gateway возвращает успешный ответ с актуальным статусом платежа на Front
-> Front показывает пользователю "Платеж успешен"
4. Сообщение попадает в Kafka, в определенные топик и партицию, которые предназначены для событий "Платеж успешен".
Сервисы Уведомлений, Бронирований и Аналитики (Консьюмеры) подписаны на этот топик Kafka, с событиями "Платеж успешен".
5. Далее, каждый сервис по отдельности, в любом порядке и когда ему удобно, забирает и обрабатывает событие (сообщ.) "Платеж успешен":
5.1. Уведомления: отправляет email/sms о платеже
5.2. Бронирования: подтверждает бронь и обновляет статус в БД
5.3. Аналитики: получает данные для отчетов и сохраняет в свою БД
Kafka гарантирует, что даже если какой-то сервис недоступен сразу, в реальном времени, то событие об оплате он всё равно получит и обработает позже, когда включится
Полезное:
#АрхитектураGA
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤9❤🔥4💯4
На самом деле BookingGA уже не новый проект. Весь прошлый месяц мы проектировали его архитектуру.
Это основа, которая поможет нам в работе над проектированием интеграции.
👉 В этом месяце мы погрузимся глубже в детали, касающиеся интеграции Сервиса Уведомлений (и монолита) с внешней системой Unisender для создания email и SMS рассылок.
🔷 Задача:
Подключить сервис email-рассылок, чтобы пользователи, кто включил маркетинговые уведомления в настройках или при регистрации (галочка "Получать новости о новых объектах недвижимости и выгодных предложениях"), получали соответствующую рассылку раз в неделю.
🔷 Процесс к автоматизации:
1. Пользователи включают настройку "Получать новости..." и выбирают один город, по которому хотят получать обновления.
2. В течение недели владельцы недвижимости могут создавать новые объявления о сдаче в аренду, т.е. создавать новые дома и квартиры в системе для аренды, менять цены.
3. Раз в неделю, в пн, в 12:00 по Мск, должна быть выполнена рассылка email-уведомлений всем подписанным на неё пользователям с использованием Unisender.
🔷 Задачи аналитика:
1. Выделить список Use Case для реализации доработки
2. Провести первичный анализ API-документации Unisender
3. Показать архитектуру системы, которая будет затронута
4. Протестировать API Unisender в Postman, чтобы понять как реально работает API
5. Описать логику работы - детальную постановку задачи (интеграционный Use Case)
6. Сформировать требования для интеграционных REST API-методов Backend BookingGA
7. Дополнить требования UML-диаграммой
8. Описать маппинг данных и доработки БД
Мы будем последовательно разбирать эти шаги весь март.
Результат:
✅ детализированные постановки задач + доп. артефакты
✅ коллекция запросов в Postman для API Unisender
✅ ваше понимание процесса работы с задачами на интеграции + новый реальный опыт
Чтобы участвовать, достаточно быть подписанным на GetAnalyst и следить за обновлениями 😉
Добро пожаловать на проект!
#ИнтеграцииGA
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥39❤14❤🔥5
✅ Получить вводные от заказчика
☑️ Выделить компоненты системы: внешние, внутренние, которые будут участвовать в интеграции
✅ Получить API-документацию для каждой из внешних систем, с которой интеграция, а если необходимо, то и для внутренних
✅ Нарисовать схему архитектуры, связанную с интеграцией — первое приближение
☑️ Описать процессы, которые нужно поддержать в системе
☑️ Найти по API-документации соответствующие процессам методы, добавить их в описание
☑️ Уточнить схему архитектуры, и далее постоянно актуализировать по ходу детального проектирования и создания постановок задач
☑️ Получить доступы к API внешних систем
☑️ Протестировать API своими силами в Postman или с помощью разработчиков
☑️ Сопоставить данные между системами, базой данных и UI. Доработать/спроектировать БД нашей системы. Описать маппинги данных
☑️ Создать задачи в Jira и выстроить порядок разработки:
+ задачи на Frontend,
+ задачи на интеграционные API-методы нашего Backend,
+ задачи на доработки БД,
+ и другие.
☑️ Сделать детализацию постановок задач в Confluence на основе исследований, проведенных ранее.
👉 Полный пошаговый план работы с задачами на интеграции доступен по этой ссылке.
Пусть он станет вашим помощником при проектировании интеграционных взаимодействий в любых системах.
#ИнтеграцииGA
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥33⚡4
Forwarded from 👩🏻💻 Подкаст Системных Аналитиков | GetAnalyst
💫 ПРОБЛЕМЫ В РАБОТЕ С ЗАДАЧАМИ НА ИНТЕГРАЦИИ 💫
В новом эпизоде подкаста мы погрузимся в проблемы разработки требований на интеграции систем, с которыми могут встретиться системные аналитики, а также обсудим варианты их решения.
Этот эпизод представляет ценную информацию для начинающих и опытных системных аналитиков, стремящихся разобраться в работе с интеграционными задачами и обеспечить стабильное взаимодействие систем.
1:18 - Что такое интеграции?
4:25 - Роль системного аналитика в процессе работы с задачами на интеграции.
11:41 - Как изменилась работа с задачами на интеграции за последние годы?
16:49 - Написал требования в соответствии с API-документацией внешней системы, а потом оказалось, что работает не так.
19:40 - Интеграция работала в продакшн и всё было хорошо, а потом всё внезапно сломалось.
22:57 - Что делать если предстоит интегрироваться с системой у которой еще нет API, а сроки горят?
26:18 - Разработчик системы, с которой предстоит интегрироваться, не предоставляет API и доступы, а задачу нужно реализовать, потому что сроки (P.S. Влиять через заказчика на внешнюю команду при возможности).
28:07 - Что, если вы тот самый разработчик, у которого просят API, но вам пока не до этого?
29:21 - Платные подписки и использование внешних систем. Примеры: DaData.ru, сервисы SMS-рассылок с поштучной оплатой со счета заказчика и другие.
31:58 - Разные структуры данных в разных системах: как собрать всё в нашей системе воедино? Про агрегаторы.
36:07 - Высокие нагрузки и длительное ожидание ответов. Асинхронные запросы и вебхуки.
39:37 - Не работал с видом API, по которому предстоит интеграция (REST API, GraphQL, gRPC, SOAP API и WebSocket - основные, посмотрите на них).
42:02 - Заключение и рекомендации
Эпизод доступен в:
⏯ Яндекс.Музыка
⏯ YouTube
⏯ Telegram
⏯ Apple Podcast
⏯ Castbox
⏯ Spotify
⏯ Amazon Music
Подписывайтесь на подкаст и делитесь с коллегами, начинающими и опытными системными аналитиками!
В новом эпизоде подкаста мы погрузимся в проблемы разработки требований на интеграции систем, с которыми могут встретиться системные аналитики, а также обсудим варианты их решения.
Этот эпизод представляет ценную информацию для начинающих и опытных системных аналитиков, стремящихся разобраться в работе с интеграционными задачами и обеспечить стабильное взаимодействие систем.
1:18 - Что такое интеграции?
4:25 - Роль системного аналитика в процессе работы с задачами на интеграции.
11:41 - Как изменилась работа с задачами на интеграции за последние годы?
16:49 - Написал требования в соответствии с API-документацией внешней системы, а потом оказалось, что работает не так.
19:40 - Интеграция работала в продакшн и всё было хорошо, а потом всё внезапно сломалось.
22:57 - Что делать если предстоит интегрироваться с системой у которой еще нет API, а сроки горят?
26:18 - Разработчик системы, с которой предстоит интегрироваться, не предоставляет API и доступы, а задачу нужно реализовать, потому что сроки (P.S. Влиять через заказчика на внешнюю команду при возможности).
28:07 - Что, если вы тот самый разработчик, у которого просят API, но вам пока не до этого?
29:21 - Платные подписки и использование внешних систем. Примеры: DaData.ru, сервисы SMS-рассылок с поштучной оплатой со счета заказчика и другие.
31:58 - Разные структуры данных в разных системах: как собрать всё в нашей системе воедино? Про агрегаторы.
36:07 - Высокие нагрузки и длительное ожидание ответов. Асинхронные запросы и вебхуки.
39:37 - Не работал с видом API, по которому предстоит интеграция (REST API, GraphQL, gRPC, SOAP API и WebSocket - основные, посмотрите на них).
42:02 - Заключение и рекомендации
Эпизод доступен в:
⏯ Яндекс.Музыка
⏯ YouTube
⏯ Telegram
⏯ Apple Podcast
⏯ Castbox
⏯ Spotify
⏯ Amazon Music
Подписывайтесь на подкаст и делитесь с коллегами, начинающими и опытными системными аналитиками!
🔥23👍9
GetAnalyst _Интеграционные User Stories.pdf
3.9 MB
🔷 User Stories: подход и применение в интеграциях 🔷
Этот метод широко применяется в гибких методологиях разработки (Agile, Scrum) и помогает командам формулировать задачи так, чтобы они отражали реальную ценность для пользователей или стейкхолдеров.
Это делает требования более понятными для всех участников проекта – от бизнеса до разработчиков.
Детализация требований может быть (и будет) сделана на следующих этапах аналитики и разработки.
👉 Пример User Story:
Как пользователь-арендатор платформы #BookingGA,
я хочу видеть отзывы по домам и квартирам, предлагаемым в ней,
чтобы принимать более взвешенное и уверенное решение перед началом аренды.
👉 Критерии приемки:
+ После окончания аренды пользователю предлагается оставить отзыв по бронированию:
++ при просмотре истории бронирований в приложении,
++ через email и push-уведомления.
+ При размещении отзыва пользователь может поставить количество звезд, написать текстовое сообщение и прикрепить фотографии.
+ …
При формулировке таких историй и их критериев приемки важно учитывать:
✅ 1. Событийный характер данных
✅ 2. Взаимодействие с API внешних систем
✅ 3. Авторизация систем и пользователей
✅ 4. Логирование и мониторинг
✅ 5. Требования к гарантии доставки
✅ 6. Обработка дубликатов данных
✅ 7. Обработка конфликтов данных
✅ 8. Ограничения и лимиты API внешних систем
✅ 9. Масштабируемость и обработка больших объемов данных
Подробности каждого пункта и примеры разобрала в мини-книге к посту 📚
#ИнтеграцииGA
User Stories –
это формат описания требований с фокусом на конечного пользователя и его потребности.
Этот метод широко применяется в гибких методологиях разработки (Agile, Scrum) и помогает командам формулировать задачи так, чтобы они отражали реальную ценность для пользователей или стейкхолдеров.
Вместо детального технического описания требований, User Story фиксирует:
👉 цель,
которую хочет достичь пользователь,
👉 основные критерии приемки,
которые являются аналогом функциональных требований.
Это делает требования более понятными для всех участников проекта – от бизнеса до разработчиков.
Детализация требований может быть (и будет) сделана на следующих этапах аналитики и разработки.
👉 Пример User Story:
Как пользователь-арендатор платформы #BookingGA,
я хочу видеть отзывы по домам и квартирам, предлагаемым в ней,
чтобы принимать более взвешенное и уверенное решение перед началом аренды.
👉 Критерии приемки:
+ После окончания аренды пользователю предлагается оставить отзыв по бронированию:
++ при просмотре истории бронирований в приложении,
++ через email и push-уведомления.
+ При размещении отзыва пользователь может поставить количество звезд, написать текстовое сообщение и прикрепить фотографии.
+ …
🔷 Особенность User Stories в интеграционных проектах – это акцент не только на взаимодействии пользователей с системой, но и на том, как разные системы обмениваются данными.
При формулировке таких историй и их критериев приемки важно учитывать:
✅ 1. Событийный характер данных
✅ 2. Взаимодействие с API внешних систем
✅ 3. Авторизация систем и пользователей
✅ 4. Логирование и мониторинг
✅ 5. Требования к гарантии доставки
✅ 6. Обработка дубликатов данных
✅ 7. Обработка конфликтов данных
✅ 8. Ограничения и лимиты API внешних систем
✅ 9. Масштабируемость и обработка больших объемов данных
Подробности каждого пункта и примеры разобрала в мини-книге к посту 📚
#ИнтеграцииGA
❤🔥21👍15❤6🔥5
💥🎁 Открыта запись на Интеграции: старт 2 апреля 🎁💥
Почти во всех современных системах есть интеграции:
▫️ мобильные и веб- приложения обмениваются данными с сервером по API, чтобы сохранять и отображать их пользователям,
▫️ для приема оплаты в приложениях подключают банковские платежные системы,
▫️ микросервисы обмениваются данными между собой.
Можно приводить много примеров.
Поэтому от системных аналитиков требуют знания и опыт в интеграциях, особенно ведущие ИТ-компании рынка.
👉 В программе Интеграции систем мы на практике разбираем все детали работы с задачами: от анализа API-документации до создания структуры требований и постановок задач на разработчиков.
🗓 Старт: 2 апреля 2025
🗓 В онлайн: с 9 апреля 2025 (всегда по ср)
🔗 Подробности и регистрация
Вас ждут:
✅ 10 живых онлайн-встреч.
✅ Решение реальных задач.
✅ Один проект в течение всей программы.
✅ Обратная связь и индивидуальный подход.
✅ Структурированные знания и опыт.
🎁 По заявкам до 24 марта дарим дополнительное обучение по БД+SQL в подарок + самые выгодные условия.
Есть вопросы?
Пишите @getanalyst,
на почту info@getanalyst.ru
или заполняйте анкету предзаписи на сайте.
Мы поможем оценить ваши текущие навыки, пришлем дополнительную информацию и ответим на все вопросы 🤝
Почти во всех современных системах есть интеграции:
▫️ мобильные и веб- приложения обмениваются данными с сервером по API, чтобы сохранять и отображать их пользователям,
▫️ для приема оплаты в приложениях подключают банковские платежные системы,
▫️ микросервисы обмениваются данными между собой.
Можно приводить много примеров.
Поэтому от системных аналитиков требуют знания и опыт в интеграциях, особенно ведущие ИТ-компании рынка.
👉 В программе Интеграции систем мы на практике разбираем все детали работы с задачами: от анализа API-документации до создания структуры требований и постановок задач на разработчиков.
🗓 Старт: 2 апреля 2025
🗓 В онлайн: с 9 апреля 2025 (всегда по ср)
Вас ждут:
✅ 10 живых онлайн-встреч.
✅ Решение реальных задач.
✅ Один проект в течение всей программы.
✅ Обратная связь и индивидуальный подход.
✅ Структурированные знания и опыт.
🎁 По заявкам до 24 марта дарим дополнительное обучение по БД+SQL в подарок + самые выгодные условия.
Есть вопросы?
Пишите @getanalyst,
на почту info@getanalyst.ru
или заполняйте анкету предзаписи на сайте.
Мы поможем оценить ваши текущие навыки, пришлем дополнительную информацию и ответим на все вопросы 🤝
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
GetAnalyst_Use_Cases_Обычные_VS_Интеграционные_.pdf
1.1 MB
📂 Use Cases: обычные VS интеграционные 📂
Use Case — это:
✅ детализированные функциональные требования;
✅ описание того, как пользователь взаимодействует с системой для достижения определённой цели;
✅ сценарий, который показывает шаги, выполняемые пользователем и системой в процессе выполнения задачи;
✅ алгоритм работы системы.
Стандартный шаблон Use Case включает:
▪ Предусловие
▪ Роли пользователей
▪ Приложения и системы
▪ Входные данные
▪ Основной сценарий
▪ Обработка ошибок и альтернативные сценарии
▪ Ожидаемый результат
В случае интеграций, Use Case дополняется:
▪ техническими деталями по вызовам API методов, которые аналитику важно прописать в постановке задачи,
▪ а также маппингом данных.
Интеграции — это не просто "еще одна задача".
Это серьезная работа по анализу взаимосвязей БД + Функций + UI/UX + API нашей и внешних систем, который требует нашего опыта, внимания и профессионализма 🙌
Мини-книгу про отличия обычных Use Case от интеграционных прикрепила к посту 🤝
#ИнтеграцииGA
Use Case — это:
Стандартный шаблон Use Case включает:
▪ Предусловие
▪ Роли пользователей
▪ Приложения и системы
▪ Входные данные
▪ Основной сценарий
▪ Обработка ошибок и альтернативные сценарии
▪ Ожидаемый результат
В случае интеграций, Use Case дополняется:
▪ техническими деталями по вызовам API методов, которые аналитику важно прописать в постановке задачи,
▪ а также маппингом данных.
Интеграции — это не просто "еще одна задача".
Это серьезная работа по анализу взаимосвязей БД + Функций + UI/UX + API нашей и внешних систем, который требует нашего опыта, внимания и профессионализма 🙌
Мини-книгу про отличия обычных Use Case от интеграционных прикрепила к посту 🤝
#ИнтеграцииGA
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥11❤9
🐺 Работа не волк, но может и загрызть 🐺
Еще год назад я думала, что главное — это успеть как можно больше.
Работала по 10-12 часов в день, почти без выходных.
Жила в режиме «ещё чуть-чуть, и можно выдохнуть».
Но потом в очередной раз поняла:
Уже не первое озарение.
И каждый раз с новой стороны.
👉 Именно поэтому сегодня моя дисциплина — это не только про работу, но и про здоровье, энергию и качество жизни.
Делюсь самым сокровенным.
◻️ Физическое здоровье
1. Спорт — неотъемлемая часть моей жизни уже почти 10 лет.
Даже если день загружен под завязку, я нахожу время подвигаться. Бегаю, делаю силовые, хожу на длинные прогулки.
Это не про «надо» — это про «если не сделаю, почувствую себя хуже».
2. Добавила регулярные чекапы.
Раз в год сдаю анализы, проверяю, какие показатели улучшились, а где капец.
В прошлом году нашелся дефицит железа. А еще слишком высокий уровень стресса.
Весь год работала над исправлением.
+ Витаминки и правильные продукты - мои лучшие друзья
+ Увеличение сна до 8+ часов (хотя всё ещё периодически косячу)
+ Два выходных в неделю без компьютера
В конце марта снова пойду проверять показатели.
Надеюсь, что ситуацию поправила.
◻️ Питание
С едой у меня вечно какая-то история.
Считаю калории, экспериментирую с выбором продуктов.
В этом году — полный отказ от кофе и алкоголя.
Пока похоже на интересный опыт и улучшение самочувствия.
Но самое неожиданное: год назад убрала из рациона молочку.
И впервые с подросткового возраста у меня чистая кожа. Ни один косметолог не дал такого результата! 😱
Приготовила сырники один раз за всё время, думала жаренный творог норм. Ага 🤣 Моё лицо дало реакцию на следующий день. На чипсы по неосторожности такой реакции нет, как на молоко))
У кого проблемы с кожей - рекомендую попробовать.
Привыкаешь со временем, но иногда скучаю 😅
◻️ Уход за собой
Дисциплина — это не только про работу и спорт, но и про заботу о себе.
Через "галочки" в ежедневнике каждый день заставляла себя пользоваться кремами, маслами для волос, делать маски.
Уже почти сделала рутиной это всё))
Для девушек это точно важно!!!
Ведь красота — это не только про внешность, но и про ощущение себя, самочувствие и качество жизни.
◻️ Ментальное здоровье
Путешествовать, делать выходные, спрашивать себя: «Как я себя чувствую?».
А если внутри хаос — не бояться пойти к психологу или коучу. Это реально помогает.
За 2 выходных в неделю мне до сих пор иногда стыдно. Но я работаю над этим и понимаю, что зато в будни я продуктивнее, и чувствую себя живее.
Работа в IT — круто, но порой стрессово.
Мы постоянно думаем, решаем задачи, держим в голове десятки процессов.
👉 И если не следить за своим состоянием, можно загнать себя так, что никакие достижения не принесут радости.
Работа загрызёт 🐺
💡 Итого:
Если не заботиться о себе, здоровье и энергия уйдут раньше, чем ты успеешь сказать «сгорел».
Так что следите за собой, проверяйтесь у врачей, вовремя отдыхайте и держите в рутине всё, что делает вас сильнее.
Берегите себя ❤️
Еще год назад я думала, что главное — это успеть как можно больше.
Работала по 10-12 часов в день, почти без выходных.
Жила в режиме «ещё чуть-чуть, и можно выдохнуть».
Но потом в очередной раз поняла:
Если не заботиться о себе, никакие успехи не спасут от выгорания, а потом никакие деньги не вытащат из больниц.
Уже не первое озарение.
И каждый раз с новой стороны.
👉 Именно поэтому сегодня моя дисциплина — это не только про работу, но и про здоровье, энергию и качество жизни.
Делюсь самым сокровенным.
◻️ Физическое здоровье
1. Спорт — неотъемлемая часть моей жизни уже почти 10 лет.
Даже если день загружен под завязку, я нахожу время подвигаться. Бегаю, делаю силовые, хожу на длинные прогулки.
Это не про «надо» — это про «если не сделаю, почувствую себя хуже».
2. Добавила регулярные чекапы.
Раз в год сдаю анализы, проверяю, какие показатели улучшились, а где капец.
В прошлом году нашелся дефицит железа. А еще слишком высокий уровень стресса.
Весь год работала над исправлением.
+ Витаминки и правильные продукты - мои лучшие друзья
+ Увеличение сна до 8+ часов (хотя всё ещё периодически косячу)
+ Два выходных в неделю без компьютера
В конце марта снова пойду проверять показатели.
Надеюсь, что ситуацию поправила.
◻️ Питание
С едой у меня вечно какая-то история.
Считаю калории, экспериментирую с выбором продуктов.
В этом году — полный отказ от кофе и алкоголя.
Пока похоже на интересный опыт и улучшение самочувствия.
Но самое неожиданное: год назад убрала из рациона молочку.
И впервые с подросткового возраста у меня чистая кожа. Ни один косметолог не дал такого результата! 😱
Приготовила сырники один раз за всё время, думала жаренный творог норм. Ага 🤣 Моё лицо дало реакцию на следующий день. На чипсы по неосторожности такой реакции нет, как на молоко))
У кого проблемы с кожей - рекомендую попробовать.
Привыкаешь со временем, но иногда скучаю 😅
◻️ Уход за собой
Дисциплина — это не только про работу и спорт, но и про заботу о себе.
Через "галочки" в ежедневнике каждый день заставляла себя пользоваться кремами, маслами для волос, делать маски.
Уже почти сделала рутиной это всё))
Для девушек это точно важно!!!
Ведь красота — это не только про внешность, но и про ощущение себя, самочувствие и качество жизни.
◻️ Ментальное здоровье
Отдыхать — это не слабость, а необходимость.
Путешествовать, делать выходные, спрашивать себя: «Как я себя чувствую?».
А если внутри хаос — не бояться пойти к психологу или коучу. Это реально помогает.
За 2 выходных в неделю мне до сих пор иногда стыдно. Но я работаю над этим и понимаю, что зато в будни я продуктивнее, и чувствую себя живее.
Работа в IT — круто, но порой стрессово.
Мы постоянно думаем, решаем задачи, держим в голове десятки процессов.
👉 И если не следить за своим состоянием, можно загнать себя так, что никакие достижения не принесут радости.
Работа загрызёт 🐺
💡 Итого:
Если не заботиться о себе, здоровье и энергия уйдут раньше, чем ты успеешь сказать «сгорел».
Так что следите за собой, проверяйтесь у врачей, вовремя отдыхайте и держите в рутине всё, что делает вас сильнее.
Берегите себя ❤️
👍65💯27❤🔥20🔥12❤10🤣1