Специально, чтобы устранить эту чудовищную несправедливость, мы придумали и провели в прошлом году однодневную лекцию накануне конференции HighLoad++. Опыт оказался настолько удачным, что уже готова вторая версия учебного дня, которая пройдёт в форме вебинара 22 июля.
Это будет многочасовой вебинар, на котором вы узнаете простой и надежный как скала алгоритм проектирования архитектуры высоконагруженной системы. Хочешь понимать, что происходит внутри веб-сервера? Почему иногда стоит применять NoSQL-решение, а почему нет? Что внутри веб-серверов и чем отличаются разные методы обслуживания множества соединений? И, наконец, чем с архитектурной точки зрения отличаются СУБД PostgreSQL и MySQL?
Знание нескольких принципов заменяет знание множества фактов. Мы не будем говорить о конкретном программном обеспечении, о конкретных утилитах, о конкретных базах данных или веб-серверах. Мы будем говорить о принципах, применяемых в проектировании высоконагруженных проектов.
Приходи 22 июля на вебинар! Сначала мы изучим с тобой конкретные
архитектурные паттерны, которые применяются в мире высоких
технологий:
- Сервисно-ориентированная архитектура;
- Вертикальное масштабирование;
- Горизонтальное масштабирование;
- Отложенные вычисления;
- Асинхронная обработка;
- Конвейерная обработка;
- Использование толстого клиента;
- Кеширование;
- Функциональное разделение;
- Шардинг;
- Виртуальные шарды;
- Центральный диспетчер;
- Репликация;
- Партиционирование;
- Кластеризация;
- Денормализация;
- Введение избыточности;
- Нереляционные СУБД;
- Толстый клиент;
- Параллельное выполнение
- и многое другое...
А затем научимся эти паттерны правильно применять в пошаговом
алгоритме проектирования высоконагруженной системы:
- Опишем бизнес-логику будущей системы,
включая потенциальные пути развития;
- Подсчитаем объёмы хранимых данных
и скорость их приращения. Выбираем
критический путь — хранение, запись
или чтение данных?
- Определим допустимую деградацию
системы;
- Построим схему движения данных
и примем решение, какие из особенностей
проектируемой системы мы будем
использовать;
- Проектируем систему :)
- Ищем и устраняем узкие места.
А потом примеры, примеры и ещё раз примеры! В прошлый раз мы вместе спроектировали сайт знакомств, новостной сайт, видеохостинг и священный грааль всех разработчиков высоконагруженных систем — френдленту. В этот раз мы пойдём дальше — возьмем Facebook и спроектируем всего его элементы —
от хранения картинок и до личных сообщений!
За этот день (а учебный день — это действительно день, с утра до вечера) ты сможешь систематизировать все знания о высоконагруженных системах, они перестанут быть чем-то загадочным и запредельным и превратятся в стройную систему знаний. Да, кстати, и стоимость твоя на рынке труда вырастет процентов на 20%!