dev ops developer (session 3)

69
Agility and DevOps Etienne Tremblay Senior ALM Consultant, Imaginet ALM MVP

Upload: msdevmtl

Post on 30-Jul-2015

137 views

Category:

Travel


4 download

TRANSCRIPT

Agility and DevOps

Etienne TremblaySenior ALM Consultant, ImaginetALM MVP

It’s DevOps!

It’s DevOps!

It’s DevOps!

It’s DevOps!

“DevOps is development and operations collaboration”

“DevOps is treating your infrastructure as

code”

“DevOps is using automation”

“Kanban

for Ops?”

“DevOps is feature switches”

“DevOps is small deployments”

“It has been said that the only sustainable advantage in business is the ability for a company to learn faster and respond more effectively than its competitors (also known as business agility).”

– CIO magazine

DevOps is an emerging trend that promises to increase the flow of value to customers.

DevOps: the three stage conversation

3 Products2 Process1 People

Intro to DevOps practices

New trend of practices for increasing flow of value to customers

Production

Development Collaboration

Backlog

Requirements

Plan

Develop + test Release

Monitor + learn

Important for enterprises to understand to improveDevOps extends application lifecycle management (ALM) investments

Optimize resources

Improve quality and availability

Enable HDD

SLA

Why DevOps?

Shorten Cycle Times

Do these…

1 2 3 4

DevOps is ateam undertaking

DevOps enables better software development and delivery practices

DevOps acceleratesthe last mile ofcontinuous delivery

DevOps is a fulllifecycle investment

AppLifecycle

What’s DevOps?

What’s driving DevOps?

Production

Development Collaboration

BacklogRequirements

An automated release pipeline is needed to deliver at the pace of development with full traceability

Availability and performance issues are hard to troubleshoot in this fast-changing world with distributed applications

Usage should determine the next set of priorities and learnings

The agile methodologies are accelerating the construction process

WebOpsGoogle, Amazon, Twitter, Facebook, Xbox Live, etc.

Enterprise DevOpsCross-functionalorganizations

NoOpsSmall web teams, start-ups

DevOps flavors

Reduce change lead-time (react faster to dynamic business needs)

Reduce changefail rate

Reduce mean-time-to-detect & repair (MTTD, MTTR)

Increasedeploymentfrequency

Agility performance indicators Reliability performance indicators

DevOps goals and success metrics

How Microsoft can help increase the flow of value

Shorten cycle times

Optimize resources

Improve quality and availability

     

  

 

 

    

        

Hypothesis-driven development & continuous learning

Shorten cycle times

Shorten cycle times

Production

Development Collaboration

Backlog

Requirements

Plan

Develop + test Release

Monitor + learn

Each release has a large “Release Tax” to pay

Manual testing is a significant effortReleases are high-risk requiring significant preparation

Developers work in agile iterations accumulating shippable bits many times before a release window is available

Shorten cycle timesContinuous delivery

Delivery team Version control Build & unit test

Automated acceptance test

User acceptance tests

Release

Check-in Trigger

Feedback

TriggerFeedback

Approval Approval

Continuous delivery process

Check-in Trigger

Feedback

Continuous integrationDelivery team Version control Build & unit

testAutomated acceptance test

User acceptance tests

Release

TriggerFeedback

Approval Approval

Continuous inspection

Check-in Trigger

Feedback

Delivery team Version control Build & unit test

Automated acceptance test

User acceptance tests

Release

TriggerFeedback

Approval Approval

Continuous deployment

Check-in Trigger

Feedback

Delivery team Version control Build & unit test

Automated acceptance test

User acceptance tests

Release

TriggerFeedback

Approval Approval

Visual Studio Online and Team Foundation Server

Automate your build process.

Offload your builds to the pubic cloud with Visual Studio Online, or build on-premises with Team Foundation Server.

Track build health over time.

Build services

Visual Studio Online and Team Foundation Server

Use gated check-ins to trigger builds to validate each check-in.

Batch multiple gated check-ins into one build to reduce wait time with “Merge and build up to”.

Ensure your source code repository only contains buildable and tested code.

Gated check-in

Test case management

Create unit tests to validate the behavior of your methods.

Use functional tests to ensure the application meets the business needs.

Use acceptance tests to gain confidence that users will be able to complete key scenarios within the application.

Test automation

Release management

Create a single automated deployment process to use across all environments.

