A Weekly Newsletter By Jeremy Daly

Off-by-none: Issue #76

February 11, 2020

Building Well-Architected Serverless Applications… 🔭

Welcome to Issue #76 of Off-by-none. I’m glad you’re here! 🙌

Last week, we shared the results from Datadog’s serverless survey and loaded up on our DynamoDB knowledge. This week, we’ve got the new Serverless Lens for the Well-Architected Framework Tool, plus plenty of awesome content from the community.

The Well-Architected Framework Tool (now with extra serverless)! 🎉

The Well-Architected Framework was developed to help cloud architects build secure, high-performing, resilient, and efficient infrastructure for their applications. This is based on five pillars that include operational excellence, security, reliability, performance efficiency, and cost optimization. It was meant to provide a consistent approach to building and evaluating architectures that will scale over time.

The Serverless Application Lens was released some time ago (and has since been updated), and is a great resource for following the best practices from both AWS and the community. However, the Well-Architected Framework Tool, which guides you through evaluating and improving your application, didn’t incorporate these evolving serverless principles. Until now! Check out this blog post that explains how to use the AWS Serverless Lens in the AWS Well-Architected Tool. I think this will not only help people develop better serverless applications, but will be a great guide for those just starting with serverless.

Serverless News & Announcements 📣

AWS Heroes united!
Couple of bits of news here. For one, Ant Stanley (AWS Serverless Hero and ServerlessDays Founder) has launched a new training platform called Senzo. And, Yan Cui is the first one to participate with his “Production-Ready Serverless” workshops.

Serverless Stories 📖

Serverless Framework with Terraform: a firsthand experience
Joel Barna argues that a hybrid approach to managing your serverless apps and AWS infrastructure is the way to go. There are certainly good reasons to manage shared infrastructure separately (and Terraform’s a good choice), but when it comes to deploying serverless apps, tools like the Serverless Framework and SAM are hard to beat.

Using Python and AWS Lambda to send Automated Emails
Indra Teja outlines the steps he took to create a serverless process to automate customized emails. There’s some good bits it there if you’re implementing something similar, but most of all, I appreciate that the experience was documented.

Lessons learnt using Serverless Lambda Functions
Sometimes real world implementations don’t meet the hype. Swapnonil Mukherjee explains some serverless lessons he learned and argues for a container-based approach instead. Is he right about all this? The teams developing serverless tech should take a good look at stories like this.

My first technical conference talk at the superlative inaugural Serverless Days Belfast
Glenn Horan has a nice recap of ServerlessDays Belfast, plus some tips for first time conference speakers. If there is one thing that the serverless community values, it’s the acceptance of new ideas and perspectives. So thanks for stepping up and submitting to the CFP, Glenn. It was a great talk.

Serverless Concepts 🏗

Shenanigans of Serverless- part 1
Shardul Aeer points out some of the nuances of API Gateway and how it interfaces with Lambda. There are workarounds (as he outlines) for many of these, but his ultimate point is that serverless is “not as simple” as some people make it out to be. I totally agree, and things are only going to get more complex in the future.

Serverless Side Rendering
If you have an afternoon free, take a look at Adrian Smijulj’s post about pre-rendering HTML for SEO in serverless environments and how Webiny is handling it. It is a long and in-depth post, but after reading it, you’ll walk away an expert on the subject.

A Guide to Preview Deployments with Serverless CI/CD
I really like what the team at Serverless, Inc. is doing with the Serverless Framework Pro, and the newly released “Preview Deployments” are another home run. Fernando Medina Corey walks you through how this feature works and how it can make testing your serverless applications much easier.

Azure Durable Functions
If you’re venturing into the Microsoft Azure world, Durable Functions can make building stateful workflows a lot easier. Asim Nazir explains all the details for you.

What Vending-Machines Have to Do With Your Microservices Architecture
Renato Byrro explains why vending machines are like Finite-State Machines and how they relate to your microservices architecture. It may not be the most apt analogy, but the point is well taken.

