GetAnalyst - Навыки • Системный анализ • Бизнес-анализ
19.6K subscribers
2.09K photos
75 videos
207 files
1.19K links
Разбор задач на проектирование систем 🚀 Канал для системных аналитиков, бизнес-аналитиков, тестировщиков и менеджеров проектов

Админ @getanalyst
Сайт https://getanalyst.ru
Чат t.me/getanalystchat
Начинающим в IT @getanalyststart

РКН №5013005196
Download Telegram
⚡️ НФТ - примеры по проекту доставки фермерских продуктов #FarmFreshGA ⚡️

Нефункциональные требования (НФТ) определяют, как система должна работать, и часто влияют на выбор архитектурных и инфраструктурных решений.

Рассмотрим основные НФТ и их реализацию в контексте проекта FarmFresh (FF):

1. Производительность
2. Масштабируемость
3. Отказоустойчивость

Подробности на картинках к посту 🖼☝️☝️☝️

#AрхитектураGA
👍20🔥83
🔸 Монолит, Сервисная и Микросервисная архитектура - сравнение 🔸

Для системных аналитиков важно не только знать, какие виды архитектур существуют, но и понимать их ключевые отличия и области применения.

В этом посте мы познакомимся с наиболее распространенными видами архитектуры.

🔸 Монолитная архитектура
В монолитной архитектуре все компоненты приложения находятся в одной кодовой базе и работают как единое целое. Это обеспечивает простоту разработки и релизов системы.
Хорошо подходит для стартапов и небольших проектов.

БД:
Обычно используется одна БД, что упрощает взаимодействие между различными частями приложения, но может стать узким местом при масштабировании.
Допустимо несколько БД.

Внутренние интеграции:
Все компоненты взаимодействуют только на уровне кода, интеграции компонентов внутри Backend по API и другими способами не нужны.


🔸 Сервисная архитектура SOA (Service-Oriented Architecture)
SOA разделяет функциональность на отдельные сервисы, которые взаимодействуют между собой через сетевые вызовы - по API, через шину данных (ESB) или другими способами.

Идеально подходит для средних и крупных проектов, где важно обеспечивать высокий уровень доступности или производительности для отдельных частей системы.

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

БД:
Каждый сервис может использовать свою собственную БД, что облегчает масштабирование и изоляцию сервисов, но также несколько сервисов могут использовать одну БД, что отличает SOA от MSA.

Внутренние интеграции:
Сервисы интегрируются через API, что упрощает интеграцию. Могут использовать шину - ESB.

#АрхитектураGA #FarmFreshGA

Продолжение 👇
13🔥5👍4
🔸 Микросервисная архитектура MSA (Microservice Architecture)
MSA состоит из множества маленьких, независимо разрабатываемых и развертываемых сервисов, каждый из которых выполняет одну бизнес-функцию.

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

Подход эффективен для больших и быстро развивающихся приложений, где требуется быстрая разработка и частые обновления.

БД:
Каждый микросервис в идеале управляет своей собственной БД, что позволяет избежать зависимостей и упрощает масштабирование каждого сервиса по отдельности.

Внутренние интеграции:
Взаимодействие между микросервисами часто строится по API на легких протоколах, таких как REST или gRPC, и может включать очереди и брокеры сообщений для асинхронной коммуникации.



Выбор архитектуры проекта зависит от специфики и требований к системе.
На практике часто используют либо смесь подходов SOA и MSA, либо начинают проекты с монолита и через 3-5 лет задумываются о переезде на SOA в качестве первого этапа деления монолита на микросервисы.

Ключевые подходы к проектированию архитектуры фиксируются в проектной документации. И это не только схемы архитетуры. но и правила, по которым продолжать развивать проект всей команде.

Понимание ключевых аспектов каждого подхода поможет аналитикам определить наиболее подходящую архитектуру для конкретного случая, а также принимать активное и осознанное участие в обсуждениях с разработчиками и архитекторами 🌱

