To Cloud or Not To Cloud? – An Introduction

Over the past decade, there has been a sustained effort by tech companies of all sizes to transition both themselves and their customers to “The Cloud”. My aim with this series is to cut through the marketing and hype associated with this phenomenon and help businesses make informed and measured decisions concerning their IT landscape.

What is “The Cloud”?

The Cloud is just somebody else’s computer. This is in-contrast to the phrase “on-premise” which is just a computer that belongs to your business. The common denominator of all Cloud-marketed products regardless of their level or degree of abstraction is that they are hosted and ran on hardware that the customer does not own or manage. This applies whether you are saving a picture of your dog to Dropbox or deploying an autoscaling Kubernetes cluster in Azure; in both circumstances the underlying hardware belongs to and is managed by a third-party.

Why should I use the Cloud?

When making decisions concerning your business, your goal (hopefully) should be to generate value. Making arbitrary and uninformed decisions will always result in losses in the long-run. This is especially true concerning decisions related to IT. Despite this, in my career I have witnessed executives exclaim “We need to move everything to the Cloud!” without cause, reason or explanation. I have also witnessed the inverse; businesses completely unwilling to consider any Cloud services whatsoever, which is equally asinine.

In a vacuum, there is no business value intrinsic to either hosting your business technology on-premises or in the Cloud; neither approach will magically solve all of your problems. Realizing the value of either approach requires taking a critical look at your business needs and examining the associated pros and cons of either approach.

What are some clear advantages that the Cloud offers over on-premise hardware?

Scalability

For most Cloud providers, capacity can be added or removed at-will to an atomic scale of granularity. This goes for Cloud services such as M365 where specific licensing can be added or removed at-will, but is especially important for Cloud providers of “Infrastructure as a Service” (IaaS) like AWS and Azure where compute, storage, RAM, or other resources can all be provisioned and de-provisioned with a few mouse clicks. If your infrastructure is professionally designed and implemented, it can automatically scale to correspond with demand, enabling you to only pay for resources that you need, when you need them.

This is contrasted with on-premise hardware where scaling-up operations requires acquiring and installing new physical hardware. While it is possible to scale-down operations to reduce operating costs on-premise, you still eat the sunk cost of under-utilizing physical hardware that you’ve paid for.

Fast Deployment

Cloud infrastructure can theoretically be spun-up and operational in a matter of minutes. This is contrasted with on-premise hardware where you generally need to purchase, receive, stage and stack physical racks before you can do anything, which can take weeks or months.

I say theoretically because in-practice getting Cloud infrastructure to an operational state can easily take weeks or months of development and testing depending on the scope of a project, the skill of the engineer(s), and other factors.

No Capital Expenditures

Cloud infrastructure usually operates on a pay-as-you-go model where you are billed monthly for what you’ve used. This is contrasted with on-premise hardware where there is an initial, relatively large capital expense required.

No Hardware Management

When using a Cloud provider, you are not responsible for the provider’s hardware. This includes purchasing, storing, securing, powering and cooling server racks and networking hardware, as well as monitoring and fixing hardware-related issues such as degraded RAID, faulty hardware, patching firmware, etc.

What are some clear advantages that on-premise hardware offers over the Cloud?

Control

When using Cloud services, you are relinquishing some control over your business to a third party. The services offered to you are abstractions of lower-level software and hardware, all of which may experience service outages, data leaks, changes to terms of service, or any other number of issues which will all fall completely outside of your influence. When you utilize your own hardware, you have the complete freedom to dictate how your hardware is used, for better or for worse.

Latency

When using your PC to ping a service located within your LAN over a hard-wired Ethernet connection, the latency of your connection will be about a tenth of a millisecond. When using your PC to ping a service hosted by a Cloud provider, the latency of the connection will be about 10 milliseconds in ideal circumstances. If you are using a high-latency satellite or cellular Internet connection, or if your Cloud provider’s datacenter is far away, this latency may reach 100ms or more. With some applications or workflows, a hundredfold or thousandfold increase in latency between a client and server may create an unacceptable degradation of performance, requiring virtual desktop or other technology to partially mitigate at added cost.

