In terms of the technical fad, Devops is the new Cloud, and is overhyped today. Something which definitely has a immense value, but also misinterpreted. If you ask about the difference between the two, here are some basics.
Origin and Evolution of Cloud Computing
Back in 1961, John McCarthy, a computer scientist and a professor at MIT centennial predicted “Time shared model of computing will result in the future where computing will be sold as a Utility…. “
Cloud Computing brought in the concept of that utility computing, much like the way we use any other utilities such as electricity, water etc. We need electricity to run almost everything in our house today. However, If you construct a new house, you don’t have to worry about generating power. You don’t build power plants, power grids, transformers and distribution units. Someone (in this case government) has done it for us, and as a scale. You just apply for a power line, start using it as much or as little you want, and pay bill at the end of the month, based on the units consumed. That’s exactly what you could do today with Cloud. Provision and use computing capacity in the form of compute, storage, network resources, use as much as you like and pay at the end of the month.
Now, this resulted in a revolution. Suddenly you had so many web SaaS companies mushroom everywhere. Before evolution of cloud, it was not possible for anyone and everyone to build a internet product, as hosting it required significant capital expenses in terms of buying hardware, hosting it, connecting it to the world and maintaining it. Cloud changed the game as the onus of building, securing, running and managing of this infrastructure went to like of AWS, allowing innovators to focus on their ideas. A lot of those ideas such as Facebook, Twitter, Netflix clicked big time and became successful, accelerating the world of startups. If you look at today’s startups, almost all of them build web based internet products.
Internet companies started driving the growth of cloud, which was then followed by large scale enterprises who realized the value of cloud. Also the social media revolution, smart phones and devices, growth of backend internet infrastructure empowered people to generate and share new digital content such as photographs, social posts, tweets etc. data which was mostly unstructured unlike a relational databases. This was followed by new breed of companies who were interested in retrieving, storing and analyzing all this unstructured data and make sense out of it. They dealt with huge volume of data and are popularly called as Big Data companies.
Dev & Ops Conflict: The beginning of Devops
New companies created new challenges. If you look at most of the web product companies, those primarily have two critical teams.
- A team which writes the code, builds the product and generically is called as Development team.
- A team which is in charge of taking that code, and pushing it to the live environment, and also responsible to manage the stability of that environment and keep the lights on, generically known as Ops team.
Now, both dev and ops teams, even though are critical for a product, have conflicting goals. Dev wants to push the code, deliver the product faster, release the new features to the customers etc. On the other hand Ops cares a lot about the stability of the code, robustness of the environment, rightly so. Another aspect of Dev and Ops conflict is due to the silos they have traditionally been working in. A lot of times organizations are designed that way which does not promote collaboration between different teams. Ops does not have insights into the product, what’s happening with the new released etc and dev does not have any idea about the way their product is deployed, managed in the live environment. This overall slows down the process of building and releasing products and at times creates quality issues too.
DevOps was started as a simple community discussion by some of the IT practitioners, including Patric Debois, a Belgian IT Consultant, who is attributed to initiating the discussion, which resulted in #DevOpsDays and then #DevOps hashtag to follow up on this discussion. The idea was “How do we bridge the gap between Dev and Ops”. The goal was to improve the speed of shipping products without compromising the quality. Now this involved everything you may need to do to achieve this objective. And this involved mainly,
- Creating a collaborative culture
- Using Automation wherever possible. Be it provisioning of servers, managing those at scale, or automating development workflows
And this is the reason when you hear about devops, there is always some mention of a tool which lets you automate some of the workflows. Example of the tools are Puppet, Chef, Jenkins for CI/CD, Ansible, Private and Public Cloud, Containers/Docker, Capistrano.
Coming back to the Devops Vs. Cloud, Cloud has now become a major part of the devops strategy, as it helps organizations to save time building, managing and scaling their infrastructures, reduce time and resources spent in doing so. With cloud, comes automation too, as almost everything you do with cloud, comes with a API, or a way to automate it. So In terms of scope Devops is not just about Cloud, but much more than that… In terms of hype value though Devops is the new Cloud.