DEVOPS LEARNING CENTER
HOW CAN WE HELP?
You need help getting started with DevOps
You started a successful DevOps program but it's not running fast enough
You need on demand access to DevOps resources and certified engineers
DEVOPS TECHNOLOGY EXPERTISE
Continuous Integration / Continuous Delivery
We also support the rest of the Atlassian product suite.
COMMON QUESTIONS ABOUT DEVOPS
DevOps is a methodology created to solve the tension between development – which always wants to change things, and operations, which wants nothing to change.
These two groups both have the job of enabling the business but they are diametrically opposed to each other.
DevOps is about allowing both teams to work together so that an organization can manage change quickly, safely and effectively.
To be competitive in the modern marketplace, you have to innovate quickly. The adoption of digital technology in our daily lives means that businesses can create new products and services and interact with their customers in ways that were previously unimaginable.
Netflix is a shining example of how a new company was able to enter an existing marketplace of video rental and improve/innovate on its services so quickly that it created a new market while making obsolete the previous model.
DevOps is about enabling innovation by automating and supporting rapid change. Just because you may not be a digital company today, your competitors might be.
DevOps is for any company that needs to manage rapid technology development. If you have a development team and an operations team, then you need to incorporate some form of DevOps into your processes to help streamline, secure and automate changes to your production environment.
DevOps is also a good fit for organizations seeking to improve efficiency and optimize processes. For example, Banks can use DevOps to automate tasks in a repeatable, reportable, and compliance way.
DevOps uses a CAMS approach. The term was coined by Damon Edwards and John Philips in Silicon Valley back in the 90s and early 2000s as a way to define the culture of empathy.
C = Culture
The term DevOps is about learning a different way to work. It’s cross-functional.
“It doesn’t mean I do everything myself,” said Matt Stratton, senior solutions architect for Chef. “It does mean that I approach my team in a cross-functional way.”
The CAMS mindset is not compartmentalized—a trap some organizations fall into by rewarding individual achievements at the expense of the team.
“It isn’t I do my thing, and then I pass it off to you. I don’t care what the person did before me, and what the person does after me.”
When you’re looking to bring DevOps talent onto your team, approaching it with this dynamic will teach you how to increase employee productivity and create a more satisfied team.
A = Automation
“If the build, deploy, test and release process is not automated, it’s not repeatable.” Jez Humble and David Farley, Continuous Delivery. “ When steps are taken manually, they are error prone, and there is no way to review exactly what was done.”
In order to fix what goes wrong, or repeat what went right, you need to have a system for building company culture in place that can be repeated.
M = Measurement
Once you have a team of DevOps talent, the next question is HOW do you align incentives? When incentives work at cross-purposes, you end up with a lose-lose situation.
For example, Matt’s team at a previous company was challenged to write one new software test. Result: everyone wrote a test, but nobody tested anything. The incentive was tied to writing, not testing, so the strategy failed. Why? The team was not aligned to each other’s goals.
To understand this better, you need to turn to game theory and outcomes. The beautiful mind of John Nash devised a solution concept known as the Nash Equilibrium.
Using his system, we can determine when we have a Nash Equilibrium or a win-win situation. A broken traffic signal is a good example of this. Even if there were no police around, the 2 drivers will likely choose to obey the law and stop, so neither driver crashes. One driver must allow the other to go, The other options are they both go, and crash or no one goes. Cooperation for the best outcome is required. One driver will decide to allow the other to go, or go, and expect the other driver to wait.
Nurture a Blame Free DevOps Environment
People are adept at hiding problems when they think they’ll be punished for their mistakes. It doesn’t help them make fewer mistakes, and, on top of that, you have no idea what’s going on in your environment or how to increase employee productivity.
One of Matt’s customers developed the “blameless post-mortem.”
“The thing is, people are always going to make mistakes. You can’t fix that. People are human. So stop trying to fix them. Instead, we fix systems. That’s what we mean when we say we have a blameless post-mortem.”
“For example: if a website goes down, we fix it. We don’t sit there and say it’s because John or Jane deleted these files. We identify the slip, but we don’t sit there and say it’s because you messed up. We’ll punish you, so you don’t do it again.
Instead, we say—how was John or Jane even able to do that? Then we make the system more resilient. Then, when a human makes a mistake it doesn’t crucially compromise the system.”
S = Sharing
The upside of the Blameless Post Mortem is the opportunity for each member of the team to weigh in on what went wrong.
Where can they automate better? How can the team act to improve? How muck quicker can they turn around and get the product into the hands of the customer?
“It’s a culture of SHARING. People collaborate and work together toward the common end.”
ACHIEVING CONTINUOUS INTEGRATION
How do DevOps teams win the Super Bowl Ring of building company culture to get software into the hands of customers—also known as continuous delivery?
They do it by following the CAMS formula.
- They respect the CULTURE by respecting each other
- They AUTOMATE wherever possible to eliminate error
- They MEASURE progress, and
- They SHARE feedback freely without blame
Matt Stratton, Senior Solutions Architect at Chef, is also one of the founders at ArrestedDevOps, a wildly popular podcast devoted to all things DevOps.
The best way to get started with DevOps is to map out your current processes, see what you have, identify what is working and what is causing you trouble. Then prioritize and create a plan.
If you are a development organization, you must have a code repository to manage the changes to your code by multiple developers and over multiple releases. This is a bare minimum.
Next, look at what is taking the most time. Are the machines in your Dev, Test and Prod environments identical? Do you experience issues with code working in Dev but not in Prod? Then you might want to look at provisioning, configuration management solutions and using containers.
If your environments look great but it takes an entire night to release code, then consider implementing build automation and/or a CI/CD solution.
The honest answer on getting started with DevOps is “It depends.” and it is one of the things we do to help our customers to succeed.
Just as operations is afraid of change, those involved in security is doubly concerned.
In the article below we talk about how modern software architecture with microservices requires a whole new way of managing security from the inside out.
DevOps is made up of several components that work together to promote the creation and deployment of change. To have an end-to-end solution, you need to incorporate a form each component in your solution, but DevOps is a journey and it takes time to get there.
- Code Planning
- Code Repository
- Configuration Management
- Continuous Integration / Continuous Delivery
- Test Automation
- Issue Tracking