Services, Microsoft Azure and Google Cloud Platform. To effectively access and deploy those cloud services, enterprises must use the provider’s application programming interfaces.
But as organizations adopt hybrid and multicloud strategies, managing and integrating these application programming interfaces (APIs) — which vary between providers — can pose serious challenges. Let’s examine the key issues and options to build a multicloud API management system.
API management system challenges with multicloud
All APIs are not the same — they include any combination of subroutines, protocols and tools.
If an enterprise wants to create an application that works across more than one cloud platform, challenges arise, since providers offer varied compute and storage instances, networking services and monitoring tools. This means it may not even be possible to migrate some workloads between cloud providers with incompatible service offerings. Even if the services are similar, the way users invoke a service or action with one provider’s API may be radically different for another provider.
Administrators must recognize differences between provider APIs when they move to multicloud. It may take more or fewer API calls to accomplish the same tasks between different cloud providers.
Performance differences, such as latency and limits on the number of API calls during a given time, can also exist between providers. At the same time, each provider’s underlying software stack, and the way that stack is tuned or optimized, can also affect API performance and availability. This can complicate application design.
In addition, providers often use different API security and authorization techniques, as well as different API error messages. The problems worsen when cloud providers add services and update their APIs.
Given the challenges of integrating a single API into an enterprise application, the use of multiple cloud providers — and the creation of an API management system to support that model — is daunting for IT staff.
Service brokers in a multicloud API management system
One way to address multicloud compatibility challenges is API abstraction, which inserts another layer between the application and the multiple cloud services that APIs access. This layer presents organizations with a single, unified API that uses single sign-on to deliver a common command set for tasks like the creation and management of compute and storage instances. The abstraction layer then translates those commands into the APIs for each respective cloud provider.
Such abstracted APIs have started to emerge for multicloud management. For example, RightScale, a cloud management vendor, provides a common API for the management of a wide range of public and private cloud services, including Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform, Rackspace, IBM SoftLayer, Apache CloudStack, OpenStack and VMware vSphere. This common API lets users create consistent service configurations across cloud providers, while delivering common monitoring, cost assessment and reporting throughout all supported clouds.
The challenge, however, with a cloud service broker or API management system is the complexity of adding another SaaS platform — and another cost for the business. Users also expect that changes to any provider’s services will be quickly and reliably reflected in the broker’s tool. For example, if AWS costs change or Azure adds a service, the broker must update its platform. Users must also be comfortable with the broker’s availability and reliability. If the service becomes unavailable, it may impair the utilization of any cloud provider until the broker restores access.
The move toward standard APIs
Ideally, cloud providers would adopt a common API as a standard to facilitate application and resource management in multicloud. While this sounds like a laudable goal, vendors are slow to surrender their proprietary positions that lock in customers. Still, there is interest, and the focus on common cloud management APIs should grow as services proliferate.
One emerging example is the Open Cloud Computing Interface (OCCI) led by a working group from the Open Grid Forum. OCCI forms a front end that interfaces to a service provider’s management systems. It was originally intended for remote management of infrastructure-as-a-service providers, allowing for the development of common tools that could employ an API to deploy, scale, and monitor services. OCCI has since evolved into an extensible API that can also serve platform-as-a-service and software as a service (SaaS) providers. Today, OCCI has implementations in numerous cloud stacks, including OpenStack, OpenNebula, CloudStack, the CompatibleOne cloud broker and a range of other tools, such as Eucalyptus.