ms insights brazil 2015 containers and devops
TRANSCRIPT
Apresentao do PowerPoint
Container peace in the house with DevOps
MDC304
Special thanks toAleksandar Djordjevic @Alex_ZZ_ Srdjan Bozovic @zmajcekbojelila
@[email protected] Caro
Curious about DevOps Tech savvyGlobe trotterTechnical evangelist manager
2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.9/30/2015 9:26 AM2
Traditional development approachSoftware goes from development to production Software release often tossed between development teams and operationDeployment scripts created by operations team or hackedDivergence between production and QABuild once, run anywhere
Taken from What is DevOps http://dev2ops.org/2010/02/what-is-devops/
Development kicks things off by tossing a software release over the wall to Operations. Operations picks up the release artifacts and begins preparing for their deployment. Operations manually hacks the deployment scripts provided by the developers or creates their own scripts. They also hand edit configuration files to reflect the production environment, which is significantly different than the Development or QA environments. At best they are duplicating work that was already done in previous environments, at worst they are about to introduce or uncover new bugs.Operations then embarks on what they understand to be the currently correct deployment process, which at this point is essentially being performed for the first time due to the script, configuration, process, and environment differences between Development and Operations. Of course, somewhere along the way a problem occurs and the developers are called in to help troubleshoot. Operations claims that Development gave them faulty artifacts. Developers respond by pointing out that it worked just fine in their environments, so it must be the case that Operations did something wrong. Developers are having a difficult time even diagnosing the problem because the configuration, file locations, and procedure used to get into this state is different then what they expect (if security policies even allow them to access the production servers!).Time is running out on the change window and, of course, there isnt a reliable way to roll the environment back to a previously known good state. So what should have been an eventless deployment ended up being an all-hands-on-deck fire drill where a lot of trial and error finally hacked the production environment into a usable state.
3
Software delivery challenges Frustration
Delays
Lack of insights
?
But how is it that some companies like Netflix, Amazon, Etsy, and Facebook regularly deliver new features and innovation to their customers while other companies must wait weeks or months to release software updates?Today, we see continual frustration on all sides:
Business, customers and IT all suffer from a lack of collaboration and communication between development and operations in software projectsThis increases time and labor involved in delivering and maintaining software systems not a good thing in a world where fast time to market is keyAdd to that the problem that much of what we build is based on assumptions instead of hard data and you can see how this could easily lead a team to build the wrong thing
The inability to deliver software efficiently and react quickly to changes can lead to much more than just frustration in the long run, this can threaten your entire business!
Build 2015 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.9/30/2015 9:26 AM4
DevOps Benefits Source: https://puppetlabs.com/
Deploy code 30x fasterand with 200xshorter lead time as compared to their lower-performing peersDevOps Practices improve IT performanceStrong IT Performance is a competitive advantageFirms with high-performing IT organizations were 2x as likely to exceed their profitability, market share, and productivity goalsHave 60x fewer failuresand recover from failure 168x faster as compared to their lower-performing peers
2014 Report collected in December 2013 had over 9,200 survey respondents across 110 countries with companies of ALL sizes and verticals.2015 Report had 4,976 respondents with companies of ALL sizes and verticals.
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.9/30/20155
DevOps: the three stage conversation2Process3Products1People
DEV
OPS
People = CultureFundamental attributes of successful cultures: Shared mission and incentives: infrastructure as code, apps as services, DevOps/all as teams You need to consider your hardware as a commodity, (don't give your servers names) , servers are like farm animals, it is just harder if you let theids name them Build deep instrumentation into services, push complexity up the stack Rally around agile, shared metrics, CI, service owners on call, etc. Changing the culture: any change takes time, changing culture is no exception and you can't do it alone, exploit compelling events to change culture: downtimes, cloud adoption, devops buzz
PROCESSDefinition and design, compliance, and continuous improvementPEOPLEResponsibilities, management, skills development, and disciplineProductsTools and infrastructure
S4 Solution Specialist Sales Summit 2013 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.9/30/2015 9:26 AM6
List of DevOps PracticesInfrastructure as Code (IaC)Continuous IntegrationAutomated TestingContinuous DeploymentRelease ManagementApp Performance MonitoringLoad Testing & Auto-ScaleAvailability MonitoringChange/Configuration ManagementAutomated Environment De-ProvisioningSelf Service EnvironmentsAutomated Recovery (Rollback & Roll-Forward)Hypothesis Driven Development Testing in ProductionFault InjectionUsage Monitoring/User Telemetry
One Marketing Template
2013 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.9/30/20157
List of DevOps PracticesInfrastructure as Code (IaC)Continuous IntegrationAutomated TestingContinuous DeploymentRelease ManagementApp Performance MonitoringLoad Testing & Auto-ScaleAvailability MonitoringChange/Configuration ManagementAutomated Environment De-ProvisioningSelf Service EnvironmentsAutomated Recovery (Rollback & Roll-Forward)Hypothesis Driven Development Testing in ProductionFault InjectionUsage Monitoring/User Telemetry
One Marketing Template
2013 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.9/30/20158
Transportation in 1927
https://en.wikipedia.org/wiki/Break_bulk_cargo#/media/File:Queens_Wharf,_Port_Adelaide,_before_1927.jpeg
This image is of Australian origin and is now in the public domain because its term of copyright has expired. According to the Australian Copyright Council (ACC), ACC Information Sheet G023v16 (Duration of copyright) (Feb 2012).
9
Transportation in 2015Largest cargo container in the word
From https://commons.wikimedia.org/wiki/File:Estelle_Maersk_(6953651598).jpg?uselang=fr
This file is licensed under the Creative Commons Attribution-Share Alike 2.0 Generic license.
10
AppA
Containers vs. VMs Hypervisor (Type 2)Host OSServer
GuestOS
Bins/Libs
AppA
GuestOS
Bins/Libs
AppB
GuestOS
Bins/Libs
App ADocker Host OSServer
Bins/Libs
App A
Bins/Libs
App BApp BApp BApp B
VM
ContainerContainers are isolated,but share OS and, whereappropriate, bins/libraries
GuestOS
GuestOS
result is significantly faster deployment, much less overhead, easier migration, faster restart
11
Linux vs. Windows Containers
2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.9/30/2015 9:26 AM12
Build once, run anywhereApplication codeInfrastructure code
Deployable unit
staging
Dev
production
Test
Azure Virtual MachineMVC 4
Mono + nginx
DebianDemonstration - ApplicationWeb application Web Frontend running on mono + nginx MySQL database
Infrastructure platformDeployment: Azure Resource Manager (ARM) templateAutomation engine: Azure automation Docker containers to simplify the deployment
Integration piecesApplication build : Visual Studio OnlineContainer build : DockerHub
MySql
Debian
2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.9/30/2015 9:26 AM14
Automation Architecture
Code repositorySource control
Continuous IntegrationHosted Build
Docker Build triggeredBuild order send to GitHub
Container onDockerHub
Fully automated deployment
Automation Continuous Integration
Code repositorySource control
Continuous IntegrationVSO Hosted Build
Automation Continuous Integration
Code repositorySource control
Continuous IntegrationVSO Hosted Build
Docker Build triggeredBuild order send to GitHub
Container onDockerHub
Automation Infrastructure as Code
Code repositorySource control
Continuous IntegrationVSO Hosted Build
Docker Build triggeredBuild order send to GitHub
Container onDockerHub
Fully automated deployment
Automation Architecture
Code repositorySource control
Continuous IntegrationHosted Build
Docker Build triggeredBuild order send to GitHub
Container onDockerHub
Fully automated deployment
Final thoughtsContainers bring agilityand complexityIts one of the tool that DevOps can leverage.Tools and TechnologiesLearning new tools and technologies Develop new skills Dont be afraid to restart from the beginningPeople and ProcessWilling to take risksAccept failureCulture shift
Q&AVisite o espao Ask the Experts, prximo dos expositores
TechReady 16 2013 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.9/30/201521
Continue sua capacitao
Microsoft Virtual Academyhttp://aka.ms/ch9http://aka.ms/mva
TechReady 16 2013 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.9/30/201522
Azure Build definition argumentsVS Build/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.stagingDirectory)"
File copy arguments-connectedServiceName -package '$(build.stagingDirectory)\**\*.zip' -storageAccount -destination AzureBlob -containerName drop
Docker Hub Trigger-triggerToken
Enable Continuous Integration