Agile Database Development and Zero Downtime Deployments

Slides:



Advertisements
Similar presentations
© 2008 OSIsoft, Inc. | Company Confidential Event Frames Initiative Update Chris Nelson Chris Coen Chris Nelson Chris Coen.
Advertisements

By: Lloyd Albin 11/6/2012. Serials are really integers that have a sequence attached to provide the capability to have a auto incrementing integer. There.
System Administration Accounts privileges, users and roles
Chapter 4 Relational Databases Copyright © 2012 Pearson Education, Inc. publishing as Prentice Hall 4-1.
Chapter 4 Relational Databases Copyright © 2012 Pearson Education 4-1.
VA Pain Coach (VPC) Mobile Applications (Apps) Phase Two (MAP2)
DAY 15: ACCESS CHAPTER 2 Larry Reaves October 7,
UNIT TESTING FOR SQL Prepared for SUGSA CodeLabs Alain King Paul Johnson.
RDB/1 An introduction to RDBMS Objectives –To learn about the history and future direction of the SQL standard –To get an overall appreciation of a modern.
Sofia, Bulgaria | 9-10 October SQL Server 2005 High Availability for developers Vladimir Tchalkov Crossroad Ltd. Vladimir Tchalkov Crossroad Ltd.
Course materials may not be reproduced in whole or in part without the prior written permission of IBM. 5.1 © Copyright IBM Corporation 2008 DB2 9 Fundamentals.
Triggers A Quick Reference and Summary BIT 275. Triggers SQL code permits you to access only one table for an INSERT, UPDATE, or DELETE statement. The.
Database Agility Pramod Sadalage ThoughtWorks. © ThoughtWorks, Inc.© Agile.Database:// Introduction The Traditional Database Continuous changes.
Module 4 Designing and Implementing Views. Module Overview Introduction to Views Creating and Managing Views Performance Considerations for Views.
SQL Basic. What is SQL? SQL (pronounced "ess-que-el") stands for Structured Query Language. SQL is used to communicate with a database.
1 © 2010 Julian Dyke Edition-Based Redefinition Julian Dyke Independent Consultant juliandyke.com Web Version.
Shyam Varan Nath President, Oracle BIWA SIG Session #464 April 17, AM-12 noon Database Development Best Practices: Supporting Agile/Extreme Programming.
BEHAVIOR DRIVEN TEST DEVELOPMENT Specification by Example.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 9 Database Triggers.
Transactions, Roles & Privileges Oracle and ANSI Standard SQL Lecture 11.
Constraints and Views Chap. 3-5 continued (7 th ed. 5-7)
Kanban Advanced Software Engineering Dr Nuha El-Khalili.
BTM 382 Database Management Chapter 8 Advanced SQL Chitu Okoli Associate Professor in Business Technology Management John Molson School of Business, Concordia.
SQL Basics Review Reviewing what we’ve learned so far…….
Views / Session 3/ 1 of 40 Session 3 Module 5: Implementing Views Module 6: Managing Views.
Agenda for Today  DATABASE Definition What is DBMS? Types Of Database Most Popular Primary Database  SQL Definition What is SQL Server? Versions Of SQL.
SQL IMPLEMENTATION & ADMINISTRATION Indexing & Views.
HPE ALM Octane.
Trigger used in PosgreSQL
Visual Studio Database Tools (aka SQL Server Data Tools)
Katowice,
CS320 Web and Internet Programming SQL and MySQL
Managing Privileges.
Managing Privileges.
Creating Database Triggers
Active Database Concepts
Instructor: Jason Carter
CSCI 52– Introduction to SQL Fall 2016
Functions of a Database Management System
Introduction To Database Systems
COMP 430 Intro. to Database Systems
Chapter 4 Relational Databases
Triggers Creating Triggers (Statement level and Row LEVEL)
Transactional Replication A Deeper Dive Drew Furgiuele, Senior DBA IGS
X in [Integration, Delivery, Deployment]
Principles of report writing
Instant Add Columns in MySQL
Agile Database Development and Zero Downtime Deployments
Johanna Rothman Agile Team Measurements Chapter 12
SQL 101.
STRUCTURED QUERY LANGUAGE
Prove to your boss your database is sound - Unit Testing with tSQLt
Visual Studio Database Tools (aka SQL Server Data Tools)
Software Testing and Maintenance Maintenance and Evolution Overview
Table Partitioning Intro and make that a sliding window too!
Oracle9i Developer: PL/SQL Programming Chapter 8 Database Triggers.
SSDT and Database Project Basics
Table Partitioning Intro and make that a sliding window too!
CS3220 Web and Internet Programming SQL and MySQL
Table Partitioning Intro and make that a sliding window too!
Dynamic Sql Not so scary?
Prof. Arfaoui. COM390 Chapter 9
CS3220 Web and Internet Programming SQL and MySQL
Using Columnstore indexes in Azure DevOps Services. Lessons learned
Using Columnstore indexes in Azure DevOps Services. Lessons learned
Tcl Package for Sqlite3 database schema migration
Responding to Data Manipulation Via Triggers
Samir Behara, Senior Developer, EBSCO
Implementing ETL solution for Incremental Data Load in Microsoft SQL Server Ganesh Lohani SR. Data Analyst Lockheed Martin
Presentation transcript:

