Standard APIs have long been with us providing the means to access the basic protocols that power the Internet such as TCP, IP, and DNS. Without the stability of standards, the Web would be a shifting landscape making it hard to find firm footing. And, even with standards like HTTP, it’s been an occasional rocky road for vendors endeavoring to keep up with the changes, particularly for browsers. Additionally, standards have that problem of trying to be all things to all people meaning that capabilities often have to default to the lowest common denominator. Open technologies do not suffer the same fate but evolve for the common good spurred on by adoption.
But, it is an interesting question to ponder as we look the evolution of the virtual data center to the cloud and what is increasingly being termed the software-defined data center where all compute, network, and storage intelligence is in software layers or abstractions. Regardless, whether virtual, cloud, or software-defined, APIs are key to sustaining the momentum to cloud deployments and beyond.
Everything Has Its Place
Standardization begets stability. For lower-level functions in the cloud such as communications, it means a firm foundation, though at the expense of agility. Think about it. The industry got so deeply entrenched in IPv4, the native tongue of IP networks for a long time that the move to v6 has been slow for customers, vendors, and service providers alike.
At one time, this approach was also applied to applications. System calls were made directly to resources supporting applications. But, for higher-level functions such as applications and now cloud services, standard APIs would be restrictive and changes too-slow moving to keep pace with the rapidly evolving data center and cloud computing. Remember: cloud is all about providing greater efficiency and agility to IT for the financial and competitive benefit of enterprises.
Many integrators and vendors would ideally like to get their APIs adopted as standards; it’d make their lives easier and be a boom for business. But, pushing for standards at the services and application layer impedes progress. Some vendors like Citrix and RedHat once pushed their own platforms as open cloud computing standards but pulled back when faced with the demands for open source solutions. Citrix contributed its CloudStack to the Apache Software Foundation while RedHat backed OpenStack. With the release of Deltacloud API 1.0 in June, RedHat continues the theme with a new interface that communicates with the popular Amazon Web Services (AWS) public cloud interface.
Along these lines, Web-based APIs using Simple Object Access Protocol (SOAP) or the more-recent Representational State Transfer (REST) design models give developers the means to rapidly develop and deploy cloud-ready applications and services. These design models provide simple, flexible ways to present API functions, preserving the power of the underlying technology while giving developers commonalities in how to address and integrate capabilities across compute, network, and storage. The use of REST APIs can also mean portability of business processes across private, public, and hybrid-clouds.
Applying the concept of cloud APIs begins when deploying a cloud application. Integrations need to occur across all data centers involved (e.g. primary, backup, distributed), whether deployed and consumed in a public cloud where many of these concepts were conceived or in private cloud and increasingly, hybrid cloud deployments.
- Infrastructure: At the foundation, infrastructure APIs modify functions such as provisioning (e.g. assigning IP addresses to virtual machines) and configuration (e.g. changing firewall and security). Infrastructure APIs are the most basic cloud interfaces and give users access to functions with some control over geographic location and more granularity than usually found with higher-level service and application APIs. The OpenStack project initiated by Rackspace and NASA is an open source effort that combines APIs and methods for managing compute , network, and storage as an operating environment. Presenting infrastructure resources and their use is referred to as infrastructure-as-a-service (IaaS).
- Platform: At a higher level, platform APIs provide access to programming languages, servers, operating systems, and storage, as well as databases needed to support and run applications. This level may include the concept of and tools for API management too. Developers write to APIs and do not need to concern themselves with managing the underlying server and storage resources. Horizontal in nature, these APIs provide the foundation or platform for service delivery and will often scale to some limit without requiring developers to explicitly request additional resources from back-office administrators. These APIs comprise platform-as-a-service (PaaS) offerings.
- Application: At the highest level, application APIs provide the interface and ability to extend applications in Web-based deployments including cloud. Though early popular public cloud offerings included customer relationship management (CRM) and conferencing and communications applications, almost any business application is now fair game to be delivered as software-as-a-service. These application APIs ease integrations with other applications like metering and chargeback apps and for creating new composite applications, without the developer needing to know anything about the underlying compute, network, and storage resources. Application APIs make software-as-a-service (SaaS) possible.
Degrees of Separation
Cloud APIs rely on abstractions to physical resources treating virtualized servers, networks, and storage as pools to be consumed as allocated. Initially, these abstractions gained popularity with server virtualization (e.g. VMware vSphere) and to a lesser extent through storage offerings (e.g. IBM SVC storage virtualization). Abstracting the physical from the virtual has now also made its way into networks (e.g. Nicira—recently acquired by VMware). With all layers in the stack now seemingly abstracted, the concept of a software-defined data center is beginning to emerge whether in the design of the open-source OpenStack or as embraced by VMware. With the software-defined data center, control points are centralized with access provided through cloud APIs. The benefit to data center managers and CIOs of the software-defined data center is the promise of low-cost commodity x86 servers and inexpensive commodity storage for overall lower data center CAPEX and OPEX.
Open and Shut Case
No doubt, cloud computing will gain momentum as long as cloud APIs remain open enabling developers and application owners from business units through organizations to move business processes across public, private, and hybrid clouds. Only through an open API approach will clouds deliver the best in efficiency (e.g. capital and operational savings—defined as CAPEX and OPEX) and agility—for competitive advantage (e.g. maximum revenue stream).