Today there are a range of infrastructure types to choose from. From on-premises and colocation, to bare metal and cloud, each approach has unique strengths and weaknesses. Cloud is super scalable (but very expensive), colocation is affordable (but you’ll need an expert team to manage it) and bare metal hosting is a middle ground between the two.
But here’s the thing.
You don’t have to pick just one.
Sometimes the best way to optimize your infrastructure stack is to mix it up and adopt a hybrid infrastructure approach.
Hybrid infrastructure is the combination of different infrastructure types as part of your overall infrastructure stack. That could be any combination of on-prem, colocation, bare metal hosting, or cloud hosting. These different environments are usually then integrated via a unified platform from which the organization can manage and monitor its applications.
Most commonly, hybrid infrastructure is used to strike a balance between cost, scalability, and performance. The table below shows how each type of infrastructure generally stacks up based on these three criteria.
But there are various other reasons why an organization might adopt a hybrid infrastructure approach. For example, some businesses choose to hybridize their infrastructure because of specific application requirements, others because of geographical considerations.
Going hybrid can help you reduce your overall infrastructure spend. You can achieve this by using less expensive infrastructure solutions like colocation and bare metal hosting for your predictable resource requirements and tapping into cloud as and when needed (e.g., during demand spikes).
This approach allows you to play to the strength of each infrastructure type whilst balancing IaaS costs and scalability considerations. Hyperscale cloud environments are the most scalable, so for organizations that need the freedom to spin up virtual machines at the last minute then it’s a no brainer. But since cloud is also very expensive, using bare metal hosting or colocation for your predictable workflows means you won’t have to deal with skyrocketing cloud bills.
Say, for example, you’re a game developer getting ready to launch a new game. You won’t know how many players are going to turn up on launch day. So, you can start with a base layer of bare metal and scale up to cloud as demand increases. Then, once your baseline resource requirements become clearer, you can scale your cloud provisioning down again.
A hybrid infrastructure approach can also help optimize performance. In hyperscale cloud there’s always the risk of noisy neighbors - where other users’ virtual machines use up a large portion of the server’s available resources, impacting the performance of your application in the process.
There’s no risk of resource contention in colocation or bare metal hosting because the business either owns or rents out the physical server in its entirety. Adopting a hybrid infrastructure architecture means that a business can keep the flexibility and pay-as-you-go business model of cloud, knowing that they also have a stable source of compute should resource contention occur in the cloud environment.
Hybrid infrastructure isn’t just about optimizing your workload, it can also be about adapting to growth geographically.
For an organization based out of one location, with 100% of its workforce in that location, managing infrastructure in colocation makes sense. So long as you’ve got the expertise to manage that infrastructure, colocation will offer high levels of performance at affordable prices.
But imagine if, as your business grows, you start to take on overseas customers. Spinning up servers in colocation in a new data center closer to that location would require hiring a whole new team to set up and manage the hardware. It suddenly becomes very complex.
It makes more sense to use infrastructure as a service (IaaS) from a bare metal or cloud hosting provider for these situations. You’ll be able to spin up servers quickly across your cloud or bare metal server provider’s PoPs (points-of-presence) and won’t need to hire a specialized in-house team to deal with the day-to-day management of the physical hardware.
In this situation, adopting a hybrid approach with a combination of colocation (at home) and IaaS (overseas) will be far easier to manage.
Some applications just perform better on particular infrastructure types. For example, database applications typically perform better on bare metal servers than in virtualized environments like cloud. This is because there is usually some level of performance degradation caused by the virtualization process.
Hybrid environments are a great solution if some or part of your applications suit bare metal whilst others suit cloud environments. For example, if your production environment is stable (and therefore suited to bare metal infrastructure) but your development environment is not (therefore better suited to paying by the hour in cloud).
There are some situations when going hybrid with your infrastructure might not be a good idea. For example:
When you’re just starting out and still in the development stage. You don’t know where your application is going to fit best.
When you’ve got a very stable workload. You know what your requirements are, and which type of infrastructure best suits your application.
Regardless of whether a hybrid environment suits you now, it’s important to remember that an organization’s infrastructure requirements will change over time. It might be that you need a hybrid solution in the future. Likewise, if you’re already using a hybrid infrastructure approach, there might come a time when using just one infrastructure type makes sense.
These days, setting up and managing a hybrid infrastructure environment is relatively straightforward. That said, there are some common hybrid infrastructure hosting mistakes to try and avoid.
Optimizing your infrastructure for scalability without considering how your application will run in that environment. For instance, if your application is single threaded and CPU bound then it won’t be able to use more than one CPU core. The only way to scale an application of this type is to run multiple instances of it.
Planning for rapid upward scaling without considering the challenges that come with scaling back down (which is far more complicated). Imagine that you have four servers running under a normal load, but then you suddenly get a huge demand spike. You could just run up more servers. But this causes issues if demand goes back down again. The load has been spread across all your hardware and spinning down a few servers will leave some users disconnected. Managing demand fluctuation is challenging but can be achieved by forecasting your needs ahead of time and teaching your scaling engine to react to your chosen parameters.
Choosing the wrong suppliers. This is one of the most common mistakes and the most easily avoided. Many businesses, especially those starting out, will pick the most well-known supplier. They won’t do much research into which of the various infrastructure providers available best meet their needs. In the long run this leads to all sorts of problems from overspending to performance or scalability issues.
Ineffective integration of different types of infrastructure. Often organizations fail to plan beyond the best-case scenario. For example, they might specify a particular machine instance type that they want to use without considering that their supplier will not always have that instance type available. It’s important to plan for these situations ahead of time, choose your ‘backup’ option, and modify your scaling algorithm to account for every eventuality.
Ineffective monitoring. 76% of organizations with hybrid infrastructure use separate monitoring tools for their on-premises and cloud stacks. But as this article by CDO Trends points out, siloed monitoring practices like these can only lead to blindspots. It’s important to use a monitoring tool that gives you visibility over your entire infrastructure stack.
Typically, running a hybrid environment doesn’t necessitate a bigger team. However, there are additional skillsets required to manage a hybrid infrastructure architecture. Hybrid environments often require more of a DevOps focus. Particularly, if you’re choosing a hybrid environment for the purpose of optimizing scalability, you’ll need people who can automate your organization’s workflow for spinning up and down capacity. It won’t work unless you automate your workflow and set up your application to scale effectively.
Gameye is a platform for game publishers and developers looking to host online multiplayer games. The platform provides a docker-based orchestration platform for developers to run, manage, and scale their multiplayer games across bare metal and cloud servers.
By leveraging a hybrid, vendor-agnostic approach, Gameye’s clients get access to servers in the optimum locations as close to their players as possible. And Gameye can be sure that its infrastructure can be scaled easily to ensure that there’s always redundant server capacity available.
Learn more in our Gameye case study.
Hybrid infrastructure is any combination of colocation, bare-metal hosting, and/or cloud hosting. For example, an organization using a hybrid infrastructure approach might use bare metal for its predictable resource requirements and hyperscale cloud for demand spikes. Another organization might use servers in colocation for their primary business location and bare metal or cloud IaaS to service overseas clients.
There are various reasons why an organization might use hybrid infrastructure, for example:
To balance cost and scalability – by using bare metal or colocation for your predictable resource needs and cloud for spikes in traffic
To optimize for performance – to reduce the risk of resource contention in cloud by also deploying some dedicated servers
Application requirements – if some or part of your applications are suited to different types of infrastructure
Geographical considerations – if you’re taking on overseas clients and don’t want to hire a team to manage hardware in the new location
The main difference between cloud and hybrid infrastructure is that cloud is a specific type of infrastructure whereas hybrid refers to the combination of multiple different infrastructure types (any combination of on-prem, colocation, bare metal hosting, and/or cloud hosting).