🦄 Микросервисная архитектура(MSA): погружение в детали 🦄
Микросервисная архитектура (MSA) – это эволюция сервис-ориентированной архитектуры (SOA), но более гибкая, независимая и масштабируемая.
Если монолит – это один большой блок,
а SOA – это несколько крупных сервисов,
то MSA – это сеть небольших сервисов, работающих как единая система.
Что такое микросервис (МС)?
▫️ Это небольшая, автономная служба, которая:
+ управляет данными одной сущности,
+ обслуживает строго один бизнес-процесс,
+ выполняет только одну простую функцию.
По сравнению с SOA, в MSA сервисы более узкоспециализированные и мЕньшие по размеру.
▫️ У каждого МС своя БД, API, кодовая база.
▫️ Каждый МС развернут на своём сервере, работает и релизится независимо от других.
▫️ МС не используют общую БД – каждая часть системы управляет своими данными.
👉 В МСА сервисы взаимодействуют между собой:
+ напрямую по API (REST, gRPC и другие),
+ через API Gateway,
+ через оркестратор,
+ асинхронно, через брокеры сообщений как Kafka или RabbitMQ.
Набор МС для классического примера с Интернет-магазином:
🔹 Каталог товаров
🔹 Корзина
🔹 Заказы – получает данные из корзины и формирует заказ
🔹 Платежи
🔹 Управление скидками
🔹 Доставка
🔹 Уведомления (sms, email, push)
🔹 ЛК пользователей
👉 Плюсы MSA во многом совпадают с SOA:
✅ Сервисы можно легко добавлять или обновлять без влияния на всю систему, т.к. у них отдельные кодовые базы
✅ Масштабируемость – можно увеличить нагрузку на конкретный сервис, не затрагивая всю систему
✅ Можно обновлять сервисы без даунтайма всей системы. А собственная БД гарантирует, что другие сервисы не будут затронуты
✅ Ошибки в одном сервисе не влияют на работу других
✅ Гибкость технологий
👉 Недостатки MSA:
❌ Сложность управления большим количеством сервисов. Мониторинг и логирование должны быть на высоком уровне, чтобы не терять сбои в отдельных частях системы
❌ Возможны задержки в работе из-за количества звеньев в цепочке обмена данными
❌ Нужна опытная команда
#АрхитектураGA
Микросервисная архитектура (MSA) – это эволюция сервис-ориентированной архитектуры (SOA), но более гибкая, независимая и масштабируемая.
Если монолит – это один большой блок,
а SOA – это несколько крупных сервисов,
то MSA – это сеть небольших сервисов, работающих как единая система.
Что такое микросервис (МС)?
▫️ Это небольшая, автономная служба, которая:
+ управляет данными одной сущности,
+ обслуживает строго один бизнес-процесс,
+ выполняет только одну простую функцию.
По сравнению с SOA, в MSA сервисы более узкоспециализированные и мЕньшие по размеру.
▫️ У каждого МС своя БД, API, кодовая база.
▫️ Каждый МС развернут на своём сервере, работает и релизится независимо от других.
▫️ МС не используют общую БД – каждая часть системы управляет своими данными.
👉 В МСА сервисы взаимодействуют между собой:
+ напрямую по API (REST, gRPC и другие),
+ через API Gateway,
+ через оркестратор,
+ асинхронно, через брокеры сообщений как Kafka или RabbitMQ.
Набор МС для классического примера с Интернет-магазином:
🔹 Каталог товаров
🔹 Корзина
🔹 Заказы – получает данные из корзины и формирует заказ
🔹 Платежи
🔹 Управление скидками
🔹 Доставка
🔹 Уведомления (sms, email, push)
🔹 ЛК пользователей
👉 Плюсы MSA во многом совпадают с SOA:
✅ Сервисы можно легко добавлять или обновлять без влияния на всю систему, т.к. у них отдельные кодовые базы
✅ Масштабируемость – можно увеличить нагрузку на конкретный сервис, не затрагивая всю систему
✅ Можно обновлять сервисы без даунтайма всей системы. А собственная БД гарантирует, что другие сервисы не будут затронуты
✅ Ошибки в одном сервисе не влияют на работу других
✅ Гибкость технологий
👉 Недостатки MSA:
❌ Сложность управления большим количеством сервисов. Мониторинг и логирование должны быть на высоком уровне, чтобы не терять сбои в отдельных частях системы
❌ Возможны задержки в работе из-за количества звеньев в цепочке обмена данными
❌ Нужна опытная команда
#АрхитектураGA
❤🔥18🔥12
👉 Архитектура
◽️ Монолит:
Один большой блок - единая кодовая база Backend.
Вся логика в одном месте.
🟡 SOA:
Отдельные сервисы с независимыми кодовыми базами.
Логика распределена.
В SOA сервисы крупные и многофункциональные, их можно назвать "микромонолитами".
💚 MSA:
Небольшие, автономные сервисы, каждый из которых отвечает за управление одной сущностью, процессом или задачей.
В MSA сервисы более узкоспециализированные по сравнению с SOA.
Сравнение сервисов в SOA и MSA на примерах:
🔹 Каталог товаров
SOA:
+ Сервис "Каталог" – управляет товарами, категориями, характеристиками, поиском и рекомендациями.
MSA:
+ Сервис управления товарами – добавляет, редактирует, удаляет товары
+ Сервис поиска – отвечает только за фильтрацию, поиск и выдачу результатов
+ Сервис рекомендаций – анализирует покупки пользователей и предлагает похожие товары
🔹 Корзина покупок
SOA:
+ Сервис "Корзина" – хранит товары пользователя, управляет ценами и скидками
MSA:
+ Сервис корзины – добавляет и удаляет товары.
+ Сервис расчёта цен – отдельно высчитывает итоговую сумму с учётом акций, налогов и доставки
+ Сервис промокодов и скидок – управляет купонами, скидками, программами лояльности
------------------
👉 База данных
◽️ Монолит:
Обычно одна на всю систему, но может быть и больше.
🟡 SOA:
Сервисы могут иметь общую БД или отдельные схемы внутри одной БД.
💚 MSA:
У каждого микросервиса своя БД.
Сравнение SOA и MSA:
Например, обновление платежного модуля в интернет-магазине с MSA не затронет каталог товаров, так как у них разные БД. В то время как в SOA архитектуре могут быть проблемы с обновлениями из-за наличия общей БД.
------------------
👉 Независимость, масштабируемость и отказоустойчивость
◽️ Монолит:
Если отказывает что-то в монолите, то он ломается целиком.
Релиз обновлений приводит к полной недоступности всего Backend.
Сложно масштабировать:
- постоянно надо добавлять новые мощности (память, ядра и другие) к существующему серверу при добавлении новых функций,
- если запущено несколько параллельно работающих копий монолита, то при росте пользователя, надо запускать новую дорогую копию.
🟡 SOA:
Если отказывает что-то в одном сервисе, то ломается только он, а остальная часть системы работает.
Релиз обновлений приводит к недоступности только одного сервиса. Но могут быть сложности с отключением нескольких сервисов, когда выполняются обновления общих БД.
Можно масштабировать каждую БД и сервис по мере необходимости - т.е. если растет нагрузка на каталог товаров, то запустим больше копий только этого сервиса, а не всей системы.
💚 MSA:
Если отказывает что-то в одном сервисе, то ломается только он, а остальная часть системы работает.
Релиз обновлений приводит к недоступности только одного сервиса, за счет собственной БД сложностей нет.
Можно масштабировать каждую БД и сервис по мере необходимости, как в SOA.
------------------
👉 Взаимодействие
◽️ Монолит:
+ внутреннее, через вызов процедур и функций в одном коде.
🟡💚 SOA и MSA:
+ напрямую по API (REST, gRPC и другие),
+ через шину данных ESB,
+ через API-сервисы, в том числе можно использовать API Gateway,
+ через оркестратор,
+ асинхронно, через брокеры сообщений как Kafka или RabbitMQ.
------------------
Когда лучше монолит, когда SOA, а когда MSA?
Когда монолит?
✅ Если у вас стартап и ограниченный бюджет.
✅ Нет опытных специалистов и архитекторов, кто работал с MSA.
✅ Нужно сделать быстро и протестировать гипотезу.
✅ Нет высокой нагрузки – мало пользователей.
Когда SOA?
✅ Большая корпоративная система с интеграциями.
✅ Если в компании уже используется ESB.
✅ Не требуется высокая скорость изменений – SOA сложнее менять, так как сервисы могут зависеть от общей БД или централизованных решений.
Когда MSA?
✅ Нужна высокая скорость изменений и независимость команд.
✅ Нагрузка на отдельные функции распределена неравномерно – например, поиск товаров требует больше вычислительных мощностей, чем расчёт скидок.
✅ Отказоустойчивость критически важна.
✅ Частые релизы.
#АрхитектураGA
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤15🔥4🥰1😁1
📄 Про собеседования, резюме и вилки ЗП 📄
Проходить собеседования - тоже навык, и его надо оттачивать.
Но эту тему я почти не поднимаю в канале, так как я больше "суровый технарь", который передаёт технические навыки и опыт работы 😁
А чтобы всегда быть в курсе, как пройти через HR на техническое собеседование и самопрезентовать себя, понимать, как менять карьеру и тактично спрашивать о большей ЗП.
Я рекомендую посмотреть подборку материалов, не моего авторства, по резюме, собеседованиям и оценке своей ЗП:
🔴 Ключевые лайфхаки по резюме и его ОШИБКИ
🔴 Нужны ли сопроводительные и что там писать
🔴 Как отвечать на вопрос «Расскажите о себе»
🔴 Как вести себя с неадекватом на собесе
🔴 Как рассказывать о своем факапе?
🔴 Какие книги почитать в т.ч. для успешного прохождения собеседований?
🔴 Реальные примеры офферов бизнес и системным аналитиков до 500к
Полезная подборка, если вы планируете в ближайшее время менять работу 🙂
Проходить собеседования - тоже навык, и его надо оттачивать.
Но эту тему я почти не поднимаю в канале, так как я больше "суровый технарь", который передаёт технические навыки и опыт работы 😁
А чтобы всегда быть в курсе, как пройти через HR на техническое собеседование и самопрезентовать себя, понимать, как менять карьеру и тактично спрашивать о большей ЗП.
Я рекомендую посмотреть подборку материалов, не моего авторства, по резюме, собеседованиям и оценке своей ЗП:
Полезная подборка, если вы планируете в ближайшее время менять работу 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
❤25👍9👏1
🏠 Новый проект: микросервисная архитектура для платформы аренды недвижимости #BookingGA 🏠
Теорию надо закреплять на практике. Только так реально разобраться во всей сложной
👉 В этом месяце мы проектируем архитектуру для проекта BookingGA.
Покажу вам три варианта реализации архитектуры:
+ Монолит
+ SOA
+ MSA
BookingGA — это платформа для аренды недвижимости, которая позволяет бронировать квартиры и дома как краткосрочно, так и долгосрочно, с автоматическим заключением электронных договоров и безопасной работой с персональными данными.
Основные функции платформы:
✔️ Поиск недвижимости для аренды.
✔️ Бронирование жилья — моментальное подтверждение или с подтверждением владельцем после бронирования.
✔️ Электронный договор аренды — автоматическая генерация сразу после оплаты, электронное подписание обеими сторонами и хранение документов в PDF.
✔️ Безопасные платежи — интеграция с платёжными системами, депозиты, автоматическое списание средств за аренду.
✔️ Верификация владельцев и арендаторов — проверка документов, права собственности.
✔️ Отзывы и рейтинги — оценки арендаторов и хозяев, история аренд.
✔️ Управление объявлениями — возможность владельцев редактировать, деактивировать, продвигать объявления.
✔️ Поддержка пользователей — чат с техподдержкой, система обращений.
Для пользователей будут разработаны приложения на iOS, Android и Web. Владельцы смогут управлять объектами через веб-приложение. Панель администратора поможет тех. поддержке и администраторам модерировать систему.
План работы:
0️⃣ Расскажу про нотацию C4
1️⃣ Покажу архитектуру монолита в нотации C4
2️⃣ Научу выделять сервисы и микросервисы
3️⃣ Покажу архитекту SOA и MSA в нотации C4
4️⃣ Выберем технологии для обмена данными — REST API, gRPC, GraphQL и другие
5️⃣ Посмотрим когда и зачем нужны брокеры Kafka и RabbitMQ, встроим в архитектуру
Чтобы участвовать в проекте, просто подпишитесь на канал и следите за обновлениями.
Стартуем отсюда, и следим за постами с хэштегом #BookingGA! 🙂
#АрхитектураGA
Теорию надо закреплять на практике. Только так реально разобраться во всей сложной
👉 В этом месяце мы проектируем архитектуру для проекта BookingGA.
Покажу вам три варианта реализации архитектуры:
+ Монолит
+ SOA
+ MSA
BookingGA — это платформа для аренды недвижимости, которая позволяет бронировать квартиры и дома как краткосрочно, так и долгосрочно, с автоматическим заключением электронных договоров и безопасной работой с персональными данными.
Основные функции платформы:
✔️ Поиск недвижимости для аренды.
✔️ Бронирование жилья — моментальное подтверждение или с подтверждением владельцем после бронирования.
✔️ Электронный договор аренды — автоматическая генерация сразу после оплаты, электронное подписание обеими сторонами и хранение документов в PDF.
✔️ Безопасные платежи — интеграция с платёжными системами, депозиты, автоматическое списание средств за аренду.
✔️ Верификация владельцев и арендаторов — проверка документов, права собственности.
✔️ Отзывы и рейтинги — оценки арендаторов и хозяев, история аренд.
✔️ Управление объявлениями — возможность владельцев редактировать, деактивировать, продвигать объявления.
✔️ Поддержка пользователей — чат с техподдержкой, система обращений.
Для пользователей будут разработаны приложения на iOS, Android и Web. Владельцы смогут управлять объектами через веб-приложение. Панель администратора поможет тех. поддержке и администраторам модерировать систему.
План работы:
0️⃣ Расскажу про нотацию C4
1️⃣ Покажу архитектуру монолита в нотации C4
2️⃣ Научу выделять сервисы и микросервисы
3️⃣ Покажу архитекту SOA и MSA в нотации C4
4️⃣ Выберем технологии для обмена данными — REST API, gRPC, GraphQL и другие
5️⃣ Посмотрим когда и зачем нужны брокеры Kafka и RabbitMQ, встроим в архитектуру
Чтобы участвовать в проекте, просто подпишитесь на канал и следите за обновлениями.
Стартуем отсюда, и следим за постами с хэштегом #BookingGA! 🙂
#АрхитектураGA
❤42🔥30❤🔥6👍3👏2👌2
🔥 Практическая программа по Архитектуре для СА стартует 4 марта: открыли предзапись 🔥
Погружение в архитектуру, опыт работы в сложных проектах с микросервисами и брокерами - точки роста для опытных системных аналитиков уровня Middle+.
Чтобы помогать вам достигать максимального уровня в карьере, мы создали практическую программу “Архитектура систем”.
В ходе работы на ней мы будем:
✔️ Строить архитектуру проекта с нуля: монолит, сервисная, микросервисная.
✔️ Практиковаться работать с нотацией C4.
✔️ Подбирать API для проекта и учиться работать с ними на практике: REST, GraphQL, WebSocket и другие.
✔️ Ставить задачи на брокеры (Kafka, RabbitMQ), Webhooks, и знакомиться с другими способами асинхронного взаимодействия систем.
Собрали всё, что нужно для проектирования систем на самом глубоком техническом уровне для аналитиков.
Цели, которые ставят и реализуют наши аналитики в процессе обучения:
✅ Повышают грейд внутри компании
✅ Переходят из проектной разработки в продукт
✅ Структурируют знания и проходят аттестации
✅ Получают повышения
✅ Проходят собеседования и выбирают офферы по душе 🩷
Приглашаем и вас достигать новые цели вместе с нами! 🙌
🌟 Проектирование архитектуры
🗓 Старт: 4 марта 2025
👉 Подробности о программе и заявка на участие
🎁 До 25 февраля открыта предзапись на специальных условиях:
скидка + дополнительное обучение по проектированию REST API в подарок.
Вопросы можно задать через сайт, на почту info@getanalyst.ru или в Telegram @getanalyst.
Погружение в архитектуру, опыт работы в сложных проектах с микросервисами и брокерами - точки роста для опытных системных аналитиков уровня Middle+.
Чтобы помогать вам достигать максимального уровня в карьере, мы создали практическую программу “Архитектура систем”.
В ходе работы на ней мы будем:
✔️ Строить архитектуру проекта с нуля: монолит, сервисная, микросервисная.
✔️ Практиковаться работать с нотацией C4.
✔️ Подбирать API для проекта и учиться работать с ними на практике: REST, GraphQL, WebSocket и другие.
✔️ Ставить задачи на брокеры (Kafka, RabbitMQ), Webhooks, и знакомиться с другими способами асинхронного взаимодействия систем.
Собрали всё, что нужно для проектирования систем на самом глубоком техническом уровне для аналитиков.
Цели, которые ставят и реализуют наши аналитики в процессе обучения:
✅ Повышают грейд внутри компании
✅ Переходят из проектной разработки в продукт
✅ Структурируют знания и проходят аттестации
✅ Получают повышения
✅ Проходят собеседования и выбирают офферы по душе 🩷
Приглашаем и вас достигать новые цели вместе с нами! 🙌
🌟 Проектирование архитектуры
🗓 Старт: 4 марта 2025
👉 Подробности о программе и заявка на участие
🎁 До 25 февраля открыта предзапись на специальных условиях:
скидка + дополнительное обучение по проектированию REST API в подарок.
Вопросы можно задать через сайт, на почту info@getanalyst.ru или в Telegram @getanalyst.
🔥9👍5❤2❤🔥2
GetAnalyst_Swagger_3_Проектирование_методов_REST_API.pdf
14.6 MB
💚 Swagger - Open API - Практическое руководство. Часть 3 💚
Ранее опубликовано:
🔗 Часть 1. Регистрация аккаунта и создание демо-проекта
🔗 Часть 2. Создание собственного проекта и работа с базовыми настройками, первые строки кода
В этом посте:
👉 Часть 3. Описание методов POST и GET по спецификации OpenAPI
файл прикреплен к посту
Что внутри:
✔️ Разберетесь с блоками кода paths и components в OpenAPI
✔️ Получите готовый документ API-документации для личного портфолио с двумя описанными методами
✔️ Получите реальный опыт работы со Swagger / OpenAPI
⏳ Время на изучение и практику:
🕓 60 минут — на работу с заданиями строго по руководству, где есть подсказки по каждому шагу
🕓 +60 минут, если хотите выполнить ДЗ и создать личный демо-проект для портфолио
Пост не просто для сохранения, а для реального улучшения вашего технического опыта работы! 🙌
#RestApiGA
Ранее опубликовано:
В этом посте:
👉 Часть 3. Описание методов POST и GET по спецификации OpenAPI
файл прикреплен к посту
Что внутри:
✔️ Разберетесь с блоками кода paths и components в OpenAPI
✔️ Получите готовый документ API-документации для личного портфолио с двумя описанными методами
✔️ Получите реальный опыт работы со Swagger / OpenAPI
⏳ Время на изучение и практику:
🕓 60 минут — на работу с заданиями строго по руководству, где есть подсказки по каждому шагу
🕓 +60 минут, если хотите выполнить ДЗ и создать личный демо-проект для портфолио
Пост не просто для сохранения, а для реального улучшения вашего технического опыта работы! 🙌
#RestApiGA
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥30❤7❤🔥4👍4
🔷 Нотация С4 для документирования архитектуры 🔷
Можешь показать схему архитектуры системы без нотации, в виде прямоугольников и стрелочек? Отлично!
Но иногда автора схемы можно понять по-разному. И могут быть вопросы как её развивать дальше.
Если в отрасли есть стандарты, лучше использовать их.
Поэтому предлагаю познакомиться с нотацией моделирования архитектуры C4 👇
C4 помогает архитекторам, разработчикам и аналитикам представлять архитектуру системы в виде четырех уровней:
👉 Контекст (C4 / Context)
Система, её интеграции и пользователи.
✔️ Главный прямоугольник - наша система
✔️ Серые прямоугольники вокруг - внешние
✔️ Пользователи
👩💻 Полезна бизнес- и техническим специалистам
👉 Контейнеры (C4 / Container)
Независимые по коду приложения в системе, детализация главного прямоугольника c C4 / Context.
✔️ Пользователи и внешние системы с уровня C4 / Context
✔️ Мобильные, веб- и десктоп приложения
✔️ Сервер-приложения: монолит, сервисы, микросервисы, API Gateway
✔️ Базы данных и файловые хранилища
✔️ Виды API
✔️ Технологии (языки программирования, СУБД, протоколы для API и др)
✔️ Базы данных и файловые хранилища
✔️ Очереди и брокеры
Схему удобнее использовать в адаптированном виде, когда на этом уровне не показывают сервисы и микросервисы, а переносят их на уровень глубже - C4 / Component. Иначе она очень перегружена.
👩💻 Полезна архитекторам, разработчикам и системным аналитикам.
👉 Компоненты (C4 / Component)
Модули кода и зависимости между ними.
Детализирует один из контейнеров с C4 / Container.
На каждый контейнер своя схема.
Отлично подходит для детализации модульного монолита.
👉 Код (C4 / Code)
На этом уровне детализируют каждый компонент c C4 / Component, показывая его реализацию в коде. Обычно это UML-диаграмма классов или другая визуализация.
Материалы:
🔗 Официальный сайт C4
🔗 Пример архитектуры C4 в Miro
🔗 Нотация С4 — примеры диаграмм и инструменты
Основные инструменты:
🔗 Draw.io
🔗 Structurizr
Элементы нотации с пояснениями в картинках к посту.
#АрхитектураGA
Можешь показать схему архитектуры системы без нотации, в виде прямоугольников и стрелочек? Отлично!
Но иногда автора схемы можно понять по-разному. И могут быть вопросы как её развивать дальше.
Если в отрасли есть стандарты, лучше использовать их.
Поэтому предлагаю познакомиться с нотацией моделирования архитектуры C4 👇
C4 помогает архитекторам, разработчикам и аналитикам представлять архитектуру системы в виде четырех уровней:
👉 Контекст (C4 / Context)
Система, её интеграции и пользователи.
✔️ Главный прямоугольник - наша система
✔️ Серые прямоугольники вокруг - внешние
✔️ Пользователи
👩💻 Полезна бизнес- и техническим специалистам
👉 Контейнеры (C4 / Container)
Независимые по коду приложения в системе, детализация главного прямоугольника c C4 / Context.
✔️ Пользователи и внешние системы с уровня C4 / Context
✔️ Мобильные, веб- и десктоп приложения
✔️ Сервер-приложения: монолит, сервисы, микросервисы, API Gateway
✔️ Базы данных и файловые хранилища
✔️ Виды API
✔️ Технологии (языки программирования, СУБД, протоколы для API и др)
✔️ Базы данных и файловые хранилища
✔️ Очереди и брокеры
Схему удобнее использовать в адаптированном виде, когда на этом уровне не показывают сервисы и микросервисы, а переносят их на уровень глубже - C4 / Component. Иначе она очень перегружена.
👩💻 Полезна архитекторам, разработчикам и системным аналитикам.
👉 Компоненты (C4 / Component)
Модули кода и зависимости между ними.
Детализирует один из контейнеров с C4 / Container.
На каждый контейнер своя схема.
Отлично подходит для детализации модульного монолита.
👉 Код (C4 / Code)
На этом уровне детализируют каждый компонент c C4 / Component, показывая его реализацию в коде. Обычно это UML-диаграмма классов или другая визуализация.
Материалы:
Основные инструменты:
Элементы нотации с пояснениями в картинках к посту.
#АрхитектураGA
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤19👍10🔥8😁1🤩1
🔵 C4 / Context - разбор на примере 🔵
Уровень Context в нотации C4 используется, чтобы дать высокоуровневое представление о системе и ее окружении.
Он помогает понять что делает система, какие пользователи с ней взаимодействует, какие другие системы с ней связаны - интеграции.
Схема легко читается как бизнес-владельцами продукта, так и разработчиками.
👉 Что нужно показывать?
🔹 Основную систему – объект проектирования (например, интернет-магазин, банковское приложение).
🔹 Пользователей – кто взаимодействует с системой (клиенты, администраторы, партнеры).
🔹 Другие системы – с чем интегрируется (платежные сервисы, справочники, ЭДО и другие системы).
🔹 Типы взаимодействий – основные потоки данных (например, клиент отправляет заказ в систему, система взаимодействует с банком).
👉 Что важно знать?
Мы не детализируем внутреннюю реализацию, а показываем глобальные границы и связи.
Это первый шаг проектирования архитектуры – помогает всем участникам проекта построить общее понимание системы.
👉 Пример для системы бронирования жилья - проект #BookingGA
✔️ Основная система:
BookingGA
✔️ Пользователи:
владельцы жилья,
арендаторы,
сотрудники тех поддержки,
администраторы платформы
✔️ Внешние системы:
платежная система РайфПэй (Интернет-эквайринг),
сервис parser-api для проверки паспортов
сервис reestrnet для проверки документов на жильё
Схема архитектуры в C4/Context по проекту прикреплена к посту 🙌
#АрхитектураGA
Уровень Context в нотации C4 используется, чтобы дать высокоуровневое представление о системе и ее окружении.
Он помогает понять что делает система, какие пользователи с ней взаимодействует, какие другие системы с ней связаны - интеграции.
Схема легко читается как бизнес-владельцами продукта, так и разработчиками.
👉 Что нужно показывать?
🔹 Основную систему – объект проектирования (например, интернет-магазин, банковское приложение).
🔹 Пользователей – кто взаимодействует с системой (клиенты, администраторы, партнеры).
🔹 Другие системы – с чем интегрируется (платежные сервисы, справочники, ЭДО и другие системы).
🔹 Типы взаимодействий – основные потоки данных (например, клиент отправляет заказ в систему, система взаимодействует с банком).
👉 Что важно знать?
На этом уровне НЕ важно, какая архитектура будет использована – монолит, микросервисы, сервисы.
Мы не детализируем внутреннюю реализацию, а показываем глобальные границы и связи.
Это первый шаг проектирования архитектуры – помогает всем участникам проекта построить общее понимание системы.
👉 Пример для системы бронирования жилья - проект #BookingGA
✔️ Основная система:
BookingGA
✔️ Пользователи:
владельцы жилья,
арендаторы,
сотрудники тех поддержки,
администраторы платформы
✔️ Внешние системы:
платежная система РайфПэй (Интернет-эквайринг),
сервис parser-api для проверки паспортов
сервис reestrnet для проверки документов на жильё
Схема архитектуры в C4/Context по проекту прикреплена к посту 🙌
#АрхитектураGA
❤14🔥5👌5👍2
💥 Разбор спорных вопросов по REST API с проектов и собеседований: исследуем Trello и Todoist 💥
Как понять, что мы проектируем REST API правильно?Никак. Смотреть на публичную API‑документацию крупных систем, диссертацию Роя Филдинга, или на то, что уже есть в проекте. И исходя из этого принимать решения о том, как будут выглядеть новые REST API методы.
В этой статье я хочу представить результаты исследований REST API сервисов управления задачами Trello и Todoist, чтобы показать, какие решения являются хорошими стандартами проектирования, а какие нет, но их всё равно применяют на практике.
👉 Решенные вопросы с обоснованием ответов:
1. Какой HTTP-код ответа на метод POST: 200 или 201?
2. Какой метод лучше использовать для редактирования данных: POST, PUT или PATCH?
3. Как правильно строить структуру URL запросов (эндпоинтов)?
4. Как правильно именовать эндпоинты — ед. число или мн. число (/task или /tasks)?
5. Как строить эндпоинт и body в REST API методе, если нам нужно создать задачу, и она должна быть создана внутри проекта?
6. Что вернуть в ответ на запрос списка, если ничего не найдено — пустой массив или HTTP-404?
7. Какой код вернуть в ответ на запрос DELETE?
8. Может ли быть у DELETE тело запроса?
9. Чем отличается REST от RESTful API?
🔗 Ссылка на статью
На примерах из этой статьи можно отстаивать свою правоту на собеседованиях и для команды, при проектировании методов REST API 💪
#RestApiGA #АрхитектураGA
Как понять, что мы проектируем REST API правильно?
В этой статье я хочу представить результаты исследований REST API сервисов управления задачами Trello и Todoist, чтобы показать, какие решения являются хорошими стандартами проектирования, а какие нет, но их всё равно применяют на практике.
👉 Решенные вопросы с обоснованием ответов:
1. Какой HTTP-код ответа на метод POST: 200 или 201?
2. Какой метод лучше использовать для редактирования данных: POST, PUT или PATCH?
3. Как правильно строить структуру URL запросов (эндпоинтов)?
4. Как правильно именовать эндпоинты — ед. число или мн. число (/task или /tasks)?
5. Как строить эндпоинт и body в REST API методе, если нам нужно создать задачу, и она должна быть создана внутри проекта?
6. Что вернуть в ответ на запрос списка, если ничего не найдено — пустой массив или HTTP-404?
7. Какой код вернуть в ответ на запрос DELETE?
8. Может ли быть у DELETE тело запроса?
9. Чем отличается REST от RESTful API?
На примерах из этой статьи можно отстаивать свою правоту на собеседованиях и для команды, при проектировании методов REST API 💪
#RestApiGA #АрхитектураGA
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👍13❤4
GetAnalyst_Микросервисы_5_способов_определения_BookingGA.pdf
5.1 MB
1️⃣ По группам функций
2️⃣ По доменам (Domain-driven Design, DDD)
3️⃣ По данным
4️⃣ По пользовательским сценариям
5️⃣ По уровню нагрузки
Подходы могут использоваться как комбинированно, так и отдельно. Каждый эффективен по-своему.
А подробнее и с примерами рассказала о них в мини-книге к посту 📚
#АрхитектураGA #BookingGA
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20❤5👍5
🧐 Как системный аналитик влияет на проектирование архитектуры 🧐
Проектирование архитектуры систем вместе с разработчиками и архитекторами — одна из больших задач системного аналитика.
В этом процессе аналитик становится мостиком между бизнес-процессами и техническими решениями. Понимать надо глубоко и то, и другое.
Собрала для вас статью со списком основных задач системного аналитика, связанных с проектированием архитектуры:
1. Исследования и анализ
2. Выбор подхода к проектированию архитектуры
3. Формирование концептуальной схемы архитектуры
4. Оценка влияния нефункциональных требований
🔗 Ссылка на статью
#АрхитектураGA
Проектирование архитектуры систем вместе с разработчиками и архитекторами — одна из больших задач системного аналитика.
В этом процессе аналитик становится мостиком между бизнес-процессами и техническими решениями. Понимать надо глубоко и то, и другое.
Собрала для вас статью со списком основных задач системного аналитика, связанных с проектированием архитектуры:
1. Исследования и анализ
2. Выбор подхода к проектированию архитектуры
3. Формирование концептуальной схемы архитектуры
4. Оценка влияния нефункциональных требований
#АрхитектураGA
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🍾4❤3
Forwarded from 👩🏻💻 Подкаст Системных Аналитиков | GetAnalyst
🔥 13 ошибок в использовании BPMN: разбор на примере задачи 🔥
В этом эпизоде подкаста мы разбираем 13 типичных ошибок при использовании нотации BPMN на примере задачи, которую может получить на собеседовании Системный или Бизнес-аналитик.
🔗 Презентация и полезные ссылки
Вы наглядно познакомитесь со списком ошибок, которые чаще всего допускают специалисты, а также получите рекомендации по их исправлению и полезные материалы, которые помогут в работе с нотацией.
Эпизод будет полезен как начинающим, так и опытным аналитикам, стремящимся улучшить свои навыки в создании BPMN-диаграмм для описания бизнес-процессов.
Видео эпизода доступно в:
⏯ RuTube
⏯ YouTube
⏯ VK Video
Аудио-эпизод доступен в:
⏯ Apple Podcast
⏯ Яндекс.Музыка
⏯ Telegram
⏯ Castbox
⏯ Spotify
Подписывайтесь на GetAnalyst, чтобы получать новые знания в системном анализе каждый день 🚀
В этом эпизоде подкаста мы разбираем 13 типичных ошибок при использовании нотации BPMN на примере задачи, которую может получить на собеседовании Системный или Бизнес-аналитик.
Вы наглядно познакомитесь со списком ошибок, которые чаще всего допускают специалисты, а также получите рекомендации по их исправлению и полезные материалы, которые помогут в работе с нотацией.
Эпизод будет полезен как начинающим, так и опытным аналитикам, стремящимся улучшить свои навыки в создании BPMN-диаграмм для описания бизнес-процессов.
Видео эпизода доступно в:
⏯ RuTube
⏯ YouTube
⏯ VK Video
Аудио-эпизод доступен в:
⏯ Apple Podcast
⏯ Яндекс.Музыка
⏯ Telegram
⏯ Castbox
⏯ Spotify
Подписывайтесь на GetAnalyst, чтобы получать новые знания в системном анализе каждый день 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16❤6👍3😁1
Это огромное сообщение я запомню на всю жизнь... Такого развернутого текста с обратной связью я правда никогда не получала ❤️
Перечитывала несколько раз. Улыбалась))
Моя миссия = миссия GetAnalyst:
Для этого я делюсь своими знаниями с вами, веду онлайн-занятия и общаюсь со студентами.
И если получается объяснять так, что и новичку понятно, и опытному специалисту не скучно, значит, всё идёт по плану 🙌
Баланс между глубиной, деталями и доступностью важен.
И я стараюсь держать его.
Чтобы ваши результаты обучения вы уверенно использовали в работе.
Чтобы вы не слушали, а работали на обучении, были вовлечены и получали опыт.
Поблагодарила Валентину, когда получила эту ценнейшую обратную связь.
И еще раз хочу сказать ей большое спасибо ❤️
#студентыGetAnalyst
Перечитывала несколько раз. Улыбалась))
Моя миссия = миссия GetAnalyst:
Я хочу делиться своим практическим опытом, чтобы создавать лучших специалистов в системном анализе, которых я хочу нанимать.
Для этого я делюсь своими знаниями с вами, веду онлайн-занятия и общаюсь со студентами.
И если получается объяснять так, что и новичку понятно, и опытному специалисту не скучно, значит, всё идёт по плану 🙌
Баланс между глубиной, деталями и доступностью важен.
И я стараюсь держать его.
Чтобы ваши результаты обучения вы уверенно использовали в работе.
Чтобы вы не слушали, а работали на обучении, были вовлечены и получали опыт.
Поблагодарила Валентину, когда получила эту ценнейшую обратную связь.
И еще раз хочу сказать ей большое спасибо ❤️
#студентыGetAnalyst
❤🔥22❤17👍9🔥3😁3
🚀 Открытый урок по Архитектуре на этой неделе [1-3 марта] 🚀
Сегодня системным аналитикам важно не только описывать сценарии работы системы, но и глубоко понимать техническую сторону проектирования: API, интеграции, БД.
А если вы хотите расти в профессии и участвовать в сложных, высоконагруженных проектах, понимание архитектуры становится не просто преимуществом, а необходимостью.
Мы хотим помочь вам сделать шаги в изучении архитектуры на практике, и приглашаем на открытый урок, который будет доступен в записи:
💎 Проектирование архитектуры: от монолита к микросервисам
🗓 Доступ с 1 по 3 марта (сб-пн)
🔗 Зарегистрироваться
План:
1. Роль системного аналитика в проектировании архитектуры
2. Погружение в проект
3. Проектирование монолита
4. Переход к сервисной (SOA) и микросервисной (MSA) архитектуре
5. Проблемы при делении монолита на микросервисы
6. Базовые знания аналитика для работы с архитектурой
Навыки, знания и примеры, которые вы изучите во время занятия, дадут понимание в вопросах проектирования архитектуры, а также повысят вашу уверенность в общении с разработчиками.
Регистрируйтесь, чтобы получить доступ к этому обучению!
Сегодня системным аналитикам важно не только описывать сценарии работы системы, но и глубоко понимать техническую сторону проектирования: API, интеграции, БД.
А если вы хотите расти в профессии и участвовать в сложных, высоконагруженных проектах, понимание архитектуры становится не просто преимуществом, а необходимостью.
Мы хотим помочь вам сделать шаги в изучении архитектуры на практике, и приглашаем на открытый урок, который будет доступен в записи:
План:
1. Роль системного аналитика в проектировании архитектуры
2. Погружение в проект
3. Проектирование монолита
4. Переход к сервисной (SOA) и микросервисной (MSA) архитектуре
5. Проблемы при делении монолита на микросервисы
6. Базовые знания аналитика для работы с архитектурой
Навыки, знания и примеры, которые вы изучите во время занятия, дадут понимание в вопросах проектирования архитектуры, а также повысят вашу уверенность в общении с разработчиками.
Регистрируйтесь, чтобы получить доступ к этому обучению!
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰11👍7❤🔥6🔥5❤3
5_Архитектура_С4_Container_BookingGA_c_комментариями.png
733.3 KB
🔵 C4 / Container - разбор на примере для монолитной архитектуры 🔵
Уровень Container в нотации C4 детализирует систему, показывая её внутреннюю структуру на уровне крупных компонент – контейнеров.
Уровень отражает:
+ какие приложения и сервисы её формируют – независимые кодовые базы,
+ как они взаимодействуют между собой, с пользователями и внешними системами,
+ как организовано хранение данных в системе.
👉 Что нужно показывать?
🔹 Пользователей и внешние системы – переносим с C4/Context.
🔹 Контейнеры – основные приложения и сервисы системы (например, веб-приложение, мобильное приложение, Backend).
🔹 БД и Файловые Хранилища (ФХ) – места хранения данных.
🔹 Брокеры – для организации асинхронного взаимодействия.
🔹 Связи – какие потоки данных существуют, протоколы (например, мобильное приложение вызывает API Backend, Backend делает SQL-запросы в базу данных).
🔹 Технологии – указываем ключевые технологии, если это полезно для понимания и они известны на текущем этапе разработки (например, Backend на Spring Boot, Frontend на React, база данных PostgreSQL).
👉 Что важно знать?
✔️ На этом уровне важно понимать какая архитектура в проекте - монолитная, сервисная (SOA) или микросервисная (MSA).
✔️ Этот уровень помогает увидеть ключевые элементы системы, но без детализации кода. То, что внутри каждой кодовой базы, мы будем показывать уже на следующих уровнях: C4 / Component и C4 / Code.
✔️ C4 / Container не связан с инфраструктурой и Docker-контейнерами, что подтверждается автором нотации.
✔️ Глядя на C4 / Container проще описывать алгоритмы и рисовать UML Sequence для интеграций.
👉 Кому полезен?
✔️ Разработчикам и архитекторам - понять, из каких сервисов состоит система, и базовые принципы её проектирования.
✔️ Аналитикам и бизнесу - наглядно видеть ключевые приложения системы и движение данных между ними.
Примеры С4/Context и C4/Container для системы бронирования жилья #BookingGA прикреплены к посту:
✅ пример для монолитной архитектуры
✅ есть схемы комментариями и чистовые
#АрхитектураGA
Уровень Container в нотации C4 детализирует систему, показывая её внутреннюю структуру на уровне крупных компонент – контейнеров.
Уровень отражает:
+ какие приложения и сервисы её формируют – независимые кодовые базы,
+ как они взаимодействуют между собой, с пользователями и внешними системами,
+ как организовано хранение данных в системе.
👉 Что нужно показывать?
🔹 Пользователей и внешние системы – переносим с C4/Context.
🔹 Контейнеры – основные приложения и сервисы системы (например, веб-приложение, мобильное приложение, Backend).
🔹 БД и Файловые Хранилища (ФХ) – места хранения данных.
🔹 Брокеры – для организации асинхронного взаимодействия.
🔹 Связи – какие потоки данных существуют, протоколы (например, мобильное приложение вызывает API Backend, Backend делает SQL-запросы в базу данных).
🔹 Технологии – указываем ключевые технологии, если это полезно для понимания и они известны на текущем этапе разработки (например, Backend на Spring Boot, Frontend на React, база данных PostgreSQL).
👉 Что важно знать?
✔️ На этом уровне важно понимать какая архитектура в проекте - монолитная, сервисная (SOA) или микросервисная (MSA).
✔️ Этот уровень помогает увидеть ключевые элементы системы, но без детализации кода. То, что внутри каждой кодовой базы, мы будем показывать уже на следующих уровнях: C4 / Component и C4 / Code.
✔️ C4 / Container не связан с инфраструктурой и Docker-контейнерами, что подтверждается автором нотации.
✔️ Глядя на C4 / Container проще описывать алгоритмы и рисовать UML Sequence для интеграций.
👉 Кому полезен?
✔️ Разработчикам и архитекторам - понять, из каких сервисов состоит система, и базовые принципы её проектирования.
✔️ Аналитикам и бизнесу - наглядно видеть ключевые приложения системы и движение данных между ними.
Примеры С4/Context и C4/Container для системы бронирования жилья #BookingGA прикреплены к посту:
✅ пример для монолитной архитектуры
✅ есть схемы комментариями и чистовые
#АрхитектураGA
👍16🔥8❤3❤🔥1