Slide 1

Slide 1 text

Introduction to DLM (Database Lifecycle Management) Tugberk Ugurlu Redgate Software @tourismgeek http://tugberkugurlu.com #devsummer

Slide 2

Slide 2 text

Agenda • Explaining The Problem • The Stages to DLM with a Real World Demos • Resources • Questions along the way #devsummer

Slide 3

Slide 3 text

Expectations #devsummer

Slide 4

Slide 4 text

Expectations • It’s not about tools. • It’s not only about SQL Server but it’s what I am going to be showing. • Lots of moving parts in action but that’s A-OK. • Something you can apply right away #devsummer

Slide 5

Slide 5 text

Why you should care? • There is no such an app w/o data. • Unlocking the Doors For Continuous Delivery • Fast release cycle • Continuous feedback loop • Tools have historically been primitive • Rolling your own solution is great, but it isn't adding value to your business. #devsummer

Slide 6

Slide 6 text

Problem (Simplest) dbo.Foo dbo.Bar dbo.FooBar dbo.GetBiggest v1.2.0 Dev1 dbo.Foo dbo.Bar dbo.GetBiggest v1.1.0 Production #devsummer

Slide 7

Slide 7 text

Problem (Typical) v1.1.0 Production QA Dev1 v1.2.0 TEST TEST TEST #devsummer

Slide 8

Slide 8 text

Stages to This Hard Problem • S1: Manual: Manual management of all database changes • S2: Source Control • S3: Continuous integration • S4: Release Management #devsummer

Slide 9

Slide 9 text

Source Control • Root solution • Provides Single Source of Truth • All the advantages of Source Control System • Reverting Changes • Review • Etc. #devsummer

Slide 10

Slide 10 text

DEMO SQL Source Control and Git #devsummer

Slide 11

Slide 11 text

Continuous Integration • Ensuring the Schema Health • Testing #devsummer

Slide 12

Slide 12 text

DEMO TeamCity and SQL CI #devsummer

Slide 13

Slide 13 text

Release Management #devsummer • All about Automating Database Releases • Providing Review Process • Insight on the Changes • Warnings • Script • Being on the safe side

Slide 14

Slide 14 text

DEMO Octopus Deploy and SQL Release #devsummer

Slide 15

Slide 15 text

Monitoring #devsummer • Two Sides • Performance • State, History • Keeping track of what happened • Knowing what the current state • Catching the out of process changes

Slide 16

Slide 16 text

DEMO DLM Dashboard #devsummer

Slide 17

Slide 17 text

Going Further • Migrations Based Approach • Typical Integration Testing/QA/Staging/Production loop • Zero Downtime Deployments • Deploying to Multiple Database (e.g. Multi-tenant Applications) • Catastrophic Cases (Unhealthy Releases, etc.) #devsummer

Slide 18

Slide 18 text

Resources • Demo Source Code: https://github.com/british-proverbs/british-proverbs-sql- source-control • DLM Automation Suite: http://www.red-gate.com/products/dlm/dlm- automation-suite/ • Octopus Deploy: https://octopusdeploy.com/ • ReadyRoll: http://ready-roll.com/ • TeamCity: https://www.jetbrains.com/teamcity/ • DLM Dashboard: http://www.red-gate.com/products/dlm/dlm-dashboard • Continuous Delivery for Databases by Alex Yates: https://vimeo.com/131637362 #devsummer