What is IT’s role in supporting the business? Is it to create the technical processes that allow work to take place? Is it to perform the logistical and operations tasks that document processes? I believe that IT should be a strategic, rather than a wholly operational function. For that to happen, though, we need to focus on how to abstract away the complexity of IT operations. The value of abstraction is simple: abstraction allows us to move faster and focus on business objectives rather than on logistics and operations. And the way that we do that in 2018 is through APIs.
Abstraction isn’t a new concept. I remember earlier in my career being incredibly excited by virtualization. Virtualization changed the world I lived in for the better in so many ways. Before virtualization, we worried about operating systems installed directly on server hardware, providing services to the business. There was a whole mess of capacity issues to think about, especially as demand for business applications and online presence grew.
As businesses grew, IT had to worry not only about adding servers to support growth, but also about power, cooling, network, security, and a myriad of other components that went along with growth when applications all ran on their own physical servers. Virtualization solved so much of that by creating an abstraction layer between the underlying hardware and the operating system that allowed virtual machines and the applications running on them to be flexible. The true magic of the impact of virtualization wasn’t just about all the features it opened up, but rather all the tedious work that was eliminated by abstracting away the hardware. This shifted the focus of IT from the practical limitations that physical servers presented to the delivery of value to the business.
Next came hyper-convergence. The challenge with early virtualization solutions was that while there was benefit in abstracting away server hardware into virtual machines, there was still a strong need for someone to worry about the compute, storage, and network layers of the virtualization architecture. Hyper-convergence abstracted the underlying storage, compute, and network into a much simpler model by consolidating all of the underlying tech into one piece. If you needed more compute, memory, or storage, adding one more node to the cluster provided everything and the underlying software managed the expansion naturally.
Public cloud providers do the same thing with their services. They abstract away all of the operational concerns of running infrastructure at scale so that the focus is on the development of software, rather than the constant care and feeding of hardware. Public cloud even makes high availability, backup, and recovery natural parts of the solution.
Looking in that space now, containerization ultimately asked the question of whether or not we needed a dedicated operating system for each instance or component of an application––thereby further abstracting the application away from the operating system and the operational burden as well as extending the capabilities and architectures that are possible based on the underlying technology. Again, abstraction has changed the way we view IT’s role in supporting the business. The value in abstraction provided by these technologies came from moving the focus of IT from the operations of the applications to the service the applications provide to the business.
The value of abstraction is simple: abstraction allows us to move faster and focus on business objectives, rather than logistics and operations.
APIs are the next chapter in abstraction in terms of the way business uses technology to move faster, maintain agility, and leverage its own data. Popular software applications already expose APIs so that their customers can extract additional benefit from their products. The companies that create these systems focus on the functionality needed to solve real problems. These companies expose APIs to allow their customers to access the capabilities of their software. This is the first layer of abstraction: the software vendor provides an API that exposes objects and processes within their software. The API is an abstraction layer on top of the application and the APIs they provide functions in the context of their application.
The next layer of abstraction comes from the layer between the systems and your business, with the focus on the context of the business itself. Systems that your business run on have their notion of a customer as an example. Each of these systems has its own definition of what a customer is that differs from the definition of a customer according to your business. The components of your business are ultimately unique to you and they can be modeled and exposed as APIs.
This is true for other elements of the relationship between a business and the systems the business depends on. APIs allow businesses to abstract the definitions of these key business objects out of the underlying systems and make them available directly within the context of the business. Invoices then move from something you talk to the admin of the financial system to obtain, and turn into a common business object that can be consumed. This abstraction allows the rest of the business to interact with the core business objects rather than having to concern themselves with the underlying systems.
Anypoint Platform empowers you to build your business as a composable enterprise by bringing focus to the data across the entire business. With our platform, you can build your business around the APIs that serve your specific needs and that can adapt to changes in underlying systems.
You may be asking whether or not you really need to create your own APIs around your business. If the software companies you work with are providing APIs, why would you create your own? We’ll discuss this in my next blog post.