For more than a decade cloud computing has revolutionized the way businesses operate. It has enabled enterprises to access the amount of the resources they want, when they want them, without time and availability limitations. At the same time, it has supported the introduction of new business models based on the pay-as-you-go paradigm, which facilitates enterprises to grow without a need for significant upfront capital investments. Over the years, enterprise cloud computing has evolved from both a technological and an administrative viewpoint. Access to public cloud computing resources (i.e., the Infrastructure-as-a-Service (IaaS) paradigm) has been complemented with services that offer scalable access to entire software environments and their ecosystems, based on the Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS) models. In recent years, the proliferation of cloud offerings has led many enterprises to use a multitude of cloud services based on various providers. Nowadays, many companies manage multi-cloud environments, which requires expertise in multiple cloud providers and their offerings.
In multi-cloud environments enterprises use more than one cloud platform. Each one of the different cloud platforms delivers or supports one or more services of the enterprise. A typical multi-cloud environment may comprise public, private, and hybrid cloud services. Hence, contrary to a hybrid cloud deployment that must comprise and orchestrate both a public and a private cloud deployment, a multi-cloud environment may comprise several public cloud services that deliver distinct services.
Multi-Cloud Management: The Rationale
Enterprises are increasingly resorting to multi-cloud deployments towards improving the security and performance of their IT services. The rationale is quite simple: A richer portfolio of cloud providers and services offers greater versatility and can better meet the diverse requirements of an enterprise. As a prominent example, consider an enterprise that has selected a cloud provider based on a variety of techno-economic criteria, including for example security, cost, performance, and reliability parameters. Even though the enterprise is satisfied with the choice of the provider and with the established Service Level Agreement (SLA), its customers may ask for features that are not available in the services portfolio of the selected provider. To implement and support such features, the enterprise must establish a new SLA with another cloud service provider. Hence, it creates a multi-cloud environment, which it must manage in the most efficient way.
Overall, companies establish multi-cloud environments for one or more of the following reasons:
- The need for flexibility and having multiple options: No cloud offering can cover all requirements. In many cases, enterprises must use more than one cloud infrastructure to cover diverse requirements such as performance, security, and reliability requirements.
- Locality in data accesses: In many cases cloud access locality matters. For example, accessing data in local or regional servers near the end-user could be way faster than accessing services located in other parts of the internet. Locality might be also needed for regulatory reasons. For instance, as per the General Data Protection Regulation (GDPR) of the European Union (EU), special clauses appy for data leaving the EU. This leads many enterprises to contract with cloud providers that have data centers in Europe, even in cases where they use other providers as well.
- Resilience and failover requirements: Multi-cloud environments are sometimes essential for business continuity. Specifically, companies establish multi-cloud environments to increase the availability and resilience of their cloud infrastructures and services. For instance, in the case of outages, catastrophic events (e.g., floods, earthquakes), or non-responsiveness of one cloud provider, enterprises can always resort to another provider. Nevertheless, for this to happen instantly, a multi-cloud environment must be in place.
- The evolution of independent, low-priority Cloud deployments: In several cases, enterprises deploy low priority applications outside their main cloud infrastructure. When such applications grow, they require a new cloud provider, which creates a multi-cloud infrastructure.
Optimizing Multi-Cloud Deployments
Unfortunately, multi-cloud infrastructures do not come only with benefits. They also introduce challenges such as:
- Administration Complexity: Multi-cloud environments increase the complexity of cloud administration tasks. This is because administrators must become proficient in using two or more heterogeneous cloud administration environments. For example, administrators need to provision, configure, and deprovision resources in two or more infrastructures. Likewise, they must manage the security of multiple infrastructures, including for example tasks like applying patches and performing security risk assessments. To administer multiple cloud environments, there is also a need for learning multiple management consoles and administration tools, which might incur significant learning curves.
- Increased Costs: Multiple cloud providers imply multiple tariffs and different contacts. The latter fragment and usually lower the negotiating power of the enterprise against the various cloud providers, which increases the cloud services’ costs. Furthermore, multi-cloud environments increase other cost components, such as training and support costs, given that these must be accounted for two or more platforms.
To address these challenges enterprises must focus on homogenizing access to various clouds for system administration and application development tasks. As a first step, they must establish a single set of cloud administration tools, which can work across multiple clouds. This may require the proper configuration of these tools, as well as the implementation of proper connectors from the tools to the clouds and vice versa. It’s also important to be able to use these tools in both on-premise and off-premise scenarios. In this way, enterprises can ensure a minimum level of infrastructure administration consistency across different cloud providers and their offerings.
Development environments’ consistency is also important to allow developers use a single set of tools for development and deployment tasks. This reduces learning curves and boosts the cost efficiency of the development efforts. Modern applications may require deploying code in different cloud locations in order to exploit the locality and the performance characteristics of specific cloud environments. Nevertheless, most applications are subject to frequent refactoring and chances. Development environment consistency ensures that such changes take place without major effort for changing deployment configurations. In this way, development consistency leads to flexibility, efficiency, and optimal productivity.
Future cloud deployments will be increasingly multi-cloud. Multi-cloud environments offer compelling value propositions, which will lead enterprises in bearing the additional deployment, administration, training, and support costs. To minimize these extra costs, enterprises had better create consistent environments for administering multi-cloud environments and developing applications over them.
Hmm is anyone else having problems with the pictures on this blog loading? I’m trying to find out if its a problem on my end or if it’s the blog. Any feed-back would be greatly appreciated.
https://www.smortergiremal.com/