Database Build and Release will get started soon



Similar documents
Beginner s guide to continuous integration. Gilles QUERRET Riverside Software

Beginners guide to continuous integration. Gilles QUERRET Riverside Software

WHITEPAPER. Solving database deployments with Database Lifecycle Management

Continuous Integration and Delivery at NSIDC

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012

DRUPAL CONTINUOUS INTEGRATION. Part I - Introduction

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Jenkins: The Definitive Guide

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!

<Insert Picture Here> Introducing Hudson. Winston Prakash. Click to edit Master subtitle style

Continuous Integration

Continuous Delivery. Alejandro Ruiz

JUSTIN J. LITTLE Build and Release Engineer

HP ALM11 & MS VS/TFS2010

NXTware Remote. Advanced Development and Maintenance Environment for OpenVMS and other Strategic Platforms

Automate Your Deployment with Bamboo, Drush and Features DrupalCamp Scotland, 9 th 10 th May 2014

Continuous integration for databases using Redgate tools

Continuous integration for databases using

Continuous integration for databases using Red Gate tools

Continuous Integration

Getting Started with the Ed-Fi ODS and Ed-Fi ODS API

Coverity Services. World-class professional services, technical support and training from the Coverity development testing experts

Visual Studio - Continuous Integration

Continuous Keylane

Azure Day Application Development

CONTINUOUS INTEGRATION. Introduction

Agile Software Factory: Bringing the reliability of a manufacturing line to software development

Nick Ashley TOOLS. The following table lists some additional and possibly more unusual tools used in this paper.

How to set up SQL Source Control. The short guide for evaluators

Continuous Integration Processes and SCM To Support Test Automation

Continuous Integration and Bamboo. Ryan Cutter CSCI Spring Semester

DevOps. Building a Continuous Delivery Pipeline

Developing Microsoft Azure Solutions

Developing Microsoft Azure Solutions 20532A; 5 days

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

SOFTWARE DEVELOPMENT BASICS SED

Selecting the Right Change Management Solution Key Factors to Consider When Evaluating Change Management Tools for Your Databases and Teams

Please contact Cyber and Technology Training at for registration and pricing information.

