TGViewer
Channel Public Channel
Системный анализ | Дмитрий Помаскин

Системный анализ | Дмитрий Помаскин

@system_analysis_school

📍Обучение системному анализу
📍Полезные материалы для развития навыков
📍Разбор практических кейсов по системному анализу и архитектуре
📍Индивидуальные консультации (менторство)

Моя онлайн-школа:
https://system-analysis.skillspace.ru
Subscribers
1.4K
Photos
47
Videos
154
Links
276

Showing posts older than #177 · Back to latest

Older Posts 20 shown
Post #176 748
❗️Итог по горизонтальной масштабируемости

Подвел небольшой итог по двухнедельному циклу видео.
Все посты собрал в один, чтобы было удобно ориентироваться:

🔸Что такое горизонтальная масштабируемость;
🔸Влияние на отказоустойчивость;
🔸Влияние на установку релизов;
🔸Экономия ресурсов;
🔸Горизонтальная vs Вертикальная масштабируемость;
🔸Неконсистентность данных.

Системный анализ | Дмитрий Помаскин
  • 🔥 7
  • 👍 4
Post #175 773
❓Возможная проблема при использовании горизонтальной масштабируемости

✅ Один под:
Сервис работает в одном экземпляре — задачи исполняются ровно в той последовательности, в которой поступают. Все строго и предсказуемо.

❌ Несколько подов:
Сервис масштабирован — порядок исполнения задач между разными подами не гарантируется.

Почему это проблема?

Представьте:
🔸Запрос А: «Списать 100 рублей»
🔸Запрос Б: «Заблокировать карту»

Если Б выполнится раньше А из-за параллельной обработки в разных подах — получим ошибку при исполнении запроса А.

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

Системный анализ | Дмитрий Помаскин
  • 👍 6
  • 🔥 3
Post #174 671
❗️Обновленная информация по интенсивам❗️

Выкладываю количество мест на данный момент:

✅ REST API 15.09 — осталось 4 места.
☑️ Брокеры сообщений 21.09 — мест нет;
✅ Функциональные требования 22.09 — осталось 3 места.

Запись по ссылкам 👇
Функциональные требования
REST API

Системный анализ | Дмитрий Помаскин
  • 🔥 6
Post #173 704
❓Когда горизонтальная масштабируемость не поможет?

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

❌ Если в сервис поступает задача, на выполнение которой необходимо больше ресурсов (например, оперативной памяти), чем выделено каждому поду, то увеличение количества подов не поможет в обработке такой задачи.
В таком случае нужно прибегнуть к вертикальной масштабируемости, то есть добавить ресурсов существующим подам, вместо увеличения их количества.

Системный анализ | Дмитрий Помаскин
  • 🔥 6
  • 👍 4
Post #172 701
‼️Сегодня 19:00 МСК ‼️
Остались места на интенсив "Брокеры сообщений"

Уровень: Middle.
Требуемые навыки: Понимание принципов работы распределённых систем.
Кол-во участников: до 4.
Длительность: ~4 часа.
Программа:
✅ Типы брокеров (модель обмена, гарантия доставки, умные/глупые брокеры);
✅ RabbitMQ;
✅ ApacheKafka;
✅ Transaсtional outbox;
✅ Обработка ошибок в асинхронных интеграциях.

Практика:
✅ Проектируем внедрение брокеров в распределенную систему;
✅ Поднимаем RabbitMQ и ApacheKafka локально в docker;
✅ Учимся работать с ними через веб-интерфейс;
✅ Описываем формат взаимодействия в asyncapi.

👉 Для записи переходите по ссылке.

P.S. Желательно записываться заранее, чтобы успеть поставить докер перед занятием.

Системный анализ | Дмитрий Помаскин
  • 👍 4
Post #171 689
❓Горизонтальная масштабируемость — экономия ресурсов.

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

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

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

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

Пример:
✅ В магазине работают три кассы, начинается час-пик. Вы открываете ещё три кассы, чтобы успевать обслуживать покупателей. Час-пик прошёл — вы закрывате лишние кассы.

Системный анализ | Дмитрий Помаскин
  • 🔥 6
  • 👍 2
Post #170 630
❗️Информация по интенсивам❗️

Слоты начали активно занимать, выкладываю количество мест на данный момент:

☑️ Функциональные требования 07.09 — мест нет;
✅ Брокеры сообщений 08.09 — осталось 3 места;
✅ REST API 15.09 — осталось 4 места.
✅ Брокеры сообщений 21.09 — осталось 2 места;
✅ Функциональные требования 22.09 — осталось 3 места.


Запись по ссылкам 👇
Брокеры сообщений
Функциональные требования
REST API

Системный анализ | Дмитрий Помаскин
  • 🔥 3
Post #169 709
❓Горизонтальная масштабируемость — установка обновлений.

Если сервис работает в одном поде, то, в момент перезапуска для установки релиза, сервис перестает исполнять свои функции.

Если же сервис работает в нескольких подах, то обновление и перезапуск происходят поочерёдно. Это позволяет обеспечить непрерывную работу сервиса без потери функциональности.

Пример:
❌ В магазине работает одна касса. Требуется провести инкассацию. Кассу закрывают — все покупатели вынуждены ждать.
✅ В магазине работают три кассы. Инкассацию проводят поочерёдно. Покупатели продолжают оплачивать покупки у открытых касс.

Системный анализ | Дмитрий Помаскин
  • 👍 7
  • 🔥 4
Post #168 583
❗️Информация по интенсивам❗️

Функциональные требования 07.09 — группа набрана, мест нет.

