Слайд 3Цель: смена среды исполнения.
Проблемы:
несовместимость новой среды исполнения со старым кодом;
ограничение
ресурсов.
Постановка задачи
Слайд 4Ограничения, метрики
«прозрачность» для пользователей:
отсутствие простоев;
отсутствие новых требований к оборудованию/окружению пользователя;
длительность «переходного» периода:
затруднения
при внедрении нового функционала;
планирование «на потом»;
качество работы в «переходный» период:
новые требования к участникам процесса;
масштаб усилий по синхронизации двух технологий.
Слайд 6Выбор web-сервера «на входе»
Слайд 8Риски
внутренние:
ошибки при внедрении новых технологий;
неоптимальное использование новых технологий;
потеря функционала при переводе на
новые технологии;
непредсказуемость тестирования;
бизнес:
срыв сроков;
«публичность» ошибок;
несовпадение обещаний и результатов;
организационные:
отложенные проблемы с производительностью;
ошибки в выборе новых технологий.
Слайд 9Что влияет на оценку сроков
↑ чем ближе мы к началу «переходного» периода,
тем сильнее ошибаемся:
в оценке скорости разработки;
в оценках скорости и качества работы тестеров;
↑ вероятность поддаться соблазну фонового проведения рефакторинга;
↑↓ отказ от рефакторинга в пользу скорости внедрения функционала;
↑ сходимость процесса разворачивания и поддержки новой среды;
↑ непредсказуемый рост портала за «переходный» период.
Слайд 10«Пересечения» кода
код, без изменений работающий в обеих средах исполнения:
подключаем из единого источника:
физическая
адресация к единой версии;
средства системы контроля версий: амперсанд-модули cvs, svn:externals, …
при сборке пакета/версии для релиза;
(вероятно) двойное тестирование;
код, требующий изменений для работы в обеих средах исполнения:
планируем (не)синхронные изменения в старом коде;
двойное тестирование;
несовместимый код, выполняющий одинаковые/близкие функции:
отслеживанием и синхронизируем изменения;
двойное тестирование.
Слайд 11Синхронизация изменений
строго синхронно:
единый визуальный или функциональный элемент на страницах, работающих в двух
средах исполнения;
поддержка процесса, требующего перехода по страницам, работающим в двух средах исполнения;
первое внедрение изменений – в новый код:
решаем, понадобиться ли когда-нибудь изменение в старом коде;
первое внедрение изменений – в старый код :
решаем, не стоит ли сразу перенести функционал в новый код:
оцениваем стоимость перетестирования;
оцениваем выгоды от использования новых технологий при реализации изменений;
планируем отличия в реализациях для старой и новой сред исполнения.
Слайд 12Специфика тестирования
рост объёмов тестирования:
проксирование;
пересекающийся код;
рост числа компонент;
необходимость отслеживать, на какой среде исполнения
работает функционал;
проверка конфигураций проксирования;
контроль за правильностью переноса конфигураций проксирования.
Слайд 13Синхронные выкладки/релизы
временное отключение части хостов от боевой среды:
необходим пул хостов;
половина пула должна
выдерживать двойную нагрузку;
последовательная выкладка закрытого «рубильниками» функционала с последующим синхронным включением:
тех. возможность реализации «рубильников»;
разработка и тестирование «рубильников».
Слайд 14Конец «переходного» периода
финальное переконфигурирование проксирования запросов между web-серверами;
отключение старого web-сервера;
чистка кода от
ненужных «рубильников»;
долгожданный подсчёт цыплят:
качество выполнения поставленной цели;
длительность «переходного» периода;
что мы получили, помимо заказанного:
качественный код после чистки и рефакторинга;
опыт работы с новыми технологиями.