Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 684782)
Контекстум

Запускаем Ansible (5000,00 руб.)

0   0
Первый авторМейер Бас
АвторыХохштейн Лорин , Мозер Рене
ИздательствоМ.: ДМК Пресс
Страниц484
ID794963
АннотацияКнига рассказывает о системе управления конфигурациями Ansible с множеством примеров продуктивной работы. Она минималистична, не требует установки программного обеспечения на узлах, и легка в освоении. Вы узнаете, как написать скрипт управления конфигурациями, установить контроль над удаленными серверами, а также задействовать мощный функционал встроенных модулей. Рассмотрено чем Ansible отличается от других систем управления конфигурациями, приведены примеры развертывания на различных облачных платформах.
Кому рекомендованоИздание будет полезно разработчикам и системным администраторам, принимающим решения о выборе способов автоматизации.
ISBN978-6-01763-867-2
УДК004.4
ББК32.372
Мейер, Б. . Запускаем Ansible = Ansible Up & Running : простой способ автоматизации управления конфигурациями и развертыванием приложений / Л. Хохштейн, Р. . Мозер; Б. . Мейер .— 3-е изд. (эл.) .— Москва : ДМК Пресс, 2023 .— 484 с. : ил. — Пер. с англ. — ISBN 978-6-01763-867-2 .— URL: https://rucont.ru/efd/794963 (дата обращения: 28.11.2025)

Предпросмотр (выдержки из произведения)

