DevOps: The New Face Of Application Development - Global Azure Bootcamp

46
DevOps: The New Face of Application Development Presented By: Kanwal K *(Richard Harbridge)

Transcript of DevOps: The New Face Of Application Development - Global Azure Bootcamp

Enabling DevOps for Every Team

DevOps: The New Face of Application DevelopmentPresented By: Kanwal K *(Richard Harbridge)

1

RichardHarbridgeMy twitter handle is @RHarbridge, blog is http://RHarbridge.com, and I work at Speaker | Author | Super Friendly

We have introduced agile approaches to development and cloud scale to try and keep up but we need more. We need DevOps.Demand on developers and IT Pros is higher than ever before

3

DevOps is all about the importance of transparency, communication and collaboration between development and operations teams. What DevOps Is all about

The top challenge holding Ops and Dev teams back from faster delivery is a lack of collaboration between Dev and Ops teams. This lack of collaboration is exacerbated by a skills mismatch: Dev and Ops teams use different languages to specify configurations, and this leads to miscommunication, misunderstandings, and more frequent errors, especially when development or test environments arent configured to match production environments.

Every configuration error (between a developer laptop and a testing machine, for example, or between a testing machine and a production server) introduces delays. Someone must resolve the error, and that usually means that both Dev and Ops must get involved to understand what went wrong, agree on a resolution plan, and implement it.

BenefitsDeliver better quality software faster and with better compliance Drive continuous improvement and adjustments earlier and more economicallyIncrease transparency and collaboration among stakeholders involved in delivering and operating softwareControl costs and utilize provisioned resources more effectively while minimizing security risksPlug and play well with many of your existing DevOps investments, including investments in open source

4

We experience the greatest delays and friction (i.e., conflicts, errors, and misconfigurations) in development/testing and Infrastructure/app configuration.Infrastructure AS Code

https://www.microsoft.com/en-us/download/confirmation.aspx?id=46403

5

What we will talk about today

Planning & TrackingDeveloping & TestingReleasingMonitoring & Learning

6

What we will talk about today

Planning & TrackingDeveloping & TestingReleasingMonitoring & Learning

7

Plan

Manage work

Track progress

Develop + Test1

Project starts

It starts with an idea which requires a plan to make the idea a reality.Iteration is the key to planning and tracking developer activities today. Plan & Track

Capture the stories and capture tasks the team needs to do. Easily coordinate.Business and developers have a great way to collaborate today. Backlogs & Kanban Boards w/ Formatting

As you iterate through releases you see additional requirements/user stories thatThe team identifies and adds to the backlog. (Feedback & Iteration).Dashboards & Charts

What we will talk about today

Planning & TrackingDeveloping & TestingReleasingMonitoring & Learning

11

What we will talk about today

Continual Planning & TrackingDeveloping & TestingReleasingMonitoring & Learning

12

What we will talk about today

Developing & TestingReleasingMonitoring & LearningContinual Planning & Tracking

13

Write Code

Unit Testing2

BuildVersion Control

Build Verification

Release

After the iteration starts, developers turn great ideas into features & functionality. Historically Ops gets involved in release but now is getting involved earlier.Develop & Test

Access to self-service production-like virtualized environments that are available on-demand and are easy to manage.Developers need environments

We do testing in a more continuous and integrated way today.Develop & Test

Microsoft Build 2016 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.4/16/2016 12:32 AM16

We can create test plans based on each item so that any team member can run the test.Develop & Test

Image 1 - The test suite that you selected was created from a backlog item. When you add a test case to this kind of suite, the test case is linked automatically to the backlog item.

Image 2 - Add test steps with actions and expected results so that any team member can run the test. You can add attachments to a step if you want.

Microsoft Build 2016 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.4/16/2016 12:32 AM17

Develop & Test

Whether we are running an emulator or plugged in locally we can easily recordour user actions. This code can be checked into version control and used in CI and CD pipelines.Xamarin Test Recorder

