Continuous Delivery LiveLessons

Continuous Delivery LiveLessons
Continuous Delivery LiveLessons
English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 4h 26m | 1.73 GB

Getting software released to users is often a painful, risky, and time-consuming process. The practice of continuous delivery sets out the principles and technical practices that enable rapid, low-risk delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers and IT operations, teams can get changes released in a matter of hours sometimes even minutes no matter what the size of the product or the complexity of the enterprise environment.

Devops, dev ops, continuous delivery, continuous integration, jez humble, automation, infrastructure as code, architecture, release management, continuous deployment, testing, test automation, unit testing, software configuration management, SCM, agile, agile manifesto, Amazon, Google, Netflix, Netflix OSS, HP, chef

In Continuous Delivery LiveLessons, Jez Humble presents an in-depth guide to the principles and practices behind continuous delivery and the DevOps movement, along with case studies from real companies and ideas to help you adopt continuous delivery and DevOps within your organization. You’ll start by learning the value proposition and the foundations that enable continuous delivery, followed by an introduction to the pattern at the heart of continuous delivery the deployment pipeline. The training then dives into the key development practices of continuous integration and comprehensive test automation. These lessons cover change management, agile infrastructure management, managing databases, architecture, and the patterns that enable low-risk releases. They conclude by discussing the culture and organizational change patterns of high performing companies. After taking this training, you will understand not just the principles and practices that enable continuous delivery and devops, but also how they are implemented in high performing organizations. With this knowledge you’ll be ready to transform your organization’s software delivery capability to get high quality solutions to market fast, while reducing the risk of the release process.

Learn How To

  • Reduce time-to-market for software products, and make releases painless, low-risk events.
  • Increase the quality and stability of the software you delivery, while reducing cost of ongoing software development.
  • Get fast feedback on the production readiness of your application by implementing continuous integration and creating a deployment pipeline.
  • Automate the build, test and deployment processes, including automating database changes and infrastructure provisioning and evolution.
  • Improve collaboration between people involved in delivering software (developers, testers, and systems administrators).
  • Reduce the risk of deployments through effective release management, combined with release engineering techniques such as canary releasing, dark launching, blue-green deployments, and the expand/contract pattern.
  • Manage continuous delivery with large and distributed teams.
  • Architect your software and infrastructure to enable continuous delivery
  • Adopt DevOps principles and practices
  • Transform your organization’s culture and delivery process to enable continuous delivery.

Lesson 1: Introduction to Continuous Delivery
This lesson introduces the key principles and practices at the heart of continuous delivery. It looks at the principles of continuous delivery and its value proposition, followed by a presentation of the core practices that make it work. It then moves on to examine the deployment pipeline, the pattern at the core of continuous delivery, and then presents a case study.

Lesson 2: Automated Acceptance Testing
This lesson dives deep into automated acceptance testing, beginning with a review of the landscape of test automation and proceeding into a discussion of architecture and process that enable effective automated acceptance testing. It then shows how to interact with the system under test and discusses how to curate suites of tests to ensure they are maintainable. Next, it shows how to deal with test failures and how to manage test data. Finally, it summarizes the key principles behind creating maintainable suites of automated acceptance tests.

Lesson 3: Continuous Integration and Feature Branching
This lesson covers continuous integration and feature branching, beginning with an overview of the two practices followed by a discussion of the various trade-offs between the techniques.

Lesson 4: Going Live
This lesson discusses how to release software into production, beginning with a presentation of the expand/contract pattern for immutable deployments. It then follows with a discussion of how to reduce the risk of deployments by decoupling them from releases.

Lesson 5: Managing Data
This lesson covers how to manage evolutionary database change, including continuous integration with databases.

Lesson 6: Devops and Infrastructure as Code
This lesson journeys into the heart of Devops, including a discussion of the key concepts followed by an examination of the core idea of infrastructure-as-code.

Lesson 7: Architecting for Continuous Delivery
This lesson covers how to architect for continuous delivery, beginning with a discussion of componentized and service-oriented architectures. It then shows how to evolve your architecture in order to support continuous delivery.

Lesson 8: Adopting Continuous Delivery
This final lesson is devoted to adopting continuous delivery, beginning with a presentation on the characteristics of high performing organizations and concluding with a discussion on deploying continuous delivery.

Table of Contents

01 Continuous Delivery LiveLessons – Introduction
02 Topics
03 1.1 Principles of Continuous Delivery
04 1.2 The Value Proposition
05 1.3 Key Ingredients of Continuous Delivery
06 1.4 Structure of the Deployment Pipeline
07 1.5 Case Study – HP LaserJet Firmware
08 Topics
09 2.1 Overview of Automated Acceptance Testing
10 2.2 Architecture and Process for Acceptance Tests
11 2.3 Interacting with the System Under Test
12 2.4 Evolving Acceptance Suites
13 2.5 Dealing with Failures
14 2.6 Managing Test Data
15 2.7 Summary
16 Topics
17 3.1 Overview of Continuous Integration
18 3.2 Continuous Integration Trade-offs
19 Topics
20 4.1 An Immutable Approach to Deployment
21 4.2 Decoupling Deployment and Release
22 Topics
23 5.1 Continuous Integration for Databases and Zero Downtime Deployments
24 Topics
25 6.1 Introduction to DevOps
26 6.2 Infrastructure as Code
27 Topics
28 7.1 Modular Architecture and Organizational Design
29 7.2 Evolutionary Architecture
30 Topics
31 8.1 Characteristics of High Performance Organizations
32 8.2 Deploying Continuous Improvement
33 Continuous Delivery LiveLessons – Summary