#09 Pre:Invent Is Here!
In this week’s issue, we have more great insights from our serverless expert of the week Jimmy Dahlqvist, the spotlight falls on Sarah Hamilton, more hints and tips, our weekly poll results, and more!
Welcome
In last weeks article, our Serverless expert of the week was independent consultant Sam Williams, the spotlight fell on the fantastic Sheen Brisals, and we had some great contributions from the community!
This week, our Serverless expert of the week is AWS Serverless Hero Jimmy Dahlqvist, our spotlight falls on AWS Community Builder Sarah Hamilton, we look at the latest exciting serverless news and service updates with the start of Pre:Invent, and more!
This week’s newsletter is sponsored by Leighton.
A Glimpse into My Week 🎤
This week I had some much-needed downtime and took some vacation to spend time with the family in York. York is the home of the Shambles (above), “The shop that must not be named” (Harry Potter-themed), and the Jorvik Viking museum! It’s a great place to recharge your batteries.
The start of the week, however, was very much focused on building an AWS AI marketplace offering being built out by one of our teams at Leighton - one of three products being built in around 13 weeks since joining 🚀 To find out more, please just reach out!
📰 Articles that caught the eye
This week, I wrote a simple article on “Configuring AWS CDK Apps Across Multiple Environments” with full code examples in Typescript. This created some great discussions on the Believe In Serverless Discord (check it out).
Other great contributions from the community this week:
Marcin Sodkiewicz covers “AWS & OpenTelemetry: Collector architecture at scale”. I think what is clear from the many diagrams, services, and lines, is that this is more complex than it needs to be, and we could do with a managed service here.
Elias Brange discusses Next-level mocks with Lambda extensions. It’s very cool to see yet another approach which is different to mine.
Simone Lusenti covers Hosting a Next.js (App Router) app on Amazon S3. This is a great succinct article on something I always need to google each time I need a static Next.Js app.
The Volvo Group covered How to successfully adopt serverless in large organizations. If I could call out one thing here it is “Get executive support” which, without it, your transformations will fail.
Jimmy Dahlqvist covered building a Serverless AI powered content moderation service. A really cool use of Amazon Rekognition and Amazon GuardDuty (perfect solution for an enterprise organisation).
Danilo Poccia wrote a great article on Testing AI-Powered Apps: Introducing LLM Test Mate. I loved this post, as I am working on something similar right now for Typescript!
Moving Baselime from AWS to Cloudflare: simpler architecture, improved performance, over 80% lower cloud costs. This is a really useful comparison with an 83% reduction in costs where Boris shares architecture diagrams of before and after, and an interesting use of the strangler fig pattern.
🎓 Ask the Expert
Each week I ask a different Serverless expert the same three questions to get their personal insights - this week we have AWS Serverless Hero Jimmy Dahlqvist.
1. What is one common mistake you see teams making when implementing serverless solutions, and how can they avoid it?
Only one? I’ll give you three :)
The most common I would say is to associate serverless with Lambda functions. Serverless is so much more than Lambda. There are so many serverless services, SQS, SNS, EventBridge, StepFunctions to mention a few. If a service scales automatically, come with little to no capacity planning, and you pay for what you use I consider it serverless. Then there are some grey areas with services like Fargate and Kinesis Data Streams which require you to do some capacity planning.
One more mistake I see is teams that break their back to only run serverless services, not everything is suited for serverless. If the only tool you have is a hammer then every problem is a nail. If your data-model doesn’t suite DynamoDB then don’t use DynamoDB, if you need relational database use a relational database, don’t squeeze it into DynamoDB. If the problem is best suited to be solved using containers, run containers.
The third and final, is something I highlight in my talk “Building resilient serverless workloads: Navigating through failures”, that if you run on serverless services you don’t need to worry about failures and how to handle them. Serverless services are highly available and resilient out of the box for sure, but that is on a service level. You still need to plan for failures and use architecture patterns like Storage First and Retries with Jitter.2. Which serverless tool or service are you most excited about right now, and why?
That is a good question for sure.
Tooling wise I seem to come back to AWS Serverless Application Model (SAM) repeatedly. I think it’s a great addition to CloudFormation and makes my life a bit easier. I really like SAM CLI for building, deploying, and just managing my serverless services. I need to promote all the great tools that my good friend Lars Jacobsson has created, there are so many good ones. https://lars.tools/From a service perspective, I would say that EventBridge and StepFunctions has become my two go-to services. With EventBridge building event-driven applications are made so easy, and the share scale of it is amazing. I love the no-co / low-code parts of the StepFunctions, being able to call SDK operations without writing code and combine it with the power of Lambda functions when needed. I do see a bright future for both of these services.
3. What is your favourite trick or tip when working with serverless that the readers may find interesting?
I would say test your system in the cloud, so far, I have not been satisfied when using solutions that mock AWS services locally, the best test result I always get when running the tests in AWS. To be able to do this in a good way I recommend that you plan for it early. Invest time in your CI/CD pipelines and how you can run the tests in the cloud, this could be that you use temporary / ephemeral environments or that you can deploy your services into a testing area running the tests using shared components. What strategy you should choose depends on your system.
🚀 New Releases
This week, we can see the change in service releases with the start of Pre:Invent! Exciting times!
⭐ The highlight for me is AWS AppSync Events for sure!
Build durable applications on Cloudflare Workers: you write the Workflows, we take care of the rest.
AWS announces Amazon Redshift integration with Amazon Bedrock for generative AI.
Announcing Amazon Redshift Serverless with AI-driven scaling and optimization.
Simplify and enhance Amazon S3 static website hosting with AWS Amplify Hosting.
Amazon Route 53 announces HTTPS, SSHFP, SVCB, and TLSA DNS resource record support.
AWS Lambda now supports AWS Fault Injection Service (FIS) actions.
Introducing the next-level of AI-powered workflows with Amazon Q Developer inline chat.
Amazon Aurora PostgreSQL Limitless Database is now generally available.
Introducing an enhanced local IDE experience for AWS Lambda developers.
💡 Quick Hints & Tips
Each week I share quick hints or tips based on things I notice in day-to-day engineering life:
⭐ [Tip 1] - When building out serverless solutions we sometimes need to check if a value already exists or has been processed previously, perhaps for idempotency, but how do we create a key that is deterministic which we can store and check against?
One way is to use UUID version 5, which allows you to pass a known namespace key with a string value, which will always return the same UUID. This allows us to check a stringified payload against the same namespace to see if the keys match!
⭐ [Tip 2] - Do you ever update a README file or something insignificant to create a commit in Git for something like testing pre-commit hooks or triggering a pipeline?
You can do this simply with an empty commit, where no code or file changes are made:
✖️ Tweet of the Week
This week’s tweet is by Eric Johnson, discussing the new release to AppSync - AWS AppSync Events!
This is a major release, in my opinion, and opens up so many new architectures and use cases! One of the biggest things I love is the connection management side over something less managed, like API Gateway Web Sockets.
“With AWS AppSync Events, developers no longer have to worry about building WebSocket infrastructure, managing connection state, and implementing fan-out. Developers simply create their API, and publish events that are broadcast to clients subscribed over a WebSocket connection.“ - Brice Pellé.
The most exciting aspect for me is in the EDA space, where this opens up so many new use cases when coupled with services like Amazon EventBridge. One simple aside use case would be using this with your serverless e2e and integration tests, which I am going to look into this week!
🎙️ YouTube & Podcasts
Bref vs. Laravel Vapor for building serverless apps in PHP with Yan Cui and Matthieu Napoli.
Serverless Testing with Pawel Zubkiewicz on Serverless Office Hours.
Innovations in Serverless & Event-Driven Solutions with Julian Wood and Ben Ellerby.
AWS Lambda Snap Start on the AWS Developers Podcast with Vadym Kazulkin.
🗳️ Poll of the Week
In last weeks poll we asked the question “What strategy do you use in your pipelines?”.
What was really interesting about the results was 64% of people said they use trunk-based development, and the remaining 36% said they use Git-Flow.
The great thing about this is it shows that more people are now looking at full continuous delivery through trunk-based development, which is exciting and shows progression in the world of DevOps!
In this week's poll, we ask the question, “Are you double-guessing yourself with using AWS services now in case they are deprecated?“. It’s no secret that AWS has deprecated many services in recent weeks, but does this have an effect on you and your teams when designing and building out your services?
I would love to hear your thoughts using the comments button below!
📘 Books
The AWS Cloud Projects book by Ivo Pinto and Pedro Santos is now available which covers building eight real-world projects using AWS services.
It covers key areas such as:
✔️ Gain practical skills in architecting, deploying, and managing applications on AWS from seasoned experts
✔️ Get hands-on experience by building different architectures in an easy-to-follow manner
✔️ Understand the purpose of different aspects in AWS, and how to make the most of them
You can find a link to the book here.
🗣️ Inspirational Quotes and Thoughts
This week we have two quotes, both with regards to tradeoffs when building systems.
"The biggest problem we face in software development is one of trade-offs. And software architecture is about making the right trade-offs."
— Mark Richards
and
“Software architecture is those decisions which are both important and hard to change.”
— Martin Fowler
I love both of these quotes, as they show that in designing solutions on AWS we need to constantly look at the tradeoffs of the services we use and how they interact, whilst understanding the importance of ‘two-way doors’. No architecture design is perfect, and there will always be tradeoffs with regard to cost, scalability, performance, reliability etc
How do you articulate the tradeoffs when working with teams and stakeholders? I would love to know in the comments!
⭐ Spotlight
This week’s spotlight falls on Sarah Hamilton who is an AWS Community Builder and Senior Software Engineer at the LEGO Group.
Sarah is a blogger and speaker who I admire in the world of Serverless, and I recently enjoyed her talk at Manchester Community Summit on testing serverless applications. It’s a very tricky subject that many shy away from due to the async and non time-bound nature, so kudos for presenting it! Thank you for your continued contributions to our fantastic community!
👋🏼 Wrapping Up
Thank you for reading the latest Serverless Advocate Newsletter!
For anybody attending Re:Invent this year who wants to meet and talk about all things Serverless, AI, DDD, EDA, and Team Topologies, drop me a line on social media - I want to meet as many people this year as possible!
If you want to find out a little more about me, please have a look at:
https://www.serverlessadvocate.com/
See you next time,
Lee