وبلاگ بلیان

Грокаем Continuous Delivery

معرفی کتاب «Грокаем Continuous Delivery» نوشتهٔ Кристи Уилсон، منتشرشده توسط نشر Питер در سال 2024. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است. «Грокаем Continuous Delivery» در دستهٔ بدون دسته‌بندی قرار دارد.

Код должен быть готов к релизу всегда! Пайплайн Continuous Delivery автоматизирует процессы контроля версий, тестирования и развертывания при минимальном вмешательстве разработчика. Освойте инструменты и методы непрерывной доставки, и вы сможете быстро и последовательно добавлять функции и выпускать обновления. «Грокаем Continuous Delivery» - это руководство по настройке и работе с пайплайном непрерывной доставки. В каждой главе рассматривается отдельный сценарий, с которым вы столкнетесь при создании системы CD, и приводятся реальные примеры, например автоматическое масштабирование и тестирование унаследованных приложений. Кристи Уилсон сопровождает каждый шаг иллюстрациями, кристально четкими объяснениями и практическими упражнениями для закрепления полученных знаний. Краткое содержание Оглавление Вступительное слово Предисловие Благодарности О книге Для кого эта книга Структура и план книги Форум liveBook Об авторе От издательства Часть 1. Что такое непрерывная доставка 1. Добро пожаловать в «Грокаем Continuous Delivery» Нужна ли вам непрерывная доставка Зачем нужна непрерывная доставка Непрерывная доставка История «непрерывных» терминов Интеграция Непрерывная интеграция Что мы доставляем Доставка Непрерывная доставка/непрерывное развертывание Элементы непрерывной доставки Заключение Итоги Далее... 2. Базовый пайплайн Веб-сайт Cat Picture Исходный код сайта Cat Picture Пайплайны сайта Cat Picture Что же такое пайплайн и что такое задача Основные задачи в пайплайне CD Шлюзы и преобразования CD: шлюзы и преобразования Пайплайн сервисов сайта Cat Picture Запуск пайплайна Запуск один раз в сутки Пробуем использовать непрерывную интеграцию Использование уведомлений Масштабирование в ручном режиме Автоматизация посредством веб-хуков Масштабирование при наличии веб-хуков Не отправляйте изменения при сбое пайплайна Непрерывная доставка для сайта Cat Picture Как насчет терминологии? Заключение Итоги Далее... Часть 2. Поддержание ПО в состоянии готовности к доставке 3. Контроль версий - единственно верный путь Стартап Саши и Сары Запрос на вытягивание (pull request, пул-реквест) Все виды данных Исходный код и программы Репозитории и версии Непрерывная доставка и контроль версий Git и GitHub Первый коммит — с багом! Нарушение работы главной ветки Отправка (push) и вытягивание (pull) изменений Это действительно непрерывная доставка? Поддерживайте возможность выпуска релизов Срабатывание при изменениях в системе контроля версий Запуск пайплайна сервиса пользователей Сборка сервиса пользователей Сервис пользователей в облаке Подключение к базе данных RandomCloud Управление сервисом пользователей Сбой в работе сервиса пользователей Автоматизация всех переиграла В чем «источник истины»? Контроль версий и безопасность Принцип «конфигурация как код» для сервиса пользователей Жестко закодированные данные Настройка Deployaker Принцип «конфигурация как код» Раскатка изменений в ПО и конфигурации Заключение Итоги Далее 4. Эффективное использование линтинга Бекки и проект Super Game Console Линтинг спешит на помощь! Вся правда о линтинге Сказ о Pylint и множестве ошибок Унаследованный код: системный подход Шаг 1. Настройка линтера в соответствии со стандартами написания кода Шаг 2. Определение базового уровня Шаг 3. Принудительная проверка при поступлении данных Добавление принудительной проверки в пайплайн Шаг 4. «Разделяй и властвуй» Изолирование: не все нужно исправлять Принудительное изолирование Не все проблемы одинаковы Какие проблемы выявляет линтинг Сначала баги, потом стиль Новые препятствия Заключение Итоги Далее 5. Работа с нестабильными тестами Непрерывная доставка и тесты Сбой в работе сервиса Ice Cream for All Сигнал и шум «Нестабильный успех» Как провалы тестов становятся шумом От шума к сигналу Цель — зеленый режим Опять сбой! Успешно прошедшие тесты могут оказаться нестабильными Исправление ошибок в тестах Виды провала тестов: flaky-тесты Реагирование на сбои Код или тест: что менять, исправляя тесты? Опасности повторного тестирования Пересмотр повторного тестирования Зачем же перезапускать тесты? Добившись «зеленого» статуса, поддерживайте его Заключение Итоги Далее 6. Ускорение медленных наборов тестов Веб-сайт Dog Picture Когда простое слишком просто Новый разработчик пытается отправить код Тесты и непрерывная доставка Диагноз: слишком медленно Пирамида тестов Сначала быстрые тесты Два пайплайна Соблюдение баланса Меняем пирамиду тестов Безопасная корректировка тестов Покрытие тестами Как обеспечить тестовое покрытие Тестовое покрытие в пайплайне Перемещение тестов по пирамиде с учетом покрытия Как двигаться вниз по пирамиде? Унаследованные тесты и FUD Параллельный запуск тестов Когда можно выполнять тесты параллельно? Обновление пайплайнов Все еще слишком медленно! Шардинг тестов, он же параллельный режим ++ Как использовать шардинг Более сложный шардинг Шардированный пайплайн Шардинг браузерных тестов Шардинг в пайплайне Пайплайны сайта Dog Picture Заключение Итоги Далее 7. Нужные сигналы в нужное время Веб-сайт CoinExCompare Жизненный цикл изменения Проводите непрерывную интеграцию только перед слиянием Последовательность появления багов при внесении изменений CI, проводимая только перед слиянием, пропускает ошибки История двух графиков: установка значения по умолчанию «семь дней» История двух графиков: установка значения по умолчанию «30 дней» Конфликтующие изменения не всегда удается отловить А как же юнит-тесты? Запуск на основе PR не защищает систему от багов Непрерывная интеграция до И после слияния Вариант 1: периодический запуск CI Вариант 1: настройка периодической CI Вариант 2: постоянное обновление веток Вариант 2: какой ценой? Вариант 3: автоматическое слияние силами CI Вариант 3: запуск CI с последней версией главной ветки Вариант 3: события слияния Вариант 3: очереди слияний Вариант 3: очередь слияния для CoinExCompare Где еще могут возникнуть баги? Флейки и CI, инициируемая пул-реквестом Отлавливание флейков периодическими тестами Баги и сборка Непрерывная интеграция либо сборка и развертывание Сборка и развертывание с использованием одинаковой логики Усовершенствованный пайплайн CI с процессом сборки Еще раз о временной шкале изменений Заключение Итоги Далее Часть 3. Сделаем процесс доставки проще Глава 8. Простая доставка начинается с контроля версий Тем временем на сайте Watch Me Watch Метрики DORA Метрики скорости для Watch Ме Watch Время доставки изменений Сайт Watch Me Watch и наилучшие показатели Повышаем скорость работы в Watch Me Watch Интеграция с AIICatsAIITheTime Магистральная разработка Инкрементная доставка функций Коммит с пропущенными тестами Проверка кода и неполный код Двигаемся дальше Коммит незавершенного кода Ревью незавершенного кода Вернемся к сквозным тестам Оценим преимущества Сокращение времени доставки изменений Продолжим работу над AIICatsAIITheTime Окна развертывания и заморозка кода Повышение скорости Заключение Итоги Далее... Глава 9. Безопасная и надежная сборка Веб-сайт Top Dog Maps Автоматизация сборки с помощью GitHub Actions Когда процесс сборки — это документ Атрибуты безопасных и надежных сборок Постоянная готовность к релизу Автоматические сборки Сборка как код Использование сервиса непрерывной доставки Временные среды для сборки План Мигеля От документации к скрипту в системе контроля версий Автоматические контейнерные сборки Безопасная и надежная сборка Изменения интерфейса и баги Когда сборки вызывают баги Сборки и коммуникация Семантическое версионирование Важность версионирования Включение номера версии в сборку Очередной сбой! Ошибки в зависимостях во время сборки Привязка зависимостей Привязка к версии не панацея Привязка к хешам Монорепозитории и привязка версий Заключение Итоги Далее Глава 10. Надежное развертывание Множество проблем с развертыванием Метрики DORA для стабильности Метрики DORA для сайта Plenty of Woofs А если делать развертывания реже? А если делать развертывания чаще? Ежедневные развертывания и сбои Как увеличить частоту развертываний Устраняем недостатки разработки Скользящие обновления Исправление багов при скользящем обновлении Откаты Откат = немедленное улучшение Политика откатов в действии Сине-зеленые развертывания Быстрое восстановление при сине-зеленом развертывании Быстрее и стабильнее с «канарейками» Требования к канареечным развертываниям Канареечное развертывание параллельно с базовым Время восстановления работоспособности при канареечном развертывании Увеличение частоты развертывания Метрики DORA при ежедневных канареечных развертываниях Непрерывное развертывание Когда использовать непрерывное развертывание Обязательные этапы контроля качества Контроль качества и непрерывное развертывание Поддержание кода в состоянии готовности к релизу Суперэффективность согласно метрикам DORA Заключение Итоги Далее Часть 4. Реализация непрерывной доставки Глава 11. Стартовые наборы: с нуля до CD Стартовые наборы: обзор Универсальные задачи пайплайна CD Прототип пайплайна выпуска Прототип пайплайна CI Пайплайны и их инициализация Проект с нуля: переходим к CD Проект Gulpy Проект greenfield: с нуля до CD Первый шаг: выполняется ли сборка? Выбор системы CD Настройка начальной автоматизации Состояние кода: линтинг Состояние кода: юнит-тесты Состояние кода: покрытие Что дальше: публикация Развертывание Расширяем тестирование Задачи для интеграционных и сквозных тестов Завершаем пайплайн CI Окончательные пайплайны проекта Gulpy Унаследованный проект: переход к CD Проект Rebellious Hamster Первый шаг: установление приоритетов для инкрементных целей В первую очередь «болевые точки» «Болевые точки» в проекте Rebellious Hamster Всегда узнавать о сбоях Изолируем код и добавляем тесты Добавление большего количества тестов в унаследованный пайплайн Увеличение степени автоматизации развертывания Создание пайплайна выпуска Пайплайн выпуска Rebellious Hamster Окончательный вид пайплайнов Rebellious Hamster Заключение Итоги Далее Глава 12. Скрипты — это тоже код Онлайн-банк Purrfect Bank Проблемы непрерывной доставки Схема непрерывной доставки в онлайн-банке Purrfect Bank Bash-библиотеки подразделения платежей Пайплайн сервиса транзакций Избавляемся от одного большого скрипта Принципы хорошо спроектированной задачи Разделение гигантской задачи на части Обновленный пайплайн сервиса транзакций Отладка bash-библиотек Исследуем баг в bash-библиотеке Почему появился это баг? Для чего нужен bash Когда bash не подходит Безопасность и скрипты Сравнение языков shell-скриптов и языков общего назначения От языка shell-скриптов к языку общего назначения План перехода От библиотеки bash к задаче с bash-скриптом Многоразовый bash-скрипт внутри задачи Переход от bash к Python Задачи как код Скрипты CD — это тоже код Заключение Итоги Далее Глава 13. Реализация пайплайнов Проект PetMatch Пайплайны CD сервиса подбора соответствий Проблемы пайплайнов CD Пайплайн сквозного тестирования Пайплайн сквозного тестирования и ошибки Finally-логика Концепция Finally в виде графа Принцип Finally в пайплайне сервиса подбора соответствий Пайплайн сквозного тестирования и скорость Параллельное выполнение задач Пайплайн сквозного тестирования и скорость выполнения тестов Параллельное выполнение и шардинг тестов Пайплайн сквозного тестирования с шардингом Пайплайн сквозного тестирования и сигналы Единый пайплайн CI Пайплайн выпуска релизов и сигналы Различия в пайплайнах CI и выпуска релизов Комбинация пайплайнов Пайплайн выпуска релизов Хардкодинг в пайплайне выпуска релизов Повторное использование пайплайна с помощью параметризации Применение повторно используемых пайплайнов Обновленные пайплайны Решение проблем непрерывной доставки в проекте PetMatch Важные особенности непрерывной доставки Заключение Итоги Далее Приложения Приложение А. Системы непрерывной доставки Функциональные возможности систем CD по главам Список функций Argo Workflows CircleCI Система GitHub Actions Google Cloud Build Jenkins Pipeline Tekton Приложение В. Системы контроля версий Системы контроля версий Хостинг системы контроля версий Список функций Bitbucket GitHub GitLab Build and use systems that safely automate software delivery from testing through release with this jargon-busting guide to Continuous Delivery pipelines. In Grokking Continuous Delivery you will learn how Design effective CD pipelines for new and legacy projects Keep your software projects release-ready Maintain effective tests Scale CD across multiple applications Ensure pipelines give the right signals at the right time Use version control as the source of truth Safely automate deployments with metrics Describe CD in a way that makes sense to your colleagues Grokking Continuous Delivery teaches you the design and purpose of continuous delivery systems that you can use with any language or stack. Youll learn directly from your mentor Christie Wilson, Google engineer and co-creator of the Tekton CI/CD framework. Using crystal-clear, well-illustrated examples, Christie lays out the practical nuts and bolts of continuous delivery for developers and pipeline designers. In each chapter, youll uncover the proper approaches to solve the real-world challenges of setting up a CD pipeline. With this book as your roadmap, youll have a clear plan for bringing CD to your team without the need for costly trial-and-error experimentation. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the technology Keep your codebase release-ready. A continuous delivery pipeline automates version control, testing, and deployment with minimal developer intervention. Master the tools and practices of continuous delivery, and youll be able to add features and push updates quickly and consistently. About the book Grokking Continuous Delivery is a friendly guide to setting up and working with a continuous delivery pipeline. Each chapter takes on a different scenario youll face when setting up a CD system, with real-world examples like automated scaling and testing legacy applications. Taking a tool-agnostic approach, author Christie Wilson guides you each step of the way with illustrations, crystal-clear explanations, and practical exercises to lock in what youre learning. What's inside Design effective CD pipelines for new and legacy projects Ensure your pipelines give the right signals at the right times Version control as the source of truth Safely automate deployments About the reader For software engineers who want to add CD to their development process. About the author Christie Wilson is a software engineer at Google, where she co-created Tekton, a cloud-native CI/CD platform built on Kubernetes. Table of Contents PART 1 Introducing continuous delivery 1 Welcome to Grokking Continuous Delivery 2 A basic pipeline PART 2 Keeping software in a deliverable state at all times 3 Version control is the only way to roll 4 Use linting effectively 5 Dealing with noisy tests 6 Speeding up slow test suites 7 Give the right signals at the right times PART 3 Making delivery easy 8 Easy delivery starts with version control 9 Building securely and reliably 10 Deploying confidently PART 4 CD design 11 Starter From zero to CD 12 Scripts are code, too 13 Pipeline design Build and use systems that safely automate software delivery from testing through release with this jargon-busting guide to continuous delivery pipelines.In Grokking Continuous Delivery you will learn how to: Design effective CD pipelines for new and legacy projects Keep your software projects release-ready Maintain effective tests Scale CD across multiple applications Ensure pipelines give the right signals at the right time Use version control as the source of truth Safely automate deployments with metrics Describe CD in a way that makes sense to your colleagues Grokking Continuous Delivery teaches you the design and purpose of continuous delivery systems that you can use with any language or stack. You'll learn directly from your mentor Christie Wilson, Google engineer and co-creator of the Tekton CI/CD framework. Using crystal-clear, well-illustrated examples, Christie lays out the practical nuts and bolts of continuous delivery for developers and pipeline designers. In each chapter, you'll uncover the proper approaches to solve the real-world challenges of setting up a CD pipeline. With this book as your roadmap, you'll have a clear plan for bringing CD to your team without the need for costly trial-and-error experimentation. About the technology Keep your codebase release-ready. A continuous delivery pipeline automates version control, testing, and deployment with minimal developer intervention. Master the tools and practices of continuous delivery, and you'll be able to add features and push updates quickly and consistently. About the book Grokking Continuous Delivery is a friendly guide to setting up and working with a continuous delivery pipeline. Each chapter takes on a different scenario you'll face when setting up a CD system, with real-world examples like automated scaling and testing legacy applications. Taking a tool-agnostic approach, author Christie Wilson guides you each step of the way with illustrations, crystal-clear explanations, and practical exercises to lock in what you're learning. What's inside Design effective CD pipelines for new and legacy projects Ensure your pipelines give the right signals at the right times Version control as the source of truth Safely automate deployments About the reader For software engineers who want to add CD to their development process. About the author Christie Wilson is a software engineer at Google, where she co-created Tekton, a cloud-native CI/CD platform built on Kubernetes. Table of Contents PART 1 Introducing continuous delivery 1 Welcome to Grokking Continuous Delivery 2 A basic pipeline PART 2 Keeping software in a deliverable state at all times 3 Version control is the only way to roll 4 Use linting effectively 5 Dealing with noisy tests 6 Speeding up slow test suites 7 Give the right signals at the right times PART 3 Making delivery easy 8 Easy delivery starts with version control 9 Building securely and reliably 10 Deploying confidently PART 4 CD design 11 Starter packs: From zero to CD 12 Scripts are code, too 13 Pipeline design Build and use systems that safely automate software delivery from testing through release with this jargon-busting guide to continuous delivery pipelines. In Grokking Continuous Delivery you will learn how to: - Design effective CD pipelines for new and legacy projects - Keep your software projects release-ready - Maintain effective tests - Scale CD across multiple applications - Ensure pipelines give the right signals at the right time - Use version control as the source of truth - Safely automate deployments with metrics - Describe CD in a way that makes sense to your colleagues Grokking Continuous Delivery teaches you the design and purpose of continuous delivery systems that you can use with any language or stack. You’ll learn directly from your mentor Christie Wilson, Google engineer and co-creator of the Tekton CI/CD framework. Using crystal-clear, well-illustrated examples, Christie lays out the practical nuts and bolts of continuous delivery for developers and pipeline designers. In each chapter, you’ll uncover the proper approaches to solve the real-world challenges of setting up a CD pipeline. With this book as your roadmap, you’ll have a clear plan for bringing CD to your team without the need for costly trial-and-error experimentation. Build And Use Systems That Safely Automate Software Delivery From Testing Through Release With This Jargon-busting Guide To Continuous Delivery Pipelines. Grokking Continuous Delivery Is A Practical Guide To Implementing And Using Continuous Delivery In Your Software Projects. It’s Full Of Tool-agnostic Best Practices That You Can Apply To Any Software Project, From Libraries To Large Service Applications. You’ll Get A Complete Overview Of All The Pieces Of A Cd Pipeline And Learn How To Fit Them Together For Both New And Legacy Codebases. Grokking Continuous Delivery Teaches You The Design And Purpose Of Continuous Delivery Systems That You Can Use With Any Language Or Stack. You’ll Learn Directly From Your Mentor Christie Wilson, Google Engineer And Co-creator Of The Tekton Ci/cd Framework. Using Crystal-clear, Well-illustrated Examples, Christie Lays Out The Practical Nuts And Bolts Of Continuous Delivery For Developers And Pipeline Designers. Purchase Of The Print Book Includes A Free Ebook In Pdf, Kindle, And Epub Formats From Manning Publications.
دانلود کتاب Грокаем Continuous Delivery