Системный анализ | Дмитрий Помаскин
1.38K subscribers
44 photos
150 videos
266 links
📍Обучение системному анализу
📍Полезные материалы для развития навыков
📍Разбор практических кейсов по системному анализу и архитектуре
📍Индивидуальные консультации (менторство)

Моя онлайн-школа:
https://system-analysis.skillspace.ru
Download Telegram
Media is too big
VIEW IN TELEGRAM
❗️System design — производительность и отказоустойчивость❗️

Уже имеем:
Понятные и подтверждённые требования;
"Скелет" будущей системы;
Технологии интеграций между элементами;
Технологии баз данных для сервисов.

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

1️⃣ HTTP Proxy
Между FE и BE-сервисами с HTTP-интерфейсами добавляем HTTP Proxy.
Это необходимо для кеширования, балансировки нагрузки и безопасности.

2️⃣ Количество подов для сервисов
Всегда минимум 2 пода. Для сервисов с высокой нагрузкой увеличивайте количество подов или настраивайте HPA.

3️⃣ Количество партиций в топиках
Если вы используете Apache Kafka, то при увеличении числа подов сервисов не забывайте про количество партиций в топиках, которые эти сервисы читают. Ранее рассказывал, как правильно это сделать.

4️⃣ Кластерные базы данных
Если сервис участвует в ключевом бизнес-процессе вашей системы, то он обязательно должен иметь под собой кластерную базу данных для обеспечения отказоустойчивости и производительности. Ранее выходил цикл постов, в котором я подробно рассказывал про кластеризацию.

5️⃣ Общий взгляд на систему
Ещё раз посмотрите на то, что у вас получилось. Возможно, на каком-то из предыдущих этапах вы что-то не учли, и сейчас самое время это добавить.

Предыдущие части:
Шаг 1: правильно понимаем условия задачи;
Шаг 2: строим скелет будущей системы;
Шаг 3: проектируем интеграции;
Шаг 4: выбор технологий БД.

Системный анализ | Дмитрий Помаскин
Please open Telegram to view this post
VIEW IN TELEGRAM
26👍6🔥3
❗️Места на интенсивах❗️

Ещё остались места в группах на этих выходных:
🔴 22.11 Функциональные требования — 1 место, записаться;
🟡 23.11 Нотация С4 — 2 места, записаться.

Также будет одно занятие через неделю:
🟢 29.11 Нотация С4 — 4 места, записаться.

Подробная информация о программах:
Функциональные требования;
Нотация С4.

Системный анализ | Дмитрий Помаскин
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7
Media is too big
VIEW IN TELEGRAM
❗️System design — мониторинг❗️

Уже имеем:
Понятные и подтверждённые требования;
"Скелет" будущей системы;
Технологии интеграций между элементами;
Технологии баз данных для сервисов;
Средства отказоустойчивости и производительности.

Задача этапа:
Внедрить мониторинг системы.

Если имеете опыт использования каких-то решений для мониторинга, смело применяйте его. Если опыта у вас нет, то ещё один "универсальный" список технологий:

1️⃣ Prometheus
Система сбора и хранения метрик. Собирает данные о работе системы (CPU, память, количество запросов, ошибок) и хранит их во временной базе данных.

2️⃣ Grafana
Визуализация метрик. Берет данные из Prometheus и показывает их в виде красивых дашбордов с графиками, таблицами и индикаторами.

3️⃣ Alertmanager
Управление оповещениями. Принимает алерты от Prometheus, группирует их, убирает дубли и отправляет уведомления в нужные каналы (Email, Slack, Telegram и тд).

4️⃣ Jaeger
Трассировка распределенных систем. Показывает полный путь одного запроса через все микросервисы, где и сколько времени он выполнялся, что помогает находить узкие места.

5️⃣ ELK (Elasticsearch, Logstash, Kibana)
Сбор и анализ логов:
- Elasticsearch — поисковый движок для хранения и поиска по логам;
- Logstash — сбор, парсинг и преобразование логов;
- Kibana — веб-интерфейс для просмотра и анализа логов.

Предыдущие части:
Шаг 1: правильно понимаем условия задачи;
Шаг 2: строим скелет будущей системы;
Шаг 3: проектируем интеграции;
Шаг 4: выбор технологий БД;
Шаг 5: производительность и отказоустойчивость.

Системный анализ | Дмитрий Помаскин
Please open Telegram to view this post
VIEW IN TELEGRAM
26🔥4👍3
This media is not supported in your browser
VIEW IN TELEGRAM
1️⃣0️⃣0️⃣0️⃣

