How do you implement Continuous Delivery? Part 3: All about Pipelines
Upcoming SlideShare
Loading in...5
×
 

How do you implement Continuous Delivery? Part 3: All about Pipelines

on

  • 1,331 views

In Part 3 of our series on putting CD into practice, we explore setting up a pipeline for progressive testing and various pipeline design patterns.

In Part 3 of our series on putting CD into practice, we explore setting up a pipeline for progressive testing and various pipeline design patterns.

Statistics

Views

Total Views
1,331
Views on SlideShare
1,273
Embed Views
58

Actions

Likes
0
Downloads
19
Comments
0

3 Embeds 58

http://info.thoughtworks.com 50
https://eu-e.marketodesigner.com 7
https://www.linkedin.com 1

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

How do you implement Continuous Delivery? Part 3: All about Pipelines How do you implement Continuous Delivery? Part 3: All about Pipelines Presentation Transcript

  • HOW DO YOU IMPLEMENT CONTINUOUS DELIVERY? Part 3: All about Pipelines Share this ebook. PERSPECTIVES
  • PIPELINE FOR PROGRESSIVE TESTNG 2
  • With CD, every build is a release candidate Pipeline for Progressive Testing 
  • The Testing Pyramid Pipeline for Progressive Testing Faster Feedback Broader Scope
  • The Testing Pyramid Pipeline for Progressive Testing The Delivery Pipeline Faster Feedback Broader Scope Faster Feedback Increasing Confidence
  • The system being developed Pipeline for Progressive Testing Application A Application B Other Services
  • The system being developed Pipeline for Progressive Testing Application A Application B Other Services Unit Tests Each unit test covers one app component
  • The system being developed Pipeline for Progressive Testing Unit Tests Other components are stubbed Each unit test covers one app component
  • Pipeline for Progressive Testing Unit Tests The first stage of the pipeline runs the unit tests
  • Pipeline for Progressive Testing Integration tests cover a group of related components within the application Integration Tests
  • Pipeline for Progressive Testing Application tests cover an application running in a container, mocking connections to other applications Application Tests
  • Pipeline for Progressive Testing System tests cover the set of applications developed by the team, running together, mocking connections to external services System Tests
  • Pipeline for Progressive Testing System integration tests exercise all parts of the system, including external dependencies System Integration Tests
  • PIPELINE FOR DESIGN PATTERNS 14
  • Application Pipeline Automated tests Automated tests Automated tests Tested Build Manual tests Live Unattended Process One-click deployments Pipeline Design Pattern Typical pipeline stages
  • Typical Commit Stage Commit Stage 1. Developer commits code to SCM Pipeline Design Pattern Typical pipeline stages
  • Typical Commit Stage Commit Stage 1. Developer commits code to SCM 2. Build server checks out & compiles code Pipeline Design Pattern Typical pipeline stages
  • Typical Commit Stage Commit Stage 1. Developer commits code to SCM 2. Build server checks out & compiles code 3. Unit tests Pipeline Design Pattern Typical pipeline stages
  • Typical Commit Stage Commit Stage 1. Developer commits code to SCM 2. Build server checks out & compiles code 3. Unit tests 4. Code analysis Pipeline Design Pattern Typical pipeline stages
  • Typical Commit Stage Commit Stage 1. Developer commits code to SCM 2. Build server checks out & compiles code 3. Unit tests 4. Code analysis 5. Create build artefact Pipeline Design Pattern Typical pipeline stages
  • Pipeline Design Pattern Typical Deployment Testing Stage Typical pipeline stages Deployment Testing Stage 1. Prepare environment
  • Pipeline Design Pattern Typical Deployment Testing Stage Typical pipeline stages Deployment Testing Stage 1. Prepare environment 2. Retrieve artefact
  • Pipeline Design Pattern Typical Deployment Testing Stage Typical pipeline stages Deployment Testing Stage 1. Prepare environment 2. Retrieve artefact 3. Deploy
  • Pipeline Design Pattern Typical Deployment Testing Stage Typical pipeline stages Deployment Testing Stage 1. Prepare environment 2. Retrieve artefact 3. Deploy 4. Smoke Test
  • Pipeline Design Pattern Typical Deployment Testing Stage Typical pipeline stages Deployment Testing Stage 1. Prepare environment 2. Retrieve artefact 3. Deploy 4. Smoke Test 5. Automated UI tests
  • Pipeline Design Pattern Other pipeline stages Typical pipeline stages  Performance testing  Security testing  Exploratory testing  User acceptance testing
  • Pipeline Design Pattern Best practices for pipeline stages Typical pipeline stages Keep everything in source control Only build artefacts once Replicate production constraints Deploy the same way every time Keep it simple, implement only those stages that make sense for your system
  • Pipeline Design Pattern Build Progression Typical pipeline stages Pipeline progression 101
  • Pipeline Design Pattern Build Progression Typical pipeline stages Pipeline progression r101 If tests fail, work stops until the issue is resolved
  • Pipeline Design Pattern Build Progression Typical pipeline stages Pipeline progression r101 The fix is committed, and a new build goes through the pipeline from the beginning r102
  • Pipeline Design Pattern Build Progression Typical pipeline stages Pipeline progression r101 Multiple builds may go through test without being deployed to production r102 r103
  • Pipeline Design Pattern Build Progression Typical pipeline stages Pipeline progression r101 Deployment to production r102 r103 r104
  • Pipeline Design Pattern Joining multiple applications Typical pipeline stages Pipeline progression Joining multiple applications Application A Application B Application Testing Complete Application Testing Complete
  • Pipeline Design Pattern Joining multiple applications Typical pipeline stages Pipeline progression Joining multiple applications Application A Application B Application Testing Complete Application Testing Complete Integration Testing If tests fail for application A, application B can still proceed using the last “good” version of A LIVE
  • Pipeline Design Pattern Federated pipelines Typical pipeline stages Pipeline progression Joining multiple applications Pre-release testing Provider Provider team could host instances for testing… Consumer
  • Pipeline Design Pattern Federated pipelines Typical pipeline stages Pipeline progression Joining multiple applications Pre-release testing Provider Provider team could host instances for testing… Consumer LIVE Consumer contract tests …or provide packages for deployment by the Consumer team
  • AUTOMATED TESTING 37 Stay tuned for part 4
  • LEARN MORE Deploy a great product faster. Agile teams deliver working software early and often. Go automates and streamlines the build-test- release cycle for worry-free, continuous delivery of your product. Share this ebook. Visit our Continuous Delivery Channel for more posts like this.