Но есть хорошие новости:
✅ Функциональные требования 22.09 — осталось 3 места;
✅ По брокерам и REST API — места есть.

Частый вопрос от участников:

🔤: А что, если группа не наберется?

🔤: Проведу интенсив в любом случае! Даже для одного человека — сделаем полноценное персональное занятие 😉

Запись по ссылкам 👇
Брокеры сообщений
Функциональные требования
REST API

Системный анализ | Дмитрий Помаскин
  • 👍 5
  • 🔥 3
Post #167 681
❗️После цикла постов о real-time интеграциях забыл сделать итоговый пост для удобства 🫠

Но лучше поздно, чем никогда:
🔸Теория WS;
🔸
Теория SSE;
🔸
Теория Long polling;
🔸
Практическое применение WS;
🔸
Практическое применение SSE;
🔸
Практическое применение Long polling;
🔸
Сравнение технологий.

🔤: Нужно ли углубляться в изучение данных технологий?

🔤: Мне кажется, что точно нужно знать об их существовании, отличиях и способах применения. Глубоко погружаться стоит только если вы столкнётесь с ними на реальном проекте.

Системный анализ | Дмитрий Помаскин
  • 👍 5
  • 🔥 5
Post #166 616
А вот и итоги последнего летнего месяца 🫡

Продолжаем расти, несмотря на отпуска 🎉

Статистика без учета интенсивов, так как там ученики повторяются:)
  • 🔥 9
Post #165 630
❓Горизонтальная масштабируемость — влияние на отказоустойчивость.

Если сервис работает в одном поде, то при проблемах с ним перестают работать все функции, за которые он отвечает.

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

Пример:
❌ В магазине работает одна касса, и в какой-то момент она зависает.
Итог: все покупатели ждут, пока придёт сотрудник и её перезагрузит.
✅ В магазине работают три кассы, но одна из них зависает.
Итог: покупатели просто переходят на соседние кассы.

P.S. Кто пропустил первую часть, она тут.

Системный анализ | Дмитрий Помаскин
  • 🔥 6
  • 👍 1
Post #164 753
❓Горизонтальная масштабируемость в распределенных системах.

ℹ️ Горизонтальная масштабируемость — это способ увеличить производительность распределённой системы за счёт добавления новых экземпляров сервисов (подов) в вашей системе. Поды ваших сервисов работают параллельно, при этом производительность системы кратно увеличивается.

Пример:
❌ В магазине работает одна касса, и вам приходится долго ждать своей очереди.
✅ В магазине открывают ещё две кассы, и очередь распределяется по всем кассам, покупатели оплачивают покупки гораздо быстрее.

P.S. В следующих видео расскажу о преимуществах и недостатках такого подхода.

Системный анализ | Дмитрий Помаскин
  • 👍 6
  • 🔥 2
Post #162 739
💬 Итоги опроса 💬

Победил вариант: Новая технология, которой нет на проекте, но она идеально подходит под решение задачи.

Выделю стоп-факторы, из-за которых на реальном проекте не получится пойти по этому варианту:
1️⃣ Нехватка ресурсов на развёртывание новой технологии;
2️⃣ Отсутствие компетенций в команде для работы с новой технологией;
3️⃣ Сроки — внедрять новое дольше, чем использовать то, что уже работает.
4️⃣ Ограничения по использованию технологий. Например, ваш проект должен соответствовать требованиям ФСТЭК.

P.S. У меня на проектах всегда присутствуют 2-3 пункта из перечня выше, поэтому чаще приходится использовать имеющийся стэк.

Системный анализ | Дмитрий Помаскин
  • 👍 9
  • 🔥 5
Post #160 721
💬 Интерактивный опрос 💬

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

Что выбрать при проектировании новой фичи(модуля)?
🔸Технология, которая уже используется на проекте, но не совсем подходит для этой задачи.
🔸Новая технология, которой нет на проекте, но она идеально подходит под решение задачи.

Опрос ниже 👇

Системный анализ | Дмитрий Помаскин
  • 🔥 5
  • 👍 3
Post #159 751
  • 👍 4
Post #158 796
🚩Сравнение 3-х технологий на одном практическом примере (WS, SSE, Long polling)

Пример: Отправка 1000 уведомлений одному пользователю. Размер 1-го уведомления 100 байт (0.1кб).

WS: 1.2 КБ (запрос) + 0.2 КБ (ответ) + 1000 * 0.1 КБ (сообщение) ≈ 101.4кб

SSE: 1.2 КБ (запрос) + 0.2 КБ (ответ) + 1000 * 0.1 КБ (сообщение) ≈ 101.4кб

Long polling: (1.2 КБ (запрос) + 0.2 КБ (ответ) + 0.1 КБ (сообщение)) * 1000 ≈ 1500 КБ

Системный анализ | Дмитрий Помаскин
  • 🔥 10
Post #157 709
⚙️ Практическое применение: Long polling.

⚠️Помните, что технология достаточно устаревшая и лучше от неё отказаться.

Но вот случаи, когда можно и нужно её использовать:
1️⃣ Поддержка старых версий браузеров, которые не поддерживают WS и SSE;
2️⃣ Ограничения безопасности на вашем проекте, при которых вам нельзя использовать WS и SSE;
3️⃣ Интеграция с внешней системой, у которой реализован только Long polling;
4️⃣ Использование Long polling в качестве резервного канала, если при установке WS или SSE возникли ошибки.

P.S. Кто пропустил теоретическую часть,
жмём сюда.

Системный анализ | Дмитрий Помаскин
  • 👍 5
  • 🔥 3
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →