Эта книга поможет всем, кто собирается перейти на непрерывную поставку программного обеспечения. Руководители проектов ознакомятся с основными процессами, преимуществами и техническими требованиями. Разработчики, администраторы и архитекторы получат необходимые навыки организации работы, а также узнают, как непрерывная поставка внедряется в архитектуру программного обеспечения и структуру ИТ-организации.
Эберхард Вольф познакомит вас с популярными передовыми технологиями, облегчающими труд разработчиков: Docker, Chef, Vagrant, Jenkins, Graphite, ELK stack, JBehave и Gatling. Вы пройдете через все этапы сборки, непрерывной интеграции, нагрузочного тестирования, развертывания и контроля.
Кому адресована эта книга?
Эта книга адресована руководителям, архитекторам, разработчикам и администраторам, желающим внедрить методологию непрерывного развертывания как метод и (или) средство интеграции разработки и эксплуатации (DevOps) в своей организации.
• В теоретической части книги руководители познакомятся с процессом, лежащим в основе непрерывного развертывания, а также с требованиями и выгодами для их предприятий. Кроме того, они научатся оценивать технические последствия от внедрения непрерывного развертывания.
• Разработчикам и администраторам будет представлено исчерпывающее введение в технические аспекты, благодаря чему они смогут приобрести навыки, необходимые для конструирования и внедрения конвейера непрерывного развертывания.
• Архитекторы, помимо технических аспектов, узнают также о влиянии непрерывного развертывания на архитектуру программного обеспечения (глава 11).
Книга знакомит с разными технологиями реализации непрерывного развертывания. Примером служит проект на языке Java. Для некоторых областей — например, реализации приемочных испытаний — будут представлены технологии для других языков программирования. В книге упоминаются подобные альтернативы, но основное внимание уделяется языку Java. Технологии автоматизированного распределения инфраструктуры не зависят от используемого языка программирования. Книга особенно пригодится читателям, активно использующим Java; адаптацией представленных технологий для других языков читателям придется заниматься самим.
Краткое содержание глав
Книга делится на три части. Первая часть знакомит с основами, необходимыми для понимания методологии непрерывного развертывания.
• Глава 1, «Непрерывное развертывание: что и как?», знакомит с терминологией непрерывного развертывания, а также объясняет, как и какие проблемы она решает. Кратко знакомит с конвейером непрерывного развертывания.
Непрерывное развертывание требует автоматизации развертывания инфраструктуры — установки программного обеспечения на серверы. Глава 2, «Подготовка инфраструктуры», знакомит с некоторыми подходами к решению этой задачи. Для автоматизации установки программного обеспечения можно использовать Chef. Для развертывания тестового окружения на компьютерах разработчиков можно использовать Vagrant. Docker — не только очень эффективное решение виртуализации, он также может служить средством автоматизации установки программного обеспечения. В конце первой части дается краткий обзор использования облачных решений PaaS (Platform as a Service — платформа как услуга) для организации непрерывного развертывания.
Вторая часть включает главы, детально описывающие разные компоненты конвейера непрерывного развертывания. После знакомства с основными идеями будут представлены примеры конкретных технологий, которые используются для реализации обсуждаемых компонентов конвейера.
• Глава 3, «Автоматизация сборки и непрерывная интеграция», написанная Бастианом Спаннебергом (Bastian Spanneberg), описывает происходящее в процессе передачи новой версии программного обеспечения. Дается краткое введение в инструменты сборки, такие как Gradle или Maven, и модульное тестирование, а также обсуждается технология непрерывной интеграции (Continuous Integration) с применением Jenkins. Далее следует обзор SonarQube, инструмента статического анализа и проверки качества программного кода, а также репозиториев, таких как Nexus или Artifactory.
• Глава 4, «Приемочные тесты», знакомит с использованием JBehave и Selenium для автоматизации приемочных испытаний.
• Глава 5, «Тестирование пропускной способности», посвящена исключительно теме пропускной способности. Роль примера в ней играет технология Gatling.
• Глава 6, «Исследовательское тестирование», рассматривает особенности испытаний вручную с целью проверки новых возможностей и выявления общих проблем в приложениях.
Главы, перечисленные выше, описывают начальные этапы конвейера непрерывного развертывания. Они оказывают основное влияние на разработку программного обеспечения. Следующие главы знакомят с технологиями и приемами в тех областях непрерывного развертывания, которые ближе к рабочему окружению.
Глава 7, «Развертывание — ввод в эксплуатацию», описывает подходы, помогающие минимизировать риски, которые могут возникнуть в процессе развертывания приложения в рабочем окружении.
• В процессе работы приложение собирает разные данные, характеризующие особенности его функционирования. Глава 8, «Эксплуатация», знакомит с технологиями, упрощающими сбор и анализ таких данных: стек ELK (Elasticsearch-Logstash-Kibana) — для анализа файлов журналов и Graphite — для мониторинга.
Для технологий, описываемых в этих главах, приводятся примеры, которые читатель сможет опробовать на собственном компьютере и поэкспериментировать с ними, чтобы получить практический опыт. Благодаря автоматизированной инфраструктуре запуск этих примеров не составит труда.
Наконец, возникает вопрос: как внедрить методологию непрерывного развертывания и какой эффект это даст? Эти вопросы обсуждаются в третьей части книги.
• Глава 9, «Внедрение методологии непрерывного развертывания на предприятии», показывает, как можно внедрить методологию непрерывного развертывания в своей организации.
• Глава 10, «Непрерывное развертывание и DevOps», описывает объединение разработки (Development, Dev) и эксплуатации (Operations, Ops) в один организационный модуль (DevOps).
Непрерывное развертывание также оказывает влияние на архитектуру приложений. Связанные с этим вопросы обсуждаются в главе 11, «Непрерывное развертывание, DevOps и архитектура ПО».
Завершается книга главой 12, «Заключение: основные преимущества».
Об авторе
Эберхард Вольф (Eberhard Wolff), сотрудник компании innoQ в Германии, имеет более чем 15-летний опыт разработки архитектур программного обеспечения и консультирования по вопросам, лежащим на стыке предпринимательства и технологий. Он неоднократно выступал с докладами на международных конференциях, был членом программных комитетов на нескольких конференциях и написал более 100 статей и книг. Круг его профессиональных интересов включает разработку современных архитектур — часто с привлечением облачных технологий, непрерывного развертывания, интеграции разработки и эксплуатации (DevOps), микрослужб и NoSQL.
» Более подробно с книгой можно ознакомиться на сайте издательства
» Оглавление
» Отрывок
Для Хаброжителей скидка 20% по купону — Continuous delivery
Автор: ph_piter