We ( have extensive experience in enterprise and system architectures, system engineering, project management, and

Continuous Integration

Continuous Integration: A case study

Building, testing and deploying mobile apps with Jenkins & friends

Moving to the new EAE version control Grantley McCauley

Developing Microsoft Azure Solutions 20532B; 5 Days, Instructor-led

SQL DBA Bundle. Data Sheet. Data Sheet. Introduction. What does it cost. What s included in the SQL DBA Bundle. Feedback for the SQL DBA Bundle

DevOps Course Content

Software infrastructure for Java development projects

Two-Way Data Binding with WinJS By Marcin Kawalerowicz and Craig Berntson, authors of Continuous Integration in.net

MS 20487A Developing Windows Azure and Web Services

Mastering Continuous Integration with Jenkins

Practical continuous deployment

Microsoft s Team Foundation Server (TFS) Canute Magalhaes Richland County (IT) SYSTEMS ANALYST / PROJECT LEAD 1

Continuous integration with Jenkins CI

Source Control Systems

Theme 1 Software Processes. Software Configuration Management

Solving the database deployment problem

Introduction to Programming Tools. Anjana & Shankar September,2010

Continuous. Integration. in.net MARGIN KAWALEROWICZ CRAIG BERNTSON MANNING. Greenwich. (74 w. long.)

November 12 th 13 th London: Mastering Continuous Integration with Jenkins

The Benefits of Deployment Automation

CASE STUDY Searching SQL Server databases with SQL Search at Republic Bank

Software Configuration Management Best Practices for Continuous Integration

Application Development

MS 10978A Introduction to Azure for Developers

Continuous Integration with Roundtable TSMS

SMZ. SocialMedia. Z olutions

Brakeman and Jenkins: The Duo Detects Defects in Ruby on Rails Code

Continuous Integration with Jenkins. Coaching of Programming Teams (EDA270) J. Hembrink and P-G. Stenberg [dt08jh8

Advanced Computing Tools for Applied Research Chapter 4. Version control

Deploying Web Applications in Enterprise Scenarios

Meister Going Beyond Maven

Git Branching for Continuous Delivery

Software Continuous Integration & Delivery

Continuous Integration: Put it at the heart of your development

TEST AUTOMATION FRAMEWORK

Continuous Integration Multi-Stage Builds for Quality Assurance

DevOps to Enterprise Agile

Mobile Development with Git, Gerrit & Jenkins

WHITEPAPER. Improving database development

Improving database development. Recommendations for solving development problems using Red Gate tools

Continuous Delivery Maturity Model

Whitepaper. Continuous Integration Tools Applying Best Practices to the Toolchain

Abdullah Radwan. Target Job. Work Experience (9 Years)

Hands-On Lab. Embracing Continuous Delivery with Release Management for Visual Studio Lab version: Last updated: 12/11/2013

ELIMINATING COMPLINCE RISKS - DATA MASKING WITH AZURE

Automated performance testing using Maven & JMeter. George Barnett, Atlassian Software

Tech Notes. Corporate Headquarters EMEA Headquarters Asia-Pacific Headquarters 100 California Street, 12th Floor San Francisco, California 94111

Implementing Continuous Integration Testing Prepared by:

Automated build service to facilitate Continuous Delivery

Building a Continuous Integration Pipeline with Docker

IKAN ALM Architecture. Closing the Gap Enterprise-wide Application Lifecycle Management

Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited

Transcription:

#sqlinthecity Database Build and Release will get started soon Ernest Hwang Principal Software Engineer, Practice Fusion http://practicefusion.com/careers/

While you re waiting, check out SQL Prompt #sqlinthecity

#sqlinthecity While you re waiting, go on Twitter Tweet us at @redgate #sqlinthecity and let us know how you re enjoying the event, speakers, sessions, food, demos and more @redgate #sqlinthecity

Enjoy the session #sqlinthecity Be sure to note down/tweet your questions to ask the speaker during the Q&A at the end of the session

#sqlinthecity Once you ve viewed today s sessions, please complete the online feedback form www.red-gate.com/sitc13-feedback In return you can: - Collect a Red Gate book of your choice from 5PM - Have a chance to win a Conference pass to SQL Server LIVE! 2013, which will be drawn at 5.15PM

Practice Fusion is Hiring! Stop Playing Games. Start Saving Lives. SQL Server, C#, WCF, ASP.net MVC, Ruby on Rails, Ember.js Positions available in San Francisco, Palo Alto and Seattle. http://practicefusion.com/careers/

Who am I? Ernest Hwang, Principal Software Engineer at Practice Fusion in San Francisco (We re Hiring!) C#,.NET Developer since 2001 SQL Server Developer since 1999 (SQL Server 6.x) Using Red Gate for Continuous Integration since June 2011

About Practice Fusion

Why am I here?

What is this? A How To guide for automating your day-to-day maintenance tasks by *Easily* Versioning your database using Red Gate SQL Source Control Using Continuous Integration (via Jenkins) to validate Database builds Using Jenkins to automate database deployments Using CI / tsqlt / SQL Test to run unit tests

Prerequisites Experience with source control management systems (svn, TFS, git, Hg) Familiarity with Continuous Integration Products (Jenkins, Team City, Cruise Control) Awareness of build scripting languages (ant, MSBuild)

What software is used? SQL Server 2008 / 2012 Red Gate SQL Source Control Red Gate SQL Compare Red Gate SQL Data Compare Jenkins Continuous Integration Server http://jenkins-ci.org/ Promoted Build Plugin Copy Artifacts Plugin Version Plugin Git Plugin MSBuild

What is SQL Source Control Source Control Plug in for SQL Server Management Studio Creates a snapshot of the database schema defined by CREATE scripts Snapshot is consumable by SQL Compare and may be used to compare against the schema of an actual database

What is SQL Source Control? SQL Source Control is to SSMS as TortoiseSVN is to Windows Explorer

Demo Environment GitHub Developer Workstation Build and Database Server (Windows Azure VM) Local Copy of RGDemo database Dev, QA, & Prod Databases

Commiting Changes to Source Control Demo Local Database Changes Commit Changes via SQL Source Control Changes committed to SCM repository

How does Continuous Integration fit in? The CI server polls the repository for changes When changes are checked in, the CI job kicks off Verifies that the database can be built Builds a brand new database from scratch using SQL Compare and SQL Data Compare Runs unit tests Build should fail if unit tests do not succeed Archives the artifacts (for deployments) Artifacts can include build/test reports Emails engineers if there are problems

I M THE ONE WHO DROPS TABLES! (demo)

Deploying Changes to Different Environments The Promoted Builds plug in can be used to deploy changes to Integration/QA/Staging/Production environments SQL Compare and SQL Data Compare are used to deploy changes between the sourced controlled database and your development environments Deploying to Production and/or Staging can be configured to just create the scripts as opposed to forcing the synchronization

Deploying to Dev / QA Demo SQL Source Control Repository SQL Compare Development Environment Database

Creating a Database Version Make sure the Jenkins Versioning plugin is installed Create a User Defined Function called dbo.database_version() Create a build step that updates the UDF with the version number The updated UDF will be archived and used with deployments

Versioning your Database Demo Commit Changes via SQL Source Control CI Server Detects Changes Kicks off Build Process Build Task updates dbo.database_version() Function Updated UDF Archived

Unit Testing with tsqlt and SQL Test tsqlt is an open source set of stored procedures and functions to facilitate Unit Testing in SQL databases SQL Test is a wrapper around this framework that integrates with SSMS Your build server can enforce that your unit tests pass and generate reports

Unit Testing with tsqlt / SQL Test Demo Commit Changes via SQL Source Control CI Server Detects Changes Kicks off Build Process Build Task executes Unit Test procedures Tests can pass or fail the build

Springer s Final Thought Saves developers time (yay!) No more maintaining update scripts Don t need to deploy scripts when QA needs changes Identifies holes in your deployment process Are developers or DBAs making changes directly to production? Are indexes/constraints missing from your Dev/QA/Prod environments? Creates a definitive database build that can be easily deployed and redeployed

Considerations Environments must be pristine Process must be changed and understood Production change scripts should be scrutinized (especially for the first few releases) Migration Scripts can be used to massage data DB Replication requires more work for promotions

Appendix 1: Other CI Servers Jenkins (open source) Team City (JetBrains) Bamboo (Atlassian) CruiseControl / CruiseControl.NET (open source)

Appendix 2: Other Source Control Systems Subversion (SVN) Git Team Foundation Server Mercurial (Hg) AccuRev Surround SCM

Links / Contact Info ehwang@practicefusion.com @ernestedcode https://github.com/cf9/databases.rgdemo Practice Fusion is Hiring (email me) http://practicefusion.com/careers/ facebook.com/practicefusion @practicefusion