By David “Mac” McDaniel
On-premises vs. cloud – which is better?
It’s an ongoing debate with most companies set on using one or the other. Which one you use will ultimately come down to your industry and business needs, and sometimes the answer will be a blend of both.
Let’s look at the advantages and considerations of on-premises vs. cloud.
On-premises vs. Cloud: Storage
On-premises storage relies on your company’s infrastructure and servers at a physical location, while cloud storage uses external servers managed by an outside company.
There are benefits to both. For example, cloud storage reduces the burden on your IT staff to perform routine data backups, which frees up their time to focus on other tasks. It also helps prevent data loss in the event of a disaster and enhances productivity by allowing your team to expand your available storage with only a few clicks.
On-premises storage comes with a couple of advantages. For example, having your servers on the same physical network as your storage hardware gives you more control over latency. This does, however, require a savvy IT team and solid infrastructure as well as the budget and bandwidth to support ongoing maintenance.
On-premises vs. Cloud: Costs
The cloud holds an edge over on-premises infrastructure when it comes to pricing. Building out an on-premises infrastructure has many upfront costs, including the price for software licensing and the ongoing upkeep of server hardware as well as the trained personnel to accomplish such tasks.
On the other hand, you only pay for the time and space you use with the cloud. Most cloud service providers offer a pay-as-you-go pricing model and are flexible about their pricing as your business needs scale up or down. You also don’t have to pay for maintaining an IT infrastructure as with having everything on-premises.
However, if left unmanaged, cloud costs can rise fast as your business needs increase. When setting up a storage bucket with a cloud service provider, make sure you’re starting with the right configuration. Location and how frequently you need to access your data are factors to consider.
On-premises vs. Cloud: Scalability
There are two ways to scale: Vertically or horizontally. When you scale vertically, it’s often called scaling up or down. When you scale horizontally, you are scaling out or in.
Vertical scaling refers to adding more CPU, memory, or I/O resources to an existing server, or replacing one server with a more powerful server. Cloud vertical scaling can be accomplished by changing instance sizes, while in a data center you would have to purchase a new, more powerful appliance, discarding the old one. Cloud services have many different instance sizes, so scaling vertically is possible for everything from VM instances to cloud databases.
Horizontal scaling refers to provisioning additional servers to meet your needs, often splitting workloads between servers to limit the number of requests any individual server is getting. In a cloud-based environment, this would mean adding additional instances instead of moving to a larger instance size. On-premises, you would have to order new servers and install them before being able to horizontally scale your applications.
In practice, scaling horizontally (or out and in) is usually the best practice. It’s much easier to accomplish without downtime — even in a cloud environment, scaling vertically usually requires making the application unavailable for some amount of time. Horizontal scaling is also easier to manage automatically, and limiting the number of requests any instance gets at one time is good for performance, no matter how large the instance.
On-premises vs. Cloud: Deployment
When using the cloud, there is the term “Pets vs. Cattle.” This applies to systems that need upgrading, repair, and maintenance, or a new version of your application software. When running on-premises, you will generally keep the system running by manually (or with automation assistance) performing these functions. This is the “Pets” model.
When running in the cloud, you have a much easier ability to use the “Cattle” model. This is where instead of patching or manually upgrading, you simply deploy a newer, updated version of both the server (VM) and application software. With proper tooling, this also ensures zero-downtime upgrades and deployments.
One other advantage of the cloud is using serverless deployment tools. This allows you to only pay for the actual time used for your deployments, and there’s no infrastructure to manage. On-premises requires having dedicated servers for doing any deployment automation.
On-premises vs. Cloud: Security
Security is a big focus for any company, especially for ones in highly regulated industries like finance and healthcare. With on-premises security, companies retain all of their data and are in complete control of what happens to it. However, that also means full security responsibility, constant monitoring, and maintenance along with the costs of security tools and trained personnel.
When a cloud service provider handles data security, they use a robust set of advanced security controls and protocols to protect data. For example, Google Cloud provides the Shared Responsibility Matrix that describes every aspect of security and which parts they are responsible for. They also have a large, dedicated team of security experts.
Before working with a cloud service provider, look at their security best practices and processes as well as how they go about ensuring data protection. For example, Google Cloud’s Confidential VMs encrypts data while in transit and at rest including while in-memory on the server.
Hybrid Cloud Solution
While on-premises is often pitted against the cloud, it doesn’t have to be one or the other – you can get the best of both worlds. A hybrid cloud solution, like Google Cloud’s Anthos, lets you leverage the cloud to advance your existing infrastructure by using a mix of on-premises and private or public cloud services.
Read Next: Anthos on Bare Metal Explained