#АрхитектураGA
17🔥8👍4
💚🎁 Analyst Days 19 + GetAnalyst - дарим подарки 🎁💚

Коллеги, на прошлой неделе мы проводили розыгрыш подарков от GetAnalyst (подписка 3мес на БД и SQL) и AnalystDays-19 (билет на конференцию).

Для участия надо было ответить всего на 2 вопроса:
1. Почему вы подписаны на GetAnalyst?
2. Почему вы хотите на конференцию Analyst Days-19?


Подводим итоги:

🟢 Подарили билет Анастасии за её искренний текст про Analyst Days:
Для меня участие в конференции - это новая ступень в моем развитии, как профессионала. И это очень волнительная ступень.

Я почитала заголовки докладов и я в полном восторге) Охватываются и софт и хард скилы. Какие-то доклады обещают погружение в технические детали, а я уже предварительно моделирую, где и как можно применить полученные знания.



С GetAnalyst было сложно…
В следующий раз буду с генератором случайных чисел розыгрыши делать 😅 Поэтому подарков дали чуть больше.

Два самых отложившихся в сердце ответа:

🟣 Кристина
Это как напоминание, что «чем больше я знаю, тем больше понимаю что ничего не знаю».

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

У меня на проекте уже второй стажер и статьи помогают мне выстраивать их трек развития.



🟣И еще одна Кристина 😊
GetAnalyst совершенно уникальный проект, с которым я познакомилась случайно, но по воли судьбы, вероятно

После недлительного наблюдение за каналом, решила приобрести курс по архитектуре. Осталась им более чем довольна

Продолжаю следить за обновлением в паблике, потому что нахожу массу полезного контента, ориентированного на прикладное применение


+ мы дали еще больше подарков от GetAnalyst.


🎁 Полные тексты и результаты на сайте.


Коллеги, спасибо вам за эти ответы! 🩷

Я стараюсь сделать всё возможное, чтобы GetAnalyst был источником ваших знаний и вдохновения.


Искренне ваши,
Екатерина Ананьева
и команда GetAnalyst!
17🎉4👍3🥰1
GetAnalyst_Микросервисы_5_способов_определения.pdf
2.9 MB
📚 Как выделять микросервисы? 📚

1️⃣ По группам функций
2️⃣ По доменам (Domain-driven Design, DDD)
3️⃣ По данным
4️⃣ По пользовательским сценариям

5️⃣ По уровню нагрузки

Подходы могут использоваться как комбинированно, так и отдельно. Каждый эффективен по-своему.

А подробнее и с примерами рассказала о них в мини-книге, прикрепленной к посту.

Сохраняем в личную библиотеку книг от GetAnalyst 💜

#АрхитектураGA #FarmFreshGA
14🔥7
🧐 Должны ли аналитики заниматься проектированием архитектуры? 🧐

Начну с того, что есть другие профессии для этого:

Systems Architect (Системный архитектор) - проектирует техническую архитектуру отдельных систем. Фокусируется на взаимодействии компонентов, структуре кода и выборе технологий реализации. Работает с кодом.

Enterprise Architect (Корпоративный архитектор) - создаёт стратегию для всей ИТ-инфраструктуры компании, обеспечивая её соответствие бизнес-целям и интеграцию всех систем. Работает на уровне организации, задавая стандарты и политики. Не всегда работает с кодом.

Solutions Architect (Архитектор решений) - отвечает за архитектуру решений, в которую входит сбор требований к проекту, поиск лучших технических решений, описание структуры и поведения ПО, распределение задач на разработчиков и многое другое. Не всегда работает с кодом.

Лиды разработки, которые выполняют роль любого из архитекторов.

Эти роли часто пересекаются, но их подход к масштабам и фокусу на проектировании различается.
Согласитесь, схожая ситуация с БА и СА.


В последние годы я всё чаще встречаю вакансии Solutions Architect на hh.ru и других ресурсах для поиска работы, где требования к кандидату содержат строку в формате:
Кого мы ждём?

