Samir Behara, Senior Developer, EBSCO

Slides:



Advertisements
Similar presentations
Black marble the strategic IT asset for your organisation DEVELOPMENT LIFE CYCLE USING VISUAL STUDIO TEAM EDITION FOR DB PROFESSIONALS Richard Fennell.
Advertisements

Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.
Eralp Erat Senior Software Developer MCP,MCAD.NET,MCSD.NET.
Roadmap to Continuous Integration Testing and Benefits Gowri Selka, Walgreens Natalie Koltun, Walgreens May 20th, 2014 ©2013 Walgreen Co. All rights reserved.
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
#sqlsatPordenone #sqlsat367 February 28, 2015 Testing your databases Alessandro
(code name: Data Dude) Josh Robinson Aculix.
Continuous Integration Demonstration. Agenda 1.Continuous Integration Basics 2.Live Demonstration 3.Bamboo Concepts 4.Advantages 5.Version 2.0 Features.
Oracle Developer Tools for Visual Studio.NET Curtis Rempe.
CONTINUOUS INTEGRATION, DELIVERY & DEPLOYMENT ONE CLICK DELIVERY.
Introducing Microsoft® Visual Studio® 2005 Team Edition for Database Professionals Andy Cheung ISV Developer Evangelist Microsoft Hong Kong.
Create with SharePoint 2010 Jen Dodd Sr. Solutions Consultant
THE CONTINUOUS DELIVERY ZONE Craig Berntson Chief Software Gardener Mojo Software Worx.
Version control Using Git Version control, using Git1.
Database Change Management One solution to an often complex problem Kevin Hurwitz Headspring Systems
Isolated Database Environments Kevin Howell February 2014.
Database Projects in Visual Studio Improving Reliability & Productivity.
Automated tests CustomWare.Net. Goals Quality Finding problems before delivering Stability Upgrade projects Downgrade Refactoring Deacreasing of manual.
Real World SQL Server Data Tools Benjamin
Neil Kidd Developer Tools Technical Specialist Microsoft UK.
Visual Studio 2012: A Complete IDE (Debugging & Source Control) Kevin Howell.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
Continuous Deployments using SSDT
1 Punishment Through Continuous Delivery If it hurts, do it more often…
CIS-NG CASREP Information System Next Generation Shawn Baugh Amy Ramirez Amy Lee Alex Sanin Sam Avanessians.
Developing SQL/Server database in Visual Studio Introducing SQL /Server Data Tools Peter Lu.Net Practices Director Principle Architect Nexient March 19.
Get testing with tSQLt Practical examples and automation Steve Jones SQLServerCentral Red Gate Software.
Dynamics AX Henrik Hasselblad Business Unit Manager.
Continuous Integration for Databases Steve Jones SQLServerCentral Red Gate Software.
DevOps for the IT Pro with Azure and Visual Studio Team Services
Introduction ITEC 420.
Building Enterprise Applications Using Visual Studio®
Bringing DevOps to the Database
Bringing DevOps to the Database
Continuous Delivery- Complete Guide
Visual Studio Database Tools (aka SQL Server Data Tools)
SQL Server deployments
Continuous Deployments using SSDT
Version control, using Git
Michael Mast Senior Architect
Visual Studio 2010 Database Projects
Introducing New Team-based Data Integration with SSIS
Bringing DevOps to the Database
SQL Server Data Tools Gert Drapers
Continuous Integration For Databases
Boosting SSAS Productivity with Tabular Editor
Database Code Management with VS 2017 and RedGate
X in [Integration, Delivery, Deployment]
Simplified Development Toolkit
Automated Testing and Integration with CI Tool
Continuous Delivery good & bad 4/20/2012
Visual Studio Database Tools (aka SQL Server Data Tools)
Continuous Deployments using SSDT
Bringing DevOps to the Database
Using JDeveloper.
ABHISHEK SHARMA ARVIND SRINIVASA BABU HEMANT PRASAD 08-OCT-2018
Continuous Deployments using SSDT
Continuous Deployments using SSDT
DAT381 Team Development with SQL Server 2005
Your code is not just…your code
Continuous Integration
SSDT and Database Project Basics
Introduction to VSTS Database Professional
Helping you make your code better
SSDT, Docker, and (Azure) DevOps
SSDT, Docker, and (Azure) DevOps
PNW SQL Users Group August 10th, 2011
SSDT, Docker, and (Azure) DevOps
Your code is not just…your code
Presentation transcript:

Samir Behara, Senior Developer, EBSCO DevOps, Continuous Integration & Database Lifecycle Management: Rule them all Samir Behara, Senior Developer, EBSCO @samirbehara www.dotnetvibes.com

SAMIR BEHARA Senior Developer, EBSCO Samir Behara builds software solutions using cutting edge Microsoft technologies, primarily C# and SQL Server. Has a Bachelor Degree in Computer Science with 12 years of IT experience. Co-Chapter Lead of Steel City SQL Server User Group , Birmingham, AL SAMIR BEHARA Senior Developer, EBSCO

