The big draw of cloud services is the fact that all resources are consumable via APIs. Providing a consistent interface that developers can access is the first step towards offloading the “undifferentiated heavy lifting” to a cloud provider. Why build parts of your application infrastructure when you can make use of a service built, maintained and continually updated by experts?
The challenges of providing a good API center around the design of the API methods themselves, having good quality documentation, code samples and libraries for major languages. What becomes more difficult is when you have to complement the programmatic API with a web and/or mobile UI.
Every cloud provider offers a web based console which allows you to manage all aspects of your cloud account. In the early days, this console could be very simple — just a few products, billing and user management was all that was necessary. But as the number of products has expanded and the complexity of those products has increased, having a single console to manage it all has become a major area of focus.
What are the challenges?
The main thing is product range. AWS has 18 top level categories of products, ranging from Compute to Storage and from AI to Application Services. Each of these has up to 15 products within them, not to mention the AWS Marketplace, support and billing systems. This vast number of top level services all have sub services and features, have interconnected components and all are in use to different degrees by different customers. Google Cloud and Microsoft Azure have similar challenges with the range of products they offer.