Получи свою инфраструктуру с первого дня и собери собственное девелоперское окружение.
Три модуля:
I. Управление виртуальными машинами Linux
II. Настройка производительности, нагрузочное тестирование, мониторинг нагрузки
III. Маштабирование
Это 100% практический образовательный трек, который следует первозданным devops-канонам:
* сделать бекендеров ближе к инфраструктуре
* научить основам управления инфрой, настройке производительности, мониторингу и масштабируемости
* помочь переосмыслить архитектурные подходы в более прагматичном, экономичном, инженерном ключе
Первый модуль: управление виртуальным машинами Linux.
- Студенты ставят, собирают, конфигурируют свой собственный стэк - мы поддерживаем практически любой стэк (Java, Python, PHP, C#, Golang, node.js; MySQL или PostgreSQL), поскольку вопросы масштабируемости и производительности общеуниверсальны и не зависят от стэка.
- Вы изучите основы администрирования Linux: управление пакетами при помощи пакетного менеджера apt, ручная сборка из исходников и управление ручными сборками, конфигурация и управление systemd-сервисами, мониторинг и базовый анализ производительности с Prometheus и Grafana.
- Мы обсудим основы параллелизма в Linux, модели серверов, почему nginx работает супер-быстро и лучше, чем Apache, почему MySQL имеет лучшую серверную модель, чем PostgreSQL, и как с этим бороться и успешно использовать PostgreSQL в больших проектах.
- В дополнение к вашему любимому серверу приложений вы будете использовать nginx в качестве балансировщика и обратного прокси, MySQL или PostgreSQL в качестве базы данных и Memcached или Redis в качестве кэш-сервера.
Второй модуль: настройка производительности, нагрузочное тестирование, мониторинг нагрузки.
- Мы изучим основы настройки производительности, тестирования производительности и выжмем максимальную пропускную способность из вашей виртуальной машины. Наш текущий студенческий "рекорд" - 50K "синтетических" RPS с Golang/Fiber на довольно скромной виртуалке.
- Студенты построят latency/RPS-диаграммы и сравнят показатели производительности и ограничения компонент вашего стека.
- Мы используем wrk2, но поскольку у нас настоящая программа R&D, мы будем рады использовать любой инструмент, поддерживающий независимо управляемые клиентские потоки и пул соединений.
Третий модуль: масштабирование.
- Ваша инфраструктура становится сложнее, теперь это несколько кластеров: балансеры, сервера приложений, кеш-сервера, базы данных.
- Вы выбираете и выполняете серию "лабораторных" работ, учитесь масштабировать приложения, добиваетесь линейного масштабирования.
- В модуле достаточно много теоретического материала: мы обсудим принципы масштабирования и что ему мешает, принцип слабой связности, принципиальные различия в масштабировании "слоев" компонент, шардинг, а так же такие темы как CAP-теорема, strong/eventual consistency и многие другие.
- Часть встреч этого модуля зарезервированы под обсуждение системного дизайна либо ваших собственных проектов, либо проектов, о которых вас спрашивали на design-интервью.
На выходе первого модуля будет настроенная виртуалка с вашим стеком, на выходе второго модуля обстрелянная виртуалка (выполните несколько нагрузочных лаб и разберетесь как стрелять, что смотреть и что влияет на перфоманс), а на выходе 3го модуля по желанию лабы или MVP в среде на несколько серверов. MVP хоть своего проекта, плюс будет предложено несколько "модельных" проектов на выбор.
В программе много практических заданий, но они все сбалансированы таким образом, чтобы студенты могли делать их асинхронно в свободное время. Практика не занимает более нескольких часов в неделю. Также каждую неделю мы делаем живой онлайн-созвон: это может быть лекция, практическая сессия или сессия вопросов и ответов. Мы также приглашаем гостей, которые любезно соглашаются поделиться опытом с частниками буткемпа. Встречи проходят в закрытом формате. В 2023 году это будет Александр Горный, сооснователь United Investors, мобильного приложения Мо, и автор блога "Стартап дня". Тема встречи - "Работа в стартапе".
Об авторе:
Меня зовут Алексей Рыбак. Вот мой
LinkedIn. Я начал карьеру бекендером достаточно давно, был одним из первых сотрудников Bumble/Badoo, за 12 лет пройдя путь от стартап-камикадзе до руководителя всей инженерной команды в 300 человек. Сейчас это много-миллиардный бизнес со многими тысячами собственных серверов по всему миру и сотнями миллионами пользователей. Затем я был CTO/VP в ряде российских и глобальных компаний (например, я помог группе компаний "Везет", второму по размеру российскому такси-агрегатору, в консолидации и продаже активов лидеру рынка, Яндекс.Такси). Иногда я выступаю на конференциях, некоторые элементы программы этого буткемпа были представлены на таких конференциях как Highload, Percona London/Amsterdam.