Cloud services need APIs. APIs need clouds. They are Yin and Yang. If you are working with one, you are working with the other.
First the Yin – if you have a cloud why you need APIs?
One of the ways cloud services (IaaS, PaaS, or SaaS) achieve scale is through customer self-service.
This usually means a customer portal, through which early customers – usually small companies or a department of a larger company – set up and manage their service.
At this scale, “integration” is achieved through people using the portal to interact with the cloud service, which in turn, ‘integrates’ into the business process.
At some point, the use of the cloud service grows to serve larger companies or a larger cross-section of a company, or both. Now, “people-level” integration through a portal is not enough - the cloud service must plug in or integrate directly to the companies business process.
At this point, you need an API.
Tim Madewell from Innotas, a leading provider of SaaS PPM (project portfolio management) services makes this point well.
“In the early days of our company, our average customer had 25-30 users. But as we started to grow and the SaaS market became more mature, we started working with larger enterprise customers and the product needed to evolve. When we landed our first 5000-user account, we found that one of many requirements was that we enable integration from their back-end CRM, HR, and billing system. Exposing the API where the customers can ‘come and get it’ worked well for large customers.”
The transformation that Tim talks about is the change from “here is a web portal that you can use to govern your IT processes,” to “here are the set of entities that we manage, and now you can interact with them in the flow of your processes.” This is the transformation that is leading thousands of non-cloud enterprises to move from “here is a web site where you can deal with us” to “here are the APIs and now you can work with us.”
This is a big shift for the enterprises, and a big shift for the cloud SaaS providers. A similar shift is happening to the IaaS and PaaS providers. An example is GoGrid's cloud control APIs where an enterprise can manage cloud provided computing and storage resources in the same seamless fashion as managing their own, internal IT-provided resources.
At IBM, we used to say that hybrid cloud management is a critical future need and that integration will become a big challenge with the proliferation of clouds (see my post).
I did not realize then was that this requires clean (hopefully REST-based APIs) on the cloud provider side. I also did not fully realize that this requirement extends all the way into the IaaS, PaaS, and SaaS layers. Companies like Innotas have taught me that indeed, the cloud, like other enterprise systems and applications, needs APIs.
Next, the Yang. I will discuss how all APIs need to scale, and therefore need the cloud to be effectively managed. Check out Part 2.