Talking about DevOps and containers at MS Insights Sao Paolo 2015.
Talking about containers being or not the solution to implementing DevOps practices ? This talk includes a demonstration that show the integration between Visual Studio Online, Docker Hub and GitHub for continuous integration and automated deployment.
11. App
A
Containers vs. VMs
Hypervisor (Type 2)
Host OS
Server
Guest
OS
Bins/
Libs
App
A’
Guest
OS
Bins/
Libs
App
B
Guest
OS
Bins/
Libs
AppA’
Docker
Host OS
Server
Bins/Libs
AppA
Bins/Libs
AppB
AppB’
AppB’
AppB’
VM
Container
Containers are isolated,
but share OS and, where
appropriate, bins/libraries
Guest
OS
Guest
OS
13. Build once, run anywhere
Application
code
Infrastructure
code
Deployable
unit
staging
Dev
production
Test
14. Azure Virtual Machine
MVC 4
Mono +
nginx
Debian
Demonstration - Application
• Web Frontend running on mono + nginx
• MySQL database
• Deployment: Azure Resource Manager
(ARM) template
• Automation engine: Azure automation
• Docker containers to simplify the
deployment
• Application build : Visual Studio Online
• Container build : DockerHub
MySql
Debian
15. Automation – Continuous Integration
Code repository
Source control
Continuous
Integration
VSO
Hosted
Build
16. Automation – Continuous Integration
Code repository
Source control
Continuous
Integration
VSO
Hosted
Build
Docker
Build triggered
Build order
send to GitHub
Container on
DockerHub
17. Automation – Infrastructure as Code
Code repository
Source control
Continuous
Integration
VSO
Hosted
Build
Docker
Build triggered
Build order
send to GitHub
Container on
DockerHub
Fully automated
deployment
18. Automation Architecture
Code repository
Source control
Continuous
Integration
Hosted
Build
Docker
Build triggered
Build order
send to GitHub
Container on
DockerHub
Fully automated
deployment
19. Final thoughts
• Containers bring agility
• …and complexity
• It’s one of the tool that DevOps can leverage.
• Tools and Technologies
• Learning new tools and technologies
• Develop new skills
• Don’t be afraid to restart from the beginning
• People and Process
• Willing to take risks
• Accept failure
• Culture shift
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 isn’t 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.
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 projects
This increases time and labor involved in delivering and maintaining software systems – not a good thing in a world where fast time to market is key
Add 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!
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.
People = Culture
Fundamental 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 improvement
PEOPLEResponsibilities, management, skills development, and discipline
ProductsTools and infrastructure
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).
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.
…result is significantly faster deployment, much less overhead, easier migration, faster restart