How Cloud APIs Transformed The Way We Build Software and Data Centers
I was recently asked why more companies are not taking more advantage of Cloud APIs from their cloud service providers to power their software product and IT initiatives. These companies, instead, are simply using the web-based dashboard consoles to provision and manage their infrastructure. The result is that they are using the same techniques they would use for an internal data center, but outsourcing their hardware.
While these cloud management tools can be useful, the real power lies in the Cloud APIs that power these tools. This article explores what Cloud APIs are and how they have transformed the way we build software and data centers. It will also help product managers and business leaders rethink how they approach the next generation of software development to better achieve their business goals.
What is an API?
An application programming interface (API) specifies how software components should interact with one another. Traditionally APIs were used to connect individual components within a standalone application. Now web APIs enable applications to talk to other applications across the Internet using the standards of the web. Throughout this article, we will use the term API for the web APIs used to request data and business logic from remote servers.
Need a gentle introduction to Web APIs?
You can find out more from our paper, The Recent API Obsession
What are Cloud APIs?
Cloud computing reduces your time and expenses by allowing IT and other infrastructure services to be provisioned on-demand. Typical cloud computing resources available include: compute services (CPU), storage services, data storage, and applications. Each of these cloud services are metered, much like electricity and other utilities, allowing the business to pay for only what they need. No more guess-work on how many servers or software licenses to purchase.
Cloud computing has been classified into two primary categories: public cloud and private cloud. The public cloud is comprised of multiple vendors that offer various cloud resources to be provisioned on demand using their own infrastructure and managed systems. By contrast, a private cloud is one where enterprises install and manage their own data center resources by installing their own software-based management system on top of their existing hardware. When companies choose to use both private and public clouds, they are often referred to as a hybrid cloud.
New to cloud computing?
Read our paper, “Cloud Computing Basics” and get up-to-speed quickly!
All cloud environments are powered by APIs that offer various management services. These APIs are what enable cloud resources to be provisioned, configured, monitored, and managed. As an example, I might use the network API to define a secure private network, the compute API to request three servers, and the database API to provision a production database. Think of it as a software control layer over your data center.
DevOps and the Reduction of OpEx
With the introduction of Cloud APIs, a culture shift began to emerge. No longer was IT responsible for strictly manual provisioning and configuration of resources. Now IT staff could write reusable scripts that enabled them to automate much of their daily, redundant work. This shift helped usher in the DevOps movement.
Unlike what some claim, DevOps is not a process or framework. It is a cultural shift toward the blending of development and operations. No longer do developers build software in isolation, then toss it “over the wall” to operations. Now, both developers and operations have the opportunity to work together toward shared goals. All of this is powered by a combination of culture shift and automation through APIs.
In traditional data centers, all the work is done manually by system administrators. Cloud APIs enable automation of these common operations. Now just about anything can be “software-defined”: networks, compute, database, and even application deployment. This automation is reducing the total operating expenses required by IT, as well as freeing up staff to be able to focus on core, differentiating business value rather than commodity IT services.
Summary: Reduction of operation expenses through IT automation, powered by Cloud APIs.
From CapEx to OpEx
As IT begins to shift from fixed hardware infrastructure and into software defined everything, the economic benefits often begin to emerge. No longer is IT purely a capital expense, but it begins to shift toward more of an operational expense. Traditionally, operational expenses often exceed capital expenses over time. But with the introduction of APIs and automation, this isn’t necessarily the case.
Businesses are now starting to look at how software systems can be scaled down, or shutdown completely until they are needed. Compute and storage resources can be shared. Systems that aren’t mission critical can be allocated resources that have a lower SLA, as they can handle more downtime than critical production systems.
The only way that these goals can be achieved are through Cloud APIs. These APIs allow automation logic to be built that can assess demand, make critical decisions, and create, destroy, or modify resource requirements as needed. This allows for shifting fixed capital expenses to a more dynamic operational expense that better meets the needs of changing business demands.
Summary: Demand-based IT, powered by Cloud APIs.
Business Agility and Elasticity
Cloud computing removes the friction common to most IT and product development teams today. It provides on-demand provisioning of resources, allowing businesses to become more agile. No more waiting to determine if network, storage, or server capacity is sufficient for a new product or service offering. Identify the need, provision it from your cloud service provider, verify the configuration, and promote it to production when ready.
In addition, the ability to provision services as needed allow for the exploration of new or alternative production environments. Product configurations may be cloned into temporary environments, changes made, or new opportunities explored all within a much shorter timeframe. These changes can then be rolled into a production environment, adjusted, or abandoned, all with a reduced impact to both cost and risk.
Elasticity is the on-demand growth or shrinkage of a resource for a specific time. In short: only what you need, only when you need it. Is your business growing? Grow your storage and CPU power. Is your business stabilizing? Keep what you have. Is your business slowing down after a busy season? Shrink your resources until next time. Use what you need, when you need it.
Summary: Business agility and elasticity. All powered by Cloud APIs.
How To Get Started Using Cloud APIs
Some companies have tried to move to the cloud and capitalize on Cloud APIs but have struggled. The primary reason is that they either see the cloud as another data center, ignoring the power of the APIs. They miss the opportunity to rethink how software is built and deployed. The other reason is that they try to move existing software to the cloud, even though it was not designed for this more dynamic cloud environment. The result ends up in frustration, as the concepts and assumptions built into traditional software don’t map into a cloud-based environment. Therefore, we recommend an approach of evaluation and evolution:
First, evaluate what new or existing systems would benefit from the use of the cloud and Cloud APIs. We have found that mayn businesses find success with new software initiatives, where cloud concepts can be built into the software from the beginning. In addition, set a few key performance indicators (KPIs) and business goals that can be used to assess and improve the initiative over time.
Next, evolve the internal processes necessary to realize your defined business goals. This will require involving all members of your product teams: product managers, product marketing, developers, QA, technical writers, and operations staff. As you can imagine, there is no silver bullet solution. However, there are a good number of resources available to help you get started. Depending on your team, you may want to train your staff to better understand the concepts of APIs and cloud. You may even consider bringing in API and cloud consultants to coach up your team.