Если вы опытный разработчик или системный аналитик, то откликайтесь скорее!


Также компании стараются выращивать своих Solutions Architect из опытных Системных аналитиков, которые и так уже проектируют и документируют архитектуру:
✔️ вместе с лидами разработки,
✔️ вместе с архитекторами,
✔️ самостоятельно.

Очень выгодно и удобно иметь в штате Senior Системного Аналитика, который может работать с архитектурой.


Так как Системный аналитик находится на стыке бизнеса и разработки, то он лучше всех разбирается в логике проекта и может делить функциональность на логические составляющие. А при знании технологий - не специалист, а бриллиант! 💎

ЗП у таких аналитиков, как правило, на уровне архитекторов.


И чтобы выращивать таких крутых Системных аналитиков, нас подключают в техническое проектирование по полной программе:

1. Ходим на встречи с архитекторами/разработчиками по обсуждению архитектуры.

2. Копаемся в коде, чтобы понять “а как это вообще работает”.

3. Берем на себя задачи по анализу и подбору технологий, чтобы принести в команду структурированные доки по результатам исследований.

4. Проектируем API, описываем технические требования к интеграции систем, проектируем БД.

5. Анализируем логи, смотрим на дашборды мониторинга системы.

6. Рисуем архитектурные и инфраструктурные схемы после встреч по архитектуре (а кто же еще документацию сделает, если не аналитик? 🥲).

7. Много читаем и учимся.

8. Много всего 🙂


Должен ли аналитик заниматься проектированием архитектуры?

Выделять микросервисы, рисовать архитектуру, выбирать API для взаимодействия между сервисами…
Нет.


Официально мы можем остановиться в развитии, когда научились техническому проектированию и постановке задач на разработчиков:
+ сбор и анализ требований,
+ описание сценариев Use Case,
+ проектирование БД,
+ описание интеграций,
+ разработка требований к структуре API-методов,
+ ведение документации.

Но зачем останавливаться на достигнутом, если можно быть любопытным и есть куда расти? 🚀💎

Поэтому, коллеги, выбор всегда за вами. Принимать на себя новую ответственность и знания, когда вас зовут на встречу по архитектуре, либо сказать "это не моя зона ответственности" и идти решать свои задачи.

А какое у вас мнение по поводу работы аналитиков с архитектурой? Сталкиваетесь ли с ней сейчас в работе?
Поделитесь в комментариях 🙏

#АрхитектураGA
38👍16❤‍🔥3👌3🔥1
GetAnayst_Архитектура_5_основных_сервисов_и_микросервисов.pdf
1.4 MB
💚💜 5 стандартных сервисов и микросервисов 💜💚

В большинстве проектов, которые используют подход сервисной или микросервисной архитектуры, можно встретить эти пять основных сервисов:

Аутентификация и авторизация
Управление процессами аутентификации пользователей и контроля доступа к ресурсам системы.

Управление пользователями
Обработка регистраций, управление профилями пользователей, хранение и обработка данных пользователей.

Уведомления и рассылки
Отправка уведомлений и сообщений пользователям через различные каналы (email, SMS, push-уведомления).

Управление контентом (блоги на сайтах, новости и подобное)
Управление статическим и динамическим контентом (тексты, изображения, видео), организация его структуры и хранения.

Биллинг и платежи
Обработка и учет платежей, интеграция с платежными шлюзами, выставление счетов. Взаимодействует с внешними платежными шлюзами и банковскими системами.


Если я работаю над проектом с нуля, то использую этот список как чек-лист “С чего начать". Поможет всем IT-специалистам в задачах, связанных с проектированием архитектуры.


В мини-книге прикрепленной к посту рассказала подробнее про каждый сервис, и почему их выделяют как независимые части систем 🙌

#АрхитектураGA
👍227🔥7👌5
🧑‍🌾 Пример: сервисы и микросервисы для проекта #FarmFreshGA 🧑‍🌾

Вчера и сегодня я рассказывала про подходы к выделению сервисов и микросервисов. Пришло время применить их на практике!

