Выпуская с уверенностью

  1. Первые годы #
  2. сегодня #
  3. Workflow #
  4. Тестовая настройка сервера #
  5. Релиз #
  6. Как вы должны обновить sitespeed.io #
  7. Что мы можем сделать лучше #

Некоторые люди говорят, что мы выпускаем sitespeed.io слишком часто. Это отчасти верно. Мы выпускаем часто, но не выпускаем слишком часто :) Мы выпускаем новые функции, так как они выполняются в течение последних 4,5 лет (sitespeed.io исполнится 5 лет в октябре!). У нас были некоторые ошибки, но мы разработали систему, в которой мы обычно их обнаруживаем перед выпуском.

Если у вас возникли проблемы с отслеживанием при обновлении и выпуске, следуйте инструкциям нас в твиттере , Мы всегда пишем в Твиттере о новом выпуске, и если будет серьезное исправление ошибки, мы выделим это.

Со всем сказанным давайте вернемся назад во времени и посмотрим, как мы делали вещи с самого начала.

Первые годы #

Первые годы я сам занимался разработкой и получал очень мало PR. Поддержание низкого уровня ошибки было просто вопросом того, сколько времени я потратил на тестирование большинства вариантов использования перед каждым выпуском. Это работало нормально, у меня был список URL-адресов в сценарии оболочки, который я запускал вручную перед каждым выпуском, чтобы проверить их работоспособность, некоторые ошибки были найдены до выпуска, а некоторые позже. В то время это работало достаточно хорошо для кодовой базы.

сегодня #

Мы команда из трех человек с большим количеством PR (но мы хотим еще больше!) и большей базой кода, так как у нас есть пять инструментов для веб-производительности, которые мы создали. Нам нужно было иметь более автоматизированную установку сегодня, чтобы иметь возможность часто выпускать.

Workflow #

Давайте покажем, что именно происходит, когда мы нажимаем код:

  1. Мы фиксируем наш код (или объединяем ваш PR) с Github ,
  2. Трэвис-CI запускает пару модульных тестов и пару тестов полной интеграции, где мы запускаем sitespeed.io из командной строки, тестируем пару сайтов в Chrome / Firefox и тестируем нашу интеграцию WebPageTest. Вы можете найти нашу конфигурацию Travis Вот ,
  3. Коммит также создает новый Контейнер Docker в Docker Hub , Помните: это не то же самое изображение, которое вы используете, когда вы запускаете sitespeed.io в работе, это содержит самые последние и самые большие коммиты.
  4. У нас есть тестовый сервер в Digital Ocean, который запускает последний контейнер Docker (он автоматически обновляется при появлении новой версии контейнера). При запуске следующего теста будет использоваться последняя версия. Когда тест выполняется, он загружает HTML-код на S3 и отправляет метрики в наш экземпляр Graphite.
  5. На сервере мы также наблюдаем журнал sitespeed.io и уведомляем через сообщение Slack, когда мы получаем ошибку в журналах, используя curl, как описано ( Вот ).

io и уведомляем через сообщение Slack, когда мы получаем ошибку в журналах, используя curl, как описано (   Вот   )

Нам все еще нужно сделать небольшие изменения в нашей интеграции с WebPageTest, прежде чем мы сделаем следующий выпуск!

Тестовая настройка сервера #

Мы используем Digital Ocean для запуска dashboard.sitespeed.io (Графит / Графана на одном сервере и на другом сервере, на котором работает sitespeed.io). Оттуда мы запускаем sitespeed.io с описанной настройкой Вот , Мы тестируем более 20 URL каждый час:

Вы можете проверить результат на dashboard.sitespeed.io и, установив флажок «Выполнения», вы можете получить доступ к страницам результатов HTML, обслуживаемых S3. Код, который генерирует эти метрики, всегда является последним коммитом. Вы всегда можете сами проверить, как у нас дела :)

Вы всегда можете сами проверить, как у нас дела :)

Переход от Grafana к результату HTML, загруженному в S3.

Наличие сервера, на котором постоянно выполняется последняя версия кода, передача метрик в Graphite очень хорошо сработала для нас. На S3 легко просмотреть страницы результатов. И получать уведомления, когда у нас есть ошибки в журналах, просто потрясающе. Это действительно снижает барьер для нас, чтобы знать, если что-то не получается.

Релиз #

Когда мы выпускаем (= новую версию для npm и новый тег для концентратора Docker), мы используем этот супер простой сценарий выпуска. Перед выпуском мы всегда позволяем последнему коду некоторое время выполняться на нашем тестовом сервере и ждем ошибок на нашем канале Slack. Мы также вручную просматриваем журналы перед выпуском и проверяем страницы результатов HTML на S3.

