Джин Ким - Руководство по DevOps
- Название:Руководство по DevOps
- Автор:
- Жанр:
- Издательство:Манн, Иванов и Фербер
- Год:2018
- Город:Москва
- ISBN:9785001007500
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Джин Ким - Руководство по DevOps краткое содержание
Руководство по DevOps - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
76
Если мы будем создавать контейнеры в конвейере развертывания и использовать такую архитектуру, как микросервисы, то можем предоставить каждому разработчику возможности создания неизменяемых артефактов, когда разработчики собирают и запускают все сервисные компоненты на своих рабочих станциях в среде, идентичной производственной. Это позволяет разработчикам создавать и запускать больше тестов на своей рабочей станции вместо тестирования на серверах и дает нам также быструю обратную связь об их работе. Прим. авт.
77
Мы можем даже потребовать, чтобы эти инструменты запускались до внесения изменений в систему контроля версий (например, выполнялся предфиксационный перехват). Мы также можем запускать эти инструменты у разработчика в интегрированной среде разработки (IDE), в которой разработчик редактирует, компилирует и запускает код, что делает обратную связь еще более быстрой. Прим. авт.
78
Мы также можем использовать в качестве механизма упаковки контейнеры, такие как Docker. Контейнеры обеспечивают возможность «написано однажды, используется везде». Эти контейнеры создаются как часть нашего процесса сборки и могут быть быстро развернуты и запущены в любой среде. Поскольку один и тот же контейнер будет работать в любой среде, мы можем обеспечить согласованность всех наших артефактов сборки. Прим. авт.
79
Именно эта проблема привела к созданию метода непрерывной интеграции. Прим. авт.
80
Существует большая категория архитектурных методов и способов тестирования, используемых, чтобы справиться с проблемами тестирования в случаях, требующих входных данных от внешних точек интеграции, включая «заглушки», «мок-объекты», «виртуализацию служб» и так далее. Это становится еще более важным для приемочного и интеграционного тестирования, в которых необходимо гораздо сильнее полагаться на состояние внешних данных. Прим. авт.
81
Мы должны делать это только тогда, когда наши команды уже оценили автоматизированное тестирование — этим показателем разработчики и менеджеры могут легко манипулировать. Прим. авт.
82
Издано на русском языке: М.: Вильямс, 2011. На обложке русскоязычного издания в качестве авторов указаны Джез Хамбл и Дэвид Фарли. Прим. перев.
83
Начи Нагаппан, Майкл Максимилиан и Лори Уильямс (из компаний Microsoft Research, IBM Almaden Labs и университета Северной Каролины соответственно) провели исследование, которое показало, что команды, использовавшие TDD, выпускали код на 60–90 % качественнее по показателю плотности дефектов по сравнению с командами, не использовавшими TDD, и тратили на это всего на 15–35 % больше времени. Прим. авт.
84
Если процесс отката кода не очень хорошо известен, то потенциальная контрмера — парное программирование отката, с тем чтобы он был лучше документирован. Прим. авт.
85
Это иногда называют антишаблоном water-Scrum-fall. Это обозначает, что организация утверждает, будто использует методы Agile, но в действительности все тестирование и исправление ошибок выполняются в конце проекта. Прим. авт.
86
Ветвление в системах управления версиями использовалось во многих целях, но обычно оно применяется для разделения работы между членами команды по релизам, рабочим заданиям, компонентам, технологическим платформам и так далее. Прим. авт.
87
Включение-выключение выполнения отдельных участков кода — наличие копира, поддерживаемый размер бумаги и тому подобное — осуществлялось с помощью флагов компиляции (#define и #ifdef). Прим. авт.
88
Выпуск продуктов был задержан в связи с (успешным) IPO. Прим. авт.
89
Канареечным тестированием называется метод, при котором развертывание программного обеспечения выполняется на небольшой группе производственных серверов для небольшого числа клиентов, чтобы убедиться, что при работе с реальным трафиком клиентов не происходит ничего страшного.
90
Клиентская подсистема сайта Facebook была написана преимущественно на PHP. В 2010 г. для увеличения производительности сайта код PHP был преобразован в код C++ с помощью разработанного в компании компилятора HipHop, затем этот код был скомпилирован в исполняемый файл размером 1,5 ГБ. Этот файл затем был скопирован на все производственные серверы с помощью программы BitTorrent, что позволило выполнить операцию копирования за 15 минут. Прим. авт.
91
В ходе своих экспериментов они обнаружили, что команды SOT были успешными независимо от того, кому они подчинялись — отделу разработки или отделу эксплуатации, если команды были укомплектованы правильными людьми и были нацелены на успех SOT. Прим. авт.
92
Выражение из военной терминологии, означает укрепление передовой. Прим. перев.
93
Хорошей метафорой может служить операция «Щит пустыни». Начиная с 7 августа 1990 г. тысячи человек и множество материальных средств в течение четырех месяцев были безопасно развернуты на театре производства, а кульминацией явился единый многодисциплинарный, хорошо скоординированный выпуск. Прим. авт. («Щит пустыни» — военная операция по освобождению Кувейта. Прим. перев. )
94
Иногда в русскоязычной практике эти термины не переводятся, остаются на английском языке или даются транслитерацией. Прим. ред.
95
Есть и другие пути для реализации сине-зеленого шаблона. Например, настройка нескольких Apache/NGINX веб-серверов на прослушивание на разных физических или виртуальных интерфейсах, использование нескольких виртуальных корневых объектов на серверах с Windows IIS, привязанных к разным портам, с помощью различных каталогов для каждой из версий системы и символической ссылки, указывающей, которая из сред рабочая (как Capistrano применяется для Ruby on Rails), параллельная работа нескольких версий сервисов или промежуточного ПО, каждая из которых прослушивает отдельные порты, применение двух различных центров обработки данных и коммутация трафика между ними, вместо того чтобы использовать их лишь в качестве горячего или теплого резерва для аварийного восстановления (кстати, использованием обеих сред, как описано выше, мы обеспечиваем и нормальную работу процесса аварийного восстановления) или с помощью различных зон доступности в среде облачных вычислений. Прим. авт.
96
Этот шаблон часто называют «расширение — сжатие», что Тимоти Фитц описывал так: «Мы не изменяем (трансформируем) объекты базы данных, такие как столбцы или таблицы. Вместо этого мы вначале расширяем базу путем добавления новых объектов, а затем, позднее, сжимаем ее путем удаления старых». Кроме того, существует и растет количество технологий, которые предоставляют виртуализацию, систему контроля версий, введение меток и откат баз данных. Это такие, как Redgate, Delphix, DBMaestro и Datical, а также инструменты с открытым исходным кодом, такие как DBDeploy, позволяющие вносить изменения в базы данных значительно безопаснее и быстрее».
Читать дальшеИнтервал:
Закладка: