new continous delivery: tales from...

Post on 16-Oct-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

CONTINOUS DELIVERY: TALES FROM WINDOWSLAND

Rachel Laycock (@rachellaycock) ThoughtWorks!

Wednesday, 2 October 13

Johannesburg

Leeds

Wednesday, 2 October 13

Just use linux...

Wednesday, 2 October 13

Continuous Delivery

Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

Wednesday, 2 October 13

releasing frequently

John Allspaw: “Ops Metametrics” http://slidesha.re/dsSZIr

feedback from usersreduce risk of release

Wednesday, 2 October 13

releasing frequentlyfeedback from usersreduce risk of releasereal project progress

Wednesday, 2 October 13

CD is BIG!

Organisational Alignment

Release Management

Architecture Quality Assurance

Continuous Integration

Configuration Management

Data Management

Environments & Deployment

Wednesday, 2 October 13

• Build

• Deploy

• Provisioning Environments

We will talk about...

Wednesday, 2 October 13

Build and Deployment Pipeline

Here Be Dragons!

You are a pretty rubbish dragon slayer

Wednesday, 2 October 13

Build

Wednesday, 2 October 13

basic deployment pipeline

Artifact repository

Source code

Commit stage

CompileCommit tests

AssembleCode analysis

reportsbinariesmetadata

Acceptance stage

Configure environmentDeploy binaries

Smoke testAcceptance tests

Capacity stage

Configure environmentDeploy binaries

Smoke testRun capacity tests

UAT

Configure environmentDeploy binaries

Smoke test

Env & app

config

reportsmetadatabinaries

Production

Configure environmentDeploy binaries

Smoke test

Env & app

config

binariesreportsmetadata

Operationsperform

push-buttonreleases

TestersSelf-servicedeploymentsDevelopers

See code metricsand test failures

Version control

Commit

Wednesday, 2 October 13

Story time

Wednesday, 2 October 13

Team Build:

SCM:Server side merging & no local commits

difficult to adjust build step definitions

no pipeline support

A little story about TFS...

Wednesday, 2 October 13

Compile and unit test

XML == Yuk!

Wednesday, 2 October 13

PowerShell

PSake

Compile and unit test

Code == yay!

Wednesday, 2 October 13

Package

Wednesday, 2 October 13

Deployment

Provisioning boxes

Database migrations

deployments

Wednesday, 2 October 13

Build and Deployment Pipeline

Wednesday, 2 October 13

basic deployment pipeline

Artifact repository

Source code

Commit stage

CompileCommit tests

AssembleCode analysis

reportsbinariesmetadata

Acceptance stage

Configure environmentDeploy binaries

Smoke testAcceptance tests

Capacity stage

Configure environmentDeploy binaries

Smoke testRun capacity tests

UAT

Configure environmentDeploy binaries

Smoke test

Env & app

config

reportsmetadatabinaries

Production

Configure environmentDeploy binaries

Smoke test

Env & app

config

binariesreportsmetadata

Operationsperform

push-buttonreleases

TestersSelf-servicedeploymentsDevelopers

See code metricsand test failures

Version control

Deploy

Wednesday, 2 October 13

• New Kids on the Block!

• MSDeploy

• PowerShell

DeploymentXML == Yuk!

Code == yay!

Tools == yay!

Wednesday, 2 October 13

• cmd line - c’mon!

• One way to package to rule them all!

• So I have to install and configure this through the GUI?

• Package installs - where are you?

Deployment Pain

Wednesday, 2 October 13

• SQL Server & logic in your stored procedures

MOAR PAIN

Provisioning boxes

Database migrations

deployments

Wednesday, 2 October 13

Provision Environments

Provisioning boxes

Database migrations

deployments

Wednesday, 2 October 13

Snowflake serverWednesday, 2 October 13

Story time

Wednesday, 2 October 13

Build and Deployment Pipeline

Wednesday, 2 October 13

basic deployment pipeline

Artifact repository

Source code

Commit stage

CompileCommit tests

AssembleCode analysis

reportsbinariesmetadata

Acceptance stage

Configure environmentDeploy binaries

Smoke testAcceptance tests

Capacity stage

Configure environmentDeploy binaries

Smoke testRun capacity tests

UAT

Configure environmentDeploy binaries

Smoke test

Env & app

config

reportsmetadatabinaries

Production

Configure environmentDeploy binaries

Smoke test

Env & app

config

binariesreportsmetadata

Operationsperform

push-buttonreleases

TestersSelf-servicedeploymentsDevelopers

See code metricsand test failures

Version control

Provision

Environment

Wednesday, 2 October 13

Virtual Machine ImagesDevelopment

Visual StudioSQL Server.NET 4GIT

CI

Go.NET 4GIT

Prod-like

.NET 4SQL Server3rd Party software

Wednesday, 2 October 13

most real systems will be heterogeneous

great for creating production-like test envs, highly parallel testing

cloud is great for utility computing and scaling on demand

use virtualization with Puppet, Chef & PowerShell

virtualization

Wednesday, 2 October 13

Infrastructure as Code

Wednesday, 2 October 13

It looks like you are trying to configure

some servers...

• Proprietary Software

• Remoting• Windows Versions

• Registries

Infrastructure Pain

• Windows Updates

• ISO’s

• CostWednesday, 2 October 13

• Contribute to OpenSource ALT.NET projects

• Don’t be afraid of non-ms tools

• Leverage existing languages

• Just do it!

Now it’s your turn...

Wednesday, 2 October 13

• Maybe we can self select away from proprietary software...

• It can only get better...

• New tools all the time

• Figuring out a problem is the first step to fixing it

Happy endings?

Wednesday, 2 October 13

Questions?

Wednesday, 2 October 13

Resources

• Continuous Delivery, Dave Farley & Jez Humble

• Continuous Integration, Paul Duvall

• Beautiful Builds, Roy Osherove

• Release IT, Michael Nygard

Wednesday, 2 October 13

top related