@nadonado

Как организовать процесс разработки масштабируемой системы?

Здравствуйте.

Есть понимание архитектурного устройства веб-приложений, ориентированных под высокие нагрузки. Однако опыта разработки сколько-нибудь серьезных проектов не было, и хотелось узнать, каким образом организовать начальный этап этой разработки? Каков стек необходимого ПО и/или иных инструментов для этого? Под стеком не имею в виду на каком языке делать бэк, какую использовать БД и что использовать для кэширования, а интересует больше то, каким должно быть окружение процесса разработки - нужно ли с самого начала поддерживать "версионность" и если да, то как это делать? Где вообще изначально разворачивать систему - на локалке или нет? если да, то хотелось бы более подробно какие инструменты для этого нужны и как, к примеру, потом с локалки проецировать на боевой сервак без танцев с бубном? Нужно ли с самого начала задействовать несколько нод - для самого простого случая одна под базу, одна под бэк, одна под фронт или можно на одной все делать а потом как-то относительно просто масштабировать на другие ноды? В целом хочется получить рекомендации исходя из вашего опыта участия в разработке подобных систем, которые упростят жизнь.

Если вдруг имеет значение, основная связка: Python(Django) + PostgreSQL + Nginx. Если есть причины, по которым связка выбрана не самая удачная, тоже буду рад их "услышать". Цель мероприятия: получить практическое представление и опыт построения масштабируемой на всех уровнях системы, пусть и на простеньком "домашнем" примере. Спасибо
  • Вопрос задан
  • 303 просмотра
Пригласить эксперта
Ответы на вопрос 2
sim3x
@sim3x
Ваш вопрос вцелом не имеет смысла
Хайлоад появляется только на успешных проектах

Если вас просто мандраж перед термином
Возьмите свой проект, любой
Поставьте себе локально на виртуалку
И поставьте себе задачу завалить его
Потом отбейте свой ДДОС без потери легитимных пользователей

каким образом организовать начальный этап этой разработки?Каков стек необходимого ПО и/или иных инструментов для этого?
полностью зависит от ТЗ

Под стеком не имею в виду на каком языке делать бэк, какую использовать БД и что использовать для кэширования, а интересует больше то, каким должно быть окружение процесса разработки - нужно ли с самого начала поддерживать "версионность" и если да, то как это делать?
гит нужно использовать всегда
Версионность данных желательно
Как их хранить? - Делайте консистентные бекапы

Где вообще изначально разворачивать систему - на локалке или нет?
у вас джанга. При разработке используйте встроенный сервер, при деплое -nginx/uWSGI/postgreqsl

если да, то хотелось бы более подробно какие инструменты для этого нужны и как, к примеру, потом с локалки проецировать на боевой сервак без танцев с бубном?
ansible

Нужно ли с самого начала задействовать несколько нод - для самого простого случая одна под базу, одна под бэк, одна под фронт или можно на одной все делать а потом как-то относительно просто масштабировать на другие ноды?
нет. Вначале просто докупают больше мощности, потом выселяют субд на отдельный сервер, и только после такого думают как разделять бекенд.
Или у вас в задаче прямо сказано, что у вас будет строго больше 10k RPS
Ответ написан
index0h
@index0h
PHP, Golang. https://youtube.com/index0h
> Как организовать процесс разработки масштабируемой системы?

Чта касается организации процесса. Опишите последовательность действий каждой роли в проекте. Например дев получив задачу переволит ее в статус "в работе", далее переводит ее на тл-а с статусом "в ревью", и т.д.

По техничке: начните с стандартизации. Это кодстайл, это общее для всех дев окружение, смотрите в сторону вагранта, или докера. Это правила именования веток и коммитов. Продумайте и опишите систему диплоя без даунтайма, флоу проведения миграций и отката в случае чего.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 60 000 до 200 000 руб.
МегаФон Екатеринбург
от 100 000 руб.
Hearst Shkulev Digital Новосибирск
от 70 000 до 120 000 руб.
25 марта 2019, в 17:13
10000 руб./за проект
25 марта 2019, в 15:16
1000 руб./за проект