Save 37% off PRO during our Black Friday Sale! »

Introduction to DLM (Database Lifecycle Management)

Introduction to DLM (Database Lifecycle Management)

Introduction to DLM (Database Lifecycle Management) Talk on /dev/summer 2015, Cambridge, UK


Tugberk Ugurlu

June 27, 2015


  1. Introduction to DLM (Database Lifecycle Management) Tugberk Ugurlu Redgate Software

    @tourismgeek #devsummer
  2. Agenda • Explaining The Problem • The Stages to DLM

    with a Real World Demos • Resources • Questions along the way #devsummer
  3. Expectations #devsummer

  4. 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
  5. 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
  6. 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
  7. Problem (Typical) v1.1.0 Production QA Dev1 v1.2.0 TEST TEST TEST

  8. Stages to This Hard Problem • S1: Manual: Manual management

    of all database changes • S2: Source Control • S3: Continuous integration • S4: Release Management #devsummer
  9. Source Control • Root solution • Provides Single Source of

    Truth • All the advantages of Source Control System • Reverting Changes • Review • Etc. #devsummer
  10. DEMO SQL Source Control and Git #devsummer

  11. Continuous Integration • Ensuring the Schema Health • Testing #devsummer

  12. DEMO TeamCity and SQL CI #devsummer

  13. Release Management #devsummer • All about Automating Database Releases •

    Providing Review Process • Insight on the Changes • Warnings • Script • Being on the safe side
  14. DEMO Octopus Deploy and SQL Release #devsummer

  15. Monitoring #devsummer • Two Sides • Performance • State, History

    • Keeping track of what happened • Knowing what the current state • Catching the out of process changes
  16. DEMO DLM Dashboard #devsummer

  17. 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
  18. Resources • Demo Source Code: source-control • DLM Automation

    Suite: automation-suite/ • Octopus Deploy: • ReadyRoll: • TeamCity: • DLM Dashboard: • Continuous Delivery for Databases by Alex Yates: #devsummer