Dynamodb Streams — handy and tricky as well
This post points out some of the “gotchas” when using DynamoDB Streams, particularly the case of my-function-is-not-catching-the-error-correctly-so-I-will-keep-trying-forever issue. Of course, these are typically because of coding errors, not that you ever make any of those. 😉

Serverless and chaos engineering, is it possible?
I’m a big fan of chaos engineering (if only we all had the time to utilize it). Emrah Samdan gives a good overview of what it is and how we can apply it to our serverless applications. There’s a small pitch for Thundra in there, but I will say, the service does make the process much easier.

Serverless Tutorials 👷‍♀️

Serverless and CloudFormation: Rebuilding the Wild Rydes App
What do you do if you want the AWS Wild Rydes app tutorial to be done with IaC? Build it yourself, that’s what Kiki Morgan did.

Using AWS Lambda to scale Image Processing
Probably one of the most iconic serverless use cases, and for good reason. This tutorial will walk you through the implementation.

How to Migrate from Amazon RDS Aurora or MySQL to Amazon Aurora Serverless
Aurora Serverless is great for the right type of workloads. Shouki Souri walks you through migrating your existing cluster to its serverless counterpart.

Handling SQS partial batch failures in AWS Lambda
Brett Andrews shows you how to deal with partial batch failures when polling SQS messages with Lambda. He shows you the easy way first, and then digs into the underlying mechanics.

Serverless Reads 🤓

The What, Why, and When of Single-Table Design with DynamoDB
Alex DeBrie has an excellent post about the benefits and downsides of Single-Table Designs. I offered some commentary on the “downsides”, but the post is definitely a must read for all you DynamoDB fans.

FaaS Providers in 2019, What are my Options?
This is a good roundup by the team at Fauna. I think there is a lot more that goes into a “FaaS” decision, including what other supporting services are available in order to build out your application, but the detail here is great.

How to Know When a Cloud Computing Trend Has Come to Its End
Serverless is on this list, which I obviously don’t agree with (especially considering the massive uptick over the last year), but it just goes to show how out-of-touch some holdouts are. The equation of “serverless” with “FaaS” is still astounding to me, but this is the battle we must continue to fight.

For the commuter… 🚎

Serverless Chats – Episode #35: Advanced NoSQL Data Modeling in DynamoDB with Rick Houlihan (Part 2)
I continue my conversation with Rick Houlihan about NoSQL Data Modeling. We discuss why you likely don’t want to use LSIs, when sharding is necessary, the benefits of denormalization, how to efficiently store large document deltas, and much more.

New from AWS 🆕

DynamoDB global tables are now available in the Asia Pacific (Mumbai), Canada (Central), EU (Paris), and South America (Sao Paulo) Regions
I usually don’t include region-based rollouts, but DynamoDB global tables are very cool. If you’re building a multi-region application, don’t ignore how powerful these things are.

Use the new Amazon CloudWatch metrics for Amazon DynamoDB Accelerator (DAX) to gain more insights into your DAX clusters’ performance
DynamoDB is getting more and more popular, but I think people overlook DAX because DynamoDB is so fast. However, if you have a high velocity read application on cacheable data, DAX is an awesome solution to speed up your app and likely lower costs. Plus it is a “write-through” cache, so it automatically handles updating the cache on misses.

Amazon Cognito User Pools service now supports logging for all API calls with AWS CloudTrail
Amazon Cognito User Pools now supports logging for all of the actions listed on the User Pool Actions page as events in CloudTrail log files, making it easier for developers to record all actions taken by a user, role, or an AWS service.

New Desktop Client for AWS Client VPN
AWS has been making it easier to connect to your VPCs, so this is another nice addition. This should simplify working with certain services locally.

AWS AppSync releases integration with AWS X-Ray and GraphQL Info object support
You can now enable AWS X-Ray for your APIs in AWS AppSync, making it easier to trace and analyze user requests as they travel through the APIs to the backend data sources.

AWS CLI v2 is now generally available
So this is pretty cool. I don’t know what I like more, the new wizards, or the autocompletion of resource names.