Trigger deployments to specific environments from automated builds.

Promote the same bits through the release process, automatically changing the configuration files for the different environments.

Continuous deployment

Quickly enable continuous delivery

Release management

Get view of application’s release and issue using ONE tool.

Monitor the progress of each release.

Visibility to your release pipeline

Identify issues and patterns with your application deployment

Check the status of your releases

Release management

Define which groups can create, edit, or view release templates.

Flexibility to define approvals for each release stage.

Define and limit the stage types for a given environment.

Consistent and chaotic releases

Granular control for the entire release process

Seamless integration with Visual StudioBuild process

Release management

Define the release workflow and its activities for each of your applications.

Use deployment built-in actions or create your own.

Consistent and chaotic releases

Use built-in actionsor define your own

Define releaseworkflow and activities per environment

Release management

Simple way to request and provide approvals.

The defined approval can start, stop, approve, reject, restart, retry, abandon, or even reassign releases.

Consistent and chaotic releases

Trigger actionsbased on approvals

Simple wayto request and provide approvals

Continuous integrationwith Azure

Link Azure website to Visual Studio Online repository (requires login to Visual Studio Online).

Simple portal based configuration

Visual Studio Online generates a simple build template that deploys on check-in to the Azure website.

Automatic BuildTemplate creation

Build template can be updated, or customized through Visual Studio to modify build or deployment parameters.

Customize throughVisual Studio

Cloud consistency

Microsoft Azure-consistent experiences and services in your data center.

Utilize your investment in Windows Server and System Center.

Deliver IT services through a rich self-service portal enabled by Windows Azure Pack.

Build once and deploy anywhere

DemoUnit TestingCode CoverageCode CloneContinuous delivery with Release Management

Optimize resources

 

 

  

  

  

 

 

 

 

 

    

     

     

    

 

 

 

 

  

 

 

 

 

     

  

  

  

   

 

Driving down costs of infrastructure

Self-service provisioning of environments

Optimize resourcesDriving down waste

Optimize resourcesDriving down costs of infrastructure

On-Premises

VPN

Optimize resourcesConfiguration as code

Build templates to manage your configuration.

Integrate them with Release Management to automate configuration of on-premises and public cloud environments.

Parameters allow reuse of configuration templates.

Each developer can self-provision snapshots that mirror the production environment

Developers perform unit and integration testing in isolated individual environments

Production issues or incompatible code are discovered earlier

Individual resources can be provisioned for free using MSDN credits

Increase agility by provisioning on-demand environments when needed

Improve quality with developer labs!

Virtual machines

SQL database

Websites

Could services

Optimize resourcesSelf-service provisioning of environments

Azure

Simplify building applications for the public cloud for developers and IT professionals.

Bring together all of the components of an application—across services from Microsoft and partners—into a single development and management experience.

Centralized management

Azure

Gain access to free and paid services fromthe Gallery.

Create modern applications more quickly and easily.

Gallery

Azure

See forecasted costs at a glance. Automatically calculate existing charges and estimates usage.

Avoid surprises.

Cost management

Azure

Unify and simplify resource management.

Create, manage, and analyze an entire application as a single resource group.

Resource groups

System Center

Centralize fabric management across clouds.

Plan for on-premises and public clouds capacity and support, including Azure.

Immediately see the health, performance, and availability of your environment.

Manage cloud fabric

System Center

Separate the signal from the noise with simple, powerful log management tools.

Get deep visibility into your capacity. Investigate “what-if” scenarios, identify stale and over-allocated VMs, and plan your compute and storage needs.

Build intelligent capacity planning across clouds

I can develop, configure,and deploy across myentire infrastructure

Cloud consistency

Integrated with Release Manager for continuous deployment support.

Change configuration through DSC.

Supports template deployment for consistency across on-premises and public clouds.

Deploy, customize, and manage across clouds

Traditional Virtualized

Private cloud

Public cloud

Desired state configuration

Build templates to manage your configuration.

Integrate them with Release Management to automate configuration of on-premises and public cloud environments.

Configuration templates

Desired state configuration

Parameters allow reuse of configuration templates.

Configuration parameters

Lab management

Reduce the load of regression testing by running automated system tests suites during lab management builds.

Provide rapid feedback on test results to resolve defects early in the development life cycle.

Automated build-deploy-test support is built into Visual Studio Team Foundation Server.

Test and build automation

Lab management

