Off-by-none: Issue #84

April 7, 2020

Take your DynamoDB knowledge to a whole new level... 📖

Welcome to Issue #84 of Off-by-none. Thanks for joining us!

Last week, we saw a comprehensive collection of serverless patterns and a new survey on technical debt. This week, we’ve got a couple of new books to share, a new YouTube channel for serverless fanatics, and plenty of awesome posts from the serverless community.

Serverless News & Announcements 📣

Natively Debug AWS Lambda on your IDE!
Thundra allows you to natively debug your serverless applications on the cloud with their own permissions. Thundra’s online-debugger sets up a secure bridge between your AWS Lambda environment and your IDE. VSCode and IntelliJ IDEA are natively supported with plugins. For other IDEs, Thundra provides a portable client to foster the integration with any IDEs. Start debugging Node.js, Python and Java functions for free today! Sponsored

New Book: The DynamoDB Book by Alex DeBrie 🎉
I had the opportunity to read an advanced copy of this book, and it has become my new go-to DynamoDB reference. I’ve spent so much time over the last few years scouring the Internet to find useful information about DynamoDB modeling, usually ending up empty-handed. Now Alex has a resource for you to get all of the (correct) information in one place.

Announcing Serverless Components GA
I love the idea behind Serverless Components, and now the service is out of beta. There are some amazing features, including the new “serverless dev mode” that lets you develop on the cloud, but with an experience that looks and feels local.

Serverless Cobol
There has been a call for Cobol programmers recently, especially since the SBA loan system crashed the other day. I don’t know anything about Blu Age, but apparently they built a custom runtime for Lambda. So if you happen to learn (or know) Cobol, maybe your skills will be transferrable. 🤷‍♂️

New Book: Programming AWS Lambda by Mike Roberts and John Chapin
And here is another book for you. Mike and John over at Symphonia are serverless experts, so anything they write is guaranteed to be good.

The Good Morning Serverless Show with Tom McLaughlin
If you’re stuck at home, why not do a live morning show and chat about serverless? Tom McLaughlin is doing just that. The first episode was last Friday morning, but check out his Twitter to learn more about upcoming broadcasts.

Serverless Stories 📖

500MB of Memory Saved Us ~60% in our DynamoDB Bill
Boris Cherkasky outlines how adding a simple write-through cache to their DynamoDB index tables reduced their bill by ~60%. DynamoDB is incredibly fast, but using a cache to read the same exact items over and over again is a great optimization.

Cloudflare Workers @ Opendoor: Landing Page Infrastructure
Josiah Grace recounts how Opendoor used Cloudflare workers to run A/B across their infrastructure without needing to build complex logic into their application code. Very cool stuff.

Serverless Use Cases 🗺

Lambda SQS Triggers and Concurrency
Shilpi Gupta revisits the often cited concurrency issues with Lambda SQS Triggers. I know I experienced this problem before I implemented AWS’s recommendations on the subject (which she mentions in the post), but since then, my throttled queues have performed as expected.

Running Unit Test on Top of Serverless Service
Adinata Thayib explains how his engineering team parallelized their unit tests using a serverless infrastructure. This is an excellent use case for Lambda functions, though there are some great tools (like LambCI) that would make this process easier.

Serverless Framework in the Real World
Victorien Avon discusses a great use case for serverless that sends a Slack notification when certain conditions are triggered via an SNS notification. It also runs peripherally to their Kubernetes cluster, a common scenario we’re seeing when developers need these type of scalable, independent services.

Deploying machine learning models as serverless APIs
There are still a lot of limitations with Lambda when it comes to Machine Learning use cases, but there have been some really great examples that show that certain implementations are still possible, especially around serving predictions. This post by Anders Christiansen shows you how to do just that.

Sub-Minute Lambda Invocations Using Cloudwatch Events
Oh no! Please don’t do this. I hate to criticize, because I know people are still figuring things out, and I appreciate people putting out content, but this post advocates long-running Lambdas to manage cron jobs with sub-minute accuracy. There are several ways to do this more efficiently, with my favorite being the use of SQS queues with message visibility delays.

Serverless Concepts 🏗

Building well-architected serverless applications: Introduction
Julian Wood is running a series of posts that address each of the questions within the Serverless Lens of the Well-Architected Tool. This should be a really useful resource, so be sure to bookmark this introduction page.

AWS Serverless – YouTube Channel
The Serverless Team over at AWS put together a YouTube channel that is loaded with training videos, Twitch show episodes, playlists with talks from re:Invent and other conferences, and a whole lot more. If you’re looking for a treasure chest full of serverless doubloons, take a look at this resource.

A Close Look At .NET Core 3.1 on AWS Lambda
Zac Charles looks under the hood of the new .NET Core 3.1 release and compares the differences between AWS Lambda’s .NET Core 2.1 support. He also tests the performance and makes some recommendations for your implementations.

Serverless Tutorials 👷‍♀️

