Быстрое развертывание шаблонов и статики в Mail.Ru Кондратов Николай Технический руководитель почтовой службы
Содержание
- 2. HighLoad++ 2010 О чем мы? система шаблонов организация работы верстальщиков процесс разработки и тестирования тестовая среда
- 3. HighLoad++ 2010 Хорошая система работы со статикой: удобство и скорость в работе версионность и бэкап параллельная
- 4. HighLoad++ 2010 Система шаблонов HTML-текст с командами управления переменные, функции, инклуды, условия, etc. на фронтендах –
- 5. HighLoad++ 2010 Как это было: CVS Схема репозитория mail.ru/ mail/ templates/ images/ js/ css/ my/ photo/
- 6. HighLoad++ 2010 Как это было: работа верстальщика сцепление версий Проблемы одна ветка в CVS теги для
- 7. HighLoad++ 2010 Как это было: работа верстальщика долгое внесение изменений «мусорные» коммиты Проблемы любая раскладка –
- 8. HighLoad++ 2010 Как это было: раскладка CVS deploy upload Фронтенды (Почта, Мир, etc.) БД Мониторинг верстальщик
- 9. HighLoad++ 2010 Как это было: минусы долгий процесс разработки шаблоны всех проектов на всех фронтендах долгое
- 10. HighLoad++ 2010 Как это было: минусы CVS размер репозитория – 2,8 Гб, 55 тыс. файлов медленный
- 11. HighLoad++ 2010 Что сделали перевод репозитория CVS ? git разделение репозиториев использование веток реорганизация тестового окружения
- 12. HighLoad++ 2010 Переход на git – разделение репозиториев разделили репозитории (статика и шаблоны) git с шаблонами
- 13. HighLoad++ 2010 Переход на git – разделение на ветки разделили на ветки: master prerelease ветки разработки
- 14. HighLoad++ 2010 Переход на git - хуки hooks: проверка синтаксиса шаблонов обработка шаблонов автоматическая раскладка etc.
- 15. HighLoad++ 2010 Процесс разработки создаем ветку на основе master вносим изменения коммитим, тестируем переносим изменения из
- 16. HighLoad++ 2010 Общая схема (потоки данных)
- 17. HighLoad++ 2010 Общая схема (действия) hook http http samba ssh scp scp
- 18. HighLoad++ 2010 Тестовые серверы DOCUMENT_ROOT сервера – директория с шаблонами dev.mail.ru – master branch-1.dev.mail.ru – ветка
- 19. HighLoad++ 2010 FUSE (Filesystem on Userspace) храним только отличающиеся файлы отключаем компиляцию шаблонов недостающие файлы в
- 20. HighLoad++ 2010 mail.ru/ master 1.htm 2.htm deploy/ branch-1/ branch-1 2.htm (измененный файл) mail.ru.deploy/ mail.ru.branch-1/ (DOCUMENT_ROOT для
- 21. HighLoad++ 2010 mail.ru/ master 1.htm 2.htm deploy/ branch-1/ branch-1 2.htm (измененный файл) mail.ru.deploy/ mail.ru.branch-1/ (DOCUMENT_ROOT для
- 22. HighLoad++ 2010 mail.ru/ master 1.htm 2.htm deploy/ branch-1/ branch-1 2.htm (измененный файл) mail.ru.deploy/ mail.ru.branch-1/ (DOCUMENT_ROOT для
- 23. HighLoad++ 2010 git + windows длинная цепочка действий для раскладки принцип «сохранил – увидел» решение –
- 24. HighLoad++ 2010 Процесс: клонирование репозитория в /home/vasya редактирование через Samba проверка на vasya.dev.mail.ru новая ветка (на
- 25. HighLoad++ 2010 Раскладчик модульность проверка шаблонов различная обработка разных типов файлов компиляция шаблонов ищем diff зависимости
- 26. HighLoad++ 2010 Раскладчик – вкусности условная обработка файла в зависимости от меток в нем JS сборка
- 27. HighLoad++ 2010 Раскладчик – пример метки метка в первой строке файла JS // @build // @build-minify
- 28. HighLoad++ 2010 Мониторинг раскладки инкрементный номер каждой раскладки в БД – позиция на каждом сервере мониторим
- 29. HighLoad++ 2010 Результаты упростили жизнь верстальщикам возможность параллельной разработки фич ускорение отладки и тестирования улучшение работы
- 30. HighLoad++ 2010 Но есть проблема… узкое место – получение архивов с шаблонами из одного источника upload
- 31. HighLoad++ 2010 Простое решение… шардинг увеличить количество отдающих серверов uploadN f1 f2 f(N-1) fN upload1 …………..
- 32. HighLoad++ 2010 Хорошее решение: peer-to-peer с upload-сервера отдача в режиме супер-сидирования фронтенды обмениваются между собой f1
- 34. Скачать презентацию