When it comes to systems infrastructure, organizations got a lot of decisions to make. Many organizations opt for a heterogeneous infrastructure design, which comprises three different kinds of design. That is, systems might run on different bare-metal servers with different hardware (e.g. one bare-metal server with an Intel processor and another one with an ARM processor), they might be hybrid between bare-metal servers and cloud, or they might be multi-cloud.
Organizations are trying to optimize their capabilities by using different cloud providers, building, therefore, a multi-cloud infrastructure. A multi-cloud infrastructure combines on-premises, hosted, and cloud services spread among multiple private and public clouds. In that way, a multi-cloud environment allows companies to choose the right cloud service for each specific job . Currently, there are two common types of multi-cloud deployment. First, it's what is called multi-cloud, which is when a service or product runs on more than one cloud service provider infrastructure and also on-promises. Then, there is the intercloud, which is when data is integrated or exchanged between cloud service providers as part of logical application deployment.
All three designs are often used by organizations. Concerning the multi-cloud design, for example, the International Data corporation found in a multi-cloud management surveyconducted in 2019 that 81% of the corporations use multiple public clouds with one or more private cloud deployments. The reason for that is to support application workloads while maintaining the privacy and reducing IT spending. Another survey has found that 40% of the respondents use two or more of the big three multi-cloud vendors, namely Amazon Web Services, Microsoft Azure, and Google Cloud Platform. Furthermore, 18% of the respondents use all three providers for many applications workloads.
The truth is that the best infrastructure design decision depends on the organization's goals and the technology stack that is being used. Due to the different kinds of applications being built for cloud-native, big data, blockchain, etc, the technology stacks are constantly changing. Although there are a variety of infrastructure designs to address these different stacks, all of them pose challenges.
Challenges of heterogeneous infrastructure design
First, there is a lack of tools and frameworks for multi-component compatibility, interoperability between different framework protocols, and multi-cloud management. Second, it is unknown how to improve the performance of cloud computing in different integration scenarios. Finally, it is unknown how to effectively communicate (or exchange data) between different designs and how to integrate different technologies in order to maximize its potential for business applications. Although there are a couple of open source projects that solve the aforementioned problems, they are often used individually, and there is still a lack of "communication" between those projects.
When do organizations use heterogeneous infrastructure design?
Organizations may opt for heterogeneous infrastructure design for a variety of reasons. First, if your organization wants to avoid vendor lock-in. That is, organizations that depend on a single cloud service provider or on a single bare-metal server often rely uniquely on the capabilities of that vendor. Hence, moving to another cloud provider becomes more costly, complex, and time-consuming. The solution for that is either multi-cloud, which provides agility and portability between multiple cloud providers, or bare-metal servers, which gives companies full control of their servers. Additionally, organizations may take advantage of the technologies of all providers and can choose the best-performing and most cost-effective service for specific application workloads.
Second, if your organization wants to select the most suitable cloud service provider for each individual application or workload. Since each public cloud service provider has a blend of physical infrastructure components and application services, companies can choose the more efficient, cost-effective, and attractive service according to their needs.
Third, if your organization wants better disaster recovery, heterogeneous infrastructure is the way to go. For example, with a multi-cloud strategy, organizations can respond to service outages by sending over their workloads from one cloud to another.
Finally, if your organization wants to reduce costs. By using heterogeneous infrastructure, organizations can minimize the costs by diversifying the hardware of many bare-metal servers, for example.
Open source and heterogeneous infrastructure design
Open source might be the way to address some of the aforementioned challenges since it allows a certain amount of portability for the workloads and the ability to push vendors to compete for those workloads. For example, if an organization wants to maximize workload portability, they can use PostgreSQL or Kubernetes, community-driven open source projects. In that way, organizations have the option to self-manage the database within its data center (in the case of using PostgreSQL), manage it on any of the clouds, or use a cloud provider that manages PostgreSQL services.
Another way is to join or contribute to open source foundations. For example, the NextArch foundation, a foundation under the Linux Foundation, aims at simplifying these complicated infrastructures by leveraging infrastructure abstraction solutions through architecture and design, automating development, operations, and project processes through people and processes to increase the autonomy of development teams. If you want to contribute or collaborate with NextArch Foundation, contact firstname.lastname@example.org and find ways to make the help heterogeneous infrastructure design easier.
About the author
Isabella Ferreira is an Ambassador at TARS Foundation, a cloud-native open-source microservice foundation under the Linux Foundation.