This week’s serverless superhero is Arpad Toth, software engineer at Kasa and AWS Community Builder. Arpad frequently posts brilliant content in his blogs on dev.to and is probably the most featured writer in this newsletter. He dives deep in his examples but brings you back with easy explanations of difficult concepts. Thank you Arpad for all your contributions to the community!
One thing we all agree on with serverless is that testing is hard. Since many of our workloads are asynchronous, linear testing in a CI pipeline can be tricky. Couple that with phased rollouts or canary deployments to hundreds of Lambda functions and CI/CD can be one of the most difficult tasks you have to overcome. Wojciech Matuszewski throws us some advice in his post on automatic AWS CloudFormation rollbacks upon a test failure in your CI pipelines. He talks us through several options for rollbacks resulting from failed tests and gives us the pros and cons of each one.
For those of you in the observability and SRE game, you know that alarm fatigue is a very real challenge. When you have alarms going off all the time (hopefully that doesn’t actually happen) it’s easy to miss one and let a problem go without notice. Marcin Sodkiewicz wrote a post on his approach on how to not miss CloudWatch alarms. He shows us a reference architecture from AWS and talks about ways he’s improved it along with his source code for a recurring alarm. It’s a great way to ensure alarms are responded to appropriately.
I don’t often link to podcast episodes in this newsletter, but there was a particularly good one last week. Luc van Donkersgoed joined Yan Cui on the Real-World Serverless podcast to talk about how PostNL does event-driven architecture. Luc discusses how he’s approached EDA to ensure high quality delivery and data integrity. It’s a great discussion on an innovative approach to an enterprise service bus.
Solution architects have their work cut out for them. There are so many decisions to make and many different ways to accomplish the same problems. Ran Isenberg describes the high level decision template he uses when coming up with a design. This is a great way to stay organized and to inform your organization that you did your homework before proposing an architecture. While this isn’t about serverless, it is a great tool to have as a serverless SA.
Taking solutions architecture a step deeper, Lee Gilmore published an article last week on serverless clean architecture and code with domain driven design. He explains the purpose and importance of hexagonal architectures and illustrates the difference in code when you do or don’t follow it. Lee is helping with long game - building applications designed to last.
Alex DeBrie breaks down 6 common caching design patterns to create your caching strategy! Caching is powerful, but caching design patterns are not one-size fits all. Alex has shared 3 crucial caching choices to make when implementing a caching strategy. Let’s now review popular caching design patterns that proceed from those choices! Read Alex’s full thoughts on Momento’s blog! Sponsored
A final note on solutions architecture, last week I (Allen Helton) followed up on my article on serverless vs container cost with a post on understanding total cost of ownership. TCO is a huge factor when designing an application and in this post I cover while serverless might not always be the cheapest when it comes to your monthly bill, it often is the cheapest when we talk about total cost to the company.
Sometimes we get too deep in the weeds and need to take a big step back to regain our composure. Sheen Brisals helps us get reoriented with his post on thinking granular to go faster in serverless. This is part 1 of a 5 part series where he details out thinking small, single responsibility, and focused attention on one problem. Serverless enables us to do all that, but if we go too long without a breather it’s easy to start blurring the lines and get into some nasty habits.
The first exciting pre:Invent announcement from last week is the Lambda Telemetry API. This is an embedded API that allows you to get details directly from the Lambda service. You can get events, traces, and metrics directly from the API without additional tracing libraries. Best part? There is day 1 support from 11 different vendors including Datadog, Dynatrace, Lumigo, New Relic, and many more.
An exciting world of opportunities was opened with the launch of the EventBridge Scheduler. This feature allows you to setup one-time or recurring schedules that trigger tasks in over 200 AWS services. This is a huge release with an incredibly wide range of use cases. I even had a discussion with David Boyne on whether or not this could be used to keep Lambda functions warm.
A cool but non-serverless release was the AWS Resource Explorer which allows you to search for resources across all regions in your AWS account. I know this has been a pain point for a long time for many of us and am very excited to have this finally addressed.
2022 has rapidly accelerated the industry’s understanding a “proper” use of the public cloud. But as Jeremy Daly puts it, there are still a number of people who are doing it wrong. In his post last week, Jeremy talks about how DHH’s departure from the cloud is because they aren’t using it the way it is intended. The cloud is about utilizing services from your vendor and taking advantage of a shared responsibility model, not simply about hosting outside of a data center you own. While many of us are accepting the mindset shift of the cloud, there are still a few stragglers out there that might need to reconsider their approach.
The Serverless Summit is this week on November 16th and 17th! Some of the industry’s best serverless engineers like Matt Coulter, Alex Debrie, Yan Cui, and Sarah Hamilton (and more!) will be talking about a vast range of topics. Yours truly will be on a serverless panel as well. You cannot miss this one!
AWS re:Invent is only two weeks away. As you can see, important releases are already being announced, so I’d expect some incredible new features here.
Early on in my cloud days I thought CI/CD was simple. Just run a couple tests and push your code to your production account, right? Akshat Vig had a wonderful thread last week talking about all the nuance of releasing an update to a highly available distributed system. It’s as fascinating as it is mind-blowing.
💯 Deploying distributed services is quite challenging to get right. Writing a twitter 🧵 inspired from this tweet sharing lessons learnt deploying distributed services at Amazon DynamoDB https://t.co/EeR0p3Kgit
— Akshat Vig (@akshatvig) November 8, 2022
It’s almost Thanksgiving in the United States. Do you have anything you’re thankful for? Let me know so we can share it in our Thanksgiving issue.
If you’d like to make a recommendation for the serverless superhero or for an article you found especially useful, send me a message on Twitter, LinkedIn, or email.
Happy Coding!
Allen
Thank you for subscribing!
View past issues.