Quickly set up complex virtual environments to a known good state for test execution and build automation.

Use known environment sets for repeatable testing.

Ensure identical network configurations every time.

Validate system changes before they gointo production.

Reliable environments

Lab management

Create a reliable and repeatable environmentin minutes.

Manage multiple configurations withLab Management.

Reduce the time required to test system changes.

Rapid setup and tear down

System Center

Automatic alerts whenever your application is not responding according to SLAs.

Full IT operations intelligence across on-premises and public cloud infrastructure.

Sharing data with Applications Insights and Team Foundation Server for greater collaboration and reduced mean time for detection.

Ensuring application SLAs

Automatic alerts with relevant contextual information

Production incident alert in operations system

System Center

Assign production incidents from System Center to the development team for investigation and resolution.

Updates tracked through cycle if further actionis required.

Quickly engage development team

Production incident alert in operations system

Assign code related incidents to development

Incident in development system

Development system incident reference in operations tool

z

System Center

Get actionable production diagnostics.

Quickly resolvecode problems

z

Request additional diagnostics from operations

Request for additional diagnostics in operations system

System Center

Get actionable production diagnostics..

Quickly resolvecode problems

Generate IntelliTrace logs from within SCOM

Actionable debugging using IntelliTrace logs

IntelliTrace logs collected by operations in development system

z

DemoStandard LabIntellitrace in production

Improve quality

and availability

A defect is simply a mistake that hasn’t been discovered before production

Once the defect is in production, it’s very difficult to detect and remediate

Need to drive down MTTD and MTTR Defects = poor customer experience = lost business

Defects arrive in production too frequently that ultimately impact your customers

Improve quality & availabilityReducing defects that make it into production

Improve quality & availabilityPlan

Develop & test Release

Monitor & learn

Production

Development Collaboration

BacklogRequirements

All stakeholdersAcceptance test planning

Continuous acceptance testing

Continuous learning and improvement

Integrated incident management

Performance and availability diagnostics

Release management

Developers& testers

Operations

Hypothesis-driven development & continuous learning

Challenges with requirement-driven development

Hypothesis-driven development

Enable hypothesis-driven development

ProblemsLack of information to prioritize future investments

SolutionsAccess to customer usage data to help you make informed decisions

ValueContinuous learning

Continuous learning

Application Insights

Create an account through Visual Studio Online.

Add the extension in Visual Studio.

Add Application Insights to new or existing projects.

Getting started is simple

Application Insights

Log page views or features accessed.

Log time spent on pages and features.

Story any key/value pair you want to generate from user activity.

Code instrumentationServer side logging in C#

Client side logging in JavaScript

Application Insights

Identify systemic issues and trends affecting application and infrastructure health.

Prioritize new features, bug fixes, and strategic direction based on qualitative and quantitative data.

Continuously improve

Valuable data at your finger tips

Validate your investments

z

System Center

Identify systemic issues and trends affecting application and infrastructure health.

Collect and search across multiple machine data sources from multiple systems to easily identify the root cause of operational issues.

Prioritize new features, bug fixes, and strategic direction based on qualitative and quantitative data.

Continuously improve

DemoApplication Insights

Next steps

Production

Development Collaboration

Backlog

Requirements

Plan

Develop + test Release

Monitor + learn

DevOps is very broadOur focus covers

Stakeholder engagementprocess

Source control and build

Verification and detectionInsight and learning

EnvironmentsDeploymentsRelease management and governance

The Microsoft DevOps solutionPeople

BusinessIT OperationsDevelopers/Testers

Process

Plan

Develop& test

Release

Monitor& learn

Azure services Visual Studio online

Microsoft products

Websites

Cloud service

s

SQLdatabas

e

API manageme

nt

Build &continuousintegration

Azure deploy & continuousdeployment

Virtualmachines

StorSimple

Release management

Lab management

Teamfoundationserver

Testprofessional

Applicationinsights

Build &continuousintegration

Azure deploy & continuousdeployment

LoadtestingApplication

insightsLoad

testingActivedirecto

ry

Virtualnetwork

CLOUD

HYBRID

ON-PREMISE

S

Collaborate

Multifactorauthorizatio

n

Pick the right offering for each team member based on needs.

One license per user, but user can run the software on any number of devices.

Use is limited to development and testing.

MSDN subscriptions

Stand-alonetool

Licensing options for developers & testers

ContactE-Mail [email protected]

Questions?