DevOps RoadMap — How to Get Started!!
Last Updated on July 24, 2023 by Editorial Team
Author(s): Ritheesh Baradwaj Yellenki
Originally published on Towards AI.
DevOps
Key concepts one needs to know to start their career in DevOps
If it hurts, do it more often!
When I first started learning DevOps I honestly had no idea about it, a lot of questions hovered in my mind all the time. Is DevOps is a domain? Or direct software? Where should I start? What am I trying to achieve? What problems can I solve using DevOps? What is my RoadMap to get started? What are the prerequisites of learning it?
It was a hell lot of confusion, so I am here to clear your confusion now that my confusion is no more confusion.
DevOps is a collaboration between the Dev team (who needs speed) and the Operations team (who needs stability).
Imagine you run a restaurant. You want to serve the best to your customers, a good roadmap would look something like this — you ask the cook/chef to design new and creative recipes to attract the customers, then the cook will gather his requirements and make a few dishes, out of which the best will be later served to the customers. It doesn’t stop there! You’d want to get feedback from your customers and if it’s negative you’ll do the necessary modifications to the existing recipe and compare it against the older one. And if it’s good again, you would always want to surprise your customers with new recipes by maybe adding some extra ingredients and flavors.
Using the above analogy, let us get into understanding DevOps. As a developer, you start with designing a new blueprint or plan for an interesting application, gather the requirements, and develop & build the code. Then the application is tested against various test cases. If the build passes the testing stage we release the application, deploy it. Again it’s not over yet! We need to handle incidents by continuously monitoring them. It’s a cycle that keeps Dev and Ops team work together to build speed and stable applications.
DevOps is the practice of operations and development engineers working together in the entire service lifecycle from design through the development process to the production support.
DevOps is not a single tool, it’s a practice or set of principles and values which supports collaboration.
DevOps Core Values — CA(L)MS
- Culture — Mutual understanding is maintained between the Dev team and the Ops team.
- Automation — It’s about automation, maintaining infrastructure sometimes leads to problems, a company like Netflix deploy their code, maintains systems or servers & rapidly update new features. The process is automated to get expected results, reduce human errors, and a lot more.
- Lean — Working in small batches, progress limits, Feedback loops, visualization comes under Lean Management.
- Measurement — The success of software deployments is relatively easy to measure once completed. However, attempting to measure future deployments as part of a forecast model is, of course, much more challenging.
- Sharing — Sharing ideas and problems in the heart of collaboration. And it’s also really at the heart of DevOps.
In DevOps, we prefer people over process over tools or technology. The three principles include — System’s thinking (focus on the overall outcome of the entire pipeline in our value chain), Amplifying Feedback loop, Continuous Experimentation & Learning.
DevOps Stages
- Version Control — A large number of developers and testers operate on a single project, there should be a platform for their collaboration, to share code, track file changes. Version control systems will provide us those features.
Tools — Git, BitBucket, Mercurial, Bazaar, SVN, etc. - Continuous Integration — A development practice where developers integrate their code into a shared directory or repository i.e., version control system. It involves steps from code commit to building the code into the executable format, conducting unit testing, running the application against automated test cases. If the test fails developers get notified that the build is failed so that they will work on it.
Tools — Jenkins, TeamCity, Bamboo, etc. - Continuous Delivery — Sometimes we don’t want to directly deploy it to production, different versions of software or artifacts will be stored so that we can deploy any version of software we want. It also makes it easy to roll back to previous versions of the updated one that has bugs. Once the build is successful, the executable files or artifacts are stored in repositories in tools like Artifactory, Google’s container registry for docker images, etc.
- Continuous Deployment — It’s a strategy that involves releasing the application to production automatically after undergoing acceptance testing i.e, from code commit to the production environment.
- Configuration Management — Installing all the requirements necessary to set up a server is a big task for developers and they don't find time to get involved with the application. Also, the dependencies issue might be a huge problem. What services are we running? What state are those services in? How did they get to their current state? What was the purpose of the changes? Configuration Management helps us getting these answers.
It is a process for maintaining computer systems, servers, and software in a desired, consistent state. Start configuring environments automatically for free.
Tools: Chef, Puppet, Ansible, etc.
DevOps is full of challenges and a lot of learning, people often use the term ‘DevOps Dilemma’. It has a lot of processes, principles, and tools that make the learning of DevOps a bit of a challenge. But with the right amount of time and moving step-by-step, making your understanding of terminologies strong, one can find an easy way to master DevOps. Also applying some concepts while making projects might help!
In this article, I have covered some basic concepts on DevOps. I will see you soon again with more advanced concepts on DevOps with hands-on exposure. Till then stay safe and stay home.
If you would like to get in touch, connect with me on LinkedIn.
Join thousands of data leaders on the AI newsletter. Join over 80,000 subscribers and keep up to date with the latest developments in AI. From research to projects and ideas. If you are building an AI startup, an AI-related product, or a service, we invite you to consider becoming a sponsor.
Published via Towards AI