Supercharge Development, Delivery and Management of Serverless Applications
Stackery empowers enterprise development teams to deliver Well-Architected serverless applications quickly, securely, and at scale— without the overhead of complex infrastructure and operations management. Accelerate overall development and secure delivery of serverless applications by up to 60x – so your team can focus on perfecting core business logic. Sponsored

Pete’s tips for learning effectively online
With most of us stuck at home, now could be the perfect time to level up your skills on something. Dr. Peter Sbarski’s got some tips to help you maximize the value of your online learning time.

Set up a CI/CD Pipeline for AWS Lambda with Github Actions and Serverless in under 5 minutes
I’ve got to spend some time with GitHub Actions, because this could dramatically simplify a lot of my workflows. In this post, Philipp Schmid shows you how to deploy an app using GitHub Actions and the Serverless Framework.

How to Build Both Kinds of AWS Lambda Layers. (Yes, There Are Two)
Allen Helton gives you a crash course in building and deploying AWS Lambda Layers for dependencies and functions. I still find the Layer process to be less manageable than using shared packages when it comes to sharing across microservices, but as soon as there’s a better abstraction layer, I’ll make the jump.

How to run API Gateway, AWS Lambda and DynamoDB locally
It’s not an April Fools’ joke, you can actually run all this stuff locally if you really want to. Andres Moreno shows you how to set up your environment, point everything to the right endpoints, and even connect with the NoSQL Workbench for DynamoDB.

Handling Multiple AWS Lambda Events Types with Go
Rob Bruce shows you how to use Go to dynamically detect and unmarshall different AWS event types. If Go isn’t your cup of tea, there are projects for other languages that do similar things. I do like the idea of Lambda reuse, so if you have the need to accept different event types, I think this approach is worth looking at.

Using AWS SAM Cookiecutter Project Templates
Ken Collins set out to learn more about Cookiecutter, and ended up building some tools to make it easier for the teams at Custom Ink to think “serverless-first”. Lots of really cool things baked into what he built, plus some details to help you build your own.

Serverless Reads 🤓

Scalable Serverless Microservice Demo AWS Lambda Kinesis Terraform
Interesting series of posts by Kim Wuestkamp where he builds the same scalable microservice using different technology stacks. In this article, he uses Kinesis as his messaging bus, and with that choice, faces a number of shard scaling and throughput limitations. Looking at what he’s built, swapping in EventBridge would dramatically improve this system.

Your Worst-case Serverless Scenario Part I: Invocation Hell
This post by Niels van Bree recounts the nightmare scenario his team experienced. It seems like there were multiple things that were contributing factors, but the most glaring is the dangerousness of Lambdas reinvoking themselves. There are some good lessons in here.

Accelerating with Serverless!
I always love reading Sheen Brisals’ posts. This time he writes about how the serverless journey of Lego has not only changed the way they solve problems, but how it’s allowed them to more quickly add customer value, help teams move faster, and even adopt new technologies into their stack. Oh the power of serverless.

Forget AWS Lambda, Kubernetes AND Fargate – what we need is beyond all three
Lee Atchison argues that we need a true Container-as-a-Service model to be the future of serverless. While I would love to see Fargate be an event-driven, auto-scaling, auto-managed service, I still think the standalone simplicity of Lambda will dominate most of the use cases.

Joel is Wrong, and it costs you a fortune
This is a good piece by Daniel Schwartzer about the old assumptions around rewriting codebases. There are A LOT of reasons not to rewrite code, but Daniel makes some great points about modern tools and services that solve problems much better and more reliably than code from several years ago. It’s definitely something to think about.

Choosing a suitable AWS compute product, a decision tree
Here’s a fun decision tree by Marat Levit that helps you choose the best AWS compute option for your workload. I think they should all eventually end on AWS Lambda, but maybe that’s just me. 😉

For the commuter… 🚎

Serverless Chats – Episode #43: The State of Serverless Report with Stephen Pinkerton and Darcy Rayner
In this episode, I chat with Stephen Pinkerton and Darcy Rayner about how organizations are adopting serverless, what enterprises like DataDog are doing with it, and what comes after serverless. Watch it on YouTube.

Real World Serverless – Episode #4: Understanding risk and vendor lock-in at Moneyou
Yan Cui talks to the team at the Dutch bank about their journey towards serverless over the last 2 years. In part 2, they discuss the open-source tool they built, called org-formation, that helps you manage complex AWS Organizations setups.

New from AWS 🆕

Amazon Personalize now provides scores for recommended items
These scores can help you understand the relative difference in the relevancy of recommendations, and help you apply additional business logic on the recommendations, such as filtering out recommendations below a threshold or balancing relevancy with other business objectives such as displaying sponsored content.

The AWS Toolkit for Visual Studio Code now supports AWS Step Functions
This is awesome. The AWS Toolkit for Visual Studio Code now supports AWS Step Functions, making it easier to create and visualize state machine based workflows without leaving your code editor.

AWS Serverless Application Repository allows sharing public applications from all commercial AWS regions
Authors who publish serverless applications to the AWS Serverless Application Repository (SAR) can now make their applications publicly available from all commercial AWS regions (except China) where the service is available. No more needing to publish from a us-east master region.

