By Omkar Bhatt, Agile Project Manager
Most of us have heard about DevOps, and have either experienced or will experience DevOps sooner or later. A search for ‘DevOps’ returns links to thousands of articles with lots of information on what DevOps is and how it can help businesses reduce development times, improve deployment quality, and deliver new features faster.
While there is a wealth of information about DevOps in terms of automation capability, benefits and best practice, there still tends to be a sense of confusion at first glance. A lack of understanding can lead to program and project managers setting the wrong expectations. The intent of this post is to provide a simple overview of DevOps and elaborate on some basic key principles to gain a better understanding of the concept.
As a Project Manager or Program Manager myself, I find delivering a project on time is always a key challenge. Ensuring faster development, testing and deployment is paramount. One answer to this is automation, one of the main DevOps principles.
By automating much, if not all, of the development process, you can remove many of the manual steps. This speeds up your development times and removes many possible chances for human error – assuming your automation scripts are correct to begin with!
The automation process – or CI/CD pipeline – shown below is a 3-step process:
The developer writes code on a local machine and checks it into the Source Code Management (SCM) Repository. This It is a code database used to enable the collective development of projects by multiple developers. Specific tools (such as BitBucket, Subversion, etc.) are used to manage the repository and maintain a version history of work done on actual source code by developers.
Once the code is checked-in to the SCM repository by the developer, the next action triggered is BUILD. Various tools (like Jenkins, Bamboo, etc.) are used to create a deployable package (war file, etc.) which can be immediately deployed into environments. Other actions performed during a build process could include code reviews, unit testing, and security reviews. These all help to create a well refined, deployable package.
Once the package is created it needs to be deployed. This is where continuous deployment comes in. Tools (like CA Release Automation, Jenkins) are great for deploying the latest code in an environment without any manual intervention. That’s the beauty of this process. No manual steps from when the code is checked-in through to when it is deployed.
What do you think? In today’s fast-paced world, where a driver to success is obtaining the first mover advantage is DevOps and automation the way forward? By removing the ‘hope’ that a release will meet quality standards, you can deliver smaller, better quality iterations, in less time.
I hope this post gives you a high-level understanding of DevOps. We will talk more about other DevOps principles in future posts, which will explain concepts in further detail, so stay tuned!
Avocado consultants have years of experience helping clients optimise their IT processes through applying DevOps principles, agile coaching, performance management, monitoring and data intelligence. To talk to one of our Solution Managers about how DevOps can help you deliver with certainty, contact us on email@example.com.