💥 Разбор спорных вопросов по 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
Одна из ступеней профессионального роста системного аналитика - работа в тесном сотрудничестве с архитекторами на проектах с сервисной или микросервисной архитектурой.
Мы в GetAnalyst создали программу для опытных специалистов, которая помогает на практике получить все нужные знания по архитектуре, чтобы продолжать расти в карьере и соответствовать актуальным требованиям компаний:
💥 Проектирование архитектуры
🗓 Старт: 4 марта 2025
👉 Подробности о программе и заявка на участие
🎁 Сегодня последний день, когда открыта запись на самых выгодных условиях:
спец. цена + дополнительное обучение по REST API в подарок
По всем вопросам пишите @getanalyst, info@getanalyst.ru или оставляйте заявку через сайт. Мы свяжемся с вами, поможем оценить текущие навыки и ответим на ваши вопросы 🤝
Мы в GetAnalyst создали программу для опытных специалистов, которая помогает на практике получить все нужные знания по архитектуре, чтобы продолжать расти в карьере и соответствовать актуальным требованиям компаний:
💥 Проектирование архитектуры
🗓 Старт: 4 марта 2025
👉 Подробности о программе и заявка на участие
🎁 Сегодня последний день, когда открыта запись на самых выгодных условиях:
спец. цена + дополнительное обучение по REST API в подарок
По всем вопросам пишите @getanalyst, info@getanalyst.ru или оставляйте заявку через сайт. Мы свяжемся с вами, поможем оценить текущие навыки и ответим на ваши вопросы 🤝
👍6❤2
Ранее я рассказала как выделять микросервисы. А сегодня хочу дать вам полную подборку под проект, которую мы затем представим на C4 / Container микросервисной архитектуры.
✅ Аутентификация и авторизация
Отвечает за доступ пользователей в систему, их роли и права.
Выделяется отдельно, так как авторизация общая для всех других сервисов системы
✅ Управление пользователями
Пользователь – отдельная сущность со своим жизненным циклом, которой можно управлять независимо от остальных данных системы
✅ Управление недвижимостью
Недвижимость – отдельная сущность со своим жизненным циклом и статусами, которой можно управлять независимо
✅ Поиск недвижимости
Фильтрация и поиск объектов с учетом занятости.
Самая высоконагруженная функция в системе, её стоит держать отдельно
✅ Бронирования
Бронирование – отдельная сущность и пользовательский сценарий, требующий сложной бизнес-логики
✅ Платежи
Платежи требуют высокой надежности и взаимодействия с внешними сервисами.
Должен быть изолирован, чтобы проблемы с другими сервисами не влияли на оплату
✅ Рейтинг и отзывы
Отзывы – это отдельный тип данных, с которым можно работать независимо, не нагружая основную часть системы
✅ Уведомления
Реализует общий для всех сервисов сценарий отправки email, push, SMS
✅ Отчетность и аналитика
Аналитика часто требует тяжелых запросов, которые не должны замедлять работу основной базы. Можно собирать события из всех других микросервисов (бронирования, платежи, отзывы) и обрабатывать их асинхронно
✅ Чаты и поддержка
Реализует общение пользователей с владельцами жилья и поддержку.
Позволяет реализовать обмен сообщениями с уведомлениями
✅ Лояльность
Скидки и промоакции – отдельные сущности со своим жизненным циклом и статусами, которыми можно управлять независимо
Можно ли выделить еще (или иначе) сервисы? Да.
Но уже в этом варианте мы распределили всю основную функциональность, и далее, при необходимости, можем развивать это решение 🙌
#АрхитектураGA
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥4❤2
🙌 DBeaver и практика SQL-запросов 🙌
Уже в следующий понедельник пройдёт продвинутый онлайн-практикум по БД и SQL:
🙌 Инструмент DBeaver. Практика SQL-запросов
🗓 3 МАРТА 2025 (ПН)
🕖 19:00 (Мск)
🔗 Подробности и регистрация
План:
1*. Знакомство с инструментом DBeaver. Подключение тестовой БД
2*. О применении SQL аналитиками. Ключевые операторы SQL-запросов.
3. Практика SQL-запросов на получение данных в DBeaver.
4. Использование AI (искусственного интеллекта) в качестве помощника в работе с SQL-запросами.
* - самостоятельная подготовка по видео-уроку в платформе, на занятии максимально практикуемся с SQL.
** - т.к. есть пересечение с открытым уроком по архитектуре, то даем всем участникам практикума расширенный доступ до 10 марта.
Практикум подойдёт, если вы:
✔️ Умеете проектировать ER-диаграммы (логический уровень минимум)
✔️ Хотите освоить SQL с нуля, на практике, за одно занятие
✔️ Научиться упрощать свою жизнь с использованием Искусственного Интеллекта при работе с SQL
Этот важный практикум для системных аналитиков, который поможет понять что такое SQL и зачем он на примере работы с реальной базой данных 🙌
Материалы по БД для знакомства и подготовки к онлайн-практикуму по DBeaver + SQL:
🔗 Статья о том, зачем БД аналитику
🔗 Статья о прекрасных возможностях DBeaver
🔗 Обучающее видео "Проектирование БД - логический уровень"
До встречи на практикуме! 😉
Уже в следующий понедельник пройдёт продвинутый онлайн-практикум по БД и SQL:
🙌 Инструмент DBeaver. Практика SQL-запросов
🕖 19:00 (Мск)
🔗 Подробности и регистрация
План:
1*. Знакомство с инструментом DBeaver. Подключение тестовой БД
2*. О применении SQL аналитиками. Ключевые операторы SQL-запросов.
3. Практика SQL-запросов на получение данных в DBeaver.
4. Использование AI (искусственного интеллекта) в качестве помощника в работе с SQL-запросами.
* - самостоятельная подготовка по видео-уроку в платформе, на занятии максимально практикуемся с SQL.
** - т.к. есть пересечение с открытым уроком по архитектуре, то даем всем участникам практикума расширенный доступ до 10 марта.
Практикум подойдёт, если вы:
✔️ Умеете проектировать ER-диаграммы (логический уровень минимум)
✔️ Хотите освоить SQL с нуля, на практике, за одно занятие
✔️ Научиться упрощать свою жизнь с использованием Искусственного Интеллекта при работе с SQL
Этот важный практикум для системных аналитиков, который поможет понять что такое SQL и зачем он на примере работы с реальной базой данных 🙌
Материалы по БД для знакомства и подготовки к онлайн-практикуму по DBeaver + SQL:
🔗 Статья о том, зачем БД аналитику
🔗 Статья о прекрасных возможностях DBeaver
🔗 Обучающее видео "Проектирование БД - логический уровень"
До встречи на практикуме! 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤5🔥5😁3⚡1
This media is not supported in your browser
VIEW IN TELEGRAM
⚙️ Микросервисная архитектура (МСА) — это современный подход к разработке высоконагруженных приложений.
Ключевые компоненты, которые используются для его реализации:
✅ Клиенты — это Frontend-приложения или другие системы, которые взаимодействуют с Backend (сервер-приложением).
✅ CDN (Content Delivery Network) — сеть серверов, стратегически распределенных по всему миру. Они кэшируют и доставляют статические ресурсы (изображения, скрипты и т. д.) пользователям с ближайшего сервера, оптимизируя время загрузки.
✅ API Gateway — единая точка входа для всех клиентов API. Он маршрутизирует запросы на нужные микросервисы, благодаря чему клиентам не надо думать о том, к какому сервису обратиться для вызова конкретной функции.
Он также может управлять аутентификацией, ограничением количества запросов (rate limiting) и другими доп. функциями.
✅ Микросервисы — это независимые компоненты, каждый из которых выполняет свою конкретную бизнес-логику.
Они взаимодействуют между собой с помощью легковесных протоколов, таких как HTTP (REST), gRPC или через асинхронные сообщения.
✅ Брокер сообщений — обеспечивает асинхронное взаимодействие между микросервисами.
Развязка сервисов через брокер (например, Kafka, RabbitMQ) делает систему более гибкой и отказоустойчивой, позволяя микросервисам работать независимо.
✅ Базы данных — в МСА действует принцип "база данных на сервис". Это принцип предотвращает жёсткие связи между сервисами и позволяет использовать разные технологии хранения данных (polyglot persistence), выбирая оптимальные решения под конкретные задачи.
✅ Identity Provider — отвечает за аутентификацию (проверку личности пользователя) и авторизацию (определение прав доступа).
✅ Service Registry and Discovery — это динамический каталог, в котором микросервисы регистрируются и находят друг друга.
✅ Service Coordination — инструменты, которые помогают управлять координацией и синхронизацией распределенных сервисов, обеспечивая их бесперебойную работу и согласованность данных.
#АрхитектураGA
Ключевые компоненты, которые используются для его реализации:
✅ Клиенты — это Frontend-приложения или другие системы, которые взаимодействуют с Backend (сервер-приложением).
✅ CDN (Content Delivery Network) — сеть серверов, стратегически распределенных по всему миру. Они кэшируют и доставляют статические ресурсы (изображения, скрипты и т. д.) пользователям с ближайшего сервера, оптимизируя время загрузки.
✅ API Gateway — единая точка входа для всех клиентов API. Он маршрутизирует запросы на нужные микросервисы, благодаря чему клиентам не надо думать о том, к какому сервису обратиться для вызова конкретной функции.
Он также может управлять аутентификацией, ограничением количества запросов (rate limiting) и другими доп. функциями.
✅ Микросервисы — это независимые компоненты, каждый из которых выполняет свою конкретную бизнес-логику.
Они взаимодействуют между собой с помощью легковесных протоколов, таких как HTTP (REST), gRPC или через асинхронные сообщения.
✅ Брокер сообщений — обеспечивает асинхронное взаимодействие между микросервисами.
Развязка сервисов через брокер (например, Kafka, RabbitMQ) делает систему более гибкой и отказоустойчивой, позволяя микросервисам работать независимо.
✅ Базы данных — в МСА действует принцип "база данных на сервис". Это принцип предотвращает жёсткие связи между сервисами и позволяет использовать разные технологии хранения данных (polyglot persistence), выбирая оптимальные решения под конкретные задачи.
✅ Identity Provider — отвечает за аутентификацию (проверку личности пользователя) и авторизацию (определение прав доступа).
✅ Service Registry and Discovery — это динамический каталог, в котором микросервисы регистрируются и находят друг друга.
✅ Service Coordination — инструменты, которые помогают управлять координацией и синхронизацией распределенных сервисов, обеспечивая их бесперебойную работу и согласованность данных.
#АрхитектураGA
🔥33❤14👍5
Архитектура МСА - 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