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

Моя онлайн-школа:
https://system-analysis.skillspace.ru
Download Telegram
❗️Вебинару быть в субботу 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
❗️Вебинар завтра в 13:00 МСК❗️

Просто напоминание о том, что завтра в 13:00 пройдёт наш первый вебинар.

Ссылку на подключение опубликую на канале за 30 минут до начала🫡

Системный анализ | Дмитрий Помаскин
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥10👍3
Media is too big
VIEW IN TELEGRAM
❗️А вот и запись вебинара подъехала❗️

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

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

Есть места на практические занятия в эти выходные:

🟢 Event-Driven Architecture 13.12 16:00
Осталось 4 места 👉 Записаться 👈

🟡 Нотация С4 14.12 12:00
Осталось 2 места 👉 Записаться 👈

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

Вторая часть — практическая. Самостоятельное решение задач с последующим обсуждением и разбором ошибок онлайн.

P.S. На С4 желательно записываться заранее, потому что для практической части потребуется докер. Инструкцию пришлю:)

Системный анализ | Дмитрий Помаскин
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7
Media is too big
VIEW IN TELEGRAM
❗️И ещё одна задачка по System Design ❗️

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

На канале много новых подписчиков, которые его не видели, и само видео будет в тему текущего цикла.

Разобрал 3 различных варианта решения задачи👍

Ссылка на youtube 👈

Задача:
Спроектировать интеграции между сервисами банка.

Бизнес-процесс:
1. Клиент отправляет заявку на выпуск новой карты.
2. Мы должны проверить клиента через службу безопасности.
3. В случае успеха, выпустить карту.
4. Доставить карту клиенту.
5. На всех этапах необходимо уведомлять клиента об изменении статуса.

Системный анализ | Дмитрий Помаскин
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍9🔥4
❗️Информационный пост❗️

Коллеги, немного приболел. 🤒

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

По той же причине не успел записать разбор новой задачи по system design.

Как только встану на ноги, сразу вернусь в эфир, не теряйте. 💪

Системный анализ | Дмитрий Помаскин
Please open Telegram to view this post
VIEW IN TELEGRAM
🙏16
Media is too big
VIEW IN TELEGRAM
❗️Ещё одна задачка по System Design ❗️

Возвращаюсь после больничного🫡

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

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

Получилось 2 гига и 32 минуты, поэтому вот ссылка на youtube.

Условие задачи:
Разработать систему для приема и обработки заявлений граждан:
1. Заявления могут поступать из внешней системы в формате XML по SOAP.
2. Заявления могут быть поданы напрямую в систему при личном визите гражданина.
3. При обработке заявлений необходимо формировать SOAP запросы для получения дополнительной информации из смежных систем.
4. Необходимо вести учёт положительных и отрицательных решений.
5. Необходимо формировать отчеты по заявлениям в разрезе дат, статусов и тд.
6. Нужна подсистема для аутентификации и авторизации пользователей.

Системный анализ | Дмитрий Помаскин
Please open Telegram to view this post
VIEW IN TELEGRAM
25🔥14👍4
❗️Итоговый пост: System Design❗️

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

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

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

Практика:
🔸Разработка платформы для сети коворкинг-центров;
🔸Сервис "Умный опрос" для банка;
🔸Внутренние интеграции банковский сервисов;
🔸Система для приема и обработки заявлений граждан.

Системный анализ | Дмитрий Помаскин
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥14👍8👏3
Media is too big
VIEW IN TELEGRAM
Как считать ресурсы?

‼️ВАЖНО: Все формулы ниже — это грубые оценки для собеседований. В реальных проектах точные цифры требуют проведения нагрузочного тестирования и систем мониторинга.

1. Расчёт трафика
RPS (запросов в секунду) = общее число запросов за период / число секунд в периоде

Пропускная способность (МБ/с) = (RPS * средний размер ответа в байтах) / (1024 * 1024)

Пиковый RPS = средний RPS * пиковый коэффициент (обычно 5х–10x)


2. Объём данных в БД

Объём/день = новые записи/день * средний размер записи

Объём индексов ≈ объём данных * (15–30%)

Размер БД = (объём/день * TTL в днях + объём индексов)

Итог с репликацией и запасом = Размер БД * 1.3 * число реплик


3. CPU для сервиса

Ядер на под = (RPS * время обработки одного запроса в секундах) / утилизация CPU (целевая ~0.7)

Всего ядер
= ядра на под * число подов * 1.3 (запас 30%)


4. RAM для сервиса

RAM на инстанс = (память на операцию * макс. операций) * 1.3 (30% на внутренний кэш пода, при наличии) *1.3 (запас 30%)

RAM для in-memory кэша (Redis) = объём данных для кэша * число реплик * 1.3 (запас 30%)


5. CPU/RAM для базы данных

CPU БД = (WPS * цена записи + RPS * цена чтения) / утилизация,
где WPS - запись в секунду, RPS - чтение в секунду.

RAM БД = (размер индексов + (20–30% от "горячих" данных)) * 1.3 (запас 30%)


P.S. Ещё раз повторю, всё очень примерно, и реальное потребление ресурсов может отличаться.

Системный анализ | Дмитрий Помаскин
Please open Telegram to view this post
VIEW IN TELEGRAM
38🔥12👍8
❗️Для тех, кто ещё не купил подарки❗️

Если вы, как и я, только сейчас спохватились про подарки, то ловите интересный вариант:

Подарочный сертификат на любой номинал в мою онлайн-школу 🫡

Самое приятное, что стоимость сертификата будет на 10% меньше его номинала.

Пример: за сертификат на 5000 рублей, вы платите 4500 🔥

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

Для приобретения обращайтесь ко мне в личные сообщения.

Приобретение доступно до 22:00 31.12 :)

P.S. И да, можно сделать новогодний подарок самому себе с выгодой в 10% 😉

Системный анализ | Дмитрий Помаскин
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥3👍2🙏2😁1