Если процесс отката кода не очень хорошо известен, то потенциальная контрмера — парное программирование отката, с тем чтобы он был лучше документирован. Прим. авт.
Это иногда называют антишаблоном water-Scrum-fall. Это обозначает, что организация утверждает, будто использует методы Agile, но в действительности все тестирование и исправление ошибок выполняются в конце проекта. Прим. авт.
Ветвление в системах управления версиями использовалось во многих целях, но обычно оно применяется для разделения работы между членами команды по релизам, рабочим заданиям, компонентам, технологическим платформам и так далее. Прим. авт.
Включение-выключение выполнения отдельных участков кода — наличие копира, поддерживаемый размер бумаги и тому подобное — осуществлялось с помощью флагов компиляции (#define и #ifdef). Прим. авт.
Выпуск продуктов был задержан в связи с (успешным) IPO. Прим. авт.
Канареечным тестированием называется метод, при котором развертывание программного обеспечения выполняется на небольшой группе производственных серверов для небольшого числа клиентов, чтобы убедиться, что при работе с реальным трафиком клиентов не происходит ничего страшного.
Клиентская подсистема сайта Facebook была написана преимущественно на PHP. В 2010 г. для увеличения производительности сайта код PHP был преобразован в код C++ с помощью разработанного в компании компилятора HipHop, затем этот код был скомпилирован в исполняемый файл размером 1,5 ГБ. Этот файл затем был скопирован на все производственные серверы с помощью программы BitTorrent, что позволило выполнить операцию копирования за 15 минут. Прим. авт.
В ходе своих экспериментов они обнаружили, что команды SOT были успешными независимо от того, кому они подчинялись — отделу разработки или отделу эксплуатации, если команды были укомплектованы правильными людьми и были нацелены на успех SOT. Прим. авт.
Выражение из военной терминологии, означает укрепление передовой. Прим. перев.
Хорошей метафорой может служить операция «Щит пустыни». Начиная с 7 августа 1990 г. тысячи человек и множество материальных средств в течение четырех месяцев были безопасно развернуты на театре производства, а кульминацией явился единый многодисциплинарный, хорошо скоординированный выпуск. Прим. авт. («Щит пустыни» — военная операция по освобождению Кувейта. Прим. перев. )
Иногда в русскоязычной практике эти термины не переводятся, остаются на английском языке или даются транслитерацией. Прим. ред.
Есть и другие пути для реализации сине-зеленого шаблона. Например, настройка нескольких Apache/NGINX веб-серверов на прослушивание на разных физических или виртуальных интерфейсах, использование нескольких виртуальных корневых объектов на серверах с Windows IIS, привязанных к разным портам, с помощью различных каталогов для каждой из версий системы и символической ссылки, указывающей, которая из сред рабочая (как Capistrano применяется для Ruby on Rails), параллельная работа нескольких версий сервисов или промежуточного ПО, каждая из которых прослушивает отдельные порты, применение двух различных центров обработки данных и коммутация трафика между ними, вместо того чтобы использовать их лишь в качестве горячего или теплого резерва для аварийного восстановления (кстати, использованием обеих сред, как описано выше, мы обеспечиваем и нормальную работу процесса аварийного восстановления) или с помощью различных зон доступности в среде облачных вычислений. Прим. авт.
Этот шаблон часто называют «расширение — сжатие», что Тимоти Фитц описывал так: «Мы не изменяем (трансформируем) объекты базы данных, такие как столбцы или таблицы. Вместо этого мы вначале расширяем базу путем добавления новых объектов, а затем, позднее, сжимаем ее путем удаления старых». Кроме того, существует и растет количество технологий, которые предоставляют виртуализацию, систему контроля версий, введение меток и откат баз данных. Это такие, как Redgate, Delphix, DBMaestro и Datical, а также инструменты с открытым исходным кодом, такие как DBDeploy, позволяющие вносить изменения в базы данных значительно безопаснее и быстрее».
Обратите внимание, что канареечные релизы требуют наличия и работы в производстве нескольких версий нашего программного обеспечения одновременно. Однако, поскольку каждая дополнительная версия, работающая в производственной среде, создает дополнительные сложности для управления, мы должны использовать минимальное количество версий. Это может потребовать использования шаблона базы данных «расширение — сжатие», описанного выше. Прим. авт.
Читать дальше