By adding a test to the Xamarin test cloud I can run it on many devices easily.Xamarin Test Cloud

Each test run provides a summary of its success and failures.Xamarin Test Cloud

Each test run provides easy to understand and diagnose reports.Xamarin Test Cloud

You can see the complete history. Each broken out based on the actions taken.Xamarin Test Cloud

This can make diagnosing the issue easy. Notice the top left device image. If I wanted to I could also watch a video of each step to see what was done.Xamarin Test Cloud

You can dive into greater details such as memory and CPU usage at any point in time during the test. You can even download device logs to pinpoint issues.Xamarin Test Cloud

Microsoft Build 2016 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.4/16/2016 12:32 AM25

This could happen every time you checked in code. Which would look something like this.Xamarin Test Cloud

Microsoft Build 2016 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.4/16/2016 12:32 AM26

What we will talk about today

Developing & TestingReleasingMonitoring & LearningContinual Planning & Tracking

27

What we will talk about today

ContinualDevelopment & TestingReleasingMonitoring & LearningContinual Planning & Tracking

28

What we will talk about today

ContinualDevelopment & TestingReleasingMonitoring & LearningContinual Planning & Tracking

29

CloudLoad Testing

Integration testingenvironment

Automated functional testing environment

3Pre-production environment

StagingenvironmentMonitor + Learn

When all tests pass, the build is deployed to testing environments for eachstage in the release processRelease

One of the core pillars of successful DevOps is effective release management.Release management

Create release pipelinesDefine approval workflowsAutomate deploymentsProvides visibility and full traceability

2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.4/16/201631

Code

Test & Stabilize

Code

Test & Stabilize

BetaGo Live

Planning

Code CompleteIn this classic example we would test twice and release twice.Quality before

BlueR:0 G:120 B:215CyanR:0 G:188 B:242Light GrayR:210 G:210 B:210Dark BlueR:0 G:32 B:80Dark GrayR:80 G:80 B:80GrayR:115 G:115 B:115PurpleR:92 G:45 B:145OrangeR:216 G:59 B:1GreenR:16 G:124 B:16Main colorsSecondary colors (use only when necessary)

2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.4/16/201632

Client WorkstationsSourceBuildTestDeployMonitor and LearnTeam Foundation Server

TFVC

OR

GIT

Environments

OPS

DEV

Manual BuildsHistorically, builds have been a manually process. The only thing we have automated is the compilation of code. Testing and deployment are manual.

2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.4/16/201633

Client WorkstationsSourceBuildTestDeployEnvironmentsMonitor and LearnTeam Foundation Server

TFVC

OR

GIT

OPS

DEV

Continuous IntegrationWe have improved since then by automating and integrating testing scenarios. Deployment is still a manual process.

2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.4/16/201634

EnvironmentsDeploy

Client WorkstationsSourceBuildTestMonitor and Learn

GIT

PaaS Website

OPS

DEV

CI & CD with Azure WebsitesToday we can take it a step further by automating the deployment to environments by using release management features. Continuous Integration (Testing Integration) and Continuous Delivery (Release Automation) ultimately improves DevOps.

2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.4/16/201635

Releases

Today we test continually and release continually with Visual Studio Team Services.You might have different release tasks for different environments (HockeyApp could havedifferent settings for alpha than for beta crash vs performance metrics).

BlueR:0 G:120 B:215CyanR:0 G:188 B:242Light GrayR:210 G:210 B:210Dark BlueR:0 G:32 B:80Dark GrayR:80 G:80 B:80GrayR:115 G:115 B:115PurpleR:92 G:45 B:145OrangeR:216 G:59 B:1GreenR:16 G:124 B:16Main colorsSecondary colors (use only when necessary)image 1 - right now, I've v25 out to production and v26 out to my alpha and beta testers. Now how did we release the code to them ?Image 2 got it to them using release mgmt. Release Mgmt allows me to not only deploy my solution but also my databases, websites and infrastructure needed to support my solution / mobile application. I can even automatically allow my mobile testers to get notifications on their phones to mention the new release and allow them to go download the new version. Using hockeyapp you can collect device/user/perf/crash info.

