On-Premise vs. in the Cloud?
Published on October 14, 2022,
Let's start with the basics.
- On-premise means a physical data center where the infrastructure is managed by you.
- Cloud is a physical data center not controlled by you.
- Hybrid Cloud is a combination of the on-premise and Cloud.
This blog is intended to reinforce what other notable industry experts have already expressed about where an application and its associated workload should go. Should an application remain in your on-premise data center or be migrated to the public Cloud? Four primary factors should influence your decision:
- The need for customization
The need for customization is about the environment needed to support an application's workload. Does it fit nicely in a predefined, scripted package you would get from a cloud provider, or does it have unique dependencies that can only be found in your on-premise environment?
Scalability isn't just about a linear growth pattern but about the need for elasticity based on seasonality or burst computing demands. Your on-premise data center is not ideal for handling short-term computing requirements without overprovisioning, which then is wasted space and power when the demand is over. A cloud is perfect for the rapid spin-up and spin-down of computing resources and is far more economical.
Security is a hotly debated topic regarding safer on-premise or cloud environments, and covering all aspects of security will require a separate post. However, the security decision that does need to be made is driven by emotional, political, and regulatory dictates. Taking these into consideration often results in a passionate belief that "if I can touch it, I can protect it"; therefore, an application on-premise will be safer. This is supported by the accountability for many organizations coming from GDPR, HIPAA, PCI, and other regulatory demands, that a cloud environment might not comply with.
The cost factor drives all of our actions at some point. While the Cloud provides economies of scale for specific application types, others can quickly become cost-prohibitive in the Cloud. Small and start-up organizations may find a cloud-only environment ideal for them as they don't have the capital to set up and manage a new op-premise data center. Older, more mature organizations may have established data centers and need to weigh the value of owned and depreciated assets (CapEx) versus the Cloud's ongoing operating expense (OpEx). Organizations need to evaluate each application workload to understand its cost and how best to optimize the cost versus performance (and security) equation.
Mission-critical applications with high availability and compliance or regulatory requirements because of the need for resource control and geographic location of data. Applications requiring high levels of security should also be run in on-premises environments.
Find projects and applications that support a business opportunity and quickly move them into the Cloud to save costs and resources while improving the bottom line. However, it won't pose a disaster if security or availability is compromised. An example application would be modular data crunching, where data can't be identified out of context, maintaining data security. DevOps is an excellent candidate for cloud computing -- mainly to gauge performance levels and work out bugs. As mentioned above, applications that temporarily experience erratic traffic patterns.
Forrester Research outlined the following best practices for cloud computing:
- Conduct functional and scalability testing and development work
- Deploy short-lived and highly volatile Web applications
- Run quick, grid-type high-performance computing analysis
Key Questions to Ask
Deciding between On-Premise or Cloud isn't tricky, but it does take a bit of understanding about the application and associated demands.
- Who is using it, and what for?
- Are their security or regulatory mandates associated with it?
- What is the user experience required?
- How much does it cost to operate?
By asking and understanding these questions, you can quickly decide where to place an application and its workload to optimize it for cost, performance, and security.