Как вы должны обновить sitespeed.io #

Если вы используете Docker (и вам следует), убедитесь, что вы используете версии с тегами, и под тегом мы не подразумеваем последние версии. Потяните, установив номер версии так:

Docker Pull sitespeedio / sitespeed.io: 4.7.0

При обновлении прочитайте изменений и Docker извлекает новую версию, а затем изменяет файл сценария выполнения / yml (или любой другой файл, который вы используете для запуска sitespeed.io), чтобы он совпадал с номером новой версии.

Что мы можем сделать лучше #

Мы постоянно пытаемся улучшить процесс релизов и сделать его максимально безопасным. Что мы можем сделать?

  • Больше юнит-тестов, это поможет нам обнаружить проблемы как можно раньше. Реально я не думаю, что это произойдет, пока в команду не войдет больше людей. Если вы хотите помочь и улучшить стабильность sitespeed.io, пожалуйста, откройте pull-запрос и отправьте тестовый модуль!

  • Тобиас имеет начал двигаться тесты Browsertime запустить в контейнере Docker в Трэвисе. Мы надеемся, что это сократит время сборки и облегчит нам проведение более полных тестов.

  • Было бы здорово, если бы мы могли проверить журналы на Travis и если мы получили ошибку в журнале, просто сломали сборку. Сегодня мы нарушаем сборку только тогда, когда sitespeed.io возвращает код ошибки.

Если у вас есть идеи о том, как мы можем лучше тестировать, пожалуйста, создать проблему на Github или отправьте нам чирикать !

/Питер

PS Скоро мы выпустим Browsertime 1.0 и sitespeed.io 5.0, это будет взрыв!

Что мы можем сделать?

Новости

Социальные сети в России, зима 2015-2016 Цифры, тренды, прогнозы | Блог Brand Analуtics — все о бренд мониторинге и социальной аналитике
Представляем данные регулярного исследования активной аудитории социальных сетей в России, зима 2015-2016. В исследовании представлены данные по аудитории, возрасту, полу и региональному распределению

SMM маркетинг от А до Я
Развитие социальных сетей породило новую огромную бизнес отрасль — СММ маркетинг. Это когда мы приходим с нашим продуктом в какую-нибудь соцсеть, находим там нашу целевую аудиторию, и предлагаем ей наш

Полезно знать
20.02.2014 Что такое Pinterest. Визуальный PR и маркетинг Pinterest или ПИНТЕРЕСТ – социальная сеть, использующая вместо текстов картинки и изображения, которые можно добавлять в аккаунт,

Фейсбук Моя страница: ВХОД на свою страницу Facebook
Фейсбук (Facebook) Моя страница — это личная страница каждого зарегистрированного пользователя самой большой в мире социальной сети.  Фейсбук даёт возможность людям с разных уголков Земли общаться между

Анализ социальных сетей
АНАЛИЗ СОЦИАЛЬНЫХ СЕТЕЙ (social network analysis) - новое направление структурного подхода, основными целями которого являются исследование взаимодействий между социальными объектами и выявление условий

Социальные сети для продвижения бизнеса: какие выбрать?
  Привет, друзья! Социальные сети занимают львиную часть времени в нашей жизни. Ежедневный просмотр новостей, любимых групп и переписка с друзьями – это любимое дело большинства молодых людей. Вот и

ВРЕДНОЕ ВЛИЯНИЕ СОЦИАЛЬНЫХ СЕТЕЙ НА ЗДОРОВЬЕ ЧЕЛОВЕКА - VI Студенческий научный форум (15 февраля - 31 марта 2014 года)
ВРЕДНОЕ ВЛИЯНИЕ СОЦИАЛЬНЫХ СЕТЕЙ НА ЗДОРОВЬЕ ЧЕЛОВЕКА Гущина Н. В., Люлина Н.В. С распространением всемирной паутины рост социальных сетей по всему миру стал глобальным явлением. С каждым

Влияние социальных сетей на подростков. Пропаганда суицида в сетях
Почему мы любим интернет? Почему молодым людям, подросткам сказать «Привет» стало проще, познакомившись в интернете, чем просто подойти в реальности? Почему все «сидят» в социальных сетях? Социальные сети

Маркетинг в социальных сетях (SMM) для продвижения компании
Деятельность в социальных сетях, на блогах и форумах по повышению лояльности клиентов получила название SMM — от аббревиатуры английского звучания этого термина – Social Media Marketing. Аудитория

Фейсбук (Facebook) - что это за сеть: как пользоваться ФБ
Фейсбук — это самая популярная и большая социальная сеть в мире. Если Вам интересно узнать больше о Facebook, про то как пользоваться сетью и о некоторых «фишках» ФБ — этот материал именно для вас!