Ванечка допилил сайт заказа для пиццерии ПиццаЕдинорог: форма, корзина, база с меню, четыре CRUD-метода. Открыл браузер, заказал сам себе Маргариту-Космос работает. Ванечка почувствовал себя архитектором.
Наутро ПиццаЕдинорог зашёл на кухню с новостью:
-
Мы открываем ещё сорок точек! По всему городуВанечка обрадовался, а потом осторожно уточнил:
- А сайт... он же уже работает.
- Работает. Выдержит миллион заказов в день?
- Конечно! - Ванечка приосанился. - Сервер есть, база есть. Клиент жмёт заказать, я считаю на сервере, пишу в базу, возвращаю ответ. Всё работает.- А если сервер перегреется в пятницу вечером? А если заказ идёт из Владивостока, а сервер в Москве? А если база упадёт ночью ты об этом как узнаешь?Ванечка молчал. На все три вопроса у него был один ответ:
- Ну... я перезапущу.ПиццаЕдинорог поставил на стол коробку и открыл крышку:
- Ванечка, ты умеешь испечь одну пиццу. Прекрасную. Теперь испеки три тысячи за вечер.
- Так рецепт-то тот же самый! - возмутился Ванечка.-
Рецепт да. Кухня нет, - Единорог придвинул табурет. - Дома у тебя одна духовка, один противень и ты сам. Замесил, испёк, подал, помыл. А на сорок точек нужны заготовки теста с ночи, конвейерные печи, склад, логистика курьеров, человек, который следит, чтобы газ не кончился, и запасной баллон на случай, когда он всё-таки кончится. Пицца не изменилась, изменился масштаб.
- И что, мой код плохой?
- Твой код нормальный. Просто простая архитектура это домашняя духовка, она отлично живёт, пока заказчиков десять, а когда их миллион, появляются вопросы, которых у духовки не было: как выдержать пятничный наплыв, что будет, когда часть системы отвалится, как защитить данные карт, как узнать о поломке раньше, чем о ней напишут в отзывах.Единорог загнул четыре копыта:
- Масштабирование. Отказоустойчивость. Безопасность. Мониторинг. Ради этих четырёх слов и существует проектирование систем. System Design не про то, чтобы написать код. Про то, чтобы он не развалился, когда придут все.Ванечка достал тетрадь и впервые написал сверху не функции, а нагрузка.
💛💛💛💛💛
Что важно запомнить:
⚪️Прототип и продакшн разные инженерные задачи, а не то же самое, но побольше
⚪️Схема клиент → сервер → база ломается на реальном трафике
⚪️System Design отвечает на 4 вопроса: масштабирование, отказоустойчивость, безопасность, мониторинг
⚪️Аналитику это нужно не для галочки: нефункциональные требования пишете вы, а не разработчик
💛💛💛💛💛
‼️РАЗБОР
Почему обычная схема не тянет:
1. Один сервер = один потолок. Кончились CPU и память кончился сервис.
2. Один сервер = одна точка отказа. Упал упало всё.
3. Один регион = высокая задержка для дальних пользователей.
4. Нет мониторинга о падении вы узнаёте из отзывов.
💛💛💛💛💛
Что из этого попадает в вашу работу как аналитика:
⚪️Система должна выдерживать 5000 запросов в секунду требование к пропускной способности
⚪️Ответ не дольше 300 мс требование к задержке
⚪️Доступность 99,9% требование к отказоустойчивости
⚪️Хранить логи 90 дней требование к мониторингу
Разработчик выберет, КАК это сделать. Но цифры, при которых система считается рабочей, приносите вы. Без них ТЗ проверить нечем.
💛 А вас на собеседовании спрашивали про нагрузку и отказоустойчивость? Смогли ответить или поплыли, как Ванечка? Делитесь в комментариях! ⬇️
💛💛💛💛💛
Бесплатный практикум
Запись на 3 поток
💛💛💛💛💛
#ВанечкаИЕдинорог #СистемныйАнализ #SystemDesign #Архитектура #Обучение