Запускаем_Ansible_(1).pdf
Стр.5
Стр.6
Стр.7
Стр.8
Стр.9
Стр.10
Стр.11
Стр.12
Стр.13
Стр.14
Стр.15
Стр.16
Запускаем_Ansible_(1).pdf
УДК 004.4 ББК 32.372 М42 М42 Бас Мейер, Лорин Хохштейн и Рене Мозер Запускаем Ansible. Простой способ автоматизации управления конфигурациями и развертыванием приложений. 3-е изд. / пер. с англ. А. Н. Кисе лева – М.: ДМК Пресс, 2023. – 482 с.: ил. ISBN 978-6-01763-867-2 Среди множества имеющихся инструментов управления конфигурациями Ansible выделяется своими преимуществами, такими как небольшой объем, отсутствие необходимости устанавливать что-либо на управляемые хосты и простота в изучении и освоении. Наиболее существенное отличие этого издания от предыдущего – добавление шести новых глав, охватывающих применение контейнеров, фреймворка Molecule, платформы автоматизации Ansible Automation Platform и коллекций Ansible; приемы создания образов, поддержки облачной инфраструктуры и реализации конвейеров CI/CD. Книга предназначена разработчикам инструментов infrastructure as a code для автоматизации задач по подготовке и конфигурированию инфра структуры. Copyright © 2023 Books.kz Limited Liability Partnership Authorized Russian trans lation of the English edition of Ansible: Up and Running, 3rd Edition. ISBN 9781098109158. Copyright © 2022 Bas Meijer. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. ISBN 978-1-098-10915-8 (англ.) © Bas Meijer, 2022 ISBN 978-6-01763-867-2 (казах.) © Оформление, перевод на русский язык, издание, Books.kz, 2023
Стр.5
Оглавление Предисловие к третьему изданию ............................................................16 Глава 1. Введение .........................................................................................20 Примечание о версиях .....................................................................................21 Ansible: область применения ...........................................................................22 Как работает Ansible .........................................................................................23 Какие преимущества дает Ansible? .................................................................24 Простота ..................................................................................................................24 Широта возможностей ...........................................................................................27 Защищенность ........................................................................................................30 Не слишком ли проста система Ansible? .........................................................33 Что я должен знать? ..........................................................................................33 О чем не рассказывается в этой книге ............................................................34 Поехали! ............................................................................................................34 Глава 2. Установка и настройка ..................................................................35 Установка Ansible ..............................................................................................35 Дополнительные зависимости ..............................................................................36 Запуск Ansible в контейнерах ................................................................................37 Версия Ansible для разработчиков ........................................................................37 Подготовка сервера для экспериментов .........................................................37 Использование Vagrant для подготовки сервера .................................................37 Передача информации о сервере в Ansible ..........................................................40 Упрощение задачи с помощью файла ansible.cfg ................................................43 Остановка тестового сервера ................................................................................46 Удобные настройки Vagrant .............................................................................46 Переадресация портов и частные IP-адреса ........................................................46 Включение переадресации агента ........................................................................48 Подготовка Docker ............................................................................................49 Подготовка локальной версии Ansible ............................................................49 Когда запускаются сценарии провайдеров ....................................................50 Плагины Vagrant ...............................................................................................50 vagrant-hostmanager ...............................................................................................50 vagrant-vbguest .......................................................................................................51 Настройка VirtualBox ........................................................................................51 Vagrantfile – это Ruby ........................................................................................51 Настройка промышленного окружения .........................................................54 Заключение .......................................................................................................55 Глава 3. Сценарии: начало ..........................................................................56 Подготовка ........................................................................................................56 Очень простой сценарий .................................................................................57 Файл конфигурации NGINX ...................................................................................58 Создание веб-страницы .........................................................................................59
Стр.6
6  Оглавление Создание группы веб-серверов .............................................................................59 Запуск сценария .....................................................................................................60 Сценарии пишутся на YAML ............................................................................61 Начало файла ..........................................................................................................62 Конец файла............................................................................................................62 Комментарии ..........................................................................................................62 Отступы и пробельные строки ..............................................................................62 Строки .....................................................................................................................62 Булевы выражения .................................................................................................63 Списки .....................................................................................................................64 Словари ...................................................................................................................65 Многострочные строковые значения ...................................................................65 Чистый YAML вместо строковых аргументов.......................................................66 Структура сценария ..........................................................................................66 Операции ..........................................................................................................67 Задачи .....................................................................................................................69 Модули ....................................................................................................................70 Документация по модулям Ansible .......................................................................70 Резюме ....................................................................................................................71 Есть изменения? Отслеживание состояния хоста ..........................................71 Становимся знатоками: поддержка TLS .........................................................72 Создание сертификата TLS ....................................................................................72 Переменные ............................................................................................................73 Когда использовать кавычки в строках Ansible ...................................................73 Создание шаблона с конфигурацией NGINX ........................................................75 Циклы ......................................................................................................................76 Обработчики ...........................................................................................................77 Несколько фактов об обработчиках, которые необходимо помнить .................78 Тестирование ..........................................................................................................78 Проверка .................................................................................................................79 Сценарий ................................................................................................................79 Запуск сценария .....................................................................................................81 Заключение .......................................................................................................83 Глава 4. Реестр: описание серверов..........................................................84 Файл реестра .....................................................................................................85 Вводная часть: несколько машин Vagrant.......................................................85 Поведенческие параметры хостов в реестре ..................................................88 Переопределение значений по умолчанию в поведенческих параметрах .......90 Группы, группы и еще раз группы...................................................................90 Пример: развертывание приложения Django ......................................................92 Псевдонимы и порты .............................................................................................95 Группировка групп .................................................................................................95 Имена хостов с номерами (домашние питомцы и стадо) ...................................96 Переменные хостов и групп: внутренняя сторона реестра ...........................96 Переменные хостов и групп: создание собственных файлов .......................98 Динамический реестр ....................................................................................101
Стр.7
Оглавление  7 Плагины поддержки реестров .............................................................................101 Амазон EC2 ...........................................................................................................102 Диспетчер ресурсов Azure ...................................................................................102 Интерфейс сценария динамического реестра ...................................................102 Написание сценария динамического реестра ...................................................104 Деление реестра на несколько файлов..........................................................107 Добавление элементов во время выполнения с помощью add_host и group_by ...................................................................................108 add_host .................................................................................................................108 group_by .................................................................................................................110 Заключение .....................................................................................................111 Глава 5. Переменные и факты .................................................................112 Определение переменных в сценариях ........................................................112 Определение переменных в отдельных файлах ................................................112 Структура каталогов ............................................................................................113 Вывод значений переменных ........................................................................113 Интерполяция переменных ................................................................................113 Регистрация переменных ..............................................................................114 Факты ..............................................................................................................118 Просмотр всех фактов, доступных для сервера .................................................119 Вывод подмножества фактов ..............................................................................120 Любой модуль может возвращать факты ...........................................................121 Локальные факты .................................................................................................122 Использование модуля set_fact для задания новой переменной .....................123 Встроенные переменные ...............................................................................123 hostvars ..................................................................................................................124 inventory_hostname ..............................................................................................125 groups ....................................................................................................................125 Установка переменных из командной строки .............................................126 Приоритет .............................................................................................................128 Заключение .....................................................................................................129 Глава 6. Введение в Mezzanine: тестовое приложение .......................130 Почему сложно развертывать приложения в промышленном окружении .....130 База данных PostgreSQL .................................................................................132 Сервер приложений Gunicorn ........................................................................133 Веб-сервер NGINX ...........................................................................................133 Диспетчер процессов Supervisor ...................................................................134 Заключение .....................................................................................................134 Глава 7. Развертывание Mezzanine с помощью Ansible ......................135 Вывод списка задач в сценарии ....................................................................135 Организация устанавливаемых файлов .......................................................136 Переменные и скрытые переменные ...........................................................137 Установка большого количества пакетов ......................................................139 Добавление выражения become в задачу ......................................................139 Обновление кеша диспетчера пакетов apt ...................................................140
Стр.8
8  Оглавление Извлечение проекта из репозитория Git ......................................................141 Установка Mezzanine и других пакетов в virtualenv .....................................143 Короткое отступление: составные аргументы задач ...................................146 Настройка базы данных .................................................................................148 Создание файла local_settings.py из шаблона ...............................................149 Выполнение команд django-manage .............................................................152 Запуск своих сценариев на Python в контексте приложения ......................153 Настройка конфигурационных файлов служб ...................................................156 Активация конфигурации NGINX .................................................................159 Установка сертификатов TLS .........................................................................160 Установка задания cron для Twitter ...............................................................161 Сценарий целиком .........................................................................................162 Запуск сценария на машине Vagrant .............................................................167 Устранение проблем .......................................................................................168 Не получается извлечь файлы из репозитория Git ............................................168 Недоступен хост с адресом 192.168.33.10.nip.io .................................................168 Bad Request (400) ..................................................................................................169 Заключение .....................................................................................................169 Глава 8. Отладка сценариев Ansible ........................................................170 Информативные сообщения об ошибках .....................................................170 Отладка ошибок с SSH-подключением .........................................................171 Типичные проблемы с SSH ............................................................................175 PasswordAuthentication no ...................................................................................175 Подключение по SSH с учетными данными другого пользователя .................175 Ошибка проверки ключа хоста ...........................................................................176 Частные сети .........................................................................................................177 Модуль debug ..................................................................................................177 Интерактивный отладчик сценариев ............................................................177 Модуль assert ...................................................................................................179 Проверка сценария перед запуском ..............................................................182 Проверка синтаксиса ...........................................................................................182 Список хостов .......................................................................................................183 Список задач .........................................................................................................183 Режим проверки ...................................................................................................183 Вывод изменений в файлах .................................................................................184 Теги.... ...................................................................................................................185 Ограничение обслуживаемых хостов .................................................................186 Заключение .....................................................................................................186 Глава 9. Роли: масштабирование сценариев .........................................187 Базовая структура роли ..................................................................................187 Пример: развертывание Mezzanine с использованием ролей ....................189 Использование ролей в сценариях .....................................................................189 Предварительные и заключительные задачи ....................................................190 Роль database для развертывания базы данных .................................................191 Роль mezzanine для развертывания Mezzanine ..................................................195 Создание файлов и каталогов ролей с помощью ansible-galaxy .................199
Стр.9
Оглавление  9 Зависимые роли ..............................................................................................200 Ansible Galaxy ..................................................................................................201 Веб-интерфейс .....................................................................................................201 Интерфейс командной строки ............................................................................202 Требования к оформлению ролей на практике .................................................203 Как поделиться своей ролью ...............................................................................204 Заключение .....................................................................................................204 Глава 10. Сложные сценарии....................................................................205 Решение проблем с неидемпотентными командами ..................................205 Фильтры ..........................................................................................................209 Фильтр default ......................................................................................................209 Фильтры для зарегистрированных переменных ...............................................209 Фильтры для путей к файлам ..............................................................................210 Создание собственного фильтра .........................................................................211 Подстановки ....................................................................................................212 file..... .....................................................................................................................214 pipe.... ....................................................................................................................215 env...... ...................................................................................................................215 password ................................................................................................................215 template .................................................................................................................216 csvfile .....................................................................................................................216 dig...... ....................................................................................................................217 redis..... ..................................................................................................................218 Написание собственного плагина подстановки ................................................219 Сложные циклы ..............................................................................................220 Плагины with_* ................................................................................................221 with_lines ...............................................................................................................221 with_fileglob ...........................................................................................................222 with_dict ................................................................................................................222 Циклические конструкции как плагины подстановок ......................................223 Управление циклами ......................................................................................224 Выбор имени переменной цикла ........................................................................224 Управление выводом ...........................................................................................225 Импортирование и подключение .................................................................226 Динамическое подключение ...............................................................................228 Подключение ролей .............................................................................................228 Поток управления роли .......................................................................................229 Блоки ...............................................................................................................230 Обработка ошибок с помощью блоков .........................................................230 Шифрование конфиденциальных данных при помощи Vault ....................234 Шифрование с использованием разных паролей ..............................................236 Заключение .....................................................................................................237 Глава 11. Управление хостами, задачами и обработчиками ..............238 Шаблоны для выбора хостов ..........................................................................238 Ограничение обслуживаемых хостов ............................................................239 Запуск задачи на управляющей машине ............................................................239
Стр.10
10  Оглавление Сбор фактов вручную .....................................................................................240 Получение IP-адреса хоста ............................................................................240 Запуск задачи на сторонней машине ......................................................................... 242 Последовательное выполнение задачи на хостах по одному .....................242 Пакетная обработка хостов ............................................................................244 Однократный запуск ......................................................................................245 Выбор задач для запуска ................................................................................245 step..... ...................................................................................................................246 start-at-task ...........................................................................................................246 Запуск действий с тегами ....................................................................................246 Пропуск действий с тегами .................................................................................247 Стратегии выполнения ..................................................................................247 linear ......................................................................................................................248 free... ......................................................................................................................249 Улучшенные обработчики .............................................................................251 Обработчики в pre_tasks и post_tasks ..................................................................251 Принудительный запуск обработчиков ..............................................................253 Метакоманды .......................................................................................................253 Уведомление обработчиков из обработчиков....................................................254 Выполнение обработчиков по событиям ...........................................................255 Выполнение обработчиков по событиям: случай SSL .......................................256 Заключение .....................................................................................................261 Глава 12. Управление хостами Windows ................................................262 Подключение к Windows ................................................................................262 PowerShell ........................................................................................................263 Модули поддержки Windows .........................................................................266 Наша машина для разработки на Java ...........................................................266 Добавление локального пользователя ..........................................................268 Функции Windows ...........................................................................................269 Установка программного обеспечения с помощью Chocolatey ..................269 Настройки для поддержки Java......................................................................270 Обновление Windows .....................................................................................271 Заключение .....................................................................................................272 Глава 13. Ansible и контейнеры ...............................................................273 Kubernetes .......................................................................................................274 Жизненный цикл приложения Docker ..........................................................275 Реестры ............................................................................................................275 Ansible и Docker ..............................................................................................276 Подключение к демону Docker ......................................................................276 Пример применения: Ghost ...........................................................................277 Запуск контейнера Docker на локальной машине ........................................277 Создание образа из Dockerfile........................................................................278 Отправка образа в реестр Docker ..................................................................280 Управление несколькими контейнерами на локальной машине ...............281 Запрос информации о локальном образе .....................................................283 Развертывание приложения в контейнере Docker .......................................284
Стр.11
Оглавление  11 MySQL ....................................................................................................................284 Развертывание базы данных Ghost .....................................................................285 Веб-сервер ............................................................................................................286 Веб-сервер: Ghost .................................................................................................287 Веб-сервер: NGINX ...............................................................................................288 Удаление контейнеров .........................................................................................289 Заключение .....................................................................................................289 Глава 14. Обеспечение качества с помощью Molecule .......................290 Установка и настройка ...................................................................................290 Настройка драйверов в Molecule ...................................................................291 Создание роли Ansible ....................................................................................292 Сценарии Molecule .........................................................................................293 Желаемое состояние ............................................................................................293 Настройка сценариев в Molecule .........................................................................294 Управление виртуальными машинами ..............................................................294 Управление контейнерами ..................................................................................295 Команды Molecule ..........................................................................................297 Статический анализ .......................................................................................298 yamllint ..................................................................................................................299 ansible-lint .............................................................................................................299 ansible-later ...........................................................................................................301 Верификаторы ................................................................................................301 Ansible ...................................................................................................................302 Goss... .....................................................................................................................302 TestInfra .................................................................................................................304 Заключение .....................................................................................................305 Глава 15. Коллекции ..................................................................................306 Установка коллекций ......................................................................................306 Вывод списка коллекций................................................................................308 Использование коллекций в сценариях ........................................................308 Разработка коллекций ....................................................................................309 Заключение .....................................................................................................311 Глава 16. Создание образов .....................................................................312 Создание образов с помощью Packer ............................................................312 Vagrant VirtualBox VM .....................................................................................312 Объединение Packer и Vagrant .............................................................................315 Облачные образы .................................................................................................316 Google Cloud Platform ...........................................................................................317 Azure ......................................................................................................................319 Amazon EC2 ...........................................................................................................320 Сценарий Ansible ..................................................................................................322 Образ Docker: GCC 11 ......................................................................................323 Заключение .....................................................................................................325 Глава 17. Облачная инфраструктура .......................................................326 Терминология .................................................................................................330
Стр.12
12  Оглавление Экземпляр .............................................................................................................330 Образ машины Amazon ........................................................................................330 Теги.. ......................................................................................................................331 Учетные данные пользователя ......................................................................331 Переменные окружения ......................................................................................333 Файлы конфигурации ..........................................................................................333 Необходимое условие: библиотека Boto3 для Python ..................................333 Динамическая инвентаризация ....................................................................334 Кеширование реестра ..........................................................................................336 Другие параметры настройки .............................................................................336 Определение динамических групп с помощью тегов ..................................337 Присваивание тегов имеющимся ресурсам .......................................................337 Создание более точных названий групп ............................................................338 Виртуальные частные облака ........................................................................339 Конфигурирование ansible.cfg для использования с ES2 .............................340 Запуск новых экземпляров ............................................................................340 Пары ключей EC2 ............................................................................................342 Создание нового ключа .......................................................................................342 Выгрузка открытого ключа ..................................................................................342 Группы безопасности .....................................................................................343 Разрешенные IP-адреса .......................................................................................344 Порты групп безопасности ..................................................................................344 Получение последней версии AMI ................................................................345 Добавление нового экземпляра в группу .....................................................346 Ожидание запуска сервера ............................................................................347 Подведение итогов .........................................................................................348 Создание виртуального частного облака ......................................................351 Динамическая инвентаризация и VPC ...............................................................355 Заключение .....................................................................................................355 Глава 18. Плагины обратного вызова .....................................................356 Плагины стандартного вывода ......................................................................356 ARA.. ......................................................................................................................357 debug .....................................................................................................................358 default ....................................................................................................................359 dense ......................................................................................................................359 json.... ....................................................................................................................359 minimal ..................................................................................................................359 null... ......................................................................................................................359 oneline ...................................................................................................................359 Плагины уведомлений и агрегирования ......................................................360 Зависимости Python .............................................................................................361 foreman ..................................................................................................................361 jabber .....................................................................................................................361 junit.. ......................................................................................................................362 log_plays ................................................................................................................363 logentries ...............................................................................................................363
Стр.13
Оглавление  13 logstash ..................................................................................................................363 mail... .....................................................................................................................363 profile_roles ...........................................................................................................364 profile_tasks ...........................................................................................................364 say..... .....................................................................................................................365 slack.... ...................................................................................................................365 splunk ....................................................................................................................365 timer.. .....................................................................................................................366 Заключение .....................................................................................................366 Глава 19. Собственные модули ................................................................367 Пример: проверка доступности удаленного сервера ...................................367 Использование модуля script вместо написания своего модуля ......................368 can_reach как модуль ............................................................................................369 Когда следует разрабатывать модули? ..........................................................369 Где хранить свои модули ................................................................................370 Копирование модуля на хост ...............................................................................370 Создание файла с аргументами на хосте (для модулей не на языке Python) .....371 Вызов модуля ........................................................................................................371 Как Ansible вызывает модули ........................................................................370 Генерация автономного сценария на Python с аргументами (только модули на Python) ..........................................................................370 Ожидаемый вывод ..........................................................................................372 Ожидаемые выходные переменные ...................................................................372 Реализация модулей на Python......................................................................373 Анализ аргументов ..............................................................................................375 Доступ к параметрам ...........................................................................................375 Импортирование вспомогательного класса AnsibleModule ..............................376 Свойства аргументов ...........................................................................................376 AnsibleModule: параметры метода инициализатора.........................................379 Возврат признака успешного завершения или неудачи ...................................383 Вызов внешних команд .......................................................................................383 Режим проверки (пробный прогон) ....................................................................384 Документирование модуля ............................................................................385 Отладка модуля ...............................................................................................387 Создание модуля на Bash ...............................................................................388 Альтернативное местоположение интерпретатора Bash ............................390 Заключение .....................................................................................................391 Глава 20. Ускорение работы Ansible .......................................................392 Мультиплексирование SSH и ControlPersist .................................................392 Включение мультиплексирования SSH вручную ...............................................393 Параметры мультиплексирования SSH в Ansible ..............................................395 Еще о настройке SSH ......................................................................................396 Рекомендации по выбору алгоритмов ...............................................................396 Конвейерный режим ......................................................................................398 Включение конвейерного режима ......................................................................398 Настройка хостов для поддержки конвейерного режима .................................399
Стр.14
14  Оглавление Mitogen для Ansible .........................................................................................401 Кеширование фактов ......................................................................................401 Кеширование фактов в файлах JSON ..................................................................403 Кеширование фактов в Redis ...............................................................................403 Кеширование фактов в Memcached .....................................................................404 Параллелизм ...................................................................................................405 Асинхронное выполнение задач с помощью async .....................................406 Заключение .....................................................................................................407 Глава 21. Сети и безопасность .................................................................408 Управление сетевыми устройствами ............................................................408 Список поддерживаемых производителей сетевого оборудования ................409 Ansible Connection для автоматизации управления сетевыми устройствами ...............................................................................................409 Привилегированный режим ................................................................................410 Реестр сетевых устройств ....................................................................................411 Примеры использования автоматизации управления сетевыми устройствами ...............................................................................................412 Безопасность ...................................................................................................412 Соблюдение требований соответствия ...............................................................413 Защищено, но не безопасно ................................................................................414 Теневые ИТ-ресурсы ............................................................................................418 Солнечные ИТ-ресурсы ........................................................................................418 Нулевое доверие ...................................................................................................419 Заключение .....................................................................................................420 Глава 22. CI/CD и Ansible ...........................................................................421 Непрерывная интеграция ..............................................................................421 Элементы системы непрерывной интеграции ..................................................422 Jenkins и Ansible ...................................................................................................428 Обкатка ............................................................................................................434 Плагин Ansible ................................................................................................435 Плагин Ansible Tower ......................................................................................436 Заключение .....................................................................................................438 Глава 23. Ansible Automation Platform ...................................................439 Модели подписки ...........................................................................................442 Пробная версия Ansible Automation Platform .....................................................443 Какие задачи решает Ansible Automation Platform ......................................444 Управление доступом ..........................................................................................444 Проекты ...........................................................................................................445 Управление инвентаризацией ............................................................................446 Запуск заданий из шаблонов ...............................................................................447 RESTful API ......................................................................................................449 AWX.AWX .........................................................................................................450 Установка ..............................................................................................................451 Создание организации ........................................................................................452 Создание реестра ............................................................................................453 Запуск сценария с помощью шаблона задания .................................................454
Стр.15
Оглавление  15 Запуск Ansible в контейнерах ........................................................................455 Создание сред выполнения .................................................................................455 Заключение .....................................................................................................457 Глава 24. Практические рекомендации .................................................458 Простота, модульность и сочетаемость ........................................................458 Организуйте контент .....................................................................................459 Отделяйте реестры от проектов ....................................................................459 Отделяйте роли и коллекции .........................................................................459 Сценарии .........................................................................................................460 Оформляйте код .............................................................................................460 Снабжайте тегами и тестируйте все, что только возможно ........................461 Описывайте желаемое состояние ..................................................................461 Доставляйте непрерывно ...............................................................................461 Обеспечивайте безопасность.........................................................................461 Контролируйте развертывание .....................................................................462 Оценивайте эффективность ..........................................................................462 Контрольные показатели ...............................................................................463 Заключительные слова ...................................................................................463 Библиография ............................................................................................465 Об авторах ..................................................................................................467 Об изображении на обложке ...................................................................468 Предметный указатель .............................................................................469
Стр.16

Облако ключевых слов *


* - вычисляется автоматически