Разделим на части Backend платформы FarmFresh, которая занимается заказом фермерских продуктов и оформлением подписки на них.

🔗 О проекте

💚 Сервис аутентификации и авторизации
Отвечает за регистрацию и авторизацию пользователей, управление ролями и правами доступа. Ожидается высокая нагрузка.

💚 Сервис управления пользователями
Получение и редактирование данных профилей, настройки уведомлений, любимые товары.

💚 Сервис каталога товаров
Добавление, изменение и удаление товаров фермерами, распределение их по категориям. Поиск товаров для покупателей. Высокая нагрузка - основная функциональность системы.

💚 Сервис заказов
Обработка заказов покупателей, включая добавление в корзину и контроль статусов.

💚 Сервис подписок Создание, обновление и отмена подписок на продукты.

💚 Сервис платежей
Интеграции с внешними платежными системами для обработки платежей, работа с возвратами и отменой покупок. Основная и критическая функциональность.

💚 Сервис доставки Управление зонами доставки, расписанием и доступностью курьеров. Отслеживание статусов доставки и обновление их в сервисе заказов. Интегрируется с внешними API курьерских служб.

💚 Сервис склада
Контроль запасов продуктов от каждого фермера и учет данных при оформлении заказов пользователями. Высокая нагрузка.

💚 Сервис уведомлений
Отправка уведомлений (push-, SMS, email) пользователям. Интеграция с соответствующими сервисами рассылок.

💚 Сервис маркетинга и акций
Управление скидками, акциями и специальными предложениями для покупателей.

💚 Сервис отзывов и рейтингов

💚 Cервис чата и поддержки


💚 Сервис API Gateway
Маршрутизация запросов к сервисам, а также для контроля безопасности и авторизации.

Есть еще идеи по дополнительным сервисам?
Пишите идеи в комментарии! Добавим 😎

#АрхитектураGA
👍104🔥2
👍 Версионирование API. Обратная совместимость в API 👍

Работаете с задачами на Backend, проектируете методы REST API или описываете интеграции? Этот эпизод актуален для вас.

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

Эпизод будет полезен системным аналитикам, которые работают с интеграциями, разрабатывают контракты методов API и сталкиваются с задачами изменения существующих API. Особенно это актуально в задачах на проектирование REST API методов.

🔗 Сайт эпизода

Эпизод доступен в:
Apple Podcast
Яндекс.Музыка
YouTube
Telegram
Castbox
Spotify

Делитесь с коллегами, подписывайтесь на канал и следите за новыми эпизодами, чтобы не пропускать важные темы для системных аналитиков 😎
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥74
💛 Спасибо 💛

Иногда сообщения, которые мы получаем, трогают до глубины души.

Они напоминают мне о том, что GetAnalyst существует не зря.

В мае я пытался сменить место работы, но мне не удавалось пройти собеседования на те места, которые мне были интересны. На тот момент я уже учился в другом месте на курсе системного аналитика, но чувствовал, что мне не хватает знаний и практики. К счастью, я встретил сайт GetAnalyst! Несмотря на то, что нужные модули мне ещё предстояли в большом курсе, я решил параллельно пойти ещё и в GA по интеграциям и архитектуре. 

В сентябре я вновь начал поиски работы и уже примерно через неделю получил два интересных оффера! Я бы точно не справился без GetAnalyst и не чувствовал бы себя так уверенно на технических интервью. Вчера был мой первый день в Сбере, и я очень счастлив, что 5 месяцев назад увидел в интернете одну из ваших статей 😄.


Спасибо, что делитесь своими историями!
Спасибо, что вы с нами!
Спасибо, что ставите ❤️👍🔥🦄 под посты!

Это мое вдохновение и поддержка всей команды!

Каждый подобный отзыв — напоминание, что знания и опыт, которыми мы делимся, помогают вам стать лучшей версией себя 🚀

Вы делаете успехи в карьере, преодолеваете "синдром самозванца" и с уверенностью осуществляете поставленные цели.

