DevOps with Microsoft Stack

25
Implementing DevOps for Microsoft Platform Presented By: Ranbir Dhial & Umesh kumar

Transcript of DevOps with Microsoft Stack

Page 1: DevOps with Microsoft Stack

Implementing DevOps for Microsoft Platform

Presented By: Ranbir Dhial & Umesh kumar

Page 2: DevOps with Microsoft Stack

What is DevOps

Why DevOps

DevOps Implementation

DevOps Practices

Continuous Integration and deployment using TFS

Website and DB changes

Code and Build

Setting up Release Management Agent

Configuring Release Management Workflow

Establishing Release Management Pipeline

Dashboards and Reporting

Agenda:

Page 3: DevOps with Microsoft Stack

DevOps Overview

Page 4: DevOps with Microsoft Stack

Today’s business and technical needs are pushing traditional delivery approaches to the breaking

point

Delivery Challenges

Page 5: DevOps with Microsoft Stack

DefinitionsApplying agile techniques to operations

Getting development and operations to work

together

DevOps is the last mile of Agile

How to deploy software with speed and

confidence

DevOps is about accelerating software

deployment

CharacteristicsTreating “Infrastructure as Code” is fundamental

to DevOps

Automating the work of setting up and

maintaining systems infrastructure

Making it defined, efficient, testable, auditable

and standardized

Automated Testing is part of your pipeline

Automated CI / CD pipeline

Automated application deployment

Logging & Traceability of all changes

What is DevOps

Page 6: DevOps with Microsoft Stack

From Agile to DevOps

Page 7: DevOps with Microsoft Stack

Do we really need DevOps?

Developers always want to deliver changes as soon as

possible.

Operations want reliability and stability.

Page 8: DevOps with Microsoft Stack
Page 9: DevOps with Microsoft Stack

Ops / ITIL Values:

•Procedure Driven

•Stability

•Availability/Uptime

•Controlled/Frozen environment

•Infrequent Updates

Results in:

Long Lead Time

Limiting the # of Changes

Infrequent Deployments

Agile Dev Values:

•Business Driven

•Responsive to Change

•Real Time

•Constantly up to date

environment

•CI / CD Environment

Results in:Short Sprints (2-3 wk)

Lots of small changes

Frequent Deployments

Ops vs Dev

Page 10: DevOps with Microsoft Stack

7Cs OF DevOps

1. Communication

2. Collaboration

3. Controlled Process

4. Continuous Integration

5. Continuous Deployment

6. Continuous Testing

7. Continuous Monitoring

Agile mantra “People over

Process over Tools”. With the right people, we establish the

right process and choose the right tools to deliver the end

Results

• People – Communication & Collaboration

• Process – Source Control Check-ins, Code Review, Code

Quality, Change Control, RCAs

• Tools – For Continuous Delivery (achieve by the

combination

of Continuous Integration, Continuous Deployment and

Continuous Testing) and Continuous Monitoring

Page 11: DevOps with Microsoft Stack

One Team, One Goal

Page 12: DevOps with Microsoft Stack
Page 13: DevOps with Microsoft Stack
Page 14: DevOps with Microsoft Stack

Hard To Achieve DevOps without automation

Automate Provisioning - Infrastructure as Code

Automate Builds – Continuous Integration

Automate Deployments – Defined Deployment Pipeline and Continuous

Deployments with appropriate configurations for the environments

Automate Testing – Continuous Testing, Automated tests after each

deployment

Automate Monitoring – Proper monitors in place sending alerts

Automate Metrics – Performance Metrics, Logs

Page 15: DevOps with Microsoft Stack

DevOps Practices

Page 16: DevOps with Microsoft Stack

DevOps Practices

1. Branching strategy

2. Continuous Integration using TFS

1. Code

2. Database

3. Test Automation

4. Continuous Deployment / Release Management

5. Setting up Release Management Agent

6. Configuring Release Management Workflow

7. Establishing Release Management Pipeline

Page 17: DevOps with Microsoft Stack

7/13/201717

CI to Trunk Enables Release On Demand

Epic/Feature Branch A

Trunk

Release 1

Epic/Feature Branch B

Epic/Feature Branch C

Check-Ins

Check-Ins

CI Builds & Test Runs

Trunk Merges

Release Label

CI Builds & Test Runs

Release Label

Reverse Integration

Forward Integration

With selective merging, integration to trunk can continue without dependency to release timing considerations.

Check-in LabelCI Build

Check-Ins

Selective Merge

Release Hardening Fix Check-In

Release Label

Page 18: DevOps with Microsoft Stack

7/13/201718

Release Branch – Rollback Handling

Trunk

Release 1

Release Label

Reverse Integration

Selective Merge needs Rollback

Check-in Label

Selective Merge

Release Hardening Fix Check-In

Release Label

Rolled Back Check-in

Page 19: DevOps with Microsoft Stack

Process Activities and Timelines

Activity Branch Performed By Proposed Time Line Validation

Check In Feature Developers Anytime Build should not break

Merge TrunkLeads/Designated People

Often!At minimum, upon story QA,BA and PO signed off

Trunk Build should not break (Db and Website)

Forward Integration Feature DevelopersOften! At minimum, at

Sprint Start (Monday India Day)

Build should not break

Release Branch TrunkRM with Dev Team Leads

LeadsPer Release Calendar

Confirm Required Change sets are available per Team wise and Build

successful

Post Release Release Developers ASAPThe intended Release fix validated on a

a lower branch

Reverse Integration TrunkLeads/Designated People

After Hotfix is validated Trunk Build should not break

Page 20: DevOps with Microsoft Stack

Continuous Integration

- First step in DevOps Journey

- Provides immediate feedback for the team

- Provides immediate feedback on code quality

when underlying process are automated

Page 21: DevOps with Microsoft Stack

CI for Databases

Page 22: DevOps with Microsoft Stack

Database Deployment

- Why DB deployment is different from Code

- Challenges with DB Deployment

- Principles of DB deployment

- What are our options

- How you can get started

Page 23: DevOps with Microsoft Stack

CI and CD

Page 24: DevOps with Microsoft Stack

Why Continuous Delivery?

Get faster time to market and respond with greater agility to customer feedback. Design and automate release pipelines across your environments to any target

platform.

Ship with confidence:

Raise the quality bar with every release: Configure tasks for all of your release checkpoints – performance, A/B, functional, security, beta testing and

more. No more release day nightmares.

Orchestrate deployments across targets:

Get control of your deployments:

Manual or automated gates for approval workflows: Enable sign-off for deployments using pre or post deployment approvals. Automatic

notifications ensure collaboration and release visibility among team

End-to-end traceability

Track the status of releases and deployments including commits and work items in each environment.

Page 25: DevOps with Microsoft Stack

Release Workflow