casestudy: continuously delivering fitness with redgate dlm

32
Continuously Delivering Fitness with Redgate DLM Jon Forster & James Smith Fitness First & DevOpsGuys #SQLintheCityUK

Upload: red-gate-software

Post on 08-Feb-2017

301 views

Category:

Software


0 download

TRANSCRIPT

Continuously Delivering

Fitness with Redgate DLM

Jon Forster & James Smith

Fitness First & DevOpsGuys

#SQLintheCityUK

Get in touch

https://uk.linkedin.com/pub/jon-

forster/8/a90/848

[email protected]

@twitter

Jon Forster, Fitness First

#SQLintheCityUK

What Am I Telling You Today?

• ‘Step change’ of Fitness First hosting and

development pipeline

• Manual to automation

• Standardisation ‘as the norm’

• Industry leading toolset

16 countries, 1 million members

• 24 x 7 x 365

The journey

Business Requirement

• Consistency

• Speed from concept to delivery

• Reduced cost

• Less errors

IT Strategy

• Industry leading toolset

• Standardisation of environments

• Automation

• Simplicity of process

• Less moving parts

• Transparency

The process

• Old, physical hardware

• Windows 2003, SQL 2005

• Bespoke toolset

• Manual, slow dev’ pipeline

• Old technologies

• Hyper-Converged hardware

• Windows 2012, SQL 2014

• Industry leading toolset

• Dev Ops process

• Modern technologies

The Challenge – A ‘Step Change’

• New technologies

• New skills

• Timescales

• Needed– A trusted partner

– Decisions and not 1,000 options

– The right toolset

What Is Now Delivered?

• Simplified

• Flexible

• Better TCO

• Faster

• Controlled

• Automated

The pipeline

The Database Problem

• “Regression testing 3 branches of code

across 16 countries – is easy right?”

• Jon Forster, Fitness First

Get in touch

blog.devopsguys.com

[email protected]

@theDevMgr

James Smith, DevOpsGuys

#SQLintheCityUK

Why?

• Reduce time-to-market

• Reduce overall cost of change

• Standardise processes across the

organisation

Challenges

• Multiple markets which require different data setup and config.

Maturity?

• Testing

Automated unit and acceptance tests, the latter written with testers. Testing part of development process.

Data Management

Database changes performed automatically as part of deployment process.

So maturity was good?• Level 3 – Optimizing: focus on process improvement

• Level 2 – Managed: Process measured and controlled

• Level 1 – Consistent: Automated processes applied across whole lifecycle

• Level 0 – Repeatable: Process documented and partly automated

• Level -1 – Regressive: process unrepeatable, poorly controlled and reactive

But….

• Integration, regression and feature

regression tests process was brittle.

Integration tests

Binary backup in

source control

Restore

Integration database

withtest data

Test Execution

TestResults

Patch

Upgradedready

fortesting

Regression tests

Test database per country, plus feature test databases1:3 ratio

Test databasePer country

Featuretests

Branch you say!

Featuretests

X 3Branches

128 databases!

Brittle?

• A single change to the database required

hundreds of databases to be patched.

• Impossible to track without tracing back to

the migration scripts that were normally

committed separately by the development

team.

Our engineers!

Photo Credit: http://cache.lego.com/r/www/r/movie/-/media/franchises/the%20lego%20movie/explore/downloads/wallpapers/lego_wps_1600_emmet.jpg?l.r=-1410608028

A new way was needed

• A major change to the way Fitness First

build and deploy their software has been

the integration of Redgate's DLM

Automation Suite.

Source Control

• Took a backup of the production database

and put this under source control using

Redgate source control.

Continuous Integration

• Extended the build process to compile and

validate the schema using TeamCity and

Redgate's SQL CI

Release Management

• Deployments made with Octopus Deploy

and Redgate's SQL Release to the various

environments

Data

• Final optimisation was to have the data

under source control.

• Allowed us to seed the database with the

required data as part of the deployment

process for target environment.

The pipeline

The pipeline

Benefits

• Testers were no longer responsible for

making changes to database.bak files.

• Gave both developers and testers visibility

of the changes being made to the data in

order to support the tests

Benefits

• Gave us a single schema to build out

databases for the various environments.

• A single source to maintain

– Most importantly!

End result

Questions