Agile Database Development and Zero Downtime Deployments Jeff Reinhard Agile Database Development and Zero Downtime Deployments

About Me Jeff Reinhard 25 years of database development experience @SQLMajor Employment Highlights: Ernst & Young Internet Security Systems/IBM AirWatch WebMD CheckFree

What is the problem? Front end development has gone agile Pace of business demands is brisk Waterfall process just no longer works Companies no longer tolerate “12 hour” downtimes No more waiting 6+ months for next release

What happens on Deployment Day? timestamp is the synonym for the rowversion data type and is subject to the behavior of data type synonyms. In DDL statements, use rowversion instead of timestamp wherever possible. Also, Big indexes.

What changes are needed? Add new features while maintaining backward compatibility Enable the database to support multiple versions of the application This allows deploying changes in advance of version switch over WITHOUT an outage Development approach in step with agile

What is Agile?

What is this agile thingy? Just to visit briefly, some of the key concepts Done in small iterations (sprints), 1-4 weeks duration, usually 2 or 3 Working software after every sprint Any sprint could be deployed to production

How to become database agile Complete working code every sprint Database code may be ready ahead of UI code to use it Some changes may need to support transition periods Test Driven Development will help increase quality

What is the Dev DBA? (DataBase Agile)!

How to do Zero Downtime Deployments All changes are made in small units of work to unsure that each change is: Uniquely identified Easily refactored or changed as needed only affecting a small amount of work Transition periods are properly supported The period of supporting both states, and The update to terminate the support of the starting version Test driven development Stored Procedure versioning Strict adherence to the refactoring type methodologies Most adds and drops don’t require an actual “transition period”

Refactoring Types By strictly following the methodology of each refactoring type, agile and zero downtime deployments are possible. Here are some of the at least 35 types: Drop Column Drop View Drop Table Merge Columns Merge Tables Move Column Rename Column Rename Table Rename View Replace Column Split Column Split Table Add Lookup Table Drop Default value Drop FK constraint Add Calculated Column Add Surrogate Key

Some refactoring types in detail Move Column Details: Original schema, Column in Table A Change to move to Table B During Transition period Leave column in Table A Add Column in Table B Add trigger in Table A to update table B Add trigger in Table B to update table A Stored Procedure versioning, old uses Table A, new uses Table B After Transition Period Drop column from Table A Drop trigger from Table and A & B Drop old version procedures Split Column Details: Original schema, Name Column Change to FirstName and LastName During Transition period Leave Name column Add Column FirstName and LastName Add trigger to update FirstName and LastName from Name Stored Procedure versioning, old uses name, new uses FirstName and LastName After Transition Period Drop Name column Drop trigger Drop old version procedures

Zero Downtime Deployment Time Line

Demonstration

References Many theories from: Scott W. Ambler & Pramod J. Sadalage (2006) Refactoring Databases: Evolutionary Database Design Boston, MA: Addison-Wesley

Questions and Answers