Multicloud can be defined as cloud systems in which applications are hosted as chunks among a heterogeneous network of different cloud. Multicloud components are themselves unique cloud systems, rather than deployment methods, as is the case with hybrid cloud architectures.
In a 2013 paper, Dana Petcu listed ten issues that are addressed by multicloud application architectures:
- Dealing with peaks in service/resource requests using external ones on demand;
- Optimising costs or improving quality of services;
- Reacting to changes of the offers by the providers;
- Following constraints such as new locations or laws;
- Ensuring the high availability of resources and services;
- Avoiding the dependence on only one external provider;
- Ensuring backups to deal with disasters or scheduled inactivity;
- Acting as intermediary;
- Enhance own Cloud service/resources offers, based on agreements with others;
- Consuming different services for their particularities not provided elsewhere.
Petcu proposed a list of requirements to be fulfilled by multicloud systems.
In a multicloud system, application developers must:
- Offer a resource and service management software portal, service, or interface.
- Offer services that are cloud vendor agnostic
- Abstract service control interfaces of multiple clouds
- Offer an interface for describing functional and non- functional requirements of the clients
- Support the application portability between the connected clouds
- Offer an Integration-as-a-Service or service aggregators to combine services from different clouds
- Comply with the current standards and protocols in cloud resource management
Software professionals responsible for deploying multicloud systems must:
- Offer a facility for the selection of consumable cloud services and resources
- Offer support for the deployment of components of applications in multiple clouds
- Preserve the particularities of various clouds
- Do not impose any constrains to the connected clouds
- Allow seamless join by new cloud without changing local policies (both of the cloud and the multicloud)
- Offer a broker or match-making service
- Implement a search engine based on a specific taxonomy or using semantic processing
- Offer authentication services for single sign-on or cloud credentials repositories
- Support the connection with the top cloud providers;
- Support the application relocation between clouds
- Allow the deployment on private clouds to enable testing, debugging, or privacy
- Implement network overlay technologies to overcome limited connectivity
- Implement (meta-) scheduling, load-balancing or auto-scaling mechanisms
- Use automated procedures for deployments
- Implement a recommendation system, a trust management system or a reputation management system
- Enable a fair marketplace for cloud services and updates with the latest offers of the connected clouds
On the execution side, the following service delivery requirements must be met:
- Offer support for application component execution simultaneous in multiple clouds
- Offer a (meta-)monitoring service for the deployed applications
- Offer a (meta-)monitoring facility of the cloud resource consumptions
- Allow the control of the full life-cycle of the deployed applications;
- Allows the measurement of the degree of fulfillment of the service level agreements
- Allow dynamic allocation of resources or mechanisms for self-adaptation
- Introduce only a small overhead in comparison with a direct connection to each supported cloud
Some people use the term "multicloud" as a generalized term to describe other, more specific types of multicloud system architecture.
Several terms have emerged which are used to describe multicloud architectures of different forms and configuration. These terms include Multi-Cloud, Cloud Federation, Inter-Cloud, Hybrid Cloud, Cloud-of-Clouds, Sky Computing, Aggregated Clouds, Multi-tier Clouds, Cross-Cloud, Cloud Blueprint, Cloud Merge, Fog Computing, Hierarchical Clouds, and Distributed Clouds, among others.