# Serverless First
---
Serverless
<img src="https://i.imgur.com/CV5hHvp.png" width="49%">
<img src="https://i.imgur.com/ojsGtJ7.png" width="49%">
###### from [Serverless observability end to end](https://d1.awsstatic.com/events/reinvent/2021/Serverless_observability_end_to_end_SVS307.pdf)
----
<img src="https://miro.medium.com/max/1400/1*JxDFqhb95iPclzr2FJcQAQ.png" width="80%">
###### from [What a typical 100% Serverless Architecture looks like in AWS!](https://medium.com/serverless-transformation/what-a-typical-100-serverless-architecture-looks-like-in-aws-40f252cd0ecb)
----
- Issues:
- The whole picture
- Serverless DX
- Code Architects
- Debug
- Test
- CICD
---
The whole picture -> Infrastructure as Code
----

###### [Infrastructure as Code on AWS - An Introduction](https://blog.awsfundamentals.com/infrastructure-as-code-on-aws-an-introduction)
----
## IaC Tools
```graphviz
digraph hierarchy {
nodesep=0.1
node [color=Red,fontname=Courier,shape=box]
edge [color=Blue, style=dashed]
SST [shape=oval]
SAM [shape=oval]
"AWS CDK" [shape=oval]
{rank=same;CloudFormation API}
{rank=same;Pulumi "Serverless Framework" "AWS CDK" SAM}
AWS->{CloudFormation API}
API->{Terraform}
Terraform->{Pulumi}
CloudFormation->{Pulumi "Serverless Framework" "AWS CDK" SAM}
"AWS CDK"->{SST}
}
```
---
- Serverless DX
- Live Lambda Development
- Testing in Production
----
- SST
- Live Lambda Development
- High-level components
- AWS CDK + SAM CLI (Maybe in the future...)
- SAM Locally testing
- SAM Accelerate
---
Code Architects -> Middlewares and Validation
----
- Middlewares -> Middy
- Validation -> zod
---
Debug -> Monitor/Observability
----
- Monitor/Observability
- Tracer
- Log
- Metrics
- AWS Lambda Powertools for TypeScript
---
- Test
- Unit Testing: DONE
- Integration Testing: TODO
- E2E Testing: TODO
- All Files: 84.28% Coverage
---
- CICD
---
Q & A
{"metaMigratedAt":"2023-06-17T13:55:24.135Z","metaMigratedFrom":"Content","title":"Serverless First","breaks":true,"contributors":"[{\"id\":\"e1e2731b-c9f8-48f7-8c9e-9a5af4ffa2c8\",\"add\":2966,\"del\":828}]"}