Эберхард Вольф - Continuous delivery. Практика непрерывных апдейтов (Для профессионалов.) (2016)
автор: didl3 | 10-05-2019, 17:40 | Просмотров: 279
Эта книга поможет всем, кто собирается перейти на непрерывную поставку программного обеспечения. Руководители проектов ознакомятся с основными процессами, преимуществами и техническими требованиями. Разработчики, администраторы и архитекторы получат необходимые навыки организации работы, а также узнают, как непрерывная поставка внедряется в архитектуру программного обеспечения и структуру ИТ-организации.Эберхард Вольф познакомит вас с популярными передовыми технологиями, облегчающими труд разработчиков: Docker, Chef, Vagrant, Jenkins, Graphite, ELK stack, JBehave, и Gatling. Вы пройдете через все этапы сборки, непрерывной интеграции, нагрузочного тестирования, развертывания и контроля.
Предисловие..............................................................................................18
П.1. Обзор методологии непрерывного развертывания и книги....................18
П.2. Зачем нужно непрерывное развертывание?..........................................19
П.2.1. Короткая история........................................................................19
П.2.2. Непрерывное развертывание способно помочь
в таких ситуациях..................................................................................21
П.3. Кому адресована эта книга?..................................................................23
П.4. Краткое содержание глав......................................................................23
П.5. Как читать эту книгу.............................................................................25
Благодарности...........................................................................................28
Об авторе.....................................................................................................29
От издательства..........................................................................................30
Часть I. Основы...............................................................................................31
Глава 1. Непрерывное развертывание: что и как?............................................32
1.1. Введение: что такое непрерывное развертывание?...............................32
1.2. Почему процесс выпуска ПО настолько сложен.....................................32
1.2.1. Непрерывная интеграция вселяет надежду..................................33
1.2.2. Медленные и опасные процессы..................................................33
1.2.3. Есть возможность ускорения........................................................33
1.3. Ценность непрерывного развертывания................................................34
1.3.1. Регулярность................................................................................35
1.3.2. Контролируемость........................................................................35
1.3.3. Регрессии.....................................................................................36
1.4. Преимущества непрерывного развертывания........................................37
1.4.1. Непрерывное развертывание сокращает сроки внедрения...........37
1.4.2. Один пример................................................................................37
1.4.3. Реализация услуги и ее внедрение в эксплуатацию......................38
1.4.4. Следующий шаг...........................................................................38
1.4.5. Непрерывное развертывание дает конкурентные
преимущества.......................................................................................38
1.4.6. Без непрерывного развертывания................................................38
1.4.7. Непрерывное развертывание и Lean Startup.................................39
1.4.8. Влияние непрерывного развертывания........................................40
1.4.9. Непрерывное развертывание для минимизации рисков................41
1.4.10. Быстрая обратная связь и низкие затраты..................................45
1.5. Создание и организация конвейера непрерывного развертывания........46
1.5.1. Пример........................................................................................49
1.6. В заключение........................................................................................50
Ссылки.........................................................................................................50
Глава 2. Подготовка инфраструктуры..............................................................52
2.1. Введение...............................................................................................52
2.1.1. Автоматизация инфраструктуры: пример.....................................53
2.2. Сценарии установки..............................................................................54
2.2.1. Проблемы классических сценариев установки..............................54
2.3. Chef.......................................................................................................57
2.3.1. Chef и Puppet...............................................................................59
2.3.2. Другие альтернативы...................................................................60
2.3.3. Технические основы.....................................................................61
Основные термины Chef...............................................................62
Повара, поваренные книги и рецепты...........................................63
Роли.............................................................................................66
2.3.4. Chef Solo......................................................................................68
2.3.5. Chef Solo: заключение..................................................................70
2.3.6. Knife и Chef Server........................................................................70
2.3.7. Chef Server: заключение...............................................................75
2.4. Vagrant..................................................................................................76
2.4.1. Пример с Chef и Vagrant...............................................................78
2.4.2. Vagrant: заключение....................................................................80
2.5. Docker...................................................................................................80
2.5.1. Решение на основе Docker...........................................................81
Контейнеры Docker и виртуализация............................................83
Цели Docker..................................................................................83
Взаимодействия между контейнерами Docker...............................83
2.5.2. Создание контейнеров Docker......................................................84
Файлы Dockerfile...........................................................................85
Сборка и запуск образов Docker...................................................86
2.5.3. Запуск примера приложения с помощью Docker...........................87
Дополнительные команды Docker.................................................88
2.5.4. Docker и Vagrant...........................................................................89
Комплектация контейнеров с помощью Vagrant............................89
2.5.5. Docker Machine.............................................................................92
2.5.6. Сложные конфигурации Docker....................................................94
Docker Registry..............................................................................94
Docker в кластере.........................................................................95
2.5.7. Docker Compose............................................................................96
2.6. Неизменяемый сервер...........................................................................99
2.6.1. Недостатки идемпотентности.......................................................99
2.6.2. Неизменяемый сервер и Docker..................................................100
2.7. Инфраструктура как код......................................................................101
2.7.1. Тестирование инфраструктуры как кода.....................................103
Serverspec...................................................................................103
Test Kitchen.................................................................................103
ChefSpec.....................................................................................103
2.8. Платформа как услуга.........................................................................104
2.9. Хранение информации и базы данных.................................................106
2.9.1. Обработка схем..........................................................................107
2.9.2. Тестовые и базовые данные.......................................................108
2.10. В заключение....................................................................................109
Ссылки.......................................................................................................110
Часть II. Конвейер непрерывного развертывания....................................113
Глава 3. Автоматизация сборки и непрерывная интеграция...........................114
3.1. Введение.............................................................................................114
3.1.1. Автоматизация сборки: пример..................................................115
3.2. Автоматизация сборки и инструменты сборки......................................115
3.2.1. Инструменты сборки в мире Java...............................................116
3.2.2. Ant.............................................................................................117
3.2.3. Maven........................................................................................118
Версии и мгновенные снимки......................................................121
Выпуск версий с помощью Maven................................................122
3.2.4. Gradle.........................................................................................123
Gradle Wrapper............................................................................125
3.2.5. Другие инструменты сборки.......................................................126
3.2.6. Выбор правильного инструмента................................................127
3.3. Модульные тесты.................................................................................129
3.3.1. Создание хороших модульных тестов.........................................130
3.3.2. Разработка через тестирование.................................................133
3.3.3. Чистый код и искусство программирования................................134
3.4. Непрерывная интеграция....................................................................135
3.4.1. Jenkins.......................................................................................136
Расширение с помощью плагинов...............................................138
Плагин SCM Sync Configuration....................................................138
Плагин Environment Injector........................................................138
Плагин Job Configuration History..................................................139
Плагин Clone Workspace SCM......................................................139
Плагин Build Pipeline...................................................................139
Плагин Amazon EC2....................................................................140
Плагин Job DSL...........................................................................140
Создание собственных плагинов.................................................142
3.4.2. Инфраструктура непрерывной интеграции.................................142
3.4.3. В заключение.............................................................................144
3.5. Оценка качества кода..........................................................................147
3.5.1. SonarQube..................................................................................149
Интеграция в конвейер...............................................................149
3.6. Управление артефактами....................................................................152
3.6.1. Интеграция в процедуру сборки.................................................154
3.6.2. Дополнительные особенности репозиториев..............................156
3.7. В заключение.......................................................................................157
Ссылки.......................................................................................................158
Глава 4. Приемочные тесты...........................................................................161
4.1. Введение.............................................................................................161
4.1.1. Приемочные испытания: пример................................................161
4.2. Пирамида тестирования......................................................................162
4.3. Что такое «приемочные тесты»?..........................................................166
4.3.1. Автоматизированные приемочные испытания............................166
4.3.2. Больше, чем просто увеличение эффективности........................167
4.3.3. Тестирование вручную...............................................................168
4.3.4. Какую роль играет заказчик?.....................................................168
4.3.5. Приемочные и модульные тесты................................................169
4.3.6. Окружения для тестирования.....................................................170
4.4. Приемочные тесты через ГИП..............................................................171
4.4.1. Проблемы тестирования графического интерфейса...................171
4.4.2. Абстракции против хрупких тестов через графический
интерфейс...........................................................................................172
4.4.3. Автоматизация с помощью Selenium...........................................173
4.4.4. Программный интерфейс веб-драйвера......................................173
4.4.5. Тестирование без веб-браузера: HtmlUnit..................................173
4.4.6. Программный интерфейс веб-драйвера Selenium.......................174
4.4.7. Selenium IDE...............................................................................174
4.4.8. Проблемы автоматизации тестов через графический
интерфейс...........................................................................................176
4.4.9. Выполнение тестов графического интерфейса...........................176
4.4.10. Преобразование тестов в программный код.............................176
4.4.11. Изменение тестов вручную.......................................................177
4.4.12. Тестовые данные......................................................................177
4.4.13. Шаблон Page Object.................................................................178
5.5. Альтернативы инструменту Gatling......................................................207
5.5.1. Grinder.......................................................................................207
5.5.2. Apache JMeter.............................................................................207
5.5.3. Tsung.........................................................................................208
5.5.4. Коммерческие решения..............................................................208
5.6. В заключение......................................................................................209
Ссылки.......................................................................................................209
Глава 6. Исследовательское тестирование.....................................................210
6.1. Введение.............................................................................................210
6.1.1. Исследовательское тестирование: пример.................................210
6.2. Цель исследовательского тестирования...............................................210
6.2.1. Иногда ручное тестирование оказывается предпочтительнее....211
6.2.2. Тестирование заказчиком..........................................................211
6.2.3. Ручное тестирование нефункциональных требований................212
6.3. Как это сделать?..................................................................................212
6.3.1. Руководство по проведению тестирования.................................213
6.3.2. Автоматизированное окружение................................................213
6.3.3. Демонстрационные примеры как основа....................................213
6.3.4. Пример: приложение электронной коммерции...........................214
6.3.5. Бета-тестирование.....................................................................214
6.3.6. Сеансовые тесты........................................................................215
6.4. В заключение......................................................................................218
Ссылки.......................................................................................................218
Глава 7. Развертывание — ввод в эксплуатацию............................................219
7.1. Введение.............................................................................................219
7.1.1. Развертывание: пример..............................................................220
7.2. Ввод в эксплуатацию и откат...............................................................220
7.2.1. Преимущества............................................................................220
7.2.2. Недостатки.................................................................................221
7.3. Развертывание исправлений................................................................222
7.3.1. Преимущества............................................................................222
7.3.2. Недостатки.................................................................................222
7.4. Сине-зеленое развертывание...............................................................223
7.4.1. Преимущества............................................................................224
7.4.2. Недостатки.................................................................................224
7.5. Канареечное развертывание................................................................225
7.5.1. Преимущества............................................................................226
7.5.2. Недостатки.................................................................................226
7.6. Автоматическое развертывание...........................................................227
7.6.1. Преимущества............................................................................228
7.6.2. Недостатки.................................................................................229
7.7. Виртуализация.....................................................................................229
7.7.1. Физические хосты.......................................................................231
7.8. Вне круга веб-приложений..................................................................231
7.9. В заключение......................................................................................233
Ссылки.......................................................................................................233
Глава 8. Эксплуатация...................................................................................234
8.1. Введение.............................................................................................234
8.1.1. Эксплуатация — пример.............................................................235
8.2. Проблемы в период эксплуатации.......................................................235
8.3. Файлы журналов.................................................................................237
8.3.1. Что следует журналировать?......................................................238
8.3.2. Инструменты для обработки файлов журналов..........................240
8.3.3. Журналирование в примере приложения...................................241
8.4. Анализ журналов примера приложения...............................................242
8.4.1. Анализ с применением Kibana....................................................245
8.4.2. ELK — масштабируемость...........................................................246
8.5. Другие технологии обработки журналов..............................................251
8.6. Продвинутые технологии обработки журналов....................................252
8.6.1. Анонимизация............................................................................253
8.6.2. Производительность..................................................................253
8.6.3. Время.........................................................................................253
8.6.4. Эксплуатационная база данных..................................................254
8.7. Мониторинг.........................................................................................254
8.8. Отображение числовых характеристик с помощью Graphite.................255
8.9. Характеристики, измеряемые в примере приложения..........................258
8.9.1. Структура примера.....................................................................258
8.10. Другие решения для мониторинга.....................................................260
8.11. Прочие проблемы, возникающие во время эксплуатации
приложений...............................................................................................262
8.11.1. Сценарии.................................................................................262
8.11.2. Приложения в вычислительном центре клиента.......................262
8.12. В заключение....................................................................................263
Ссылки.......................................................................................................264
Часть III. Управление, организация и архитектура решения непрерывного развертывания.....................................................................267
Глава 9. Внедрение методологии непрерывного развертывания
на предприятии...............................................................................................268
9.1. Введение.............................................................................................268
9.2. Непрерывное развертывание с самого начала.....................................268
9.3. Систематизация потока ценностей.......................................................269
9.3.1. Систематизация потока ценностей описывает
последовательность событий...............................................................270
9.3.2. Оптимизация..............................................................................271
9.4. Дополнительные меры для оптимизации.............................................273
9.4.1. Капиталовложения в качество...................................................273
9.4.2. Затраты.....................................................................................273
9.4.3. Выгоды......................................................................................274
9.4.4. Запрещайте сохранение изменений в случае ошибки сборки!....274
9.4.5. Останови конвейер....................................................................275
9.4.6. Пять почему...............................................................................275
9.4.7. DevOps.......................................................................................276
9.5. В заключение......................................................................................278
Ссылки.......................................................................................................278
Глава 10. Непрерывное развертывание и DevOps..........................................279
10.1. Введение...........................................................................................279
10.2. Что такое DevOps?.............................................................................279
10.2.1. Проблемы................................................................................280
10.2.2. Точка зрения клиента..............................................................281
10.2.3. Первопроходцы: Amazon..........................................................281
10.2.4. DevOps.....................................................................................282
10.3. Непрерывное развертывание и DevOps..............................................283
10.3.1. DevOps: не только непрерывное развертывание......................284
10.3.2. Индивидуальная ответственность и самоорганизация..............285
10.3.3. Технологические решения........................................................286
10.3.4. Меньше централизованного управления..................................286
10.3.5. Плюрализм технологий............................................................287
10.3.6. Обмен специалистами между командами..................................287
10.3.7. Архитектура.............................................................................288
10.4. Непрерывное развертывание без DevOps?.........................................289
10.4.1. Завершение конвейера непрерывного развертывания..............290
10.5. В заключение....................................................................................292
Ссылки.......................................................................................................292
Глава 11. Непрерывное развертывание, DevOps и архитектура ПО................293
11.1. Введение...........................................................................................293
11.2. Архитектура программного обеспечения............................................293
11.2.1. Зачем нужна архитектура программного обеспечения?............294
11.3. Оптимизация архитектуры для непрерывного развертывания............296
11.3.1. Деление на мелкие единицы развертывания............................297
11.4. Интерфейсы.......................................................................................298
11.4.1. Закон Постела, или принцип надежности.................................300
11.4.2. Страховка от сбоев..................................................................300
11.4.3. Состояние................................................................................301
11.5. Базы данных......................................................................................302
11.5.1. Поддержание стабильности схемы базы данных.......................303
11.5.2. База данных = компонент........................................................304
11.5.3. Представления и хранимые процедуры....................................304
11.5.4. Отдельная база данных для каждого компонента.....................305
11.5.5. Базы данных NoSQL..................................................................305
11.6. Микрослужбы....................................................................................305
11.6.1. Микрослужбы и непрерывное развертывание...........................306
11.6.2. Внедрение непрерывного развертывания с микрослужбами.....307
11.6.3. Микрослужбы способствуют внедрению непрерывного развертывания....................................................................................307
11.6.4. Организация............................................................................308
11.7. Внедрение новых возможностей.........................................................308
11.7.1. Отдельные ветви для новых возможностей..............................309
11.7.2. Переключение возможностей...................................................309
11.7.3. Преимущества..........................................................................310
11.7.4. Примеры использования переключения возможностей.............311
11.7.5. Недостатки...............................................................................312
11.8. В заключение....................................................................................312
Ссылки.......................................................................................................313
Глава 12. Заключение: основные преимущества............................................315
Ссылки.......................................................................................................316
П.1. Обзор методологии непрерывного развертывания и книги....................18
П.2. Зачем нужно непрерывное развертывание?..........................................19
П.2.1. Короткая история........................................................................19
П.2.2. Непрерывное развертывание способно помочь
в таких ситуациях..................................................................................21
П.3. Кому адресована эта книга?..................................................................23
П.4. Краткое содержание глав......................................................................23
П.5. Как читать эту книгу.............................................................................25
Благодарности...........................................................................................28
Об авторе.....................................................................................................29
От издательства..........................................................................................30
Часть I. Основы...............................................................................................31
Глава 1. Непрерывное развертывание: что и как?............................................32
1.1. Введение: что такое непрерывное развертывание?...............................32
1.2. Почему процесс выпуска ПО настолько сложен.....................................32
1.2.1. Непрерывная интеграция вселяет надежду..................................33
1.2.2. Медленные и опасные процессы..................................................33
1.2.3. Есть возможность ускорения........................................................33
1.3. Ценность непрерывного развертывания................................................34
1.3.1. Регулярность................................................................................35
1.3.2. Контролируемость........................................................................35
1.3.3. Регрессии.....................................................................................36
1.4. Преимущества непрерывного развертывания........................................37
1.4.1. Непрерывное развертывание сокращает сроки внедрения...........37
1.4.2. Один пример................................................................................37
1.4.3. Реализация услуги и ее внедрение в эксплуатацию......................38
1.4.4. Следующий шаг...........................................................................38
1.4.5. Непрерывное развертывание дает конкурентные
преимущества.......................................................................................38
1.4.6. Без непрерывного развертывания................................................38
1.4.7. Непрерывное развертывание и Lean Startup.................................39
1.4.8. Влияние непрерывного развертывания........................................40
1.4.9. Непрерывное развертывание для минимизации рисков................41
1.4.10. Быстрая обратная связь и низкие затраты..................................45
1.5. Создание и организация конвейера непрерывного развертывания........46
1.5.1. Пример........................................................................................49
1.6. В заключение........................................................................................50
Ссылки.........................................................................................................50
Глава 2. Подготовка инфраструктуры..............................................................52
2.1. Введение...............................................................................................52
2.1.1. Автоматизация инфраструктуры: пример.....................................53
2.2. Сценарии установки..............................................................................54
2.2.1. Проблемы классических сценариев установки..............................54
2.3. Chef.......................................................................................................57
2.3.1. Chef и Puppet...............................................................................59
2.3.2. Другие альтернативы...................................................................60
2.3.3. Технические основы.....................................................................61
Основные термины Chef...............................................................62
Повара, поваренные книги и рецепты...........................................63
Роли.............................................................................................66
2.3.4. Chef Solo......................................................................................68
2.3.5. Chef Solo: заключение..................................................................70
2.3.6. Knife и Chef Server........................................................................70
2.3.7. Chef Server: заключение...............................................................75
2.4. Vagrant..................................................................................................76
2.4.1. Пример с Chef и Vagrant...............................................................78
2.4.2. Vagrant: заключение....................................................................80
2.5. Docker...................................................................................................80
2.5.1. Решение на основе Docker...........................................................81
Контейнеры Docker и виртуализация............................................83
Цели Docker..................................................................................83
Взаимодействия между контейнерами Docker...............................83
2.5.2. Создание контейнеров Docker......................................................84
Файлы Dockerfile...........................................................................85
Сборка и запуск образов Docker...................................................86
2.5.3. Запуск примера приложения с помощью Docker...........................87
Дополнительные команды Docker.................................................88
2.5.4. Docker и Vagrant...........................................................................89
Комплектация контейнеров с помощью Vagrant............................89
2.5.5. Docker Machine.............................................................................92
2.5.6. Сложные конфигурации Docker....................................................94
Docker Registry..............................................................................94
Docker в кластере.........................................................................95
2.5.7. Docker Compose............................................................................96
2.6. Неизменяемый сервер...........................................................................99
2.6.1. Недостатки идемпотентности.......................................................99
2.6.2. Неизменяемый сервер и Docker..................................................100
2.7. Инфраструктура как код......................................................................101
2.7.1. Тестирование инфраструктуры как кода.....................................103
Serverspec...................................................................................103
Test Kitchen.................................................................................103
ChefSpec.....................................................................................103
2.8. Платформа как услуга.........................................................................104
2.9. Хранение информации и базы данных.................................................106
2.9.1. Обработка схем..........................................................................107
2.9.2. Тестовые и базовые данные.......................................................108
2.10. В заключение....................................................................................109
Ссылки.......................................................................................................110
Часть II. Конвейер непрерывного развертывания....................................113
Глава 3. Автоматизация сборки и непрерывная интеграция...........................114
3.1. Введение.............................................................................................114
3.1.1. Автоматизация сборки: пример..................................................115
3.2. Автоматизация сборки и инструменты сборки......................................115
3.2.1. Инструменты сборки в мире Java...............................................116
3.2.2. Ant.............................................................................................117
3.2.3. Maven........................................................................................118
Версии и мгновенные снимки......................................................121
Выпуск версий с помощью Maven................................................122
3.2.4. Gradle.........................................................................................123
Gradle Wrapper............................................................................125
3.2.5. Другие инструменты сборки.......................................................126
3.2.6. Выбор правильного инструмента................................................127
3.3. Модульные тесты.................................................................................129
3.3.1. Создание хороших модульных тестов.........................................130
3.3.2. Разработка через тестирование.................................................133
3.3.3. Чистый код и искусство программирования................................134
3.4. Непрерывная интеграция....................................................................135
3.4.1. Jenkins.......................................................................................136
Расширение с помощью плагинов...............................................138
Плагин SCM Sync Configuration....................................................138
Плагин Environment Injector........................................................138
Плагин Job Configuration History..................................................139
Плагин Clone Workspace SCM......................................................139
Плагин Build Pipeline...................................................................139
Плагин Amazon EC2....................................................................140
Плагин Job DSL...........................................................................140
Создание собственных плагинов.................................................142
3.4.2. Инфраструктура непрерывной интеграции.................................142
3.4.3. В заключение.............................................................................144
3.5. Оценка качества кода..........................................................................147
3.5.1. SonarQube..................................................................................149
Интеграция в конвейер...............................................................149
3.6. Управление артефактами....................................................................152
3.6.1. Интеграция в процедуру сборки.................................................154
3.6.2. Дополнительные особенности репозиториев..............................156
3.7. В заключение.......................................................................................157
Ссылки.......................................................................................................158
Глава 4. Приемочные тесты...........................................................................161
4.1. Введение.............................................................................................161
4.1.1. Приемочные испытания: пример................................................161
4.2. Пирамида тестирования......................................................................162
4.3. Что такое «приемочные тесты»?..........................................................166
4.3.1. Автоматизированные приемочные испытания............................166
4.3.2. Больше, чем просто увеличение эффективности........................167
4.3.3. Тестирование вручную...............................................................168
4.3.4. Какую роль играет заказчик?.....................................................168
4.3.5. Приемочные и модульные тесты................................................169
4.3.6. Окружения для тестирования.....................................................170
4.4. Приемочные тесты через ГИП..............................................................171
4.4.1. Проблемы тестирования графического интерфейса...................171
4.4.2. Абстракции против хрупких тестов через графический
интерфейс...........................................................................................172
4.4.3. Автоматизация с помощью Selenium...........................................173
4.4.4. Программный интерфейс веб-драйвера......................................173
4.4.5. Тестирование без веб-браузера: HtmlUnit..................................173
4.4.6. Программный интерфейс веб-драйвера Selenium.......................174
4.4.7. Selenium IDE...............................................................................174
4.4.8. Проблемы автоматизации тестов через графический
интерфейс...........................................................................................176
4.4.9. Выполнение тестов графического интерфейса...........................176
4.4.10. Преобразование тестов в программный код.............................176
4.4.11. Изменение тестов вручную.......................................................177
4.4.12. Тестовые данные......................................................................177
4.4.13. Шаблон Page Object.................................................................178
5.5. Альтернативы инструменту Gatling......................................................207
5.5.1. Grinder.......................................................................................207
5.5.2. Apache JMeter.............................................................................207
5.5.3. Tsung.........................................................................................208
5.5.4. Коммерческие решения..............................................................208
5.6. В заключение......................................................................................209
Ссылки.......................................................................................................209
Глава 6. Исследовательское тестирование.....................................................210
6.1. Введение.............................................................................................210
6.1.1. Исследовательское тестирование: пример.................................210
6.2. Цель исследовательского тестирования...............................................210
6.2.1. Иногда ручное тестирование оказывается предпочтительнее....211
6.2.2. Тестирование заказчиком..........................................................211
6.2.3. Ручное тестирование нефункциональных требований................212
6.3. Как это сделать?..................................................................................212
6.3.1. Руководство по проведению тестирования.................................213
6.3.2. Автоматизированное окружение................................................213
6.3.3. Демонстрационные примеры как основа....................................213
6.3.4. Пример: приложение электронной коммерции...........................214
6.3.5. Бета-тестирование.....................................................................214
6.3.6. Сеансовые тесты........................................................................215
6.4. В заключение......................................................................................218
Ссылки.......................................................................................................218
Глава 7. Развертывание — ввод в эксплуатацию............................................219
7.1. Введение.............................................................................................219
7.1.1. Развертывание: пример..............................................................220
7.2. Ввод в эксплуатацию и откат...............................................................220
7.2.1. Преимущества............................................................................220
7.2.2. Недостатки.................................................................................221
7.3. Развертывание исправлений................................................................222
7.3.1. Преимущества............................................................................222
7.3.2. Недостатки.................................................................................222
7.4. Сине-зеленое развертывание...............................................................223
7.4.1. Преимущества............................................................................224
7.4.2. Недостатки.................................................................................224
7.5. Канареечное развертывание................................................................225
7.5.1. Преимущества............................................................................226
7.5.2. Недостатки.................................................................................226
7.6. Автоматическое развертывание...........................................................227
7.6.1. Преимущества............................................................................228
7.6.2. Недостатки.................................................................................229
7.7. Виртуализация.....................................................................................229
7.7.1. Физические хосты.......................................................................231
7.8. Вне круга веб-приложений..................................................................231
7.9. В заключение......................................................................................233
Ссылки.......................................................................................................233
Глава 8. Эксплуатация...................................................................................234
8.1. Введение.............................................................................................234
8.1.1. Эксплуатация — пример.............................................................235
8.2. Проблемы в период эксплуатации.......................................................235
8.3. Файлы журналов.................................................................................237
8.3.1. Что следует журналировать?......................................................238
8.3.2. Инструменты для обработки файлов журналов..........................240
8.3.3. Журналирование в примере приложения...................................241
8.4. Анализ журналов примера приложения...............................................242
8.4.1. Анализ с применением Kibana....................................................245
8.4.2. ELK — масштабируемость...........................................................246
8.5. Другие технологии обработки журналов..............................................251
8.6. Продвинутые технологии обработки журналов....................................252
8.6.1. Анонимизация............................................................................253
8.6.2. Производительность..................................................................253
8.6.3. Время.........................................................................................253
8.6.4. Эксплуатационная база данных..................................................254
8.7. Мониторинг.........................................................................................254
8.8. Отображение числовых характеристик с помощью Graphite.................255
8.9. Характеристики, измеряемые в примере приложения..........................258
8.9.1. Структура примера.....................................................................258
8.10. Другие решения для мониторинга.....................................................260
8.11. Прочие проблемы, возникающие во время эксплуатации
приложений...............................................................................................262
8.11.1. Сценарии.................................................................................262
8.11.2. Приложения в вычислительном центре клиента.......................262
8.12. В заключение....................................................................................263
Ссылки.......................................................................................................264
Часть III. Управление, организация и архитектура решения непрерывного развертывания.....................................................................267
Глава 9. Внедрение методологии непрерывного развертывания
на предприятии...............................................................................................268
9.1. Введение.............................................................................................268
9.2. Непрерывное развертывание с самого начала.....................................268
9.3. Систематизация потока ценностей.......................................................269
9.3.1. Систематизация потока ценностей описывает
последовательность событий...............................................................270
9.3.2. Оптимизация..............................................................................271
9.4. Дополнительные меры для оптимизации.............................................273
9.4.1. Капиталовложения в качество...................................................273
9.4.2. Затраты.....................................................................................273
9.4.3. Выгоды......................................................................................274
9.4.4. Запрещайте сохранение изменений в случае ошибки сборки!....274
9.4.5. Останови конвейер....................................................................275
9.4.6. Пять почему...............................................................................275
9.4.7. DevOps.......................................................................................276
9.5. В заключение......................................................................................278
Ссылки.......................................................................................................278
Глава 10. Непрерывное развертывание и DevOps..........................................279
10.1. Введение...........................................................................................279
10.2. Что такое DevOps?.............................................................................279
10.2.1. Проблемы................................................................................280
10.2.2. Точка зрения клиента..............................................................281
10.2.3. Первопроходцы: Amazon..........................................................281
10.2.4. DevOps.....................................................................................282
10.3. Непрерывное развертывание и DevOps..............................................283
10.3.1. DevOps: не только непрерывное развертывание......................284
10.3.2. Индивидуальная ответственность и самоорганизация..............285
10.3.3. Технологические решения........................................................286
10.3.4. Меньше централизованного управления..................................286
10.3.5. Плюрализм технологий............................................................287
10.3.6. Обмен специалистами между командами..................................287
10.3.7. Архитектура.............................................................................288
10.4. Непрерывное развертывание без DevOps?.........................................289
10.4.1. Завершение конвейера непрерывного развертывания..............290
10.5. В заключение....................................................................................292
Ссылки.......................................................................................................292
Глава 11. Непрерывное развертывание, DevOps и архитектура ПО................293
11.1. Введение...........................................................................................293
11.2. Архитектура программного обеспечения............................................293
11.2.1. Зачем нужна архитектура программного обеспечения?............294
11.3. Оптимизация архитектуры для непрерывного развертывания............296
11.3.1. Деление на мелкие единицы развертывания............................297
11.4. Интерфейсы.......................................................................................298
11.4.1. Закон Постела, или принцип надежности.................................300
11.4.2. Страховка от сбоев..................................................................300
11.4.3. Состояние................................................................................301
11.5. Базы данных......................................................................................302
11.5.1. Поддержание стабильности схемы базы данных.......................303
11.5.2. База данных = компонент........................................................304
11.5.3. Представления и хранимые процедуры....................................304
11.5.4. Отдельная база данных для каждого компонента.....................305
11.5.5. Базы данных NoSQL..................................................................305
11.6. Микрослужбы....................................................................................305
11.6.1. Микрослужбы и непрерывное развертывание...........................306
11.6.2. Внедрение непрерывного развертывания с микрослужбами.....307
11.6.3. Микрослужбы способствуют внедрению непрерывного развертывания....................................................................................307
11.6.4. Организация............................................................................308
11.7. Внедрение новых возможностей.........................................................308
11.7.1. Отдельные ветви для новых возможностей..............................309
11.7.2. Переключение возможностей...................................................309
11.7.3. Преимущества..........................................................................310
11.7.4. Примеры использования переключения возможностей.............311
11.7.5. Недостатки...............................................................................312
11.8. В заключение....................................................................................312
Ссылки.......................................................................................................313
Глава 12. Заключение: основные преимущества............................................315
Ссылки.......................................................................................................316
Название: Continuous delivery. Практика непрерывных апдейтов (Для профессионалов.)
Автор: Эберхард Вольф
Год: 2016
Жанр: программирование
Серия: Для профессионалов
Издательство: Питер
Язык: Русский
Формат: pdf
Качество: Отсканированные страницы
Страниц: 320
Размер: 22 MB
Пароль на архив: нет
Информация для восстановления: 5%
Скачать Эберхард Вольф - Continuous delivery. Практика непрерывных апдейтов (Для профессионалов.) (2016)
Теги: книга компьютерная литература Эберхард Вольф Continuous delivery Практика непрерывных апдейтов Для профессионалов
Другие новости по теме:
- Чистая архитектура. Искусство разработки программного обеспечения
- Попендик М., Попендик Т. - Бережливое производство программного обеспечения. От идеи до прибыли (2010)
- Попендик М., Попендик Т. - Бережливое производство программного обеспечения. От идеи до прибыли (2010)
- Дин Леффингуэлл, Дон Уидриг - Принципы работы с требованиями к программному обеспечению (2000)
- Технология разработки программного обеспечения
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.