2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.4/16/201636

Today we test continually and release continually.Quality Today

BlueR:0 G:120 B:215CyanR:0 G:188 B:242Light GrayR:210 G:210 B:210Dark BlueR:0 G:32 B:80Dark GrayR:80 G:80 B:80GrayR:115 G:115 B:115PurpleR:92 G:45 B:145OrangeR:216 G:59 B:1GreenR:16 G:124 B:16Main colorsSecondary colors (use only when necessary)

2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.4/16/201637

What we will talk about today

ContinualDevelopment & TestingReleasingMonitoring & LearningContinual Planning & Tracking

38

What we will talk about today

ContinualDevelopment & TestingContinualReleasesMonitoring & LearningContinual Planning & Tracking

39

What we will talk about today

ContinualDevelopment & TestingContinualReleasesMonitoring & LearningContinual Planning & Tracking

40

4Monitor

FeedbackPlan the next iteration

When all tests pass, the build is deployed to environments for eachstage in the release process where it is monitored and feedback is captured.Monitor & Learn

Near Real Time Proactive Alerts, Live Stream Metrics, Application Maps and many other capabilities enhance troubleshooting and pro-active improvement.Application insights

Near Real Time Proactive Alerts is a new capability that automatically detects and helps diagnose any abnormal rise in the rate of failed requests in your application. As soon as it detects a rise, it analyzes the failed events to find common attributes such as app version, response codes or geography. Then it finds exceptions, traces and other events related to the failure. It alerts you with all the relevant information so that you can quickly diagnose the problem and fix it.

With support for Webhook Callbacks you can now do so much more with Application Insights Alerts, connecting them to 3rd party alert management systems. The new Live Stream Metrics shows you your application metrics right at this very moment, with a near real time latency of 1 second. This is extremely useful when youre releasing a new build and want to make sure that everything is working as expected or investigating an incident in real time.

The new Application Map automatically discovers your application topology, laying the performance information on top of it, to let you easily identify performance bottlenecks and problematic flows across your distributed environment. It allows you to discover application dependencies on Azure Services. You can triage the problem by understanding if it is code related or dependency related and from a single place drill into related diagnostics experience. For example, your application may be failing due to performance degradation in SQL tier. With application map you will be able to visually see it and drill into SQL Index Advisor or Query Insights experience.

Dashboards allow you to mashup data from multiple Azure resources and applications in a single view. You can bring together charts, metrics and KPIs across all your applications and easily share the operational dashboards with your team members.Microsoft Build 2016 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.4/16/2016 12:32 AM42

With custom events we can build telemetry data into our apps to easily see Important things like the adoption rate of new features.Application insights

Microsoft Build 2016 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.4/16/2016 12:32 AM43

You can even mashup data from multiple Azure resources and applications in a single view. Bringing charts, metrics and KPIs together to share operational data.Application insights

Near Real Time Proactive Alerts is a new capability that automatically detects and helps diagnose any abnormal rise in the rate of failed requests in your application. As soon as it detects a rise, it analyzes the failed events to find common attributes such as app version, response codes or geography. Then it finds exceptions, traces and other events related to the failure. It alerts you with all the relevant information so that you can quickly diagnose the problem and fix it.

With support for Webhook Callbacks you can now do so much more with Application Insights Alerts, connecting them to 3rd party alert management systems. The new Live Stream Metrics shows you your application metrics right at this very moment, with a near real time latency of 1 second. This is extremely useful when youre releasing a new build and want to make sure that everything is working as expected or investigating an incident in real time.

The new Application Map automatically discovers your application topology, laying the performance information on top of it, to let you easily identify performance bottlenecks and problematic flows across your distributed environment. It allows you to discover application dependencies on Azure Services. You can triage the problem by understanding if it is code related or dependency related and from a single place drill into related diagnostics experience. For example, your application may be failing due to performance degradation in SQL tier. With application map you will be able to visually see it and drill into SQL Index Advisor or Query Insights experience.Microsoft Build 2016 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.4/16/2016 12:32 AM44