Набрали первую тысячу подписчиков канала 🎉

Ловите 2 анонса в честь этого события:

1️⃣ Проведем первый вебинар.
Тему сообщу в отдельном посте, а с датой и временем определимся через голосование.

2️⃣ Оценка навыков v2.
Готовлю к запуску новую версию, которая будет целиком основана на решении практических задач. Запуск уже на следующей неделе.

Системный анализ | Дмитрий Помаскин
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥20👍5👏4
This media is not supported in your browser
VIEW IN TELEGRAM
❗️Итоговый пост: теория по System Design❗️

Шаг 1: правильно понимаем условия задачи;
Шаг 2: строим скелет будущей системы;
Шаг 3: проектируем интеграции;
Шаг 4: выбор технологий БД;
Шаг 5: производительность и отказоустойчивость;
Шаг 6: мониторинг.

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

Разборы сделаю в формате длинных видео с записью экрана, поэтому выходить будут немного реже :)

Системный анализ | Дмитрий Помаскин
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
❗️Обновление интенсива по C4❗️

В тайминг практической части смог уместить работу со structurizr.

Structurizr — нативная утилита для визуализации архитектуры на основе нотации C4. Работает по принципу Diagrams as Code.

В группе на воскресенье 12:00 МСК осталось всего 1 место, записывайтесь тут:)

P.S. Также 1 место осталось на занятие по функциональным требованиям завтра в 16:00 МСК, записаться можно тут.
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥7
❗️Первые подробности по вебинару❗️

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

Поэтому тема: "Распределенные системы".

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

Теперь к организационному
:
Участие бесплатное;
🎤 50-60 минут на презентацию;
20-30 минут ответы на ваши вопросы.

Но нам нужно определиться с датой и временем.

Ниже прикреплю 2 опроса. Голосовать будем до вечера четверга, чтобы я успел скорректировать график интенсивов декабря и всех уведомить.

Системный анализ | Дмитрий Помаскин
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍6😁2
Media is too big
VIEW IN TELEGRAM
❗️Разбор задачки по System Design ❗️

Ссылка youtube

Эта задача досталась одному из подписчиков на собеседовании.

Условия задачи:


Разработка платформы для сети коворкинг-центров, объединяющей мобильное приложение для пользователей и веб-интерфейс для администраторов.

Для пользователей (мобильное приложение):
-Просмотр доступных рабочих мест;
-Выбор и бронирование места на определённое время;
-Интеграция с платежным шлюзом для оплаты бронирования (минимум 3 банка).

Для администраторов (веб-интерфейс):
-Управление каталогом рабочих мест (добавление, блокировка);
-Динамическое управление тарифами аренды;
-Просмотр агрегированной аналитики (Графики заполняемости пространства, Статистика посещаемости по времени и зонам).

Технические ограничения:
-Поддержка 1000+ одновременных пользователей;
-Формирование отчетов с задержкой не более 5 минут.

Системный анализ | Дмитрий Помаскин
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥18👍4
Media is too big
VIEW IN TELEGRAM
🆕 Оценка навыков 2.0 🆕

Как и обещал, новая оценка навыков уже доступна!

Что изменилось во второй версии:
Только практические задания из реальных собеседований;
Самые актуальные темы под текущие требования рынка;
Время на решение не ограничено;
Система сертификации для вашего резюме.

Также как и ранее я самостоятельно проверяю ваше решение и направляю подробный разбор.

Те, кто наберёт 80 баллов из 100, получат сертификат, который можно прикрепить к резюме. Полностью честный, валидируется по ссылке или QR-коду.

Кейсы, которые вас ждут:
🔸System Design;
🔸BPMN/UML;
🔸Проектирование синхронных и асинхронных интеграций;
🔸Работа с событиями;
🔸Проектирование структуры БД;
🔸SQL.

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

Чтобы попробовать свои силы, жмите сюда 👈

Системный анализ | Дмитрий Помаскин
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥8👍3
❗️Вебинару быть в субботу 06.12❗️

По итогам опроса побеждает 6 декабря :)

Теперь выбираем время, опрос также ниже 👇

Технические неполадки, не поставил галочку с выбором нескольких ответов, нужно переголосовать:)

Системный анализ | Дмитрий Помаскин
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥4👍2
❗️Вебинар пройдет 06.12 в 13:00❗️

По итогам опроса, с небольшим отрывом, побеждает 13:00.

Итог: встречаемся с вами в субботу 06.12 в 13:00 по МСК.

Ссылка на подключение будет накануне :)

