### 🇮🇹 🇬🇧 🍝 💻 🎶 🏍 📷
[.column]
#[fit] Agenda
[.column]
#[fit] Context
^ Why that person of that team took a different decision ?
^ Reason for writing down ADR, Architecture Decision Records
^ Costs of provisioning machines
^ Warm up not easily manageable with live events, for example delays
^ Example AWS account
^ Before: We didn't know who the credit card assocciated with the account belonged to
^ After: 4 account for each team, everything managed by cli
[.column]
[.column]
#[fit] Problem
^ Same functionalities
^ Vertical Split of the whole application
^ Domain Driven Design
^ Microservices
[.footer: Micro-frontends resources: https://medium.com/@lucamezzalira/micro-frontends-resources-53b1ec7d512a]
^ Independent releases
^ Same URL
^ Release one MFE per time with Strangler Pattern is ok, but "catalog" MFE is quite a dangerous one to release globally in one go.
[.list: #000000, bullet-character(->), alignment(left)] [.build-lists: true]
- Auto Scaling
- Fast
- Frontend Independent
- Same URL
- Strangler Pattern
- Canary Deployment
[.list: #000000, bullet-character(->), alignment(left)]
[.build-lists: true] An extension to AWS Lambda that lets you execute functions that customize the content that CloudFront delivers.
- No Infrastructure to manage
- Auto Scaling
- Pay-Per-Use
[.footer: 205 Edge Locations and 11 Regional Edge Caches]
^ The dotted line is where CloudFront chache the items
^ What's the input and the output ?
[.footer: Full Specifications: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-event-structure.html ]
[.column]
-> 1000 concurrent execution 1
-> Spread across 11 AWS regions
[.column]
-> up to 10 minutes to deploy
-> Spread across 11 AWS regions 2
^ We use Kinesis Firehose to do logs aggregation, which is the method suggested in the blog post.
Around 2ms of execution time
[.footer: You pay for Number of Requests and GB per second of memory used (granularity at 1ms) https://aws.amazon.com/lambda/pricing/#Lambda.40Edge_Pricing]
[.list: #000000, bullet-character(->), alignment(left)] [.build-lists: true]
- Auto Scaling
- Fast
- Frontend Independent
- Same URL
- Strangler Pattern
- Canary Deployment
[.footer: External data in Lambda@Edge: https://aws.amazon.com/blogs/networking-and-content-delivery/leveraging-external-data-in-lambdaedge/ ]
[.list: #000000, bullet-character(->), alignment(left)] [.build-lists: true]
-
Context Context Context !
-
Vertical Micro-frontends to splith the Monolith
-
Working on the CDN is possibile
-
Not only AWS (Cloudflare Workers)
-
Routing & Canary Release are just the beginning (SSR3, SEO4, Authentication, Authorization, Real-Time Image Transformation, Security & Privacy...)
^ We're not working anymore in a Client-Server world, but Client, Server and CDN.
#[fit] Thank You
Footnotes
-
It's possible to increment the limit up to 5000 per account, per region. https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html#limits-lambda-at-edge ↩
-
Logs Aggregation https://aws.amazon.com/blogs/networking-and-content-delivery/aggregating-lambdaedge-logs/ ↩
-
Server Side Rendering ↩
-
Search Engine Optimisation ↩