Recently I started doing some research on understanding the genesis and wanted to understand more about it. After spending few days going through online articles and lot of youtube videos I came to the conclusion that I was partially involved in doing or following it DevOps for a many years.
Wikipedia says Devops "is a software engineering culture and practice that aims at unifying software development (Dev) and software operation (Ops)".
So basically it is to bring together developers and operations team (who manages infrastructure) and that is done with the help of some tools to automate recurring tasks. Of course the intention here is to reduce time.
Take a look at this video below to understand what is DevOps
Also this video which describes DevOps even better.
Do we care about DevOps?
One thing I realised is that almost everyone who is developing software needs DevOps. You need to test the code on different environments before deploying it on production environment and in case you want to reduce the time it takes your code from your local development environment to production by doing some automation then you can potentially adopt DevOps practices
These automations requires different tools and there is no doubt that now a days there is a need for dedicated DevOps engineers who not only know how tools works but they also sympathise with both developers and operations alike.
Not sure where to start?
If you want to start adopting some good practices start identifying the pain areas first. For me when I developed Drupal websites I was paranoid about testing and validating everything is working fine or not. My biggest challenge was not really the actual testing but getting the staging environment up and running with latest changes. It was not taking me insane amount of time but it was still I used to do manually. We initially had problem with mis matched development environments and we did adopt Vagrant but spinning new instances for testing purpose was a little challenge. So automating IT infrastructure was out pain area. May be in your case it could be performing automated tests.
What is the challenge in adopting DevOps completely?
In my opinion everyone wants to save time (which is money) but the initial effort requires to makes changes stops many people to still moving forward. Especially when there are so many tools now a days. How many tools to adopt and in fact which tools to use out of many for doing the same thing.
Need for dedicated DevOps consultants
Recently there have been a surge in the market for dedicated DevOps jobs and that makes total sense. Companies realise the importance of getting an expert who has setup tools in similar setup. These experts will not only guide you in choosing the right tool but they are also expected to have knowledge of development, operations and testing as well. In my opinion it is extremely difficult to become an expert on everything and it is not a one man job and that is why companies are not creating a separate team only for DevOps.
I am sure DevOps is here to stay and it is funny how things change in just few years. It is a new term that was only in 2008 when people starting talking about Agile infrastructure but it has become really popular and buzz word just recently.
Personally I was doing DevOps partially but never really focussed on the whole lifecycle. My next goal now is to spend more time understanding how Jenkins and Bamboo works. I am slightly more inclined towards Bamboo of course being at Atlassian consultant :) but this is one of my personal goal this year to gather more knowledge in DevOps.
Bye and have fun :)