Слайд 3Что выкладываем?
Параллельные разработка и тестирование – «пакеты задач».
Последовательное обновление production – релиз.
Кодирование
![Что выкладываем? Параллельные разработка и тестирование – «пакеты задач». Последовательное обновление production](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/420296/slide-2.jpg)
в названии:
код «пакета»
ответ на вопрос «что?»
номер релиза
ответ на вопрос «когда?»
Слайд 4Что выкладываем?
Из чего состоит релиз:
Набор файлов и данных, реализующих функционал;
Описание релиза:
список задач/требований;
список
![Что выкладываем? Из чего состоит релиз: Набор файлов и данных, реализующих функционал;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/420296/slide-3.jpg)
задействованных компонент, файлов, источников данных;
отчёт о тестировании;
список некритичных для выкладки багов;
инструкция по выкладке;
план выкладки.
Слайд 5Что выкладываем?
Из чего состоит релиз:
Набор файлов и данных, реализующих функционал;
Описание релиза:
список задач/требований;
список
![Что выкладываем? Из чего состоит релиз: Набор файлов и данных, реализующих функционал;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/420296/slide-4.jpg)
задействованных компонент, файлов, источников данных; ? эксплуатации
отчёт о тестировании; ? заказчику, эксплуатации
список некритичных для выкладки багов; ? заказчику
инструкция по выкладке; ? эксплуатации
план выкладки. ? эксплуатации
Слайд 6Когда выкладываем?
Условия:
Релиз успешно прошёл тестирование.
Найденные баги не являются критичными для выкладки.
Заказчик принял
![Когда выкладываем? Условия: Релиз успешно прошёл тестирование. Найденные баги не являются критичными](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/420296/slide-5.jpg)
результат и дал согласие на выкладку.
Да, мне это нравится.
Да, сейчас правильное время.
День/время разрешены для выкладки.
Возможные ограничения: вечер, пятница, праздники...
Есть технологическая возможность выполнить выкладку.
Слайд 7Предупреждён – значит вооружён
Служба поддержки должна знать:
день и время выкладки (когда ждать
![Предупреждён – значит вооружён Служба поддержки должна знать: день и время выкладки](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/420296/slide-6.jpg)
жалобы?);
список видимых пользователям изменений;
список известных проблем;
список возможных проблем:
что именно может произойти;
как скоро могут возникнуть проблемы.
Служба эксплуатации должна знать:
день и время выкладки (не мешаем ли другим?);
компоненты, реализующие функционал (где логи?);
список узких мест.
Слайд 8Стакан наполовину пуст
Что может пойти «не так»:
проблемы в процессе выкладки:
сетевые (пропала сеть,
![Стакан наполовину пуст Что может пойти «не так»: проблемы в процессе выкладки:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/420296/slide-7.jpg)
пропали доступы, ...);
технологические («умер» cvs, «глючит» cms, ...);
человеческий фактор (не то выложили, забыли обновить данные, ...);
проблемы сразу после выкладки:
всё сломалось;
не сломалось, но и не работает или работает неправильно;
отсроченные проблемы.
Слайд 9Стакан наполовину пуст
Что можно сделать заранее:
подготовиться к экстренному откату:
технологически подготовиться к выполнению
![Стакан наполовину пуст Что можно сделать заранее: подготовиться к экстренному откату: технологически](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/420296/slide-8.jpg)
откатов;
подготовить пошаговую инструкцию по выполнению отката выкладки:
«подготовить» – значит записать;
«пошаговую» – значит подробную;
научится скрывать функционал от пользователей:
предусмотреть альтернативную версию функционала;
подготовить «рубильник».
Слайд 10«Рубильник»
«Рубильник» – инструмент для изменения нормального поведения портала:
изменение внешнего вид страниц;
настройка редиректа
![«Рубильник» «Рубильник» – инструмент для изменения нормального поведения портала: изменение внешнего вид](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/420296/slide-9.jpg)
со страниц;
ограничение доступа к страницам.
При выкладке «рубильник» устанавливается в состояние off:
проверяем целостность портала;
проверяем доступный только нам функционал.
При тестировании релиза «рубильник» тестируется отдельно.
Слайд 12Способы выкладки
Простые способы:
Пофайловое копирование:
+ просто
– возможна потеря целостности
– медленно
Копирование в отдельную папку
![Способы выкладки Простые способы: Пофайловое копирование: + просто – возможна потеря целостности](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/420296/slide-11.jpg)
+ symlink:
+ очевидное хранилище предыдущей версии
Выкладка на временно недоступные пользователям хосты.
Слайд 13Способы выкладки
Правильные способы:
Выкладка из CVS:
+ гибкость
– обязательное участие эксплуатации
? контроль над сохранностью
![Способы выкладки Правильные способы: Выкладка из CVS: + гибкость – обязательное участие](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/420296/slide-12.jpg)
изменений между релизами
Выкладка из CVS скриптами:
+ формирование истории выкладок
+ последняя проверка изменений – просмотри diff’ов
+ фиксирование изменений – сохранение/рассылка выдачи CVS
Выкладка пакетами:
+ надёжно
– сложный процесс подготовки пакета
– обязательное участие эксплуатации
Слайд 14Выкладка на несколько хостов
Допустима ли рассинхронизация в процессе выкладки?
Да:
никто не заметит;
кто-то может
![Выкладка на несколько хостов Допустима ли рассинхронизация в процессе выкладки? Да: никто](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/420296/slide-13.jpg)
заметить, но зато мы протестируем;
Нет:
подготовка версии в отдельных папках + переключение symlink’ов:
по расписанию;
по получению распоряжения.
Открытый вопрос – синхронизация времени.
Слайд 15Отслеживание
В процессе и сразу после выкладки желательно:
разработчикам, тестерам:
проверять изменения в ручном режиме;
запускать
![Отслеживание В процессе и сразу после выкладки желательно: разработчикам, тестерам: проверять изменения](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/420296/slide-14.jpg)
автоматические тесты;
эксплуатации:
анализировать логи;
следить за нагрузкой на сеть/железо;
службе поддержки:
мониторить активность пользователей и их жалобы.
Слайд 17Проверка результата
Способы проверки:
ручное тестирование;
автоматические тесты;
анализ логов;
отслеживание изменений в поведении пользователей.
Контрольное время:
можем 100%
![Проверка результата Способы проверки: ручное тестирование; автоматические тесты; анализ логов; отслеживание изменений](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/420296/slide-16.jpg)
проверить самостоятельно ~ 2 часа;
отложенный эффект:
ждём, сколько потребуется;
не ждём, но помним.
Слайд 18Всё пропало!
Если после выкладки обнаружились проблемы:
Есть возможность откатить изменения? Откатываем!
Есть возможность воспользоваться
![Всё пропало! Если после выкладки обнаружились проблемы: Есть возможность откатить изменения? Откатываем!](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/420296/slide-17.jpg)
«рубильником»?
Есть возможность быстро выпустить хот-фикс?
Слайд 19Выводы
Выкладка вёрстки – это:
сложно:
требует серьёзной подготовительной работы;
задействовано много людей;
долго:
процесс может быть «размазан»
![Выводы Выкладка вёрстки – это: сложно: требует серьёзной подготовительной работы; задействовано много](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/420296/slide-18.jpg)
по времени;
оценка результатов – с большой задержкой;
чревато:
ошибки могут наслаиваться одна на другую;
на исправление уйдёт не меньше времени, чем на разработку.