📝 BLOG

Бюджет веб-производительности: метрики, лимиты и интеграция с CI/CD

Бюджет веб-производительности — это определённые лимиты для размера страницы, времени загрузки и метрик Core Web Vitals. Это руководство охватывает создание бюджета производительности, мониторинг и интеграцию с CI/CD.

Обновлено:

Подготовлено: Gsetsoft

Бюджет веб-производительности: метрики, лимиты и интеграция с CI/CD

Что такое бюджет производительности?

Бюджет производительности — это максимальные значения, определённые для метрик производительности веб-страницы. Размер страницы, размер JS bundle, время LCP и т.д.

Цель: предотвращение регрессий производительности. Предотвращение снижения производительности при добавлении новых функций.

Превышение бюджета: провал сборки или предупреждение. Проверка производительности в CI/CD pipeline.

Примеры бюджетов: JS bundle < 200KB, CSS < 50KB, LCP < 2.5s, общий размер страницы < 1MB.

Метрики производительности

Размер bundle: размеры файлов JavaScript и CSS. Анализируйте с помощью webpack bundle analyzer.

LCP (Largest Contentful Paint): время загрузки крупнейшего элемента контента. Цель < 2.5s.

CLS (Cumulative Layout Shift): сдвиги в макете страницы. Цель < 0.1.

INP (Interaction to Next Paint): время отклика на взаимодействие пользователя. Цель < 200мс.

TTFB (Time to First Byte): время отклика сервера. Цель < 600мс.

Общий вес страницы: общий размер страницы. Цель < 1-2MB (для мобильных).

Создание бюджета

Измерьте текущую производительность: создайте базовую линию с помощью Lighthouse, WebPageTest.

Установите цели: на основе анализа конкурентов и ожиданий пользователей. Более строгий бюджет для мобильных.

Файл бюджета: определите метрики и лимиты с помощью performance-budget.json.

Постепенное ужесточение: начните с бюджета, близкого к текущей производительности. Ужесточайте со временем.

Поддержка команды: вся команда должна принять бюджет производительности. Производительность — ответственность всех.

Интеграция с CI/CD

Lighthouse CI: аудит Lighthouse при каждом PR. Проверка порога оценки производительности. Провал сборки при превышении бюджета.

WebPageTest: интеграция WebPageTest в CI/CD pipeline. Сравнение filmstrip и waterfall.

Проверка размера bundle: проверка размера bundle с помощью webpack-bundle-analyzer или bundlesize.

GitHub Actions: автоматическое тестирование производительности с помощью Lighthouse CI action. Отчёт о результатах в виде комментария PR.

Настройка порогов: уровни предупреждения и ошибки. Предупреждение: 90% бюджета. Ошибка: 100% бюджета.

Мониторинг и отчётность

RUM (Real User Monitoring): данные производительности реальных пользователей. CrUX, Datadog, New Relic.

Synthetic monitoring: периодические тесты производительности. WebPageTest, Pingdom, GTmetrix.

Дашборд: визуализируйте тренды производительности. Дашборд Grafana, Datadog.

Alerting: alert при превышении бюджета. Уведомление Slack, email.

Отчётность: еженедельный/ежемесячный отчёт о производительности. Анализ трендов и рекомендации по улучшению.

Лучшие практики

Performance champion: назначьте ответственного за производительность в команде. Распространяйте культуру производительности.

Пересмотр бюджета: пересматривайте бюджет в конце каждого спринта. Корректируйте бюджет для новых функций.

Trade-off: новая функция vs производительность. Каждая функция несёт стоимость производительности. Принимайте осознанное решение.

Документация: документируйте бюджет производительности и обоснование. Для онбординга команды.

Непрерывное улучшение: постепенно ужесточайте бюджет производительности. Цель улучшения на 10%.

Ваш выбор конфиденциальности

Необходимые cookie обеспечивают безопасность и сеансы. Базовые визиты учитываются; с вашего разрешения включается дополнительная аналитика. Политика cookie