DATABASE RELEASE? EMAIL THE SCRIPTS & I WILL EXECUTE IT

DATABASE LIFECYCLE MANAGEMENT OVERVIEW Continuous Integration Static Code Analysis Continuous Deployment Source Control Coding Unit Testing SHIFT LEFT – Catch issues as early as possible

COST OF DEVELOPING SOFTWARE

TESTING PYRAMID UI Tests Integration Tests Unit Tests

TEST DRIVEN DEVELOPMENT RED GREEN REFACTOR

TECHNICAL DEBT

STATIC CODE ANALYSIS SQL Cop Free and No Installation required SQL Cop has a set of predefined rules to identify anti-patterns for database development Need to have VIEW SERVER STATE or  VIEW DATABASE STATE permission

STATIC CODE ANALYSIS SonarQube Continuous Inspection of Code Quality Identify Code Smells, Bugs and Vulnerabilities Analyzers for 20+ Programming Languages DevOps Integration Reject Check-in when Quality Gate not met

RELEASE PIPELINE CODE BUILD INTEGRATE TEST RELEASE DEPLOY Continuous Integration Continuous Delivery Continuous Deployment

DEVELOPMENT CONTINUOUS INTEGRATION BUILD Trigger SOURCE CONTROL TEST Feedback Mechanism

CONTINUOUS DEPLOYMENT CONTINUOUS DELIVERY CODE Auto BUILD Auto STAGING Manual PRODUCTION CONTINUOUS DEPLOYMENT CODE Auto BUILD Auto STAGING Auto PRODUCTION

Source Control is the system of truth STATE BASED APPROACH Source Control is the system of truth COMPARE EXECUTE DATABASE PROJECT/ DACPAC SSDT SCHEMA COMPARE GENERATE DIFFERENCE SCRIPT

MIGRATION BASED APPROACH Database is the system of truth STATE 1 STATE 2 STATE 3 STATE N Migration 1 Migration 2 Migration N

MIGRATION BASED APPROACH STATE BASED APPROACH MIGRATION BASED APPROACH System of Truth is the Source Code Suited for frequent database changes Suited for large sized teams Source Code contains the current state of the database Less control on the migration script Complex refactoring might take multiple steps System of Truth is the Database Suited for infrequent database changes Suited for small sized teams Have to maintain a long list of migration scripts within the source control More fine grain control on the migration script Complex refactoring can be handled by a single script

DATABASE DRIFTS Any change to the database schema or reference data that was made directly in the database environment, outside of the normal automated delivery pipeline. Ensure that all migrations are idempotent – meaning that running a script more than once has no additional impact.

BACKWARDS COMPATIBILITY Non-Breaking Database Change Adding a Column/Table/Stored Procedure/ View/ Function Breaking Database Change Renaming a Column/Table/Stored Procedure/ View/ Function Dropping a Column/Table Remove a Stored Procedure/ View/ Function Moving a Column from one table

Expand Transition Phase Contract EXPAND AND CONTRACT PATTERN Initial Refactoring is applied Data is migrated Perform Cleanup to complete the refactoring

DISCONNECTED DATABASE DEVELOPMENT CODE EDITING EXPERIENCE VERSION CONTROL DISCONNECTED DATABASE DEVELOPMENT DECLARATIVE APPROACH SQL SERVER DATA TOOLS DACPAC DEPLOPYMENTS CODE EDITING EXPERIENCE SCHEMA & DATA COMPARE

SSDT INSTALLATION IN VISUAL STUDIO 2017

MORE CONTROL ON MIGRATION SCRIPT INCREMENTAL CHANGE SHIFT LEFT MORE CONTROL ON MIGRATION SCRIPT REDGATE READYROLL HYBRID APPROACH PROGRAMMABLE OBJECTS OFFLINE SCHEMA MODEL

READYROLL INSTALLATION IN VISUAL STUDIO 2017

Flyway is free and open source. Flyway facilitates the Automatic Deployment of database changes. Flyway creates a table name ‘schema_version‘ in your database. Flyway supports number of databases – Oracle, SQL Server, MySQL, PostgreSQL, MariaDB, SQLite, Redshift and more.

BRANCHING STRATEGY MAIN Reverse Integration MAIN Changes made to same file causes Merge Conflict. Longer running features has the potential to create Merge issues. Conflicts are caused by merge issues because of long running feature branches. BRANCH 1 BRANCH 2 File1.cs File2.cs 7 Changes 5 Changes Resolving Merge Conflicts is Error Prone and Time Consuming.

FEATURE FLAGS Potential alternative to maintaining multiple feature branches. Reduces the need for constant branching and merging. Enables releases with unfinished features at no risk.

RESOURCES Continuous Integration with SQL Server Data Tools in Visual Studio 2017 Database Static Code Analysis using SQL Cop Managing your Technical Debt using SonarQube Continuous Integration, Continuous Delivery and Continuous Deployment

@samirbehara samirbehara@gmail.com dotnetvibes.com