It is important to note that the advantage of low latency within on-premise infrastructure becomes a moot point in the context of remote work, as remote workers will encounter latency whether they’re connecting to on-premise infrastructure or the Cloud.

Your employees need devices

On-premise hardware will always be necessary to at least some extent for any employee expected to perform digital work. The laptop, PC, tablet or phone that you are using to read this blog does not live in the Cloud, nor does your access point, switch, firewall, or modem. Even if a company’s entire IT infrastructure is cloud-hosted, employees will always need devices in-order to access Cloud resources. While it is becoming increasingly possible to remotely deploy, manage and monitor devices through Cloud-hosted platforms, physical hardware in the hands of employees and the equipment they use to access the Internet will always require support and maintenance outside the scope of the Cloud.

What are some areas that are a bit more context-dependent?

Security

For a vast majority of companies, the digital and physical security offered by large Cloud providers is better and more cost-effective than what could be implemented in-house. Larger cloud providers like AWS and Azure benefit from economies of scale and maintain well-secured datacenters and codebases. Despite this, extremely risk-adverse companies or government agencies may find storing their data on third-party equipment unacceptable. Furthermore, despite safeguards and best practices provided by Cloud providers, the always-online nature of cloud services presents a perpetual attack surface.

Uptime

For a vast majority of companies, the quality of service and total uptime provided by large Cloud providers is better than what could be sustained on-premise. Despite this, computers can and will fail regardless of who is operating them. Developing and implementing resilient high-availability infrastructure is required both on-premise or in the Cloud for companies with strict uptime requirements. Cloud vendors are not immune to service outages and there have been well-publicized examples of AWS and Azure outages bringing swathes companies to a complete halt.

Ease of Maintenance

As-mentioned earlier, Cloud infrastructure is objectively easier to maintain from the perspective of hardware management. This does not necessarily mean that Cloud infrastructure is otherwise easier to maintain than on-premise infrastructure; if your existing IT department or MSP has only ever managed on-premises equipment and has never touched AWS or Azure, they are going to need to learn a lot of core concepts from scratch or you may need to hire or employ trained Cloud Engineers to manage the environment. The same can be said in reverse; a Cloud Engineer may know nothing about managing an on-premise environment. Ease of Maintenance is entirely dependent on the latent skill and propensity to learn of the IT professionals you have at your disposal. On-premise and Cloud infrastructure are different paradigms; while they overlap in many ways, they require a different set of skills and experience.

Cost

Cost is easily one of the most contentious and heavily-debated topics concerning Cloud vs on-premise infrastructure. The reality is that costs are the product of many factors surrounding a business, including the presence or absence of existing infrastructure, scope and projected growth of business, software used, data storage requirements, IT professionals and vendors at the business’ disposal, availability of real estate and high-speed Internet, and numerous other factors.

There are only a few objective generalizations that can be made concerning Cloud vs. on-premise costs. The first concerns scalability: If you need to use a supercomputer for one hour per day, or one day per week, you should borrow somebody else’s supercomputer. If you need to use a supercomputer every hour of the day and every day of the year, you should buy your own supercomputer. The second concerns the potential speed of deployment and lack of capital requirements for Cloud infrastructure: If you’re running a lean startup with limited starting capital and have no existing IT infrastructure, starting in the Cloud is a no-brainer.

All other cost-related judgments will be context-dependent.

Conclusion

The rise of Cloud computing has given the tech community a greater degree of freedom and choice concerning how technology can further integrate into business, which has had a net positive impact to everyone across the board. I believe that the most successful organizations do not occupy a single camp, but instead leverage the benefits of Cloud and on-premise infrastructure together to yield the greatest value. In upcoming posts, we will examine more specific examples.