Documenting serverless architectures: Could we do it better?
We don't yet have an adequate language for describing serverless architectures. Today, we use informal diagrams in which no precise meaning can be attached to the diagram as a whole or to any particular element. Asher Sterkin explains why this is a problem and what we can do about it.
Talk Title | Documenting serverless architectures: Could we do it better? |
Speakers | Asher Sterkin (Blackswan Technologies) |
Conference | O’Reilly Software Architecture Conference |
Conf Tag | Engineering the Future of Software |
Location | London, United Kingdom |
Date | October 29-31, 2018 |
URL | Talk Page |
Slides | Talk Slides |
Video | |
Serverless cloud computing is potentially a tectonic shift in the software industry. For the first time, software developers have an opportunity to fully concentrate on developing business features. However, when trying to describe serverless architectures, they normally use informal diagrams that are of little help for conducting architectural analysis of latency, throughput, security, availability, cost, productivity, potential duplication, or comparing multiple architectural options. These diagrams are too informal. There are not even clear guidelines for which icon to use and when (AWS Lambda has four). Also, this diagramming style does not scale beyond the scope of very simple applications. When the application size grows, intellectual control over its structure is usually lost. At serverless meetups, it’s not uncommon to hear worrisome stories about startups that produced ~500 Lambda functions within six months of development, and now, nobody has a clue what’s going on and how to maintain them. Sometimes it seems that serverless computing is just a new fancy way to mess ourselves up beyond all recognition. Drawing on his recent article, Asher Sterkin explains why this is a problem and what we can do about it. Asher details an adaptation of the 4 + 1 view of software architecture to reflect the specifics of serverless computing in order to achieve consistent presentation of serverless architectures in the form of five orthogonal yet coordinated models: use case, logical, process, implementation, and deployment. Each model has its own semantics of graphical elements and scope of architectural challenges to be addressed. While all five models will seldom be required, it’s very important to have a clear understanding of scope of applicability of each model. Along the way, Asher discusses advanced topics such as observability and strategic play. While this presentation is based on AWS’s serverless offerings, the core principles discussed are equally applicable to any serverless platform.