SaaS is the New Microservices

Mar 23, 2022

Movements are often a response to what has come before. Post modernism only exists in the context of modernism.

No doubt the microservice architecture was the software pattern of the 2010s. Uber has over 2,200 microservices. Containerization and container orchestrators made it easier to deploy smaller units of software. Microservices allowed independent scaling and deployment of services. This in turn gave teams more autonomy over their projects.

SaaS takes microservices to the logical extreme. Once monoliths are split apart, why manage the microservices yourself? A robust startup ecosystem has managed services to handle everything from internal tools to authorization/authentication.

Uber calculated that the half-life of its microservices was only 1.5 years (source). Why manage it yourself if 50% of your services turn over every year?

Yet, there is no silver bullet. By taking microservices to the logical extreme, SaaS amplifies the issues.

Increased complexity. At Uber, engineers had to debug a broken path by tracing execution across dozens of services (and teams). With SaaS, you have to debug paths against code you aren't managing. This could mean closed-source control planes and cross-company boundaries (rather than cross-team). Instrumenting something like jaeger (Uber's distributed tracing library) is impossible across layers of third-party SaaS.

Reliability and security. Third-party SaaS often runs over the internet. It can be done securely, but the costs of a misconfiguration or a lapse in security can be extremely costly. Okta, an authentication service, was recently compromised by hackers. What happens when your authentication service is compromised? As I wrote in The VPC Layer for Cloud, I think there's a missing piece here.