Друзья, как говорится, «новый год – новая жизнь!»😁
Поэтому хотим вам порекомендовать книгу Евы Кац «Жизненный баланс. 82 идеи для управления работой и жизнью, 7 способов мечтать и 6 шагов, чтобы всё реализовать».
Это полезное руководство для всех, кто стремится наладить гармонию между работой и личной жизнью.
Автор предлагает практические инструменты и вдохновение для достижения целей.
Книга написана в разговорном стиле, с чувством юмора и борьбой со стереотипами✔️
#hwGetAnalyst
Поэтому хотим вам порекомендовать книгу Евы Кац «Жизненный баланс. 82 идеи для управления работой и жизнью, 7 способов мечтать и 6 шагов, чтобы всё реализовать».
Это полезное руководство для всех, кто стремится наладить гармонию между работой и личной жизнью.
Автор предлагает практические инструменты и вдохновение для достижения целей.
Книга написана в разговорном стиле, с чувством юмора и борьбой со стереотипами
#hwGetAnalyst
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥21👍5😁5🔥4
GetAnalyst_Образец_задачи_на_REST_API_GET_:books_для_ElibraGA.pdf
922.9 KB
💙 Образец постановки задачи на REST API: заполненный шаблон для Confluence 💙
Шаблон постановки задачи гарантирует то, что вы сможете всё учесть по структуре и ничего не потеряете.
Но я искренне понимаю всех, кто еще ни разу не работал с постановками задач на Backend (REST API), и, даже глядя на шаблон, слабо представляет что туда писать 🥲
Поэтому я оформила постановку задачи по проекту #ElibraGA на метод GET /books - получение списка книг.
Теперь у вас есть образец, на который можно подглядывать 🙂
На что обратить внимание:
1. Headers: показала, какие могут быть для запроса, включая авторизацию.
2. Query-parameters: подробно расписала всё про фильтры запроса, их ограничения и связь с БД.
3. API name: уточнила, что метод может использоваться и для админского API, с аналогичной реализацией.
4. Ответы: дала примеры двух успешных ответов, включая пустой список, и описала все ошибки.
5. Требования к реализации: подробно расписала алгоритм для разработчиков, включая исключительную ситуацию с элементами пагинации.
Используемая информация для подготовки:
▫️ шаблон постановки задачи на REST API метод
▫️ БД и дизайн проекта
▫️ пример 9 методов по проекту (сделала улучшение, чтобы сразу был список авторов и список жанров)
Создано с заботой о тех, кто только начинает свой путь в REST API,
и для опытных аналитиков, кто ищет примеры для внедрения в свою работу.
Сохраняйте и пользуйтесь 💙
#RestApiGA
Шаблон постановки задачи гарантирует то, что вы сможете всё учесть по структуре и ничего не потеряете.
Но я искренне понимаю всех, кто еще ни разу не работал с постановками задач на Backend (REST API), и, даже глядя на шаблон, слабо представляет что туда писать 🥲
Поэтому я оформила постановку задачи по проекту #ElibraGA на метод GET /books - получение списка книг.
Теперь у вас есть образец, на который можно подглядывать 🙂
На что обратить внимание:
1. Headers: показала, какие могут быть для запроса, включая авторизацию.
2. Query-parameters: подробно расписала всё про фильтры запроса, их ограничения и связь с БД.
3. API name: уточнила, что метод может использоваться и для админского API, с аналогичной реализацией.
4. Ответы: дала примеры двух успешных ответов, включая пустой список, и описала все ошибки.
5. Требования к реализации: подробно расписала алгоритм для разработчиков, включая исключительную ситуацию с элементами пагинации.
Используемая информация для подготовки:
▫️ шаблон постановки задачи на REST API метод
▫️ БД и дизайн проекта
▫️ пример 9 методов по проекту (сделала улучшение, чтобы сразу был список авторов и список жанров)
Создано с заботой о тех, кто только начинает свой путь в REST API,
и для опытных аналитиков, кто ищет примеры для внедрения в свою работу.
Сохраняйте и пользуйтесь 💙
#RestApiGA
❤43🔥26👍4😁2
Сегодня последний день доступа к занятию "Знакомство с REST API через Postman: с нуля до рабочих методов":
🔗 Подробности и регистрация
Это занятие сделано в поддержку практической программы Дизайн REST API.
🎁 В этот раз она запускается в новом уникальном формате, где вы дополнительно получаете:
+ 3 онлайн-занятия
+ 1 проект в портфолио
+ 3 месяца доступа к обучению
Вы получите:
• 25+ часов практических занятий (11 встреч)
• Встреча по разбору индивидуальных проектов
• Теоретические модули в платформе
• Домашние задания для создания индивидуального проекта в портфолио
• Доступ к закрытому Telegram-чату, где мы публикуем уведомления о проходящих вебинарах, полезные ресурсы, ссылки на книги и разбираем ваши вопросы
• Сертификат о повышении квалификации
На занятии "Знакомство с REST API через Postman: с нуля до рабочих методов" мы затронули множество аспектов, необходимых для успешного освоения REST API.
Программа «Дизайн REST API» поможет вам закрепить эти знания, погрузиться в тему глубже, получить больше практики и открыть новые карьерные возможности в системном анализе!
🔗 Узнать подробнее о программе Дизайн REST API
Есть вопросы? Пишите нам на почту info@getanalyst.ru, в Telegram или на сайте. Мы свяжемся с вами, поможем оценить текущие навыки и ответим на вопросы 🙂
Это занятие сделано в поддержку практической программы Дизайн REST API.
🎁 В этот раз она запускается в новом уникальном формате, где вы дополнительно получаете:
+ 3 онлайн-занятия
+ 1 проект в портфолио
+ 3 месяца доступа к обучению
Вы получите:
• 25+ часов практических занятий (11 встреч)
• Встреча по разбору индивидуальных проектов
• Теоретические модули в платформе
• Домашние задания для создания индивидуального проекта в портфолио
• Доступ к закрытому Telegram-чату, где мы публикуем уведомления о проходящих вебинарах, полезные ресурсы, ссылки на книги и разбираем ваши вопросы
• Сертификат о повышении квалификации
На занятии "Знакомство с REST API через Postman: с нуля до рабочих методов" мы затронули множество аспектов, необходимых для успешного освоения REST API.
Программа «Дизайн REST API» поможет вам закрепить эти знания, погрузиться в тему глубже, получить больше практики и открыть новые карьерные возможности в системном анализе!
Есть вопросы? Пишите нам на почту info@getanalyst.ru, в Telegram или на сайте. Мы свяжемся с вами, поможем оценить текущие навыки и ответим на вопросы 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2🦄2🥰1
Вчера я показала вам заполненный шаблон постановки задачи на REST API и на его основе создала образец документации в 🟠Postman.
Такой формат документации может быть использован в двух случаях:
1. Для внутренней Backend-команды
При описании задач вы можете сразу сохранять всю информацию в Postman, без Confluence.
Ограничения на коллекцию:
+ Доступна только для команды.
+ Не является публичной, так как может содержать приватные данные (например, маппинг с БД и алгоритмы работы).
2. Публичная API-документация для интеграции с вашим сервисом
Если сторонние системы должны интегрироваться с вашей, то необходимо разместить документацию в удобном и доступном формате.
Пример подобной документации можно посмотреть тут.
В ней рекомендуется скрывать технические детали реализации метода, такие как маппинг с БД и алгоритмы работы.
--------------
👉 Пример публичной документации в Postman для проекта #ElibraGA,
где скрыты детали реализации методов:
--------------
На что обратить внимание:
1. Вы можете открыть мою Postman-коллекцию с методами на основе которой сделана эта API-документация.
2. Посмотрите, что я показываю несколько вариантов ответа. Т.е. не только успех, но и ошибки. Это важно для удобства работы с вашим API.
Как сделать аналогичную документацию в Swagger (OpenApi) покажу на этой неделе 🤝
#RestApiGA
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍10❤4😁2
GetAnalyst_Swagger_1_Регистрация_и_демо_проект_Практика_для_системных.pdf
8.7 MB
💚 Swagger - Open API - Практическое руководство. Часть 1 💚
Меня часто просят показать как работает Swagger.
Поэтому одной из целей последнего проекта по REST API было демо работы с этим инструментом и спецификацией OpenAPI, с использованием которой ведется разработка кода в нём.
Это первая часть практического руководства, по которой вы шаг за шагом научитесь:
✅ Регистрироваться и настраивать аккаунт в Swagger
✅ Ориентироваться в интерфейсе и возможностях инструмента
✅ Создавать демо-проекты в спецификации OpenAPI
🔗 Ваш первый результат будет выглядеть так
Swagger и OpenAPI — это не просто инструменты, а стандарты в REST API.
Их используют разработчики и аналитики для описания, проектирования и тестирования методов API.
Разбираясь в спецификации кода OpenAPI, вы будете лучше понимать, как API устроено изнутри 🙌
Скачиваем руководство и уделяем 15 минут, чтобы освоить новый инструмент!
#RestApiGA
----
P.S. Может потребоваться VPN
Меня часто просят показать как работает Swagger.
Поэтому одной из целей последнего проекта по REST API было демо работы с этим инструментом и спецификацией OpenAPI, с использованием которой ведется разработка кода в нём.
Это первая часть практического руководства, по которой вы шаг за шагом научитесь:
✅ Регистрироваться и настраивать аккаунт в Swagger
✅ Ориентироваться в интерфейсе и возможностях инструмента
✅ Создавать демо-проекты в спецификации OpenAPI
Swagger и OpenAPI — это не просто инструменты, а стандарты в REST API.
Их используют разработчики и аналитики для описания, проектирования и тестирования методов API.
Разбираясь в спецификации кода OpenAPI, вы будете лучше понимать, как API устроено изнутри 🙌
Скачиваем руководство и уделяем 15 минут, чтобы освоить новый инструмент!
#RestApiGA
----
P.S. Может потребоваться VPN
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥28🔥16👍9😁1😍1
GetAnalyst_Swagger_2_Настройка_базового_описания_проекта.pdf
15 MB
💚 Swagger - Open API - Практическое руководство. Часть 2 💚
Настроим базовую спецификацию OpenAPI! Вот ключевые элементы, которые нужно знать:
🔹 openapi: версия спецификации OpenAPI, определяющая формат описания API.
🔹 servers: список серверов, на которых развернуто API (продакшн, тест, дев).
🔹 info: содержит название, описание, версию API и контактную информацию разработчиков.
📌 Важно! В Swagger версии API хранятся как отдельные документы, между которыми можно переключаться.
🔹 tags: используются для группировки API-методов. Например, все методы, связанные с пользователями, можно объединить под тегом "Пользователи".
Что дальше?
Я подготовила для вас следующую часть практического руководства, которая поможет вам разобраться с базовой информацией об API и научиться с ней работать в OpenAPI.
⏳ Время на изучение и практику OpenAPI:
🕓 30 минут — на работу с заданиями строго по руководству, где есть подсказки по каждому шагу,
🕓 +50 минут, если хотите выполнить ДЗ и создать дополнительные личные демо-проекты для портфолио.
Сохраняйте и выполняйте задания по шагам из практического руководства!
Это позволит вам освоить инструмент Swagger (OpenAPI) в реальной работе 🙌
#RestApiGA
Настроим базовую спецификацию OpenAPI! Вот ключевые элементы, которые нужно знать:
🔹 openapi: версия спецификации OpenAPI, определяющая формат описания API.
🔹 servers: список серверов, на которых развернуто API (продакшн, тест, дев).
🔹 info: содержит название, описание, версию API и контактную информацию разработчиков.
📌 Важно! В Swagger версии API хранятся как отдельные документы, между которыми можно переключаться.
🔹 tags: используются для группировки API-методов. Например, все методы, связанные с пользователями, можно объединить под тегом "Пользователи".
Что дальше?
Я подготовила для вас следующую часть практического руководства, которая поможет вам разобраться с базовой информацией об API и научиться с ней работать в OpenAPI.
⏳ Время на изучение и практику OpenAPI:
🕓 30 минут — на работу с заданиями строго по руководству, где есть подсказки по каждому шагу,
🕓 +50 минут, если хотите выполнить ДЗ и создать дополнительные личные демо-проекты для портфолио.
Сохраняйте и выполняйте задания по шагам из практического руководства!
Это позволит вам освоить инструмент Swagger (OpenAPI) в реальной работе 🙌
#RestApiGA
🔥31👍11❤2👌2❤🔥1😁1
Forwarded from 👩🏻💻 Подкаст Системных Аналитиков | GetAnalyst
🔐 Авторизация в API: что важно для работы с требованиями и собеседований 🔐
В эпизоде разбираем, как работает авторизация в API: какие шаги она включает, виды авторизации и что нужно описывать в требованиях разработчикам.
Эпизод будет полезен системным аналитикам, кто работает с Backend, API и интеграциями, а также тем, кто только начинает осваивать эту область. Кроме того, он станет отличным ресурсом для подготовки к собеседованиям, помогая освежить теоретические знания и понять практические аспекты безопасности в API.
Эпизод доступен в:
⏯ Apple Podcast
⏯ Яндекс.Музыка
⏯ Telegram
⏯ Castbox
⏯ Spotify
⏯ RuTube
⏯ YouTube
⏯ VK Video
Делитесь с коллегами и подписывайтесь на канал подкаста, чтобы следить за релизами новых эпизодов⚡
В эпизоде разбираем, как работает авторизация в API: какие шаги она включает, виды авторизации и что нужно описывать в требованиях разработчикам.
Эпизод будет полезен системным аналитикам, кто работает с Backend, API и интеграциями, а также тем, кто только начинает осваивать эту область. Кроме того, он станет отличным ресурсом для подготовки к собеседованиям, помогая освежить теоретические знания и понять практические аспекты безопасности в API.
Эпизод доступен в:
⏯ Apple Podcast
⏯ Яндекс.Музыка
⏯ Telegram
⏯ Castbox
⏯ Spotify
⏯ RuTube
⏯ YouTube
⏯ VK Video
Делитесь с коллегами и подписывайтесь на канал подкаста, чтобы следить за релизами новых эпизодов
Please open Telegram to view this post
VIEW IN TELEGRAM
❤24🔥17👍5🤩1
🔮 Не забывайте высыпаться 🔮
Вот уже несколько месяцев контроллирую сон и ложусь спать в 22-23 часа каждый день, даже в выходные. Пришла к этому, потому что была близка к стадии выгорания от работы по 12 и более часов в день.
Только сейчас готова поделиться результатами эксперимента, который был необходим:
🔹 Просыпаюсь в 7 утра без страданий, но раньше не встану — организму нравятся его 8+ часов сна.
🔹 Бодрость весь день, желание вздремнуть не появляется.
🔹Продуктивность заметно выше — чаще успеваю уложить рабочий день в 9-10 часов, хотя работы меньше не стало.
🔹 Неожиданно легко отказалась от кофеина — ромашковый чай и декаф стали лучшими друзьями. Это дало больше спокойствия.
👉 Раньше спала по 5-6 часов и думала, что так нормально и мне так комфортно.
Но разница между 6 и 8 часов сна оказалась колоссальная – усталости стало в разы меньше, энергии больше.
Так что...
Сон – штука важная.
Если чувствуете, что сил не хватает, близки к выгоранию или чувствуете хроническую усталость, попробуйте наладить режим.
Я вдохновлялась и убеждала себя в важности сна книгами:
📚 «Зачем мы спим» – Мэттью Уолкер
📚 «Наука сна» – Дэвида Рэндалла
Берегите себя и не забывайте восстанавливаться 💜
Делитесь в комментариях: сколько часов спите вы? как себя чувствуете в течение дня?
Вот уже несколько месяцев контроллирую сон и ложусь спать в 22-23 часа каждый день, даже в выходные. Пришла к этому, потому что была близка к стадии выгорания от работы по 12 и более часов в день.
Только сейчас готова поделиться результатами эксперимента, который был необходим:
🔹 Просыпаюсь в 7 утра без страданий, но раньше не встану — организму нравятся его 8+ часов сна.
🔹 Бодрость весь день, желание вздремнуть не появляется.
🔹Продуктивность заметно выше — чаще успеваю уложить рабочий день в 9-10 часов, хотя работы меньше не стало.
🔹 Неожиданно легко отказалась от кофеина — ромашковый чай и декаф стали лучшими друзьями. Это дало больше спокойствия.
👉 Раньше спала по 5-6 часов и думала, что так нормально и мне так комфортно.
Но разница между 6 и 8 часов сна оказалась колоссальная – усталости стало в разы меньше, энергии больше.
Так что...
Сон – штука важная.
Если чувствуете, что сил не хватает, близки к выгоранию или чувствуете хроническую усталость, попробуйте наладить режим.
Я вдохновлялась и убеждала себя в важности сна книгами:
📚 «Зачем мы спим» – Мэттью Уолкер
📚 «Наука сна» – Дэвида Рэндалла
Берегите себя и не забывайте восстанавливаться 💜
Делитесь в комментариях: сколько часов спите вы? как себя чувствуете в течение дня?
❤54👍16🔥11👏3😁2👌2🥰1
GetAnalyst_7_основных_шаблонов_проектирования_архитектуры_для_СА.pdf
1.5 MB
Системные аналитики описывают внутреннюю логику работы приложений:
+ связи между данными на UI (экраны), в БД и API,
+ интеграции с внешними системами,
+ алгоритмы обработки данных,
+ и другие технические детали.
В простых проектах архитектура может не вызывать особых вопросов, так как обычно используется один из вариантов монолитной архитектуры.
А вот в сложных продуктовых компаниях, таких как банки, маркетплейсы и страховые компании, базовых знаний недостаточно. Здесь чаще встречается сложная сервисная (SOA) или микросервисная (MSA) архитектура.
Для таких проектов аналитикам важно понимать архитектуру систем, чтобы грамотно подходить к проектированию новых функций и обеспечивать их корректную интеграцию в существующую инфраструктуру.
👉 Собрала для вас 7 основных шаблонов проектирования архитектуры, которые важно понимать СА.
Рассказала о каждом с примерами и картинками, про связи между ними, и зачем их нужно знать аналитикам.
1. Монолит
2. Слоистая архитектура
3. Модульная архитектура
4. Клиент-Серверная архитектура
5. Сервис-ориентированная Архитектура (SOA)
6. Микросервисная архитектура (MSA)
7. Событийно-ориентированная архитектура (EDA)
Всю информацию собрала в мини-книгу прикрепленную к посту 📚
#АрхитектураGA
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥63❤15💯7😁3🤔2❤🔥1🤩1
🛠 Монолитная архитектура: погружение в детали 🛠
Монолитная архитектура – это подход к разработке программного обеспечения, при котором все компоненты приложения объединены в единый и неделимый блок, называемый монолитом.
Можно выделить две основные группы монолитов:
👉 Классический (жесткий) монолит: весь код Frontend и Backend в одном месте.
👉 Современный монолит: код UI (Frontend) выделяют в отдельную кодовую базу, но при этом проект может всё еще остаётся монолитным в части сервера (Backend).
Подробнее рассказала в картинках к посту 📚
#АрхитектураGA
Монолитная архитектура – это подход к разработке программного обеспечения, при котором все компоненты приложения объединены в единый и неделимый блок, называемый монолитом.
Можно выделить две основные группы монолитов:
👉 Классический (жесткий) монолит: весь код Frontend и Backend в одном месте.
👉 Современный монолит: код UI (Frontend) выделяют в отдельную кодовую базу, но при этом проект может всё еще остаётся монолитным в части сервера (Backend).
Подробнее рассказала в картинках к посту 📚
#АрхитектураGA
👍35❤7🤩1😍1
🪲 Проблемы монолита: разбор на примерах 🪲
🔺1. Масштабируемость
Добавление новых функций и рост пользователей требуют больше затрат на серверные мощности (ресурсы): память, ядра процессора и другие.
> Добавляем интеграцию с новой системой, которая расширяет функциональность приложения - из-за новых функций может вырасти количество ресурсов, используемых на сервере.
> Планируется повышение нагрузки на приложение в 2 раза из-за новой рекламной акции: надо запустить еще несколько копий ВСЕГО такого же огромного монолита, к уже работающим параллельно копиям, чтобы выдержать нагрузку.
В архитектуре с сервисами добавить копии можно было бы только на основной сервис, который будут “атаковать” пользователи в ходе рекламной кампании.
🔺2. Сложность поддержки и развертывания
Бывает, что приходится полностью останавливать работу системы в процессе обновлений. Это почти недопустимо в современных реалиях. Важно работать 24/7, чтобы обеспечивать высокий уровень сервиса.
> В существующем API-методе, в платежной части системы, нужно добавить к JSON-ответу дополнительное поле. Маленькая задача.
В условиях монолита, чтобы выпустить обновление на прод, придётся обновить весь сервер. На время обновления он может быть недоступен.
В условиях сервисов обновить надо только небольшой сервис платежей, который реализует этот API метод. Такое точечное обновление не будет блокировать другие важные функции системы в архитектуре с сервисами.
🔺3. Сложность масштабирования команды
Приходя в проект, аналитики, разработчики и тестировщики должны узнать очень много обо всех частях системы, чтобы не вредить ей при развитии и знать, как очередная маленькая функция, может задеть 100 существующих...
Для аналитиков полноценное погружение в проект может занимать от 3-х месяцев до года. И к концу испытательного срока вы все еще можете допускать ошибки проектирования и продолжать исследования дальше. Это считается нормой в монолитах.
В условиях архитектуры с сервисами аналитику часто достаточно знать только про свои сервисы и его БД, а также про API связанных сервисов внутри проекта и API внешних систем.
🔺4. Единая точка отказа
Монолит ломается целиком.
Из-за отказа в работе основной и единственной БД, возникает остановка работы всей системы. Напротив, в сервисной архитектуре, остановят работу только те сервисы, которые работают с этой БД.
🔺5. Гибкость и инновации
Затрудняется внедрение новых технологий и подходов в разработке, что делает больно разработчикам.
Высококвалифицированные специалисты редко идут в такие проекты, так как им не хочется деградировать и поддерживать легаси код (написанный на старой версии языка, с использованием устаревшего фреймворка, без документации).
Я тоже всегда избегала таких проектов, т.к. знала, что уровень команды, с которой предстоит работать, будет низкий, и я не смогу развиваться - не будет возможности пробовать новое, спрашивать коллег и расти.
Это основные проблемы монолитной архитектуры 😔
Но в ней есть и очень много плюсов:
+ легкость в разработке
+ не нужна супер-опытная команда
+ нет проблем в синхронизации данных, которые распределены по разным БД
+ легче устанавливать проект на сервере
Она идеальна для стартапов! 🚀
Монолит - это не плохо. Его можно сделать архитектурно красивым, и с ним будет интересно и приятно работать 🙌 Но всё зависит от опыта программистов, архитекторов и аналитиков, которые участвуют в разработке.
Вопрос про недостатки монолитов важно знать, если предстоит сотрудничество с архитекторами. А также он есть среди подборок теоретических вопросов для собеседований на СА.
Сохраняем этот пост в памяти, чтобы быть готовыми к развернутым ответам 🙂
#АрхитектураGA
🔺1. Масштабируемость
Добавление новых функций и рост пользователей требуют больше затрат на серверные мощности (ресурсы): память, ядра процессора и другие.
> Добавляем интеграцию с новой системой, которая расширяет функциональность приложения - из-за новых функций может вырасти количество ресурсов, используемых на сервере.
> Планируется повышение нагрузки на приложение в 2 раза из-за новой рекламной акции: надо запустить еще несколько копий ВСЕГО такого же огромного монолита, к уже работающим параллельно копиям, чтобы выдержать нагрузку.
В архитектуре с сервисами добавить копии можно было бы только на основной сервис, который будут “атаковать” пользователи в ходе рекламной кампании.
🔺2. Сложность поддержки и развертывания
Бывает, что приходится полностью останавливать работу системы в процессе обновлений. Это почти недопустимо в современных реалиях. Важно работать 24/7, чтобы обеспечивать высокий уровень сервиса.
> В существующем API-методе, в платежной части системы, нужно добавить к JSON-ответу дополнительное поле. Маленькая задача.
В условиях монолита, чтобы выпустить обновление на прод, придётся обновить весь сервер. На время обновления он может быть недоступен.
В условиях сервисов обновить надо только небольшой сервис платежей, который реализует этот API метод. Такое точечное обновление не будет блокировать другие важные функции системы в архитектуре с сервисами.
🔺3. Сложность масштабирования команды
Приходя в проект, аналитики, разработчики и тестировщики должны узнать очень много обо всех частях системы, чтобы не вредить ей при развитии и знать, как очередная маленькая функция, может задеть 100 существующих...
Для аналитиков полноценное погружение в проект может занимать от 3-х месяцев до года. И к концу испытательного срока вы все еще можете допускать ошибки проектирования и продолжать исследования дальше. Это считается нормой в монолитах.
В условиях архитектуры с сервисами аналитику часто достаточно знать только про свои сервисы и его БД, а также про API связанных сервисов внутри проекта и API внешних систем.
🔺4. Единая точка отказа
Монолит ломается целиком.
Из-за отказа в работе основной и единственной БД, возникает остановка работы всей системы. Напротив, в сервисной архитектуре, остановят работу только те сервисы, которые работают с этой БД.
🔺5. Гибкость и инновации
Затрудняется внедрение новых технологий и подходов в разработке, что делает больно разработчикам.
Высококвалифицированные специалисты редко идут в такие проекты, так как им не хочется деградировать и поддерживать легаси код (написанный на старой версии языка, с использованием устаревшего фреймворка, без документации).
Я тоже всегда избегала таких проектов, т.к. знала, что уровень команды, с которой предстоит работать, будет низкий, и я не смогу развиваться - не будет возможности пробовать новое, спрашивать коллег и расти.
Это основные проблемы монолитной архитектуры 😔
Но в ней есть и очень много плюсов:
+ легкость в разработке
+ не нужна супер-опытная команда
+ нет проблем в синхронизации данных, которые распределены по разным БД
+ легче устанавливать проект на сервере
Она идеальна для стартапов! 🚀
Монолит - это не плохо. Его можно сделать архитектурно красивым, и с ним будет интересно и приятно работать 🙌 Но всё зависит от опыта программистов, архитекторов и аналитиков, которые участвуют в разработке.
Вопрос про недостатки монолитов важно знать, если предстоит сотрудничество с архитекторами. А также он есть среди подборок теоретических вопросов для собеседований на СА.
Сохраняем этот пост в памяти, чтобы быть готовыми к развернутым ответам 🙂
#АрхитектураGA
🔥24👍11❤6🤩2
Сервис-ориентированная архитектура (SOA) представляет собой подход, который позволяет разрабатывать приложения как набор взаимосвязанных сервисов.
👉 Сервис – это маленький монолит.
👉 SOA – это набор маленьких монолитов, которые взаимодействуют друг с другом.
Когда мы думаем о серверной части приложения Backend, то в SOA надо представлять, что это НЕ одно большое приложение, как монолит, НЕ один прямоугольник “Backend” на схеме архитектуры, а много разных прямоугольников - сервисов, каждый из которых может:
+ отвечать за определенную группу функций,
+ иметь собственную БД,
+ иметь собственный API,
+ иметь собственную кодовую базу,
+ устанавливаться на отдельном сервере,
+ обновляться независимо от остальных.
👉 Эти сервисы общаются друг с другом, обычно через API или шину данных (ESB), для выполнения различных бизнес-задач.
Сервисы в SOA обычно выделяют по бизнес-контекстам или процессам, которыми они должны управлять.
В классическом примере с Интернет-магазином можно выделить сервисы:
▫️ товары,
▫️ корзина покупок,
▫️ платежи,
▫️ уведомления (sms, email, push),
▫️ ЛК пользователей.
Особенности SOA:
💪 Backend разбивается на независимые сервисы.
💪 Сервисы можно легко добавлять или обновлять без влияния на всю систему, т.к. у них отдельные кодовые базы. Каждый сервис можно разрабатывать, тестировать, развертывать и масштабировать независимо.
💪 Сервисы могут масштабироваться независимо друг от друга как горизонтально, так и вертикально, что оптимизирует ресурсное использование и управление нагрузкой.
💪 Ошибки в одном сервисе обычно не влияют на работу других, что повышает надежность всей системы.
💪 SOA позволяет использовать различные технологии и языки программирования в рамках одного проекта. То есть один сервис может быть на PHP, второй на Python, а все остальные сервисы на Java. Это позволяет программистам пробовать внедрять новые технологии в проекты при разработке новых сервисов.
#АрхитектураGA
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15❤🔥15🔥8🤩2👍1😍1
🦄 Микросервисная архитектура(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