devops, continuous integration & automated testing: rule...

Post on 31-May-2020

32 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

DevOps, Continuous Integration & Automated Testing: Rule Them All

SAMIR BEHARASolution ArchitectEBSCO, Birmingham, AL

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

DATABASE RELEASE?

EMAIL THE SCRIPTS & I WILL EXECUTE IT

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Database Lifecycle Management Overview

SHIFT LEFT – Catch issues as early as possible

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Automated CI/CD Pipelines

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Azure DevOps

An end-to-end solution for organizations looking for an enterprise-grade toolchain

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Azure Pipelines and GitHub Integration

Cloud-hosted pipelines for Linux, Windows and macOS, with unlimited minutes for open source

Any language, any platform, any cloud

Extensible

Containers and Kubernetes

Best-in-class for open source

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Microservices CI/CD Ecosystem

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Test Driven Development

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Testing your Microservices Applications

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

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

Static Code Analysis - SonarQube

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Release Pipeline

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Continuous Integration

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Continuous Delivery

Continuous Deployment

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Potential alternative to maintaining multiple feature branches.

Reduces the need for constant branching and merging.

Enables releases with unfinished features at no risk.

Feature Flags

Scenario: Incremental feature deployment

PRODMOCKQADEV

Feature A

Feature B.1

Feature B.2

Feature A

Feature B

FEATURE FLAGS – DEPLOYMENT SCENARIO 1

Scenario: One passes QA and one fails QA

PRODMOCKQADEV

Feature A

Feature B

Feature A

Feature B

Bug Created

Feature A Bug Fix

Feature A Bug Fix

Even though feature A did not receive QA approval, we can still deliver feature B to the customer. We simply switch off the offending feature and create a new task to fix the bug.

FEATURE FLAGS – DEPLOYMENT SCENARIO 2

Scenario: Comparative Performance Enhancement Testing

PRODMOCKQADEV

Feature A

Feature A

Gather Performance Data: OriginalGather Performance Data: New Feature

< Compare >

FEATURE FLAGS – DEPLOYMENT SCENARIO 3

Scenario: Selectively flipping a feature on need basis in Production

PRODMOCKQADEV

Processing Override

Processing Override

We keep this feature flag in production to act as a toggle switch.

During busy season we turn it for alternative processing.

After busy season, we turn it off and resume normal order processing.

FEATURE FLAGS – DEPLOYMENT SCENARIO 4

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Blue-Green Deployment

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Canary Release

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Dark Release

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Source Control is the system of truth

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Database is the system of truth

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

• 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

• STATE BASED APPROACH

State Based Approach Migration Based Approach

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

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.

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.✓ Renaming a Column/Table/Stored Procedure/ View/ Function✓ Dropping a Column/Table✓ Remove a Stored Procedure/ View/ Function✓ Moving a Column from one table

✓ Adding a Column/Table/Stored Procedure/ View/ Function

Non-Breaking Database Change

Breaking Database Change

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Expand and Contract Pattern

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

VERSION CONTROL

DISCONNECTED DATABASE

DEVELOPMENT

DECLARATIVE APPROACH

DACPAC DEPLOPYMENTS

CODE EDITING EXPERIENCE

SCHEMA & DATA COMPARE

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

INCREMENTAL CHANGE

SHIFT LEFTMORE CONTROL ON MIGRATION

SCRIPT

HYBRID APPROACH

PROGRAMMABLE OBJECTS

OFFLINE SCHEMA MODEL

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

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.

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Additional 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

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Content goes here. Content goes here.

Thank You

@samirbehara dotnetvibes.com

top related