Openslaed » Разное » Эберхард Вольф - Continuous delivery. Практика непрерывных апдейтов (Для профессионалов.) (2016) |
Эберхард Вольф - Continuous delivery. Практика непрерывных апдейтов (Для профессионалов.) (2016)
Эта книга поможет всем, кто собирается перейти на непрерывную поставку программного обеспечения. Руководители проектов ознакомятся с основными процессами, преимуществами и техническими требованиями. Разработчики, администраторы и архитекторы получат необходимые навыки организации работы, а также узнают, как непрерывная поставка внедряется в архитектуру программного обеспечения и структуру ИТ-организации.Эберхард Вольф познакомит вас с популярными передовыми технологиями, облегчающими труд разработчиков: 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, Практика непрерывных апдейтов, Для профессионалов
Другие новости по теме:
Панель управления
Реклама
Архив сайта
Октябрь 2023 (1)Сентябрь 2023 (15)
Ноябрь 2022 (9)
Октябрь 2022 (27)
Сентябрь 2022 (53)
Июль 2022 (70)
Июнь 2022 (100)
Май 2022 (198)
Апрель 2022 (63)
Март 2022 (5)
Февраль 2022 (82)
Январь 2022 (191)
Декабрь 2021 (101)
Ноябрь 2021 (13)
Октябрь 2021 (28)
Сентябрь 2021 (16)
Август 2021 (18)
Июль 2021 (24)
Июнь 2021 (5)
Апрель 2021 (12)
Март 2021 (11)
Февраль 2021 (1)
Январь 2021 (14)
Декабрь 2020 (11)
Ноябрь 2020 (68)
Октябрь 2020 (102)
Сентябрь 2020 (267)
Август 2020 (273)
Июль 2020 (204)
Июнь 2020 (278)
Май 2020 (420)
Апрель 2020 (302)
Март 2020 (85)
Февраль 2020 (78)
Январь 2020 (272)
Декабрь 2019 (143)
Ноябрь 2019 (209)
Октябрь 2019 (296)
Сентябрь 2019 (340)
Август 2019 (288)
Июль 2019 (338)
Июнь 2019 (298)
Май 2019 (125)
Апрель 2019 (461)
Март 2019 (471)
Февраль 2019 (343)
Январь 2019 (298)
Декабрь 2018 (279)
Ноябрь 2018 (170)
Октябрь 2018 (216)
Сентябрь 2018 (142)
Август 2018 (70)
Июль 2018 (110)
Июнь 2018 (141)
Май 2018 (215)
Апрель 2018 (178)
Март 2018 (203)
Февраль 2018 (132)
Январь 2018 (179)
Декабрь 2017 (317)
Ноябрь 2017 (320)
Октябрь 2017 (109)
Сентябрь 2017 (163)
Август 2017 (218)
Июль 2017 (295)
Июнь 2017 (231)
Май 2017 (219)
Апрель 2017 (174)
Март 2017 (414)
Февраль 2017 (593)
Январь 2017 (1129)
Декабрь 2016 (912)
Ноябрь 2016 (962)
Октябрь 2016 (913)
Сентябрь 2016 (651)
Август 2016 (392)
Июль 2016 (496)
Июнь 2016 (483)
Май 2016 (693)
Апрель 2016 (961)
Март 2016 (573)
Февраль 2016 (1035)
Январь 2016 (373)
Декабрь 2015 (198)
Ноябрь 2015 (91)
Октябрь 2015 (4)
Сентябрь 2015 (237)
Август 2015 (8)
Июль 2015 (799)
Июнь 2015 (1668)
Май 2015 (856)
Апрель 2015 (1845)
Март 2015 (1235)
Февраль 2015 (1)
Декабрь 2014 (6)
Ноябрь 2014 (11)
Октябрь 2014 (8)
Сентябрь 2014 (254)
Август 2014 (17692)
Июль 2014 (18437)
Июнь 2014 (19800)
Май 2014 (20722)
Апрель 2014 (19219)
Март 2014 (18764)
Февраль 2014 (17891)
Январь 2014 (23195)
Декабрь 2013 (16543)
Ноябрь 2013 (354)
Октябрь 2013 (475)
Сентябрь 2013 (408)
Август 2013 (243)
Июль 2013 (160)
Июнь 2013 (727)
Май 2013 (700)
Апрель 2013 (614)
Март 2013 (732)
Февраль 2013 (500)
Январь 2013 (584)
Декабрь 2012 (549)
Ноябрь 2012 (1154)
Октябрь 2012 (783)
Сентябрь 2012 (1154)
Август 2012 (624)
Июль 2012 (1114)
Июнь 2012 (1246)
Май 2012 (2941)
Апрель 2012 (3200)
Март 2012 (1359)
Январь 2012 (484)
Ноябрь 2011 (1692)
Октябрь 2011 (3643)
Сентябрь 2011 (2220)
Август 2011 (1770)
Июль 2011 (3102)
Июнь 2011 (1511)
Май 2011 (528)
Апрель 2011 (538)
Март 2011 (607)
Февраль 2011 (106)
Январь 2011 (2)
Октябрь 2010 (43)
Сентябрь 2010 (130)
Август 2010 (38)
Июль 2010 (44)
Март 2010 (63)
Февраль 2010 (192)
Январь 2010 (92)
Декабрь 2009 (110)
Май 2022 (198)
Апрель 2022 (63)
Март 2022 (5)
Февраль 2022 (82)
Январь 2022 (191)
Декабрь 2021 (101)
Ноябрь 2021 (13)
Октябрь 2021 (28)
Сентябрь 2021 (16)
Август 2021 (18)
Июль 2021 (24)
Июнь 2021 (5)
Апрель 2021 (12)
Март 2021 (11)
Февраль 2021 (1)
Январь 2021 (14)
Декабрь 2020 (11)
Ноябрь 2020 (68)
Октябрь 2020 (102)
Сентябрь 2020 (267)
Август 2020 (273)
Июль 2020 (204)
Июнь 2020 (278)
Май 2020 (420)
Апрель 2020 (302)
Март 2020 (85)
Февраль 2020 (78)
Январь 2020 (272)
Декабрь 2019 (143)
Ноябрь 2019 (209)
Октябрь 2019 (296)
Сентябрь 2019 (340)
Август 2019 (288)
Июль 2019 (338)
Июнь 2019 (298)
Май 2019 (125)
Апрель 2019 (461)
Март 2019 (471)
Февраль 2019 (343)
Январь 2019 (298)
Декабрь 2018 (279)
Ноябрь 2018 (170)
Октябрь 2018 (216)
Сентябрь 2018 (142)
Август 2018 (70)
Июль 2018 (110)
Июнь 2018 (141)
Май 2018 (215)
Апрель 2018 (178)
Март 2018 (203)
Февраль 2018 (132)
Январь 2018 (179)
Декабрь 2017 (317)
Ноябрь 2017 (320)
Октябрь 2017 (109)
Сентябрь 2017 (163)
Август 2017 (218)
Июль 2017 (295)
Июнь 2017 (231)
Май 2017 (219)
Апрель 2017 (174)
Март 2017 (414)
Февраль 2017 (593)
Январь 2017 (1129)
Декабрь 2016 (912)
Ноябрь 2016 (962)
Октябрь 2016 (913)
Сентябрь 2016 (651)
Август 2016 (392)
Июль 2016 (496)
Июнь 2016 (483)
Май 2016 (693)
Апрель 2016 (961)
Март 2016 (573)
Февраль 2016 (1035)
Январь 2016 (373)
Декабрь 2015 (198)
Ноябрь 2015 (91)
Октябрь 2015 (4)
Сентябрь 2015 (237)
Август 2015 (8)
Июль 2015 (799)
Июнь 2015 (1668)
Май 2015 (856)
Апрель 2015 (1845)
Март 2015 (1235)
Февраль 2015 (1)
Декабрь 2014 (6)
Ноябрь 2014 (11)
Октябрь 2014 (8)
Сентябрь 2014 (254)
Август 2014 (17692)
Июль 2014 (18437)
Июнь 2014 (19800)
Май 2014 (20722)
Апрель 2014 (19219)
Март 2014 (18764)
Февраль 2014 (17891)
Январь 2014 (23195)
Декабрь 2013 (16543)
Ноябрь 2013 (354)
Октябрь 2013 (475)
Сентябрь 2013 (408)
Август 2013 (243)
Июль 2013 (160)
Июнь 2013 (727)
Май 2013 (700)
Апрель 2013 (614)
Март 2013 (732)
Февраль 2013 (500)
Январь 2013 (584)
Декабрь 2012 (549)
Ноябрь 2012 (1154)
Октябрь 2012 (783)
Сентябрь 2012 (1154)
Август 2012 (624)
Июль 2012 (1114)
Июнь 2012 (1246)
Май 2012 (2941)
Апрель 2012 (3200)
Март 2012 (1359)
Январь 2012 (484)
Ноябрь 2011 (1692)
Октябрь 2011 (3643)
Сентябрь 2011 (2220)
Август 2011 (1770)
Июль 2011 (3102)
Июнь 2011 (1511)
Май 2011 (528)
Апрель 2011 (538)
Март 2011 (607)
Февраль 2011 (106)
Январь 2011 (2)
Октябрь 2010 (43)
Сентябрь 2010 (130)
Август 2010 (38)
Июль 2010 (44)
Март 2010 (63)
Февраль 2010 (192)
Январь 2010 (92)
Декабрь 2009 (110)