Cloud Computing, what we see today, is nothing short of a revolution in the way IT systems are deployed. It has transformed IT management teams, which worked from a server-centric operations model into an application-centric operations model. In this blog, we will see how these seemingly independent trends contributed to the rapid cloud adoption phenomena and how it was developers who were leading at the forefront of all these four movements that lead to the ‘Cloud Computing Era.’
The cloud revolution actually happened in four strides instead of a single leap. The massive enterprise cloud adoption is the result of a confluence of four important yet distinct development trends. These four development trends are agile software development, lean startup movement, DevOps movement and agile cloud infrastructure management approach.
1) Collapse of the Software Project Phases
Before the start of agile software movement, every software project had very clearly defined phases – requirement phase, design phase, development phase and testing phase. The agile software approach first collapsed the distinction between the requirement phase and design phase. For instance, in the e-commerce world, eliciting all the business requirements for a project or a venture in one-go before starting the design was not feasible. It was now evident that starting the design and development even with partial business requirements reduced the project delivery time.
Accepting the cost of wasted effort in redesigning or redeveloping some features made better economic sense than waiting for completion of entire requirement set and starting the design and development. Slowly the agile process eroded any clear distinction between the traditional software phases. Developers evangelized the iterative design-develop-deploy cycle based agile software project methodologies from startups to large enterprises.
2) Lean Startup Movement
As Features and User-Stories were the focal points of agile project management methodologies, the next leap was the rigorous debating of what features should go into each project cycle and why. Lean Startup movement started with the book “Four Steps to the Epiphany” written by Steven Blank. Four Steps’ Customer Development Methodology was a significant influence of Eric Ries who founded “Lean Startup” by combining it “Lean Manufacturing” ideas coupled with Blank’s approaches. Lean Startup is “Agile Product Feature Management,” a methodology that was an agile approach to avoid bloated features in software products and adding features only when the market is ready to accept them. Lean Startup movement created had a major impact on many Silicon Valley startups between 2007 and 2010.
3) DevOps Movement
DevOps Movement took the agile project management principles applied at the requirements-design-development cycle and extended to development-testing-deployment cycle. DevOps emerged as best practices for ensuring smooth continuous rolling out of feature enhancements (resulting from agile development cycles) to production websites. DevOps movement empowered developers to provision their code into a virtual machine containing a replica of the production site instead of waiting for deployment engineers to allocate the computing resources.
In effect, DevOps blurred the lines between traditional roles of developers and IT operations teams just like agile project management methodologies blurred the requirement-design-development distinctions. The DevOps movement also has been the initiative of the developers in response to the need for rapid deployment iterations in organizations. Do read our blog, DevOps In AWS Cloud Is A Match Made In Heaven, to know how DevOps are playing a key role in day-to-day AWS operations.
4) Agile Cloud Infrastructure
Further, as DevOps movement prompted a synergetic bridge between development and systems administration, attention slowly shifted to simplifying the burdens associated with hardware acquisition and setup of the software systems.
One may ask: why not just-in-time provisioning of the hardware resources similar to the just-in-time development of product features? Open source private cloud platform Eucalyptus (strives for 100% API compatibility with all currently supported AWS services) paved the way for automating the creation and termination of virtual machines, thereby providing a framework for just-in-time provisioning. Docker and container technologies further simplified software deployment into virtual machines. Tools like Chef simplified configuring the VMs with whatever template resources the developers need.
The Bottom Line
The results of these four approaches are the key drivers for the Cloud Computing Revolution, which is being adopted rapidly today. All these initiatives have been by developers, as solutions to their day to day operational issues. The evolution of the current stage of cloud computing technologies is crucial to understand the pressing needs of today’s DevOps and how these will drive the future growth of the cloud computing technologies. For example, the emergence of resource auditing and cost management tools, which drive the agile provisioning of cloud resources, is a simple extension of bringing the DevOps approach directly into the cloud management itself.
If you are a cloud developer or DevOps guy, signup for Botmetric to see how our tools will ease your day to day operational tasks. Read our blog Automating On AWS Cloud- The DevOps Way to know more. Connect with us on Facebook and LinkedIn. Or tweet to us @BotmetricHQ about all your day-to-day challenges. We’re all ears!