Гордимся каждым из вас! 💜
❤‍🔥34👍141
Одна из ступеней профессионального роста системного аналитика - работа в тесном сотрудничестве с архитекторами на проектах с сервисной или микросервисной архитектурой.

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


💥 Проектирование Архитектуры
🗓 Старт предобучения 3 декабря 2024

🔗 Подробности о программе и запись

🎁 Сегодня последний день, когда открыта запись на самых выгодных условиях с дополнительным обучением по REST API в подарок.


По всем вопросам пишите @getanalyst, info@getanalyst.ru или оставляйте заявку через сайт. Мы свяжемся с вами, поможем оценить текущие навыки и ответим на ваши вопросы 🙌
👍73
☀️ Способы взаимодействия микросервисов ☀️

1) Синхронное
2) Асинхронное
3) Событийно-ориентированная архитектура (EDA)
4) Непрерывное соединение в режиме реального времени (Streaming)

Это прямые способы взаимодействия, которые могут использоваться в сочетании с различными архитектурными подходами: API Gateway, хореография, оркестрация и другими.

То, как будет организовано взаимодействие между микросервисами, будет влиять на:
+ скорость работы системы,
+ возможность масштабирования,
+ надежность работы - гарантия доставки и обработки запросов между микросервисами.

Выбор способа взаимодействия должен быть осознанным, с пониманием, почему мы выбираем именно это решение.

Также при проектировании архитектуры рекомендуется помнить о единообразии и о соблюдении общих архитектурных шаблонов выбранных для проекта.
То есть не стоит пытаться использовать всё и сразу, чтобы быть лучше. Наоборот, лучше придерживаться минимализма и чётко определенных правил по выбору решений.

#АрхитектураGA
27👍8
🗓 Приглашаем на открытый урок по Архитектуре 30.11 - 02.12 🗓

Проектирование архитектуры - одна из точек профессионального развития для системного аналитика. И мы хотим помочь вам сделать как можно больше простых, но важных шагов в её освоении как можно раньше.

Поэтому приглашаем вас на открытый урок!

💎 Проектирование архитектуры: от монолита к микросервисам
🗓 Доступ с 30 ноября до 2 декабря (СБ-ПН)

🔗 ЗАРЕГИСТРИРОВАТЬСЯ

План
1. Роль системного аналитика в проектировании архитектуры
2. Знакомство с проектом
3. Проектирование монолита
4. Переход к сервисам (SOA) и микросервисам (MSA)
5. Проблемы деления монолита на микросервисы
6. Что нужно знать системному аналитику про работу с архитектурой

Уже после этого занятия вы сможете получить знания и навыки, которые усилят вас как специалиста.

Регистрируйтесь, чтобы получить доступ к уроку, и планируйте время на обучение в ближайшие выходные! 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍62👎1
🌪 Способы обмена данными между приложениями и системами 🌪

В этом посте собрана подборка материалов по разным способам взаимодействия систем.


REST
🔗 Официальная документация
📚 Проектирование REST API: спорные вопросы с проектов и собеседований на системного аналитика (и не только)
📚 Postman: навык тестирования REST API за вечер
📚 Вопросы и ответы по REST API: собеседование на системного аналитика (подкаст)
Пример API-документации:
Wildberries


SOAP
🔗 Официальная документация
Пример API-документации:
PayPal (обратите внимание, что устаревший)


WebSocket
🔗 Официальная документация
Пример API-документации:
Binance Биржа


GraphQL
🔗 Официальная документация
📚 GraphQL — знакомство на практике через Postman [пошаговая инструкция]
Пример API-документации:
Contentful


gRPC
🔗 Официальная документация
📚 gRCP vs REST - что выбрать для проекта (подкаст + материалы)
Пример API-документации:
Dropbox от Google


SSE
🔗 Официальная документация


+ есть Socket.IO

Знание всех подходов к взаимодействию между системами помогает в работе с проектированием архитектуры.

#АрхитектураGA
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥42👍1310👏3