DevOps has been the latest trend in a long succession of problem-solving processes that come with a digital garage full of tools: CI/CD systems, testing frameworks, monitoring tools, and security audit tools to name a few. Which of these tools do you need? Which will explain the problems, pains, and slowdowns your organization faces? In my phase helping teams of all sizes, I kept hearing the same two questions: ‘What organizational structure do we want to have? What tools should we implement?’
We Want DevOps!
DevOps is a very precise collaboration between developers and operations teams. In principle, it indicates that you’ve ethnically adopted development performs into your infrastructure and operational practices into your development cycle. What does this look like in practice? It can mean continuing infrastructure as code or generating absolute infrastructure by building reusable components so you can sit down or up when you want, giving you version control and a history of changes you’ve finished.
Suggested Read: The top DevOps testing tools of 2019
Does it also mean receiving all product contributors to care more about the end effect of what they’re working on how does it meaning in the world? How are users interacting with it? Receiving people to truly care about quality means kind about both business value and usability. When everyone who is building a product cares about both features of quality, cares about what occurs when it gets deployed and gets showing to the end user. That’s the result of true DevOps adoption.
Before Beginning Your Transformation
- Make sure everyone is on a similar page with respect to what you’re trying to accomplish with this transformation. Everyone should decide on the problem you’re trying to explain, and that you are aligned on the pain ideas.
- Always start small. Don’t try to make the whole organization into a model DevOps team overnight. Instead, start with one team, and see if the practice changes work in your organization. If you see improvements, keep moving incrementally.
- Do what works for you. See that DevOps might not be the right explanation for your organization. Some companies have been effective for a long time without DevOps, and it might not be exact for them, given their culture or their product wants. I’ve personally seen waterfall work actually well for some very effective organizations. For example, if confidentiality is a big part of your company’s product strategy, then shipping incrementally to get feedback would not work for you, as you’d need to keep all product specifics under lock and key up until a big introduction. In that environment, it would be very problematic to build a DevOps culture.
- Always measure. Before you start any improvement plan, get exact metrics for where you’re now at (i.e. our dev cycle takes X time). Do this before you’ve invited an SRE onto the development team. Then after a small amount of time, you’ll be able to see whether it’s been effective. Extent before and after you make a change, and constantly measure to see if you’ve enhanced.
- Do not try to automate everything. At least not all at once. One delusion about DevOps is that all the infrastructure provisioning and the configuration management must be done repeatedly. This is discussed as ‘infrastructure as code.’ But some things work improved when they are manual; automation is not the explanation for everything. Also, think about how several times you’re going to run that automation script and how much time it would take you to automate it. Will you procedure it thousands of times or only three? Also, sometimes you have to start the manual way to even figure out what would be the greatest solution for automation. Still itching to automate? Dockerizing your application is an excessive way to automate because the work you put in is probably to be re-used. Automating pre-production environment formation is another excessive way to implement automation.