Welcome to the final installment of Reasons to Deploy in the Cloud! In this series of posts, I'm discussing some reasons for choosing a cloud platform. Previously I've talked about managing costs, the power of scaling, ease of management, interoperability, and in the last post, reliability. This is the final part of the series, discussing flexibility.
Freedom to innovate
In his 2010 blog post on CIO.com, Bernard Golden discussed the two types of flexibility that the cloud offers. The first he mentions is rapid provisioning of your infrastructure, as discussed in scaling to meet demand. The other is a type of business agility - to quickly develop new features or creative solutions to new challenges.
“With regard to the agility cloud computing offers, Simon Willison of the Guardian noted that 'I am working at the Guardian because I am interested in the opportunity to build rapid prototypes that go live: apps that live for two or three days.' In other words, the agility of cloud computing enables quick rollout of short-lived applications to support the Guardian's core business: delivery of news and insight.”
-Bernard Golden, CIO.com
The ability to experiment, improvise, and rearrange systems during the development and maintenance lifecycle of an application can spark innovation and foster rapid adaptation to changing conditions.
Standing up short-lived crowd-sourced or big data analysis tools is key to exploiting the value of a modern application’s data. In the cloud, clusters can be provisioned to remain running for additional analysis or can simply output a refined dataset and cease operation. Designing and installing such a cluster in a datacenter represents a huge financial and operational risk that has little room for error. The cloud model, on the other hand, leaves plenty of room for experimental projects that may be riskier (or merely temporary) investments. The conversion of infrastructure from capital expenditure to operational expenditure grants developers and stakeholders the freedom to take calculated risks.
Clever Cloud Patterns
Innovation happens at all scales of cloud architecture. At AWS Re:Invent late last year, there were many breakout sessions where architects, developers, and engineers demonstrated clever uses of cloud technology. Here are two of the best ways developers at companies big and small are using cloud resources in inventive ways.
Serverless Application Architecture
Using managed cloud resources, entire applications can now be developed without a single persistent server instance backing it. Lambdas, or functional units of event-driven code, respond to requests from the client-side by quickly spinning into existence and performing one simple task such as a database query or transforming and storing an incoming message. Collections of these simple tasks can exhibit very complex behavior that is also highly scalable and extremely cost effective, since computing resources are not being used when the application is idle. (photo credit: All Things Distributed)
This cloud-native deployment pattern, sometimes also referred to as Red/Black deployment, is gaining popularity. When a new version of a running application (or part of an application) is being rolled out, a complete duplicate of the architecture being replaced is provisioned. The load-balancer or DNS driving traffic to the existing (Blue) component then starts to gradually send a portion of traffic to the new (Green) copy of the infrastructure. As time passes and provided there are no faults in the new architecture, the share of traffic that goes to the Green side increases until it reaches 100%, and the Blue branch is decommissioned. If at some point a fault is discovered, the application reverts to routing all traffic back to the Blue branch, minimizing disruption of service. (photo credit: AWS Startup Collection)
Tying it all together
Looking at the whole picture of what the cloud platform offers, it’s an enticing package. Pricing controls and strategies to reduce costs using serverless patterns can bring total cost of ownership down, while also keeping your commitment to infrastructure low. Automatic scaling can help keep those costs low until you need extra horsepower to fulfill customer demand. Automation and reporting reduce your management overhead and provide insight into what drives value for your business and customers. Integration with other services and applications help you increase that value proposition. All of this delivered on a secure platform that offers redundancy and geographic distribution to keep things up and running reliably and without data or service loss, and we still can react quickly to new challenges and changes in the business environment.
The old objections to cloud adoption are fading away. As cloud computing enters its second decade, more and more businesses are forming strategic relationships with cloud providers, and developing an all-in strategy, even on top of hybrid and multi-cloud solutions. Forrester says that 70% of enterprises are building public or private cloud solutions now, and the remaining 30% have plans to do so within the next 12 months.
These are just some of the ways that the cloud is offering flexibility to business to be creative and innovate. Do you have a story of how the cloud allowed you to solve a problem in a unique or interesting way, or more tricks on how to get the most value from cloud services? Be sure to mention it in the comments!