Amazon RDS Data API now supports AWS PrivateLink
While it’s probably a cheaper (and more secure) alternative to NATs, I really wish there was a cleaner way to deal with these types of service integrations.

Introducing content filtering for Amazon EventBridge
This has been available for awhile, but maybe they just got around to announcing it. Anyway, this is an amazing addition. You can now filter based on numeric ranges, the existence or absence of attributes, string prefixes, and ‘anything-but’ comparisons. Plus rules can include multiple filters to create complex combinations in a single event pattern. Very cool stuff.

Serverless Tools 🛠

Dynobase – Professional GUI Client for DynamoDB
Great new tool that’s been launched by Rafal Wilinski. There are a ton of cool features in here, so if you’re into DynamoDB, give it a look.

Thoughts from Twitter 🐦

Last week I converted my site(s) to #serverless… my estimated monthly cloud bill went from many money, to no money. This week I dine on the finest ramen. ~ Nathan Glover
Even if serverless is still not perfect for everything, the static site revolution is upon us. I still need to find time to do this for my blog, but if you’re not at least thinking about, you’re behind the times.

Upcoming Serverless Events 🗓

There are a lot of upcoming serverless events, webinars, livestreams, and more. If you have an event you’d like me to mention, please email me.

February 12, 2020 – Remote debugging of live AWS Lambda functions (Workshop at ServerlessDays Cardiff)

February 13, 2020 – ServerlessDays Cardiff 🗣

February 18, 2020 – Controls for Managing Events in Serverless Applications (webinar)

February 20, 2020 – The Complete Guide to Observability (webinar)

February 21, 2020 – ServerlessDays Rome

February 27, 2020 – ServerlessDays Nashville 🗣

March 19, 2020 – ServerlessDays Zürich

March 24, 2020 – ServerlessDays Helsinki 🗣

March 27, 2020 – ServerlessDays Hamburg 🗣

April 6, 2020 – ServerlessDays Boston

April 20, 2020 – ServerlessDays Auckland

April 23, 2020 – ServerlessDays Vienna

April 24, 2020 – ServerlessDays Paris

Serverless Star of the Week ⭐️

There is a very long list of people that are doing #ServerlessGood and contributing to the Serverless community. These people deserve recognition for their efforts. So each week, I will mention someone whose recent contribution really stood out to me. I love meeting new people, so if you know someone who deserves recognition, please let me know.

This week’s star is James Hood (@jlhcoder). James is a Senior Software Developer at Amazon, where he’s the tech lead of the AWS Serverless Application Repository. His role within AWS has helped propel the serverless movement, not just with SAR, but also as a contributor to SAM (the Serverless Application Model). Thank you, James, for your continued work on serverless! 🙌

Final Thoughts 🤔

I’m just about to jump on a plane to speak at ServerlessDays Cardiff, but before I go, I wanted to mention the Serverless Community Survey that I’m working on. I was hoping to launch it today, but we’re still finalizing a few things. If you have any feedback, please feel free to send it my way. I’m really looking forward to getting it out there and seeing the results.

I hope you enjoyed this issue of Off-by-none. Please send me your feedback and suggestions as they help to make this newsletter better each week. You can reach me via Twitter, LinkedIn, Facebook, or email and let me know your thoughts, criticisms, or (perhaps) even how you’d like to contribute to Off-by-none.

Until next time,
Jeremy

P.S. If you like this newsletter, and think others would too, please do me the honor of sharing it with friends and coworkers who are interested in serverless.

Share this newsletter with your friends and coworkers!


Off-by-none is a weekly email newsletter that focuses on the technical details of building applications and products in the cloud using serverless technology. Together we can become better developers and product people by making fewer mistakes as we learn from each other. Off-by-none is the idea that we can become exceptional at what we do, if we are willing to put in the work. Join me on this journey as we help the community work to develop best practices, share our ideas, and learn to build better cloud-based software.

Sign up below and get Off-by-none delivered to your inbox every Tuesday.

I respect your privacy and I will NEVER sell, rent or share your email address.