As my strategy in previous articles, I try to explain any topic in the simplest way. So, let’s start with an example. You heard a lot about automated systems in factories. For example a juice producing factory which produce tens or hundreds million juice a day, can’t hire couple thousands of people to make this juices and packaging them. Off course they need an automation system in factory to do this repetitive daily jobs for them.
Now, imagine you are building a software which its users are couple hundred or couple thousand person. For this purpose, maybe couple of developer can make it happen by collaborating with each other. But imagine you are developing a software which its users are couple million and sometime billion persons worldwide (like Microsoft office or adobe Photoshop or even operating systems like windows and etc) and also couple hundred developer work on this project to build the software. Does the previous traditional methods work in this scenario??!! Maybe yes, but in very slowest way.
Let’s get back to the topic. “DevOps” is abbreviation of two words: Development and Operation. DevOps itself is not name of a software or tool, but it is kind of a concept or methodology. There are many software and tools like, Git, Jenkins, Docker, Kafka, Kubernetes, Puppet, Nagios, Chef, Cassandra and many others which considered as DevOps tools.
When you are working on a huge software development project, it means many developers are working in a same project. The idea of source controls and version controls developed for this purpose. In source controls like “git”, there is a shared repository of software project among developers that everyone (with access permission) can work on same code or project and make changes to project. This is one of DevOps solutions.
As big as your software would be, much bugs could happen and you need to fix bugs in new updates and new releases or you want to add new feature to previous release or change some parts of that release. So there is concept as “Continuous Delivery” and “Continuous Integration”. This mean you need to continuously integrate the software project and deliver it to customers worldwide. As huge as your project is, this task could be very painful with traditional methods. One of famous DevOps tools for “Continuous Delivery” and “Continuous Integration” or “CI & CD” is “Jenkins”.
There are many DevOps tools that each one take care of a responsibility in project. If your project is not big enough, using DevOps and dealing with its natural complexities, maybe put you in big trouble. But every day, huge software companies worldwide, joining to DevOps community to enjoy from its powerful rapidity and preciseness which brings to software development.