Системный анализ | Дмитрий Помаскин
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥9👍2
❗️Ещё одна задачка по System Design ❗️

В этот раз разобрал задачку с собеседования на позицию senior в финтех.

Разбор получился почти на 40 минут и 2.5гига🙃, поэтому вот ссылка на youtube.

Условие задачи:
Банк запускает новый продукт для сбора обратной связи от клиентов. Необходимо внедрить в мобильное приложение и интернет-банк новый сервис «Умный Опрос».

Описание сервиса:
- После определенных действий (например, покупки ценных бумаг, оформление кредита) клиенту показывается короткий опрос (3-5 вопросов).
- Ответы сохраняются в сыром виде, затем агрегируются и показываются в виде дашбордов менеджерам по продукту.
- Сервис состоит из:
1. REST API (принимает ответы).
2. Админ-панель (для настройки опросов и просмотра дашбордов).
3. База данных (опросы, ответы).

Что нужно сделать:

1. Проектирование интеграции:
Описать, как новый сервис будет взаимодействовать с существующими системами (мобильное приложение, интернет банк, сервисы других продуктов, API gateway, система нотификаций).

*Текущие сервисы работают по событийной модели.

2. Расчет мощностей (Sizing):
На основе вводных данных произвести расчет:
- Количество пользователей: 20 млн активных клиентов в месяц.
- Ожидаемое количество опросов: 1% от пользователей в день.
- Размер одного опроса: ~20 КБ.
- Дашборды: Одновременно до 100 менеджеров могут работать с системой в час пик.

Рассчитать:
- Количество подов внедряемых сервисов.
- Требования к CPU/RAM для каждого сервиса.
- Объем хранилища и требования к производительности для базы данных.
- Оценочный сетевой трафик.

P.S. На youtube канал подписываться не прошу, использую его как техническую платформу, но если подпишитесь, мне будет приятно:)

Системный анализ | Дмитрий Помаскин
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍3
❗️Интенсивы декабря ❗️

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

В декабре будет всего 2 практических занятия по 5 человек:

🔸Суббота 13.12 16:00 МСК;
🔸Воскресенье 14.12 12:00 МСК.

Новых тем не будет, прошу понять и простить:)

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

Голосуйте за тему только, если собираетесь прийти.

Как только завершим голосование, открою запись в группы.

Описание программ:

🔸REST API;
🔸
Базы данных;
🔸
Брокеры сообщений;
🔸
Функциональные требования;
🔸
Event-Driven Architecture;
🔸
Нотация С4.

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

P.S. Опять не прожал чекбокс с мультивыбором... Нажмите ещё раз, пожалуйста:)

Системный анализ | Дмитрий Помаскин
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
❗️Запись будет открыта в 16:00❗️

Голосование за тему на 13.12 остановлю за 1 час до открытия записи.

🔥 В 16:00 открою запись на выбранную вами тему.
Будет 5 мест.

Вечером открою голосование за тему интенсива на 14.12.

Системный анализ | Дмитрий Помаскин
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
❗️Запись открыта: 13.12 16:00 МСК❗️

Тема
: Event-Driven Architecture

👉 Записаться 👈

Уровень: Middle.
Требуемые навыки: Понимание принципов работы распределённых систем, Apache Kafka.
Кол-во участников: до 5.
Длительность: ~4 часа.
Программа:
Немного общей теории по распределенным системам;
Что такое "событие";
Что такое EDA;
Сильные и слабые стороны EDA;
Модели данных для EDA;
Мониторинг в EDA.

Практика:
Проектируем EDA систему с нуля;
Готовим схему расположения сервисов;
Расширяем функционал системы с использованием имеющихся событий;
Внедряем в систему мониторинг.

👉 Записаться 👈

P.S. Скоро запущу голосование за тему интенсива 14.12 12:00 МСК.

Системный анализ | Дмитрий Помаскин
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7
❗️Запись открыта: 14.12 12:00 МСК❗️

Тема
: Нотация С4

👉 Записаться 👈

Уровень: Middle.
Требуемые навыки: Понимание принципов работы распределённых систем.
Кол-во участников: до 5.
Длительность: ~3.5 часа.
Программа:
Что такое нотация С4;
Для чего она нужна;
Какие уровни бывают;
Основные элементы всех уровней;
Что из этого реально стоит использовать в работе;
Какие инструменты существуют для работы с С4.

Практика:
Подготовим описание системы на разных уровнях;
Модифицируем схему по результатам доработок.

👉 Записаться 👈

Системный анализ | Дмитрий Помаскин
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5