First and foremost, DevOps is not a tool or software or something that you can install and expect it will work automatically
DevOps is a set of practices or a methodology that automates the processes between software people and IT operations teams, in order that they can build, test, and release software or end results faster and more reliably
The concept of DevOps is founded on building a culture of collaboration between teams for faster results.
With DevOps, your organization is equipped to deliver better products faster. By bringing together people, process and technology with shared practices and tools you gain the benefits of reduced development times, faster time to market and increased product quality and MOST importantly client satisfaction!
How does DevOps model work?
Plan and track
Identify and track work using practices and processes like Kanban boards and agile. When work is tracked visually, stakeholders have a clear insight into the development team’s capacity and can better plan and priorities tasks.
“Kanban” is the Japanese word for “visual signal”
A Kanban board is an agile project management tool designed to help visualize work and maximize efficiency.
You can use other available tools as well for planning and tracking from the various vendor. I mentioned Kanban because I came across something new 😊
Write code using modern version control systems like Git to integrate continuously and safely to the master branch. When a feature is complete, the developer submits a pull request and once approved, changes are merged to master and the old branch is deleted.
Some other version control system tools are: BitBucket, Github etc.
Build and test
Checking in code to Git or another version control system kicks off an automated build process. The code is tested and validated, ensuring that bugs are caught early in the development phase and less costly to fix. This process of automating build and test is called continuous integration (CI).
Example of build tools: Maven, Gradle, Team City etc.
Once tested and validated, each change is deployable to the production environment using continuous delivery practices.
With continuous deployment, the entire process from code commit to production is automated. When your code is automatically deployed, your customers get access to new features as soon as they are ready.
Examples of continuous integration (CI/CD) tools: Jenkins, Gitlab, GoCD etc.
Monitor and Operate
Once live in production, the monitoring delivers information about your app’s performance and usage patterns. Achieve high availability by getting immediate, rich diagnostic data that your team can act on quickly. Mitigate issues for users and gather data to make informed business decisions about future development.
Examples of monitoring tools: Nagios, Zabbix, Sensu, Prometheus etc.
There are a lot of tools in the market apart from the examples I have given. These are few from the long list.
That’s it for now! we will discuss more on DevOps in future articles. Thanks for reading and if you liked it please share.