Bringing DevOps to the Database

Slides:



Advertisements
Similar presentations
HIGH PERFORMANCE CONTINUOUS DELIVERY VERSIONING AND RELEASE MANAGEMENT ALIGNED.
Advertisements

Continuous Integration for Databases Learn how to automate your build and test Steve Jones Red Gate Software Part II of the Continuous Delivery for Databases.
Michael Hüttermann Agile, SCM/ALM, DevOps, Continuous Delivery CON Database DevOps with MySQL.
& Dev Ops. Sherwin-Williams & DevOps Introduction to Sherwin-Williams.
Perforce Software Version Everything.. Visual Studio Industry Partner Perforce Software NEXT STEPS Contact us at: Perforce products.
Anubha Gupta | Software Engineer Visual Studio Online Microsoft Corp. Visual Studio Enterprise Leveraging modern tools to streamline Build and Release.
Infrastructure as code. “Enable the reconstruction of the business from nothing but a source code repository, an application data backup, and bare metal.
Release Management with Visual Studio Team Services
Continuous Integration for Databases Steve Jones SQLServerCentral Red Gate Software.
Get testing with tSQLt Practical examples and automation Steve Jones SQLServerCentral Red Gate Software.
Declarative Configuration Management with Azure Automation DSC and ARM Nathan Lasnoski Vice President of blog.concurrency.com Concurrency.
Avoiding the Pitfalls of Database Change Automation Cindy Bean Sr. Software Consultant DBmaestro SQLSaturday #514 – Houston, May 14, 2016.
Continuous Integration for Databases Steve Jones SQLServerCentral Red Gate Software.
Microsoft Virtual Academy
DevOps for the IT Pro with Azure and Visual Studio Team Services
Version Control for PL/SQL
Automated Build and Test
Bringing DevOps to the Database
DevOps; a Tester’s best friend
Agenda:- DevOps Tools Chef Jenkins Puppet Apache Ant Apache Maven Logstash Docker New Relic Gradle Git.
Continuous Delivery- Complete Guide
Microsoft Virtual Academy
Bringing DevOps to the Database
Владимир Гусаров Директор R&D, Dell Visual Studio ALM MVP ALM Ranger
Microsoft Virtual Academy
DevOps Projects, assignments, lifecycle management, configuration
Application Lifecycle Management – Best Practices for SharePoint and Office App development November 2015.
Bringing DevOps to the Database
6 Principles of the GDPR and SQL Provision
Continuous Integration For Databases
Get Good at DevOps: Feature Flag Deployments with ASP
Klopotek is transitioning to a Global Organization
Automated Testing and Integration with CI Tool
Introduction to DevOps
Visual Studio Database Tools (aka SQL Server Data Tools)
TechEd /3/2018 8:11 AM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Bringing DevOps to the Database
End to End Security and Encryption in SQL Server
12/26/2018 1:44 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Delivering Business Value Faster
Real World Scrum with TFS & VSTS / Azure DevOps
Your code is not just…your code
Paul S Waters Getting Git.
Presented by : Chirag Dani & Dhaval Shah
CONTINUOUS INTEGRATION –WHY WE DO IT?
Introduction to VSTS Database Professional
Delivering Business Value Faster
The Ops side of DevOps Manager Microsoft
TechEd /7/2019 1:14 AM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
HCL’s Viewpoint – DevOps on MS Cloud
DEVOPS & THE FUTURE OF TESTING
Node.js Test Automation using Oracle Developer Cloud- Simplified
Keeping your SQL Code safe
Office 365 Development July 2014.
Erik Vollebekk Application Architect
Adopting a Compliant Database DevOps Process
The Future of Database Development
Adopting a Compliant Database DevOps Process
Scott Sauber Slides up at scottsauber.com
The Future of Database Development
Azure DevOps Simplified with Production Data
Continuous Integration and Delivery (CI/CD) in Azure Data Factory
Dev-Sec-Ops Jose Alvarez DevSecOps Engineer & Evangelist
Azure DevOps Integration
Applying 3C DevOps approach in Mobility World
Your code is not just…your code
Michael Stephenson Microsoft MVP - Azure
The Future of Database Development (with containers)
Samir Behara, Senior Developer, EBSCO
Thanks to our Sponsors Platinum Sponsor: Gold Sponsors:
Presentation transcript:

Bringing DevOps to the Database Steve Jones SQLServerCentral Redgate Software DevOps is a hot topic in today’s software development world. However most of the knowledge and experience with DevOps is based around application software and ignores the database. We will examine how the concepts and principles of DevOps can be applied to database development by looking at both automated comparison analysis as well as migration script management. Automated building, testing, and deployment of database changes will be shown.

Agenda Who am I? What is DevOps? The DevOps Software Development Pipeline Principles of DevOps Evolving Database Development

Who am I? Steve Jones www.voiceofthedba.com @way0utwest /in/way0utwest SQLServerCentral founder Redgate Software Evangelist www.voiceofthedba.com sjones@sqlservercentral.com @way0utwest /in/way0utwest

What is DevOps? Grew out of the Agile movement Velocity ‘09 – 10+ Deploys Per Day: Dev and Ops Cooperation at Flickr Is not Agile (or Scrum or Lean or Kanban) Is an amalgamation of various ideas and principles that describe how to better build software.

The Three Ways Principles underlying DevOps from Gene Kim Systems Thinking Amplify Feedback Loops Culture of Experimentation and Learning

What is DevOps? “DevOps is the union of people, process, and products to enable continuous delivery of value to our end users.” - Donovan Brown

