DevOps your DB

Is your company on the DevOps journey and you feel left behind looking after databases?
Are your Dev teams trying to push continuous integration and delivery but breaking the database?

This seminar covers the core skills to adopting a Dev Ops practice for your database having a Database Lifecycle Management (DLM) process using SQL Server Data tools (SSDT) and other industry tools:
  • Putting your database under source control
  • Testing your database
  • Deploying your database
  • Managing reference/static data
  • Doing this across multiple environments in a release pipeline
This is a hands on lab where you will can either bring your own database or you can use one of our samples. By the end of the day you will have
  • put that database in source control
  • created tests to validate your code
  • created a continuous integration build that packages your database
  • created a release pipeline
  • deploys it to a test environment and runs your tests 
  • Released your database to a production like environment
Why should I attend

Do you have one or more databases that you want to control. That means being able to
  • Create the database from scratch
  • Manage the database operationally including static data
  • Upgrade that database without manual intervention
Do your developers have continuous integration for code but the database is an afterthought?

Do you have to edit upgrade scripts for each environment you run them in?

Do your development teams provide upgrade scripts that:
  • don’t work in all environments?
  • don’t take into account
  • forget production has 1 billion rows?
  • just don’t work full stop
  • need to be run at 5am
  • would bring down your site if run on production
If any of the above are true, then you need to implement Database Lifecycle Management (DLM), aka Continuous Integration (CI) and Deployment (CD) for databases.

Breakdown of Content

Dev Ops as a practice is a process that when implemented enables you to prevent all the problems described above, by the virtue of controlled, reliable, repeatable set of processes, which if you choose to, can be automated.

We will be looking at the different approaches for managing your database including gold schema and upgrade scripts (migrations). The pros and cons of each and how these interact with common development practices such as NHibernate or Entity Framework. Anyone that’s tried this will attest, its often not as simple as scripting all your database objects and deploying them.

We will cover the common gotchas of the different approaches and will recommend tried and tested solutions for each of them. As well as covering the different stages we will cover the tooling available to you for each stage.

What you will learn:

  • Why DevOps is important?
  • How it can reduce risk rather than create risk
  • What can make DevOps worse for risk
  • The core principals of DevOps Pipelines
  • Migrations
  • Desired State Configuration
  • Your options for each area of Data Platform (SQL, SSIS, SSAS, AS)
  • What the different tools are
  • How to put your DB into source control
  • Building and deploying locally
  • Creating a pipeline to build and deploy in CI
  • Create a test for your DB code
  • How to manage common challenges such as SQL Agent, Static Data, Logins, Refactoring, Data Fixing 
  • Build a pipeline for your DB

Prerequisites

We will use PowerShell so knowing the basics of PowerShell
Understand how to navigate around Visual Studio is useful

What to bring

If you want to try to follow on your laptop or you want to get your DB into source control

  • A laptop with Visual Studio 2015 or 2017, SSMS & a local SQL Server Instance
  • Your database/server scripted (we can provide a sample database if you cannot obtain this)
  • Lots of questions.

Speakers

Thursday 22 February 2018