Amplify CLI adds support for additional Lambda runtimes (Java, Go, .NET and Python) and Lambda cron jobs
With this release, Amplify CLI makes it easy to create Lambda functions running on Java, Go, .NET and Python runtimes with sample code and a guided creation, update and deployment process.

Amazon CloudWatch Contributor Insights is now generally available
Contributor Insights analyzes time-series data to help you understand who or what is impacting your system and application performance by pinpointing outliers, finding the heaviest traffic patterns, and ranking the top system processes.

Receive Notifications for AWS CodeBuild, AWS CodeCommit, AWS CodeDeploy, and AWS CodePipeline in Slack
Customers can now receive and view notifications for AWS CodeCommit, AWS CodeBuild, AWS CodeDeploy, and/or AWS CodePipeline directly in Slack with a few clicks in the AWS console.

AWS Lambda now supports .NET Core 3.1
You can now develop AWS Lambda functions using .NET Core 3.1. This is the latest LTS release of .NET Core. It has new features like partial class support for razor components, support for shared queues, unwrapping of exceptions, and parameters passing to top-level components.

Amazon Detective is now generally available
Amazon Detective is a new service that makes it easy to analyze, investigate, and quickly identify the root cause of potential security issues or suspicious activities.

Amazon CloudWatch Contributor Insights for Amazon DynamoDB is now generally available
CloudWatch Contributor Insights for DynamoDB is a diagnostic tool that provides an at-a-glance view of your DynamoDB tables’ traffic trends and helps you identify your tables’ most frequently accessed keys (also known as hot keys). More info here.

AWS DeepComposer is now generally available
AWS DeepComposer is now generally available to all AWS customers, with exciting new feature additions. AWS DeepComposer gives developers a creative way to learn machine learning.

Serverless Tools 🛠

What’s new on sls-dev-tools
I love watching tools that just keep getting better and better, and sls-dev-tools is one that has been under heavy development. The new version has function deploy capabilities, EventBridge event injection, and more.

Thoughts from Twitter 🐦

“Hi Twitter, the first month at home is over and I’ve been publishing/recording some videos that you may have missed :)” ~ Alex Casalboni
Alex has a bunch of cool videos on serverless for you to check out. Maybe you can be inspired by him and create some yourself?

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.

March 13-April 10, 2020 – Getting Started with Amazon DynamoDB (Virtual Workshops)

April 2-May 31, 2020 – Sessions with SAM: Live Twitch sessions by Eric Johnson (every Thursday at 10AM PDT)

April 14, 2020 – Debugging and Troubleshooting Serverless Applications with Thundra (webinar) 🗣

April 22, 2020 – From Monolithic to Modern: MasterStream’s Serverless Transformation with Stackery (webinar)

April 20, 2020 ServerlessDays Auckland (Postponed – new date pending)

April 21, 2020 – Failover CONF: A virtual event on reliability 🗣

April 21, 2020 – Nordic Serverless Observability Special Meetup (virtual)

April 23, 2020 ServerlessDays Vienna (Rescheduled to September 24th)

April 24, 2020 ServerlessDays Paris (Canceled)

April 29, 2020 – ServerlessDays Virtual

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 Danielle Heberling (@deeheber). Danielle is currently a Software Engineer at Stackery, but has a diverse background that includes being a musician and public school teacher. As a self-taught coder, Danielle now works in the serverless space building serverless acceleration software for developers. Danielle has also spoken at ServerlessDays Nashville, Serverlessconf and AWS re:Invent, plus she has a great blog full of serverless content. Thank you Danielle for sharing your voice with the serverless community! 🙌

Final Thoughts 🤔

Another week of social distancing and #StayHome orders is in the books, and while the news still isn’t great, there are some encouraging signs that these measures are having a positive effect. Fingers crossed that things will get better soon.

For many of us in the tech industry, things have been (sort of) business as usual, with those able to work from home still innovating, collaborating, and moving the ball forward with serverless. But if you’ve lost your job and are looking for work, please send me a tweet and I’ll retweet for reach.

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.

Stay safe,
Jeremy

Previous Issue

Issue #83March 31, 2020

Next Issue

Issue #85April 14, 2020

Sign up for the Newsletter

Stay up to date on using serverless to build modern applications in the cloud. Get insights from experts, product releases, industry happenings, tutorials and much more, every week!

 

This Week's Sponsors

Check out all of our amazing sponsors and find out how you can help spread the #serverless word by sponsoring an issue.

 

About the Author

Jeremy is the CEO and Founder of Ampt and an AWS Serverless Hero that has a soft spot for helping people solve problems using serverless. He frequently consults with companies and developers transitioning away from the traditional “server-full” approach. You can find him ranting about serverless on Twitter, in several forums and Slack groups, hosting the Serverless Chats podcast, and at conferences around the world.

 

Nominate a Serverless Star

Off-by-none is committed to celebrating the diversity of the serverless community and recognizing the people who make it awesome. If you know of someone doing amazing things with serverless, please nominate them to be a Serverless Star ⭐️!