Seven Key DevOps Practices Configuration Management Release Management Continuous Integration Continuous Deployment Infrastructure as Code Test Automation Application Performance Monitoring

Seven Key DevOps Habits Team Autonomy and Enterprise Alignment Rigorous Management of Technical Debt Focus on Flow of Customer Value Hypothesis Driven Development Evidence Gathered in Production Live Site Culture Manage Infrastructure as a Flexible Resource

DevOps in Practice Automation Testing Continuous Integration Continuous Delivery Testing Should be automated Measurement and Tracking/Auditing Logging in the application/database Monitoring and baselining Communication Transparency Sharing

The Application Development Pipeline Operations Continuous integration QA Build Production Trigger Test Staging Sync Report Beta Publish Artifact repository

The Database Development Pipeline Operations Continuous integration QA Build Production Trigger Test Staging Shared Sync Report Beta Publish Artifact repository

The Database Development Pipeline Operations Continuous integration QA Build Production Trigger Test Staging Shared Sync Report UAT Publish Artifact repository

The Application Development Pipeline Operations Continuous integration QA Build Production Trigger Test Staging Sync Report Beta Publish Artifact repository

The Database Development Pipeline Operations Continuous integration QA Build Production Trigger Test Staging Shared Sync Report Beta Publish Artifact repository

Evolving Database Development Version Control Options for database DDL and DML Scripting – SMO in SQL Server Third Party Tools File | Save VCS Organization Can be same repo or separate repo Keep code separated Use Pull Requests like other code

Demo Store database code in a VCS

Database Continuous Integration Use a Build Server TFS Build, Bamboo, Team City, Cruise Control, Jenkins, whatever Database Build Pull code from VCS Execute code (in order) on a database Database Testing Use a framework (next slide) Publish Generate an Upgrade Script for an existing database (coming soon)

Database Testing For SQL Server tSQLt Microsoft Unit Testing Projects DBUnit TSQLUnit Custom scripted tests * For best results, use curated test data

Demo Implement Continuous Integration

Generate the Update Script For code (stored procedures, functions, views, modules, etc.) Take latest version from VCS For tables Use Comparison or migration scripts to make changes. Tools Comparison tools (SQL Compare, etc) Migration Tools (ReadyRoll, FlywayDB, Liquibase, etc)

Deploy the Code Use a consistent process Use automation where you can, use manual steps (documented) where you cannot Slowly and continuously improve the process Use a Release Management Server Octopus Deploy TFS Bamboo

Release Issues Rollback Environment Data For code (views, procs, functions) – Deploy the previous version For tables – Need custom code In general, I am a fan of dark deploys and roll forward Environment Data Data that varies by environment (queue names, security, etc) Script and deploy with deploy once scripts Use tokens where possible and store config data in the environment

Demo Release to Downstream Environments

Summary Understand and implement the DevOps principles Systems Thinking Feedback Loops Experimentation and Learning Treat the database like application code Build the exceptions into your process Adapt to your environment Do more of what works Do less of what doesn’t

The End www.voiceofthedba.com sjones@sqlservercentral.com @way0utwest Thank you for coming Questions? More product info at http://www.red-gate.com/products/dlm/ Training: red-gate.com/training www.voiceofthedba.com sjones@sqlservercentral.com @way0utwest /in/way0utwest

References You’re Doing DevOps Wrong - https://techcrunch.com/2016/07/04/youre-doing-devops-wrong/ Codifying DevOps Practices - http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/ 3 DevOps Principles to Apply to Your IT Team - http://blogs.atlassian.com/2015/09/3-key-devops-principles- apply-team/ DevOps Distilled, Part 1: http://www.ibm.com/developerworks/library/se-devops/part1/index.html Closing the Gap Between Database Continuous Delivery and Code Continuous Delivery http://devops.com/2014/11/19/closing-gap-database-continuous-delivery-code-continuous-delivery/ Where’s the Database in DevOps - https://www.red-gate.com/library/wheres-the-database-in-devops How do Databases Fit into DevOps - https://blog.devopsguys.com/2015/02/19/how-do-databases-fit-into- devops/

Images https://coupongy.files.wordpress.com/2013/06/scratching-head3.gif http://sipsoftlogic.com/qa-testing/ http://www.qahipster.com/uploads/8/1/4/4/8144013/417638_orig.gif https://commons.wikimedia.org/wiki/File:Server-blades.svg http://sethkravitz.com/wp-content/uploads/2016/01/culture.jpg http://cdn.electric-cloud.com/wp-content/uploads/2015/04/end_to_end_automation.jpeg https://media.licdn.com/mpr/mpr/p/6/005/0b0/1ca/3876971.jpg http://studyjams.scholastic.com/studyjams/assets/jams/math/measurement/image.jpg http://static1.squarespace.com/static/50e6cb55e4b0404f376ac3a9/t/51001a3ce4b0479a8076a5da/1358961213093/feedback.png https://www.govloop.com/blogs/4001-5000/4920-Experiment.gif http://onlinelearningtips.com/wp-content/uploads/2014/04/worlde-online-learning.gif http://successagency.com/blog/wp-content/uploads/2014/05/5.-Communication-gif.gif https://elizajanee.files.wordpress.com/2015/03/tumblr_n652boc6hf1rpfx57o1_400.gif http://cdn2.totallythebomb.com/wp-content/uploads/2011/09/stopsign.gif http://threesixtysafety.com/wp-content/uploads/effective-communication.jpg http://www.millenniumrecycling.com/wp-content/uploads/2015/01/Process-Gif.gif