Skip to main content

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-eks
Agent 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.