DevOps with Microsoft Stack

Post on 22-Jan-2018

76 views 0 download

Transcript of DevOps with Microsoft Stack

Implementing DevOps for Microsoft Platform

Presented By: Ranbir Dhial & Umesh kumar

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:

DevOps Overview

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

point

Delivery Challenges

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

From Agile to DevOps

Do we really need DevOps?

Developers always want to deliver changes as soon as

possible.

Operations want reliability and stability.

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

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

One Team, One Goal

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

DevOps Practices

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

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

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

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

Continuous Integration

- First step in DevOps Journey

- Provides immediate feedback for the team

- Provides immediate feedback on code quality

when underlying process are automated

CI for Databases

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

CI and CD

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.

Release Workflow