Customer IntelligenceBusiness IntelligenceOperational Intelligence

Gather everythingActivityLoggingTracesKPIMetricsJobHistoryCustomerIntelligenceSyntheticPerf Counters

DashboardDevOpsDebugExperiments

Data Growth last 6 months (MB)Volume~60GBAverage per day

BlueR:0 G:120 B:215CyanR:0 G:188 B:242Light GrayR:210 G:210 B:210Dark BlueR:0 G:32 B:80Dark GrayR:80 G:80 B:80GrayR:115 G:115 B:115PurpleR:92 G:45 B:145OrangeR:216 G:59 B:1GreenR:16 G:124 B:16Main colorsSecondary colors (use only when necessary)

2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.4/16/201645

Alerting is key to fast detectionWe set alerting goalsEvery alert must be actionable and represent a real issue with the system.

Alerts should create a sense of urgency false alerts dilutes that

But poor alerting makes DevOps unhappyRedundant alerts for same the issue

Needed to set right thresholds and tune often

Stateless alerts contributed to further noise

BlueR:0 G:120 B:215CyanR:0 G:188 B:242Light GrayR:210 G:210 B:210Dark BlueR:0 G:32 B:80Dark GrayR:80 G:80 B:80GrayR:115 G:115 B:115PurpleR:92 G:45 B:145OrangeR:216 G:59 B:1GreenR:16 G:124 B:16Main colorsSecondary colors (use only when necessary)

2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.4/16/201646

What we will talk about today

ContinualDevelopment & TestingContinualReleasesMonitoring & LearningContinual Planning & Tracking

47

What we will talk about today

ContinualDevelopment & TestingContinualReleasesContinualMonitoring & LearningContinual Planning & Tracking

48

Continual ImprovementDevOps is part of a broader goal of Continual Improvement.

ContinualDevelopment & TestingContinualReleasesContinualMonitoring & LearningContinual Planning & Tracking

49

Code RepositoryBacklogBuild + DeployMonitor and improve

Automated Testing

User Feedback

Visual Studio Team Services

Visual Studio Marketplace920Visual Studio Code Extensions5,910Visual StudioExtensions100Visual Studio Team Services ExtensionsLaunched in November 2015 Integration with slack, github, etc. Available in Team Services & Team Foundation Server Update 2.Amazing Extensions & Marketplace

DevOps has incredible value, but it takes effort and investment at an individual, group and org level. So do what you can, when you can and embrace it!Our Top Recommendations

Focus the Ops and Dev teams on the business and technical benefits. DevOps leads to being able to release more frequently, test more often, and have fewer errors that cause friction and delays. Build processes to allow for collaboration and minimize points of friction. Reward automators over administrators; focus your efforts on aggressive automation and standardization, using common tools to simplify implementation. Be sure to budget dollars and time for training. Budget time for training, encourage cross-domain knowledge sharing, and help Ops become familiar with coding languages. In a DevOps environment, Dev teams must take on some configuration responsibility, and Ops teams must learn the key tenets of Agile delivery, but each team will only do so if they are given time and encouragement. Start small and learn as you grow. DevOps is not an all-or-nothing proposition. Identify your applications that change frequently or are the cause of too many problems or delays, along with those that arent tested frequently enough because configuring test environments is too difficult or time-consuming.

52

Thank You!Organizers, Sponsors and You for making this possible.100+ Sharepoint Presentations At.. Slideshare.Net/RHarbridgeWhen To Use What Whitepaper.. WhenToUseWhat.com Azure Code Samples Gallery.. https://azure.microsoft.com/en-us/documentation/samples/Message Me On LinkedIn or Email [email protected] Speaker | Author | Super Friendly

Twitter: @RHarbridge. More to come on our blog at http://2toLead.com.