The cloud can feel all-powerful, with seemingly infinite scale, countless tools and services, and a virtual army of technicians and support personnel. But despite its many benefits, cloud computing isn't the ideal solution for every problem or the right fit for every organization. Industries have different requirements for everything from security to reliability. In some circumstances, it can be prohibitively expensive to move from a well-functioning on-premises system to the cloud.
There are many trade-offs to consider when comparing on-premises vs. cloud infrastructure. Not all of them apply to every organization or workload, but it is important to understand them to make the right choice, now and in the future.
What are the advantages and drawbacks of on-premises infrastructure?
As an alternative to cloud computing, on-premises infrastructure has a number of potential advantages, including:
- Infrastructure control. When an organization owns the hardware and systems that underpin its IT infrastructure, it has total control over where those components live, how they run and who can access them.
- Costs. Long-term costs for on-premises infrastructure can be lower for applications with predictable usage patterns. Once organizations buy the hardware, the only ongoing costs are power and maintenance.
- Security. With on-premises infrastructure, security is under the IT team's complete control. They decide how, when and why someone can access the hardware or network. This is necessary for some organizations to meet privacy and regulatory requirements.
- Efficiency. On-premises systems can present advantages in performance, such as low latency and development environments with few or no external dependencies. The feedback loop between on-premises infrastructure changes and individual employees is incredibly short. And if there's an outage, employees on site can make changes as necessary.
It's not all sunshine and roses, though. There are some drawbacks that may affect your decision to choose on-premises infrastructure over the cloud, including:
- Reliability. A company's infrastructure is only as reliable as its maintenance. A well-trained team must be in place to ensure everything runs in tip-top shape.
- Scalability. A fixed set of on-premises servers represents fixed resource capacity. When an organization needs more resources, its only option is to buy more servers. Very few companies can build an internal infrastructure to match the scope and flexibility of a cloud provider's platforms and services.
- Costs. When an organization purchases more servers, and then resource demands ebb, that additional capacity is underutilized. Buying an extra server to accommodate a 5% increase in demand is not cost-effective.
- Maintenance. As IT teams are responsible for their own on-premises hardware, maintenance requirements never go away.
- Security. Security is a double-edged sword. An on-premises arrangement grants far more control over the physical and network infrastructure, but the burden of maintenance is high. As systems become more complex and interdependent, this increases the risk of human-introduced errors, such as misconfigurations, that could potentially introduce security threats.
- Skills. On-premises infrastructure requires traditional IT skills, including hardware and software systems administration, networking, database management and security. Such a combined skillset can be difficult to find, and many of these skills are less applicable as enterprises shift workloads to the cloud and embrace DevOps methodologies.
What are the advantages and disadvantages of cloud computing?
- Abstraction. Cloud computing models decouple computing, storage and networking resources from the actual hardware assets. This abstracts away much of the technical systems management and expertise required of a traditional infrastructure. Cloud providers also abstract technical administration for security tasks and provide specialized cloud security tools to manage access controls, firewalls and vulnerability assessments.
- Scalability. With cloud infrastructure, admins can dynamically add and remove capacity as needed, rather than let unused capacity go to waste.
- Pay-as-you-go pricing. With cloud computing, organizations pay only for the resources they use, rather than the resources they have. If they typically use less than their compute capacity, this could significantly reduce costs.
- Uptime. While no cloud provider has perfect uptime, many of them guarantee at least 99.99% uptime.
However, the cloud isn't infallible. Consider these challenges:
- Lack of control over reliability. Handing over control to a cloud provider also means relinquishing control over reliability. Cloud providers boast impressive uptime, but services occasionally go down. Even brief interruptions to cloud services can cause major problems for customers -- and there isn't much they can do but wait.
- Complexity. Cloud providers frequently expand their service portfolios. The more advanced a company's needs, the more complex it can be to select, implement and manage the appropriate cloud services.
- Efficiency. Application infrastructure that isn't designed for the cloud may not perform optimally. Internet connectivity and speed, permissions management and other factors can potentially reduce application efficiency.
- Lock-in. The more a company uses cloud-based infrastructure from a particular provider, the greater the risk of vendor lock-in. It may be difficult to migrate to a different provider's infrastructure -- or even back on premises.
- Cost management. If organizations aren't careful, they might inadvertently use more cloud services than planned. Huge upticks in resource requirements can quickly break the bank.
- Skills. Some traditional sys admin skills may be less applicable in the cloud, and engineers need to master other cloud skillsets, from identity and access management to understanding the nuances behind countless services on the platform.
On premises vs. the cloud: Key differences
Beyond the pros and cons of cloud-based and on-premises infrastructure, it's also important to understand how differently they operate. Consider these key differences:
Deployment. With configuration and foresight, deploying software into the cloud or on premises is relatively the same -- but it's drastically different for hardware-based resources. When IT teams need an additional server in their data center, they order, rack, network and provision it. To spin up a server in the cloud, they simply press a button or run a few commands.
Management. Cloud providers handle so many of the management tasks that cloud users don't do much more than monitor and make adjustments through a management dashboard or software tools. An on-premises environment requires hands-on hardware maintenance: replacing drives, managing configurations, maintaining the network, handling power and even upkeep of the buildings that house it all.
Security. Cloud providers take on most security requirements at the infrastructure level in a shared responsibility model, but it's up to users to properly configure and secure apps and data. With an on-premises environment, IT teams are solely responsible for software patches, OS upgrades and security configurations for applications and networks.
Budgeting. Cloud-based instances are generally cheaper because users can pay for a fraction of a server and then shut it down when they are done. However, companies must carefully configure and monitor their cloud usage to avoid consuming more services than they planned and a shocking monthly bill. On-premises pricing is fixed, but underutilized resources are financially wasteful, and investments in additional hardware to scale up capacity may take years to become cost-effective.
Infrastructure. Cloud providers invest massive sums for infrastructure to support higher uptimes, faster response times and what feels like infinite resources. In an on-premises environment, IT teams are limited to the infrastructure in place and what they can acquire. They own and control that infrastructure outright, in contrast to a cloud provider, which controls user access to their infrastructure.
As an example, the following chart sums up the overall differences in on-premises storage vs. cloud storage. Enterprises must weigh each of these areas and potential trade-offs across performance, cost, security, governance and data sovereignty.
Choosing between the cloud and on-premises infrastructure
The choice between cloud and on-premises infrastructure comes down to an organization's particular resources and business needs. Examine all aspects described above, and ask the following questions to help guide your decision.
How much control do you need?
Consider how a cloud outage would affect your organization. If you have mission-critical services that require high availability, you may want to steer them away from the cloud.
That said, cloud services can be configured with high reliability, such as redundancies across regions and availability zones. On-premises infrastructure almost always has a cap on such reliability and scalability. Conduct risk assessments to determine what your organization can live with given its internal capabilities.
What are the cost trade-offs?
Consider the infrastructure on which you'll develop and run applications -- this will determine its limitations, capabilities and, perhaps most importantly, the costs.
It can be difficult to calculate and compare costs for on-premises vs. cloud computing. Some investments require big, upfront infrastructure costs, but they should cost less in the long run. Many workloads make more sense to run in the cloud, but others do not. Big data analytics applications, for example, needs to transmit, process and store vast amount of data, and those requirements would make the cloud an expensive proposition.
Who do you trust?
Security is a common concern when organizations evaluate on-premises and cloud-based infrastructures. On one hand, you can own and manage your security in on-premises computing. On the other hand, cloud-based computing enables you to focus less on security and more on your product or business.
On-premises infrastructure and cloud computing models deal with security in fundamentally different ways. IT teams are responsible for all aspects of security for on-premises infrastructure. Cloud providers abstract this away. In either case, it's up to you to carefully configure and manage your apps and data.
While it may feel more secure to maintain physical control of your hardware, cloud providers likely have far more security expertise than your organization possesses.
What are your team's skills and strengths?
Evaluate your IT team's expertise, and your ability to hire for necessary skills, for both on-premises and cloud-based services. While the cloud abstracts away many traditional on-premises IT tasks, it introduces the need for other skills, such as learning how to manage AWS IAM roles. When you move to the cloud, you evolve the admin role in your company. Revisit your company's IT skills for every scenario that could stay on premises or go to the cloud.