Rise of the APIs
Automation Surface Area
Every application, every team’s infrastructure, every estate…they all have an automation surface area: the set of components involved in all of your development, operations, and security workflows. This surface area represents all the processes that tie everything together and keep things running. It represents all the things you could automate.
For many teams, the Operating System is a significant part of their automation surface area. Engineers are automating workflows that involve direct, OS-level interactions across their entire infrastructure: manipulating file content, installing packages, configuring user accounts, setting up firewall rules, and more. In this world, configuration management tools like Puppet are great — they can easily wrangle the complexity of an OS, and do it safely and securely at scale.
Technology is Changing: The Rise of the APIs
Technology is changing. Infrastructure evolves. Application architectures evolve. Platforms evolve. With the rising popularity of micro-services, cloud-native tooling, immutable infrastructure patterns, 3rd-party hosted services, and platforms like kubernetes, the operating system itself represents a smaller percentage of the overall automation surface area relative to components and services developers interact with via APIs.
You aren’t literally using all of these (I hope), but the struggle is real
Applications are increasingly dependent on a wide variety of APIs and services to work properly and reliably. But every API is a bit different, and connecting them together can be complicated. Furthermore, these APIs often trigger or consume events from other APIs, compounding the problem. Some concrete use-cases we’re seeing are:
The emerging practice of GitOps uses webhooks and operators that extend the Kubernetes API to automatically trigger a deployment as soon as a new version is committed.
To properly handle a user leaving your team, you have to de-provision them across a huge number of different services ranging from your cloud provider, PagerDuty, Splunk, DataDog, etc.
Configuration management and infrastructure-as-code helped rein in the complexity of the operating system. How can we do something similar for all the APIs and services we now rely on, yet don’t behave like a traditional OS at all? The overall number of things to manage is growing, plus the ratio of API driven activity to operating system config management is swinging decisively in favor of APIs and services.
The changing automation surface area
This change in how applications are built demands more from our automation. Order matters. How well we integrate with the huge variety of target APIs matters. And any automation must be succinctly expressible as code.