For some time there has been a push for cloud computing and why organizations should switch from on-prem servers and buy a ticket to the cloud. Most of the buzz seems to be well grounded, as there are many advantages to moving to the cloud.
Let’s take a second look at cloud computing and some challenges that are still very real in this space.
What is Cloud Computing?
There are numerous ongoing debates about who gets bragging rights to this now ubiquitous term and when it got started. Some say it was Google, others say it was Amazon that introduced the concept; either way cloud computing became a known technology around August 2006.
Microsoft and Amazon have slightly different ways of defining cloud computing — for Microsoft, cloud computing is the delivery of computing services—servers, storage, databases, networking, software, analytics, intelligence and more—over the Internet (“the cloud”) to offer faster innovation, flexible resources, and economies of scale and for Amazon it is the on-demand delivery of computing power, database storage, applications, and other IT resources through a cloud services platform via the internet with pay-as-you-go pricing.
Where The Cloud Excels, The Big Idea
Before August 2006 providing a service online meant buying a physical server and hosting the service on premise. The main downside to this idea was scalability. Let’s say you have a physical server that allows your users to buy tickets to a sporting event. During peak seasons your server becomes overloaded with requests for ticket sales leading you to add a few more servers to offset the load but during the offseason, you now have a few servers that are underutilized. While this is a very simplified explanation of scalability, it still conveys the idea for why physical servers on-prem may not be the most solutions for some businesses. Cloud computing has solved this scalability concern allowing entrepreneurs to scale resources as needed. It also removes the need to invest in massive data centers and/or physical servers. Switching to cloud computing means no longer having to worry about hardware maintenance, cost, and upkeep.
With the cloud, you only pay when and how much you consume – making it a no brainer for cost efficiency.
Shortcomings of Cloud Computing
Cloud computing is here to stay with clear advantages, however, there are still real challenges and shortcomings such as downtime and data transfer cost. Downtime can be mitigated if careful planning and resourcing are considered during setup. In March 2017, the Wall Street Journal reported that an AWS outage “cost companies in the S&P 500 index $150 million”. Although an on-prem server is still susceptible to that same risk, cloud computing systems are internet-based, meaning service outages can occur for more reasons than an on-prem server. Other smaller items to consider are things like restricted control and flexibility, vendor lock-in and security- but most providers offer clever ways to mitigate these shortcomings.
Another much under-discussed drawback of cloud computing is outbound data transfer cost. Most users don’t consider the fact that getting their data out of the cloud costs money. Given the push to scale out on storage, users often don’t see a reason not to. After all, data is king. This can get pricey quickly when the time comes to download that data, as exports are priced per GB.
Issues such as downtime, data transfer cost, security, restricted control, and vendor lock-in are high-level disadvantages. If we look deeper there are other hurdles at the core of cloud computing that are still being addressed. For example, serverless computing: developers can write code and run it on stateless compute containers. These are ideal for an event-driven solution, but these containers have a startup time referred to as cold starts. A cold start is a delay experienced when a function is triggered and there is no idle container available, therefore, it is forced to wait to run the code. Cold starts are invisible to the user and the cloud provider usually has full control over when to kill containers. Although there are some ways to reduce it, cold starts will considerably increase your initial execution time in order to allow your cloud provider to provision your selected runtime container. Meaning stateless compute servers solve a huge problem but not without the expense of another problem.
Here at Shockoe we carefully assess when serverless implementations would make a good fit for a client but don’t think there is ever a ‘one size fits all’ solution. Our team embraces all the advantages and have successfully developed for and migrated systems to the cloud. At the end of the day, deciding on whether cloud computing is the right solution for your business depends on many factors, all of which should be carefully evaluated.