Designing an architecture
Work in progress
This page is a work in progress. Content may change or be incomplete.
The scenario
Context
Your platform team only allows Kubernetes (EKS).
What happens
Your agent proposes a new architecture for your company, entirely serverless on Lambda.
How ASL helps?
With ASL, the proposal is checked against those rules before the review.
Today: Markdown as the harness
design-proposal.md — orders
1# Orders platform
2
3- Compute: AWS Lambda for every service
4- Data: DynamoDB
5- Events: SNS
6<!-- the platform only allows EKS: not in the proposal -->
Two weeks later the platform team rejects it in the architecture review. The design starts over.
Architecture as Code with ASL
proposal.asl.yaml — orders
Agent proposes
1---
2apiVersion: asl/v1
3kind: Application
4metadata:
5 name: order-api
6spec:
7 providers:
8 aws: Lambda
9 language: Python
Application must run on AWS EKS
architecture/proposal.asl.yaml:1 · platform.only-eksAgent fixes
1---
2apiVersion: asl/v1
3kind: Application
4metadata:
5 name: order-api
6spec:
7 providers:
8 aws: EKS
9 language: Python
Every service now runs on EKS.
$ asl ./architecture --policies-bundle-path ./policies
ok
ASL checks the proposal against your platform rules before the review.