Product Guy, Serverless Advocate & Startup Veteran

My name is Jeremy Daly. I appreciate the visit. 👍 I’ve been managing the development of complex web and mobile applications for businesses across the globe for over 20 years. I’m currently the Chief Technology Officer at AlertMe, but I always keep myself busy with several side projects and consulting clients. I’m also an AWS Serverless Hero.

I write a lot about serverless and I like to share thoughts and stories about programmingproduct managemententrepreneurship and productivity. Sometimes I’ll write reviews or have random thoughts that I need to get out of my head. I also like to post a how-to article every once in a while. Feel free to jump in to one of the categories above, view all my posts, or view my latest posts below.

If you want to keep up with what I’m working on, you can follow me on TwitterGithub and Facebook.

Also, if you’re interested in serverless, please subscribe to Off-by-none, a weekly newsletter that focuses on all things serverless, and be sure to listen to Serverless Chats, a weekly podcast that discusses all things serverless.


My Latest Posts:

Takeaways from Programming AWS Lambda by Mike Roberts and John Chapin

Recently, Symphonia co-founders Mike Roberts and John Chapin wrote a book called Programming AWS Lambda: Build and Deploy Serverless Applications with Java. I personally abandoned Java long ago, but I knew full well that anything written by Mike and John was sure to be great. So despite the title (and my past war stories of working with Java), I picked up the book and gave it a read. I discovered that it’s not really a book about Java, but a book about building serverless applications with the examples in Java. Sure, there are a few very Java specific things (which every Java developer probably needs to read), but overall, this book offers some great insight into serverless from two experts in the field.

I had the chance to catch up with Mike on a recent episode of Serverless Chats. We discussed the book, how John and Mike got started with serverless (by building Java Lambda functions, of course), and what are some of the best practices people need to think about when building serverless applications. It was a great conversation (which you can watch/listen to here), but it was also jam packed with information, so I thought I’d highlight some of the important takeaways.

Continue Reading…

Making the Case for Serverless Use Cases

For quite some time, there was a running joke that “serverless” was just for converting images to thumbnails. That’s still a great use case for serverless, of course, but since AWS released Lambda in 2014, serverless has definitely come a long way. Even still, newcomers to the space often don’t realize just how many use cases there are for serverless. I spoke with Gareth McCumskey, a Solutions Architect at Serverless Inc, on a recent two part episode (part 1 and part 2) of Serverless Chats, and we discussed nine very applicable use cases that I thought I’d share with you here.

Continue Reading…

12 Important Lessons from The DynamoDB Book

Fellow serverless advocate, and AWS Data Hero, Alex DeBrie, recently released The DynamoDB Book, which ventures way beyond the basics of DynamoDB, but still offers an approachable and useful resource for developers of any experience level. I had the opportunity to read the book and then speak with Alex about it on Serverless Chats. We discussed several really important lessons from the book that every DynamoDB practitioner needs to know. Here are twelve of my favorites, in no particular order.

Continue Reading…

Takeaways from the State of Serverless Report

On a recent episode of Serverless Chats, I spoke with Stephen Pinkerton and Darcy Rayner of Datadog to dig into The State of Serverless report, which was released at the end of February 2020. After frequently fielding customer questions about the topic, Datadog looked at its data and customer use cases, and examined how they were using serverless. Datadog’s report is a way to break it all down, but it’s also an opportunity for its customers (and serverless users alike) to see how other people are using serverless in a data-driven way. I discussed methodology, findings, and key takeaways with Stephen and Darcy, and thought it’d be worthwhile to consolidate and share that insight.

Continue Reading…

🚀 Project Update:

Serverless MySQL: v1.5.4 released

This update includes a minor bug fix that automatically handles reconnections when receiving the occasional EPIPE error. Special thanks to @kernwig for the PR. Read More...

Verifying self-signed JSON Web Tokens (JWTs) with AWS HTTP APIs

“Trust no one.” Or at least that’s what Fox Mulder told me back in the 90s.

With the recent GA of HTTP APIs for API Gateway, I decided to start evaluating my existing API Gateway REST APIs to see if I could migrate them over to take advantage of the decreased latency and reduced cost of the new HTTP APIs. Several of them were disqualified because they utilize service integrations (a feature that AWS is working to add), but for one of my largest applications, the lack of Custom Authorizers is what brought me to a dead end. Or so I initially thought. 😉

After a bit of research (okay, it was actually several hours because I decided to read through a bunch of specs and blog posts and then run a ton of experiments), it turns out that hosting your own OIDC Conformant “server” to verify self-signed JSON Web Tokens with HTTP APIs is actually quite simple. So as long as you can use JWT for your bearer tokens, you can utilize your existing authentication service (and probably dramatically reduce your latency and cost).

In this post, I’ll show you everything you need to know to set this up yourself. We’ll generate certificates, create our OIDC discovery service, set up our HTTP API authorizers, generate and sign our JWTs, and protect routes with scopes.

Continue Reading…

🚀 Project Update:

Lambda API: v0.10.5 Released

Lambda API v0.10.5 has been released to fix a few minor bugs around ALB query string decoding and TypeScript definitions. Plus a new feature that allows you to disable error logging. Read More...
🚀 Project Update:

Data API Client: v1.0.1 Released

There was an issue with batch records via standard queries versus those wrapped in transactions. v1.0.1 includes a patch that checks the arguments and conditionally flattens the array for proper handling in each context. Read More...

Takeaways from AWS re:Invent 2019’s Amazon DynamoDB Deep Dive: Advanced Design Patterns (DAT403)

AWS re:Invent 2019 is a wrap, but now the real work begins! There are hundreds of session videos now available on YouTube. So when you have a few days (or weeks) of downtime, you can dig in to these amazing talks and learn about whatever AWS topics you fancy.

I was only able to attend a few talks this year, but one that I knew I couldn’t miss in person, was Rick Houlihan’s DAT403: Amazon DynamoDB deep dive: Advanced design patterns. At the last two re:Invents, he gave similar talks that explored how to use single-table designs in DynamoDB… and they blew my mind! 🤯 These videos were so mind-bending, that they inspired me to immerse myself in NoSQL design and write my How to switch from RDBMS to DynamoDB in 20 easy steps post. I was hoping to have a similar experience with this year’s edition, and I WAS NOT DISAPPOINTED.

As expected, it was a 60 minute firehose of #NoSQL knowledge bombs. There was A LOT to take away from this, so after the session, I wrote a Twitter thread that included some really interesting lessons that stuck out to me. The video has been posted, so definitely watch it (maybe like 10 times 🤷‍♂️), and use it to get started (or continue on) your DynamoDB journey.

Continue Reading…

Serverless Microservice Patterns for AWS

I’m a huge fan of building microservices with serverless systems. Serverless gives us the power to focus on just the code and our data without worrying about the maintenance and configuration of the underlying compute resources. Cloud providers (like AWS), also give us a huge number of managed services that we can stitch together to create incredibly powerful, and massively scalable serverless microservices.

I’ve read a lot of posts that mention serverless microservices, but they often don’t go into much detail. I feel like that can leave people confused and make it harder for them to implement their own solutions. Since I work with serverless microservices all the time, I figured I’d compile a list of design patterns and how to implement them in AWS. I came up with 19 of them, though I’m sure there are plenty more.

In this post we’ll look at all 19 in detail so that you can use them as templates to start designing your own serverless microservices.

Audio Version:

Continue Reading…

Off-by-none: Issue #91

Thinking about serverless complexity… 🤔

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

Last week, we looked at a “typical” serverless architecture.  This week, we see how that “typical” serverless architecture sparked some strong opinions on both sides of the serverless complexity debate. Plus, we’ve got plenty of awesome posts from the serverless community.

Serverless News & Announcements 📣

Webinar: How to Use Knative to Build Event-Driven Application Flows
Join Sebastien Goasguen, TriggerMesh co-founder, creator of Kubeless, and author of the Kubernetes Cookbook for a live webinar on June 11. Sebastien will demo how to use the Knative API and TriggerMesh to simplify building event-driven applications with any on-premises and cloud service. Learn more and register here. Sponsored

Microsoft Introduces App Service Static Web Apps in Preview at Build 2020
There were a lot of announcements at Microsoft Build last week, but this one is really interesting. The future of serverless will rely heavily on edge-optimized static assets, and Microsoft is building tools to take advantage of this.

v3.2.0 of dynalite released to support empty string and binary values
I’ve been using dynalite over DynamoDB local lately for simulating integration tests, and I’m a big fan. And now it supports the new empty value feature.

Microsoft Reimagines Azure
Here’s another wrap up of Microsoft Build. There are some really interesting things happening with serverless over there, and the fact that they are adapting quickly to this new wave of modern application development is awesome. Also, Cosmos DB is getting a serverless makeover.

Announcing Epsagon’s Official Integration with PagerDuty
I love seeing companies partner to create a better solution for customers. Epsagon monitoring coupled with PagerDuty alerts, does just that.

Aqua Security Raises $30 Million in Series D Funding to Fuel the Expansion of Its Cloud Native Security Platform
More investment into the cloud native and serverless security space. According to the press release, Aqua has more than doubled revenue and headcount in the last 12 months and have expanding to more than 400 customers.

Serverless Stories 📖

3 Things I Wish I Knew About AWS Lambda Functions Early On
Andrew Titenko points out a few gotchas that he found when working with Lambda functions. You do need to be careful of global variables, but they also come in really, really handy when used correctly.

Xinja almost abandoned serverless backend built for Apple Pay
Great story about Xinja being able to launch Apple Pay capabilities in just six weeks using serverless and why it made achieving PCI DSS compliance even easier. There’s also a great example of serverless components getting better without your team needing to do anything.

How AWS WAF saved us
Not specifically about serverless, but don’t forget, you can put AWS WAF in front of your API Gateways too. Riad Rifai tells the story of how AWS WAF helped mitigate a front-end bug, but of course, it’s applicable to many more situations.

A war story about COVID, cloud, and cost
Forrest Brazeal says that cloud cost-cutting stories are boring, yet somehow he’s made this one totally worth the read.

Serverless Use Cases 🗺

Expiration With DynamoDB TTL
Here’s a simple but powerful use case from Gavin Cornwell, using DynamoDB TTLs to trigger trial expirations on EC2 instances. The TTL feature isn’t as accurate as I’d like, but it works great for use cases like this.

Config Service using Google Sheet
While there are plenty of other ways to store configuration data, you have to appreciate the simplicity of just using a Google Sheet.

Serverless Concepts 🏗

Let Me Help You Build Serverless Well-Architected Systems With Proven Patterns
The cdkpatterns.com site by Matt Coulter is an awesome resource for the serverless community. And now he’s added a feature that lets you find a pattern by a AWS Well-Architected Pillar! Great stuff.

Roadmap to Backend Developer on Serverless Infrastructures
Another helpful post by Renato Byrro that should get you asking the right questions as you start your journey as a serverless developer.

Amplify, Amplify, and Amplify
Are you confused by all the things that have the name “Amplify” associated with them? You’re not alone, and Rowan Udell is here to help explain. Amplify (in all its parts) is extremely powerful, so long as you understand which part you’re actually using. 😉

3 Valuable Lessons Learned About AWS Lambda Destinations
Andrew Titenko provides a few quick tips for using Lambda Destinations. Also, +100 for adding asynchronous invocations to the AWS Lambda console “TEST” option.

Developing on AWS Lambda (Part 3): Some tips you can use!
Here are some more great AWS Lambda tips from George Mao. Lots of really useful information in here.

AWS Lambda Limits to Keep in Mind When Developing a Serverless Application
Emrah Samdan gives you some quick tips and tricks to avoid hitting different types of Lambda limits in your serverless apps.

Serverless Tutorials 👷‍♀️

AWS CDK for Beginners
Rani Lian has a great tutorial that gives you some background on the why of AWS CDK, and then walks you through launching a quick “hello world” project to show you the how.

How to Create and Use Layer for Python AWS Lambda Function
Simple and straightforward Lambda Layer tutorial from Ashutosh Karna using Python.

Reduce Lambda invocations and code boilerplate by adding a JSON Schema Validator to your API Gateway
Davide de Paolis has a great tutorial that’ll show you how to mitigate Lambda invocations by using schema validation on API Gateway. It might add a bit more complexity, but using this for mature routes can be very cost effective.

Cooking Serverless with AWS Amplify
If you want to get started with AWS Amplify really quickly, this simple tutorial from Shehan Wisumperuma will get your first project up and running in no time.

Building scalable serverless applications with Amazon S3 and AWS Lambda
Another incredibly helpful post from James Beswick that shows you how to build a serverless system that can quickly and reliably process S3 data with Lambda functions.

Serverless Security 🔒

DevSecOps report: Cloud IT complexity creates ‘immutable’ security issues
Tying the idea of immutable infrastructures to security is an interesting take. This also reinforces the notion that cloud deployments create a lot of complexity that needs to be managed and audited by someone, especially around security.

Serverless Reads 🤓

Why I’m excited about serverless as a frontend engineer
Tomasz Łakomy is definitely on to something. The idea of a full stack serverless developer is something we’re already starting to see, both through front-enders implementing serverless backends, to some seasoned backend devs moving down the stack. If you are a front-end engineer, start taking a look at things like Amplify, Vercel, and other platforms enabling this capability.

A day in the life of a serverless developer on AWS
Ryan Jones lays out some of the common tasks performed regularly by a serverless developer on AWS. I find that my work varies day to day, sometimes spending a day or two on IaC and experiments, then buckling down for a few days to work on implementation details, tests, and documentation. One thing is for sure, I spend a lot less time writing code.

Cloud Adoption in 2020
Interesting data provided here by O’Reilly, especially the fact that “serverless” adoption is “stagnant” according to their numbers. In terms of complexity, the article poses this question: “Is it possible that the complexity of microservice architecture, serverless computing, service mesh architecture, and other next-generation patterns is contributing to (if not driving) interest in SRE?” Good question.

AWS Kendra is the Google to all of your organization’s knowledge
I really love the idea of Kendra, and the power and efficiency that it could bring to a lot of businesses. Unfortunately, the $5,000/mth price tag probably prices out many of the companies that desperately need a technology like this. I’m sure it’s expensive to run, but it would be great to see this cost come down to make it more accessible.

Podcasts, Videos, and Presentations…

Serverless Chats – Episode #50: Static First Using Serverless Front-ends with Guillermo Rauch
In this episode, I chat with Guillermo Rauch about the difference between front-end and backend serverless, how we should think about and build for scale, why latency down to the first contentful paint is so important, and so much more. Watch on YouTube!

Freedom! Bring custom binaries and runtimes to serverless using Cloud Run — Serverless Toolbox
Got to love the Bret McGown/Martin Omander duo. On this episode of Serverless Toolbox, they take you through importing custom binaries and runtimes into your Cloud Run containers.

TriggerMesh’s new EveryBridge: Event-driven apps are the endgame of serverless
Stu Miniman interviewed Mark Hinkle and Sebastien Goasguen from TriggerMesh to discuss their new EveryBridge product. I think most of us cloud natives don’t worry too much about legacy on-prem systems, but the fact that this aims to solve a missing piece for the vast majority of companies looking to bridge that gap, is pretty cool.

Patterns and practices for building resilient Serverless applications
Yan Cui gave a marathon session at the AWS User Group Delhi the other day, and it is chockfull of some amazing serverless know-how. It’s almost two hours long, but is worth the time. The slides are available too.

New from AWS 🆕

Amazon DynamoDB local adds support for empty values for non-key String and Binary attributes and 25-item transactions
Amazon DynamoDB local has been updated to support the new empty values feature that was just released. Make sure to update to the latest version so you have parity with the actual cloud version.

AWS Solutions: Serverless Bot Framework adds a remastered user interface and uses AWS Amplify
The solution now makes use of User Pools to allow users to securely sign in to the chatbot with Amazon Cognito. The web interface is re-implemented using ReactJS and AWS Amplify and uses Amazon CloudFront to securely deliver application web assets from Amazon S3 to the user.

Amazon Transcribe now supports vocabulary filtering for real-time transcription
This is a cool feature added to Amazon Transcribe. Being able to filter out words as well as mask or tag them during real-time transcription can be quite handy. I haven’t check in on the transcription quality lately, but all these new features might make me take another look.

AWS Global Accelerator is Now Available in Two Additional Regions
I’m sure that the AWS Global Accelerator could get a bit expensive, but the latency compared to standard routing is incredible. If you have to home run some of your data calls, this is definitely something you should look at.

Serverless Tools 🛠

dynamodb-size
Here’s an interesting tool from Chris Armstrong that will calculate the size of your DynamoDB payload. I can see this being useful in testing applications to help calculate costs.

I Built a Simple Serverless Storage Solution
Sometimes you need to scratch or own itch, and Eldad Bercovici did just that with his Cloud Local Storage project. There are lots of ways to implement something like this on your own (and likely a bunch of security requirements to think about as well), but you’ve got to love the level of abstraction.

Thoughts from Twitter 🐦

“Can someone explain Serverless to me like I’m 5?” ~ James Tucker
This question by James Tucker triggered a series of hilarious explanations. Some of them are dead on.

“Crying at this typical Serverless infrastructure. wtf happened to the “simple” functions-as-a-service idea?” ~ Paul Biggar
Well, that escalated quickly! This post by Paul Biggar sparked a series of reactions about whether or not serverless is more complex than some other traditional architectures. Much of the complexity is abstracted away for you through reusable components, though I still believe a new type of configuration complexity now exists. But it’s still 1000% easier than the old way.

Serverless Jobs 👩‍💻 Sponsored

Serverless Engineer – stedi.com
At Stedi, we’re working in one of the biggest markets on the planet – EDI, the technological backbone of the physical product economy. We’re building a next-generation platform: a ubiquitous commercial trading network to automate the trillions of dollars in B2B transactions exchanged by nearly every company on Earth. If you’re interested in what we’re building and how we’re building it, we’d love to hear from you.

Have a job listing you’d like to share? Please contact me for more information. 

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.

May 27, 2020 – Serverless London May Meetup (Virtual)

May 28, 2020 – Serverless-First Function by AWS

May 28, 2020 – Modernizing applications with serverless: Scale higher, ship faster, and reduce TCO up to 90%

June 4, 2020 – ServerlessDays Milan (Virtual)

June 9, 2020 – The State of Serverless in 2020

June 10 & 11, 2020 – AWS Virtual Amplify Days

June 26, 2020 – AWS Serverless Community Day

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 Charity Majors (@mipsytipsy). Charity is the co-founder of Honeycomb, a tool designed for engineers to debug platforms, microservices, and serverless apps, enabling collaborative problem solving. Prior to Honeycomb, Charity was a former systems engineer and manager at Facebook, Parse, and Linden Lab, and the co-author of Database Reliability Engineering. She’s spoken at several ServerlessDays conferences, and offers advice and writes about serverless (and the Tiger King 🐅) on her personal website. Thank you, Charity, for making the serverless world better and brighter with your contributions! 🙌

Final Thoughts 🤔

I find this whole serverless complexity debate to be quite fascinating. The point of serverless has always been (at least in my opinion) to reduce undifferentiated heavy-lifting, freeing up engineers to work on things unique to your business that add customer value. This certainly reduces some of the complexity, but also adds new complexity as we create more complex systems. Serverless is certainly easier, but that doesn’t mean it’s easy.

If any of you missed the AWS Serverless-First Function last week, you should definitely check out the recap and sign up for Day 2 on Thursday. I’ve watched a lot of presentations (especially virtual ones) and I really enjoyed the mix of content from the speakers and the witty banter between hosts Eric Johnson and Chris Munns. And… getting a shout out to my patterns post from Adrian Cockcroft was pretty darn cool as well.

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 week,
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.

Off-by-none: Issue #90

Is Serverless a Silver Bullet? 🐺

Welcome to Issue #90 of Off-by-none. Thanks for stopping by!

Last week, we took a crash course on monitoring serverless apps, got a lesson in response times from the cloud architect, and learned a bit about serverless developer culture. This week, we see what a typical serverless architecture looks like, learn how to #SingleTable with AppSync, and take a quick trip to Deno Land.  Plus, we’ve got plenty of amazing posts from the serverless community.

Serverless News & Announcements 📣

TriggerMesh Cloud Native Integration Platform
TriggerMesh provides a platform to trigger functions on any cloud or on-premises from virtually any source that can provide a message, including legacy applications and enterprise service buses. Use one platform for AWS Lambda, Google Cloud Functions, Azure Functions, Knative, or Kubernetes workloads. Learn more and try for free. Sponsored

Lambda Store Developer API
This is a really great feature that allows you to provision Lambda Store via an API. They are working on Infrastructure-as-Code support, which could be really handy as well.

Serverless Stories 📖

Is Serverless with Lambda, the “silver bullet”?
Arnaud Charlier tells the story of his company’s serverless journey and recounts the successes and failures they had along the way. Overall, it seems the experience was a relatively good one, despite that recursive Lambda function mistake 😬. I think most of us can relate to that.

Serverless Content Management System for Websites using Vue.js and AWS
While building a content management system can be a daunting task, Dan Bartlett decided to do it anyway. The end result is a full-blown serverless CMS that’s available to you on GitHub.

Serverless Use Cases 🗺

Create Kinesis Firehose Data Stream from IoT Core to S3 using Serverless framework
I don’t do anything with IoT, but these use cases are everywhere nowadays. I’m a big fan of using Kinesis Data Firehose for capturing stream data like this and stuffing it into S3, so if your source is an IoT device, Toru Eguchi has got you covered.

Automating Cross-Account Role creation to access users’ account
Here’s a great use case by Yossi Ittach, generating AWS roles and then persisting the information back to the partner account. More and more companies are building solutions that need some level of access to your AWS account, so automating this process with Lambda and SNS is pretty slick.

A Basic Solution to Shutting Down AWS Infrastructure on a Schedule
This is one of my favorite serverless use cases, and Joonas Laitio gives you a sample script to easily schedule shutdowns and startups of ECS services, Auto Scaling Groups and RDS clusters.

Developing a Serverless solution to detect people without masks
Here’s another interesting serverless use case, detecting those folks not wearing masks in public places. Ritesh Modi has a very in depth post about a system he creating using Azure to accomplish this.

Why we don’t use Lambda for serverless machine learning
This should fall under the “Not Serverless Use Cases” section. Sure, some ML workloads can run on Lambda, but I tend to agree with Caleb Kaiser on this one: “Lambda is fantastic – just not for ML.”

Serverless Concepts 🏗

Best practices for organizing larger serverless applications
Great piece by James Beswick that lays out some simple rules for organizing your serverless applications. I’m not a fan of the repo-per-function approach, and there are plenty mono versus multi-repo arguments to be made, but overall, this is some excellent advice for teams building with serverless, especially those that want flexibility as they grow.

What a typical 100% Serverless Architecture looks like in AWS!
Love this article by Xavier Lefèvre that shows a full-blown serverless architecture on AWS and explains how each section works. The more patterns like this are visible, the easier it is for others to understand how best to architect their systems.

Infrastructure-as-Code is the linchpin practice for successful serverless teams
Paul Swail highlights the benefits and drawbacks of Infrastructure-as-Code, but ultimately points out its necessity for building robust and repeatable deployments in the cloud. Unfortunately, I think point and click is still a very popular option. 🤦‍♂️

Testing in Deno: the basics
Brian Leroux gives you a quick lesson on how to build tests in Deno, which just so happens to support testing as a first class citizen.

Serverless Tutorials 👷‍♀️

How to build an AppSync API using a single table DynamoDB design
Awesome post by Rich Buggy that shows you how to build a generic single table DynamoDB solution for AWS AppSync. I think you all know by now that I’m on #TeamSingleTable, so seeing the possibilities with AppSync is very exciting.

Getting started with serverless on AWS
Emily Shea has compiled a list of resources and tutorials for common serverless use cases on AWS. With information overload everywhere, it’s very helpful to have guides like this that establish a learning path.

Deploying a serverless application using AWS CDK
For all you CDK fans out there, here is a complete tutorial by Georges Leschener and Luis Lopez Soria that shows you how to deploy a full serverless application including the provisioning of an Amazon Aurora Serverless cluster.

Ensuring Resolvers Aren’t Rejected
This is pretty cool. Rick Foxcroft shows you how to test your VTL templates so that you can speed up your feedback loop and have some more confidence when deploying to AppSync.

Deno on Cloud Run
Deno is all the rage (and probably for good reason), so being able to start using it (and run TypeScript directly) on Cloud Run, sounds like a lot of fun. Grant Timmerman gives you a quick and easy set up.

Chaos Engineering with Serverless
Whether you use Thundra to do this or not, injecting latency and other types of failures into your applications to test their resiliency is becoming an incredibly important tool. Emrah Samdan gives you some tips and shows you how to do it.

Serverless Reads 🤓

Why I think GCP is better than AWS
This isn’t specifically about serverless offerings, but I think the author makes a number of valid points in here. There is a clear difference between offering primitives versus more abstracted solutions. I’m not sure either one is better than the other, and may just be a matter of personal preference. Either way, this is a very thoughtful article and worth the read.

7 Major Trends for Cloud Native in 2020: Serverless
I somehow missed this post from a few months ago, but it recently caught my attention. I think there are a lot of really excellent (although hopeful) predictions in here. I’m not sold on Java or Knative, but WASM? Yes, please!

The case for serverless and hiring serverless consultants
Ryan Jones makes a pitch for hiring consultants to speed up your serverless adoption, but at the same time, makes a pretty good case for building with serverless regardless of your company size. Serverless is getting more and more complex every day, so having people that know their way around is usually not a bad thing.

How AWS Lambda team made my two years old talk completely irrelevant
One of the greatest benefits of using serverless (and many cloud services in general) is that it just gets better without you needing to do anything. Serhat Can explains how much Lambda has changed over the last two years and how all of the major roadblocks he faced back then have all been addressed.

When you’re sick of Netflix… 🍿

Serverless Chats – Episode #49: Things I Wish I Knew Before Migrating to the Cloud with Jared Short
In this episode, I chat with Jared Short about why you shouldn’t try to master every cloud service, what’s wrong with the “lift and shift” approach, why thinking about transparency right from the beginning will result in better applications, and a lot more. Watch on YoutTube!

Upload Images to S3 and Store Metadata with GraphQL to DynamoDB (using AWS Amplify and AppSync)
In this video, Marcia Villalba shows you how to upload files to S3 with AWS AppSync in an Amplify project.

New from AWS 🆕

Amazon DynamoDB now supports empty values for non-key String and Binary attributes in DynamoDB tables
This is a new feature that some should find quite handy. I prefer to remove empty attributes, but I can see there being use cases that require empty lists or maps. Also, if you don’t feel like checking every field for empty values in your code, then this might alleviate some of those frustrations.

Announcing major enhancements to Amazon Macie, an 80%+ price reduction, and global region expansion
When I first looked at Amazon Macie, I was immediately turned off by the price (because it was expensive). This massive overhaul and 80%+ price reduction might finally make it more accessible to small and medium sized companies. Read more here.

Serverless Tools 🛠

Cleaner async JavaScript code without the try/catch mess.
I thought this was an interesting tool by David Wells that wraps your awaits for better error handling. If you’re a JS developer, you might want to take a look at his “safeAwait” pattern.

Thoughts from Twitter 🐦

“What tool would you recommend to a product company that wants to start building serverless services on AWS? Any alternatives to AWS SAM or Serverless Framework? Taking into account the learning curve and the number of online resources.” ~ Maciej Winnicki
Good conversation around this Twitter post by Maciej. It’s hard to remember what it was like when I first started exploring serverless (although I do remember there were a lot fewer options), so for newcomers to the space, seeking an answer to this question can be overwhelming.

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.

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

May 20, 2020 – Designing for DynamoDB Success (webinar)

May 21 & 28, 2020 – Serverless-First Function by AWS

May 27, 2020 – Serverless London May Meetup (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 Patrick Steger (@StegerPatrick). Patrick is an AWS Certified Solutions Architect who also ran his own application development company, IDMA Solutions. Patrick is a co-organizer for Triangle Serverless, based out of Raleigh, NC, and participates in other serverless meet-ups in the area. You can find him on Twitter regularly commenting about the latest in his serverless journey. Thank you, Patrick, for being a part of the community! 🙌

Final Thoughts 🤔

I hope you’re all staying safe and healthy as things are starting to reopen again. I would personally suggest staying away from Jeep Weekend, but, hey, to each their own.

I’ve been using this extra time to move some projects forward, which I hope to share soon. Also, my daughters were at it again and came up with an idea for a Serverless Chats promo video. Like a good dad, I helped them execute.

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.

Cheers,
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.

Off-by-none: Issue #89

A Serverless Monitoring Guide… 👀

Welcome to Issue #89 of Off-by-none. Thanks for being here!

Last week, we explored the super powers of API Gateway, discussed the proper microservice size, and let Forrest Brazeal serenade us. This week, we look at a crash course on monitoring serverless apps, get a lesson in response times from the cloud architect of all cloud architects, and learn about serverless developer culture. Plus, we have tons of great content from the serverless community.

Serverless News & Announcements 📣

Analyze and debug Lambda performance in Datadog
Collect custom metrics from serverless functions and correlate them with cold starts to identify patterns of customer-facing latency. Start optimizing your serverless applications with a free Datadog trial today. Sponsored

Boomi launches EventBridge iPaaS platform connector
The movement in this space is fascinating, and this integration with EventBridge is huge. Data exchange via EDA and EDI is rapidly evolving, so it’ll be interesting to see if this motivates other providers to create EventBridge integrations as well.

Converge Technology Solutions Corp. Forms Preferred Partnership with Trek10
Congratulations to Trek10 for their continued growth and success. It’s good to have smart professionals that can help teams implement serverless quickly and correctly.

Serverless Stories 📖

How we built a multiplayer card game in 1 week
I love this story, because it perfectly captures the promise of serverless. Thomas Recouvreux and a friend built a real-time, multi-player online game in 5 days, and it’s 100% serverless. Sure it’s not a full-blown enterprise application, but for startups and PoCs, is there a better way?

Dashbird’s Lessons Learned from Launching a SaaS Application
I always enjoy hearing directly from the people in the trenches, an although this article from Dashbird isn’t specifically about serverless, the experiences and insights from their developers as they pushed to launch their new platform is worth a quick read.

An AWS Lambda Serverless Journey – Part 1 and Part 2
Mitul Patel has a series on building a serverless application using Java. There’s a lot of information in these first two parts, but I liked these articles because they not only give you the technical details, but also explain the reasoning behind the choices.

Serverless Use Cases 🗺

How to write a TLDR chat bot
Loved this post by Chris Ismael! He shows you a hybrid approach to implementing a machine learning model that uses Lambda and SQS to do the majority of the application work, while relying on an EC2 instance to do the inferencing. Great use case in general, but also an excellent example of how serverless components make the overall implementation easier.

Combining the Best of AWS EventBridge and AWS Kinesis
Interesting pattern described here by John Gilbert. There are a lot of benefits to consuming events from Kinesis versus subscribing directly to an EventBridge bus, so I can see this being effective under the right circumstances.

Making a custom DynamicDNS service with Cloudflare Workers
A simple serverless use case that could be applicable in a number of scenarios. As the author mentions, there are plenty of services like this out there already, but the fact that it’s so easy to build with serverless says something.

Provisioning Trial Environments With Step Functions
Very cool serverless use case outlined by Gavin Cornwell, as well as a perfect use case for Step Functions.

Serverless Concepts 🏗

Serverless Monitoring Guide
If you are responsible for monitoring a serverless application, or you soon will be, this is a great primer post from Tj Blogumas. Besides all the excellent detail provided on what to monitor, I love that there is an emphasis on Ops people getting closer to the code, and in the same vein, developers embracing repeatable deployment processes.

Why are services slow sometimes?
If there is anyone you should listen to about cloud architecture, it’s Adrian Cockcroft. This excellent piece explains a number of reasons (and the theories behind) why services can experience lower response times and what you need to think about to design around it.

The Cost of Monitoring Microservices: Managed Solutions vs. In-house
TLDR; Don’t build something that isn’t core to your business. This post by Ran Ribenzaft does a great job pointing out the “build vs. buy” argument, which is at the heart of the serverless mindset. And yes, you also need a monitoring tool.

Benefits of Serverless, and Event Driven Design
I’m sure most of you are well aware of the benefits of serverless, but this post by Craig Godden-Payne might be a good one to share with your skeptical coworkers. Simple explanations with a couple of basic patterns to tie it all together.

A tl;dr guide to Serverless Framework
I don’t think there is a shortcut to learning serverless and the cloud, but this post at least attempts it. Lots more to know than what’s included in here, but for those looking for a really quick start, this might help.

Serverless Tutorials 👷‍♀️

Build a Serverless Simple Flask Application with Kubeless on top of Kubernetes
I think I’m going to start embracing a few of these “serverless on top of Kubernetes” posts since they seem to be growing in popularity. Next step is to convince people that they don’t actually need Kubernetes to run their functions. Baby steps.

⚡️ 5 Minute Tutorial: Deploying a Next app with AWS Amplify Hosting
Nader Dabit wrote a tutorial for deploying a Next.js app and using Amplify to host it. It’s written by Nader, so you know it’s awesome.

Build a Slackbot with AWS SAM Application
Here is this week’s edition of “How to build a Serverless Slackbot”, this time with Hongbo Liu using AWS SAM with some local debugging.

AWS Amplify Video
Alex Patterson has an excellent tutorial that shows you how to add video for live streaming or Video-on-Demand to your next Amplify project. Very cool stuff in here.

Serverless Security 🔒

Securing Serverless Applications
The rules for securing your serverless applications are quite straightforward (good AppSec practices and all that), but I like that Thundra has built in some additional tools to give you more peace of mind. Serkan Özal outlines a few of the recommended approaches and then highlights the added features of Thundra.

21 Best Practices for AWS Cloud Security
Establishing good security practices should be table stakes for anyone building applications in the cloud. There is some good advice in here, even though not all applicable to serverless.

Serverless Reads 🤓

Register for the first-ever, completely free AWS Serverless-First Function
The AWS Serverless-First Function is a set of two free-of-charge virtual events that offer the latest education and thought leadership material about serverless approaches on AWS. Happening on Thursday, May 21 and Thursday, May 28, the event agenda includes sessions with AWS leaders like VP of Serverless, David Richardson, VP of Cloud Architecture Strategy, Adrian Cockcroft, customer speakers like Workgrid Software Head of Cloud Engineering, Gillian McCann, and an introduction by Amazon CTO, Dr. Werner Vogels. Sponsored

Serverless Exists In The Cloud and Both Need Servers
You know I love to share stories that are critical of serverless, because it’s important to get as much perspective as possible. And while there are several things I don’t agree with in this article (like the inaccurate definition of serverless), us advocates need to remember that perception is reality, and articles like this feed the narrative. One thing I do agree with is the challenges around understanding costs in an on-demand world.

3 Guiding Principles for Building New SaaS Products on AWS
I really liked this piece by Jared, because I think it extends well beyond just building SaaS products. One of the most important points in here is about documentation, because even though we want to move quickly, poorly documented applications make everything harder, including onboarding new developers to grow your application.

Multi-Source Processing v2.0
As of this writing, this post only had 1 clap on Medium, but it is a brilliant piece by James Gimourginas where he reimagines his architectural decisions from 10 years ago and provides an updated solution using modern cloud and serverless services. It’s a long read, but it’s incredibly insightful to see just how far we’ve come in the last decade.

Talking Serverless with Nader Dabit
Ryan Jones recently interviewed Nader Dabit on the Talking Serverless Podcast. It’s always great getting insights from Nader, so I think you’ll find some good takeaways in this summary of their discussion.

Cloud-Native Development Survey Details Kubernetes, Serverless Data
If you ask a developer what their favorite flavor of Kool-Aid is, you’ll likely get “Kubernetes” as the answer. I think we’re going to be seeing a hybrid approach for many, many years to come.

Future of backend development
I thought this piece was an interesting read, as well as the discussion that follows. The move to serverless (and microservices, to a similar extent) seems obvious to me. I can certainly understand the hesitance from others, but I also think the term “laggards” will be true for these people in every sense of the word. 🤷‍♂️ Just one man’s humble opinion.

Serverless Podcasts… 🎧

Serverless Chats – Episode #48: Serverless Developer Culture with Linda Nichols
In this episode, I chat with Linda Nichols about why modern cloud developers should be writing less code, how new deployment processes affect the testing culture, why Ops teams are still really important, and much more. Watch on YouTube!

Real World Serverless – Ep. #10: Serverless at DAZN with Daniel Wright and Sara Gerion
Yan Cui speaks with Daniel Wright and Sara Gerion about the state of Serverless adoption at DAZN, how they use serverless in a high-scale, high-uptime environment, and how they mix serverless and containers in a hybrid environment.

New from AWS 🆕

Control your email flows in Amazon WorkMail using AWS Lambda
Amazon WorkMail announced that you can now control email flow of your organization using AWS Lambda functions when using Email Flow Rules. With this, you can build powerful email flow control system with completely customizable conditions.

Amazon CloudWatch Logs Insights now allows you to save queries
Amazon CloudWatch is introducing Saved Queries, a new feature that makes it easier for CloudWatch Logs Insights users to save queries. They can organize these queries in folders and easily run them again for different purposes by team, application, or runbook.

Introducing the new AWS SaaS Competency
The AWS SaaS Competency was created to support AWS customers looking for APN Consulting Partners with deep specialization and expertise in designing and building Software-as-a-Service (SaaS) solutions on AWS.

AWS announces Amazon Elasticsearch Service UltraWarm general availability
Amazon Elasticsearch Service UltraWarm is now generally available. UltraWarm is a performance-optimized warm storage tier that lets you store and interactively analyze your data using Elasticsearch and Kibana while reducing your cost per GB by up to 90% over hot storage options. Read more here.

AWS Step Functions now supports AWS CodeBuild service integration
AWS Step Functions is now integrated with AWS CodeBuild, making it faster to build continuous integration workflows for your applications. Read more here.

Amazon Kendra is now generally available
Amazon Kendra is now generally available to all AWS customers. It provides customers with a highly accurate and easy to use enterprise search service powered by machine learning. Read more here.

Serverless Tools 🛠

How to succeed with Serverless? Automate best practices.
I really like the direction that Ben Ellerby and his team are taking the sls-dev-tools library. I totally agree that education is one of the biggest blockers to serverless adoption. This new Guardian tool is opinionated, but that’s not always a bad thing, especially if people don’t have enough experience to form their own opinions just yet.

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.

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

May 13, 2020 – Full stack development with AWS Amplify (Cloud and Serverless Turkey)

May 13, 2020 – AWS Summit Online 2020: Empowering Tech Startups To Scale Sustainably

May 14, 2020 – Virtual Meetup: Serverless Fail Day! 🗣

May 16, 2020 – Patterns and Practices for Building Resilient AWS Serverless Applications

May 20, 2020 – Designing for DynamoDB Success (webinar)

May 21 & 28, 2020 – Serverless-First Function by AWS

May 27, 2020 – Serverless London May Meetup (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 Jennifer Davis (@sigje).  Jennifer is a Senior Cloud Advocate at Microsoft, but has held previous roles with Chef and Yahoo, among others. Jennifer has spoken about the “Ops in Serverless” at SRECon, Velocity Conf San Jose, and Serverless Week last summer. She’s also spoken at ServerlessDays London, and joined Microsoft Ignite in Toronto and London. Jennifer also organized AWS Community Day in Silicon Valley, as well as Serverless Days Seattle. Thanks, Jennifer, for taking serverless across the globe with you! 🙌

Final Thoughts 🤔

I hope you’ve all made it safely through another week. It looks like a lot of places are starting to relax the #StayAtHome orders, so just be sure to stay safe out there. I know I really need a haircut, but it’s certainly not worth risking anyone’s life over (even though it’s getting really long and out of control 💇‍♂️).

If you’re still looking for things to keep you busy, you can do like my daughters and put on a Serverless Fashion Show. Or maybe check out the latest release of DynamoDB Toolbox. 😉

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.

See you next week,
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.

Off-by-none: Issue #88

API Gateway deserves some love too… 😢

Welcome to Issue #88 of Off-by-none. Thanks for being here!

Last week, we had too many releases from AWS to list, some really great EventBridge posts, and a debate about where serverless is in the technology adoption lifecycle. This week, we explore the super powers of API Gateway, answer the question of whether microservice size matters, and get a new song about S3 stuck in our heads.  Plus, we have lots of content from our amazing serverless community.

Serverless News & Announcements 📣

Monitor all your Lambda functions, API Gateways, SQS queues, DynamoDB tables, and more, straight from Datadog
Natively create real-time serverless metrics at one-second granularity for your errors, cold starts, memory used, estimated cost, and more. Datadog’s AWS Lambda integration enables you to monitor all of your serverless metrics, plus logs and traces in one, unified platform, so you can get full context when troubleshooting an issue. Try it for free today. Sponsored

Serverless Events
AWS Serverless Hero, Gunnar Grosch, has put together a curated list of upcoming serverless events. If you know about an upcoming conference, meetup, podcast, webinar, or other awesome serverless event, make sure to add it.

A brand new primitive for your Begin apps: event functions!
I really like the simplicity of the Architect Framework, and Begin has been adding some pretty cool features lately. This new “event” primitive should make building your event-driven systems even easier.

And… A bunch of the usual suspects achieved the new AWS Lambda Ready designation. Congrats to all these excellent companies: Lumigo, Thundra, Epsagon, Dashbird, and Stackery (and any others I may have missed).

When API Gateway doesn’t want to be left out…

There were several posts this week that pointed out the benefits of using API Gateway service integrations to bypass Lambda. And since we called out AppSync a few weeks ago, I figured API Gateway deserved some attention as well.

Using API Gateway to run Database Queries
Renato Byrro advocates for using a service integration to query data directly from API Gateway to DynamoDB. Benefits included.

AWS API Gateway integration with DynamoDB
Hareesh Veduraj has a similar post to Renato’s, but this one goes into more detail and shows you how to set up a service integration to retrieve data from DynamoDB.

Don’t use Lambda to move data! API Gateway can help
And Richard Fan goes a step further and shows you how to put data INTO DynamoDB, complete with permissions and input validation.

Can AWS API Gateway Act as a Load Balancer?
And rounding out our API Gateway section, is another post by Renato Byrro, this time comparing ALB to API Gateway. Strangler patterns apply.

Serverless Stories 📖

Your Worst-case Serverless Scenario Part III: The Invisible Process
Niels van Bree wraps up his excellent series on how one mistake turned 100k records into 56M records and brought down their production environment. This post talks about the effects of partition key design and index replication.

Using DynamoDB as a calculator
This is what happens when you indulge Corey Quinn’s curiosity, a bit of insanity, but also what turned out to be a brilliant experiment. Alex Chan wrote a DynamoDB calculator, a self admitted terrible idea, but certainly worth the effort.

Serverless Use Cases 🗺

Continuous Deployment with Semantic Release and GitHub Actions
Brett Andrews shows you how to automate deployments and changelogs using Semantic Release and GitHub Actions. I love the idea of this, though I’m still not sure I’m ready to fully trust my semantic versioning and NPM publishing to an automated process.

Backing up Auth0 to GitHub using AWS Lambda
Here’s a straightforward, highly adaptable use case by John Wheeler. Use AWS Lambda to backup third-party service configuration information.

Dog Bark Detector – Serverless Audio Processing
Can you think of a better serverless use case than detecting when your dogs bark? Well, maybe, but this post by Nathan Glover will give you some really good insights into processing audio with serverless.

Making the Case for Serverless Use Cases
This is an article I wrote as a follow up to my Serverless Chats conversation with Gareth McCumskey. Newcomers to the space often don’t realize just how many use cases there are for serverless. This post makes the case for nine of them.

A Serverless Cloud for Stateful Applications
Rodric Rabbah (one of the creators of Apache OpenWhisk) took a slightly different approach to serverless with his company Nimbella. In this post he shows how to create a stateful stock trading application.

Serverless Concepts 🏗

Leveraging Lambda Cache for Serverless Cost-Efficiency
For most experienced AWS serverless devs, using global variables in our Lambda functions is second nature. If you’re still not sure what global variables afford you, take a look at this post by Renato Byrro.

Aurora Serverless: Data API vs Connection pools
I thought this was an interesting approach by Murali Allada. I really love the Data API, but I can see using it for user-facing, synchronous operations being a problem. But why not just use it where it makes sense?

How to trim your cloud infrastructure costs
Being cost-conscious is never a bad thing, especially when it comes to the cloud. This becomes even more important due to the economic impact of the current COVID-19 situation. This article had a few interesting cost-cutting measures that can hopefully save you a few bucks so you can better weather this storm.

13 Most Common Google Cloud Reference Architectures
Priyanka Vergadia compiled a list of her #13DaysOfGCP mini series on Twitter. In each video, she outlines a use case and a reference architecture using GCP. These might not all be applicable to you, but you know me, I’m a sucker for serverless patterns.

Deploying Microservices Using Serverless Architecture
I’m not 100% in sync with Dorival Querino’s depiction of using a Lambda function as an orchestrator in a serverless microservice architecture. However, assuming there was a message bus or Step Function to bridge that gap, the overall intent is similar to my thinking on the subject.

Serverless Tutorials 👷‍♀️

Creating a scalable serverless import process for Amazon DynamoDB
Great post by James Beswick that shows you how to use S3 as a staging environment to import datasets of any size into DynamoDB. This is a very useful pattern for either preprocessing data or database migrations.

Creating a local testing environment for AWS Lambda with Express and Typescript.
Joan Gil shows you another way to test your AWS Lambda-backed API locally. This example uses a combination of swagger-routes-express and the AWS SDK to load your API Gateway routes. It’s an interesting, albeit, complicated approach, but it apparently works for them.

Developing a Serverless Backend API using Flask
If you’re looking for a way to quickly make your Flask app serverless, this tutorial from Sourabh Mokhasi should get you there. This is an easy onramp to serverless, but once you’re up and running, start thinking about strangling some of those routes to separate Lambda functions.

Measuring Performance with CloudWatch Custom Metrics and Insights
Michael Bahr has a great post that shows you four approaches to generating metric data. Each approach has trade offs, but the post outlines when and why to use CloudWatch Insights versus asynchronous log analysis.

AppSync: how to compare strings lexicographically in VTL
Yan Cui gives you a simple solution for lexicographical string comparisons in VTL. More importantly is the way he figured it out, by getting help from an amazing #serverless community.

Serverless Security 🔒

How Compliance Standards See Serverless in Production?
Ah compliance standards, the bane of almost every fast moving developers. The good news is, that with serverless, lots of these things are handled for you. Emrah Samdan has a great post that outlines some common standards and their considerations when using AWS Lambda.

Serverless Reads 🤓

How to Remain Agile with DynamoDB
Excellent post by Rob Cronin that points out three common hurdles that new DynamoDB developers often face. As he points out, there is a tremendous amount of agility available to you if you start with the proper techniques and use DynamoDB for what it was intended.

5 AWS Services You Should Avoid!
This article has been making the rounds, so without piling on additional criticism, I’ll just say this: if you use cloud services poorly, you’re likely going to be the victim of poor outcomes (and then write posts like this).

Do not follow Hype of Serverless Blindfolded
And while we’re dumping on serverless, I figured I’d include this piece from Ashish Singh. Besides the fact that his cost estimates don’t include the engineer(s) that needs to maintain his three t3.2xlarge EC2 instances, I’m thinking that 50M (25 second long) requests/month spread across three servers means each one has to handle ~160 request per second. Probably fine if the traffic is evenly distributed, but how often does that happen?

ServerlessDays virtual wrap up
I had a blast hosting the first ever ServerlessDays Virtual conference, and thanks to Nick Van Hoof, we have a great write up for you to enjoy.

Serverless Needs Standards to Be the Future of Application Infrastructure
Thoughtful piece by Gadi Naor that makes the point that serverless adoption is likely being hurt by the lack of standardization across serverless providers. While I tend to agree with his analogy to the early days of web standards, there was also a tremendous amount of innovation that happened during that time. Too quickly standardizing on something like Kubernetes, could prove to be terribly inefficient in the long run.

Serverless Music, Podcasts, and more…

Durably: The Ballad of S3
Every day it becomes more and more apparent that Forrest Brazeal has few limits. He says he can’t dance, but that remains to be seen. 🕺

Serverless Chats – Episode #47: Programming AWS Lambda with Mike Roberts
In this episode, I chat with Mike Roberts about his new book, why Java shops should be just fine moving to AWS Lambda, how we need to approach testing serverless applications, and much more. Watch on YouTube.

How Big Should Microservices Be?
Not really about serverless, but whenever Sam Newman talks about microservices, I like to listen. I think this is probably the most common question, and while Sam’s answer might not be exactly what you were hoping for, it’s probably exactly what you needed to hear.

Observability in serverless applications – the Serverless Coffee Break
Ran Ribenzaft from Epsagon joins James Beswick to discuss how to bring observability to serverless applications, and shares some best practices in running serverless apps at scale.

Talking Serverless with Ryan Jones
Ryan Jones from Serverless Guru has started his podcast up again. Lots of great guests on here.

New from AWS 🆕

Amazon EventBridge schema registry is now generally available
The schema registry is such an awesome tool for all of us lazy developers that don’t want to document anything. And if you run this in your dev or staging environment, it’s basically free. Read more here.

Amazon Translate now adds support for Mexican Spanish
I know my Spanish isn’t very good, so let’s hope AWS can do a better job. And just in time for Cinco de Mayo!

Amazon S3 Batch Operations adds support for S3 Object Lock
You can now perform S3 Object Lock operations using Amazon S3 Batch Operations to apply or change legal holds or retention periods across many objects with a single API request or a few clicks in the S3 Management Console.

AWS WAF now supports migration wizard for converting WAF rules from AWS WAF Classic
I love easy upgrade paths, so it’s good to know that AWS WAF now provides a simple way to migrate your WAF rules from AWS WAF Classic.

Amazon Relational Database Service (RDS) Data API Client Library for Java now generally available
I’m a big fan of the Data API, so if you’ve been missing out because someone forced you to write your code in Java, at least now you have some good news.

NoSQL Workbench for DynamoDB adds support for Linux
Real devs use Linux! Not me, but this is something I (and apparently the NoSQL Workbench team) hear all the time.

Amazon CodeGuru Reviewer launches new, more cost-effective pricing model
I still haven’t played around with, but now revisions to a pull request are only charged for changed or newly added lines of code.

Serverless Tools 🛠

Aurora Serverless Data API with TypeORM
Lots of people have asked if you could use an ORM with the Data API, and now you can. Goje Dan shows you how to use the typeorm-aurora-data-api-driver package to integrate with TypeORM. And if you dig deep enough, you’ll find that it’s using my data-api-client package under the hood. 😉

Thoughts from Twitter 🐦

It’s that time again again. Sitting virtually with the Lambda PM + DA team talking about 2021. What do YOU want to @awscloud to build? #serverless #awsLambda #serverlessforeveryone ~ Chris Munns
If you have serverless requests, Chris is the person to send them to! Check out this post for some really great ideas.

Question for all you @dynamodb hackers out there. Is there ever a reason to store an attribute with a ‘NULL’ value, or should you just remove the attribute entirely? Please explain your answer. ~ Jeremy Daly
I always remove NULL attributes in DynamoDB, but apparently there are lots of people who see the value in storing them. Interesting discussion around this poll I posted.

Running a serverless insurance startup, selling home, auto, renters, and umbrella in five states (http://ourbranch.com ) on AWS. April AWS bill was just under $740. DynamoDB – $202 CodeBuild – $116 Cloudwatch – $100 S3 – $66 AWS Directory Service – $36 ~ Joe Emison
How much does it cost to run a fully serverless startup on AWS? Joe Emison gives you some of his numbers, with plenty of commentary from others.

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.

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

May 7, 2020 – Building a social network in under 4 weeks with Serverless and GraphQL

May 8, 2020 – ServerlessDays Amsterdam 2018 (online edition)

May 14, 2020 – Virtual Meetup: Serverless Fail Day! 🗣

May 16, 2020 – Patterns and Practices for Building Resilient AWS Serverless Applications

May 21 & 28, 2020 – Serverless-First Function by AWS

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 Belinda Vennam (@BeeMarieV). Belinda is an Advisory Software Engineer and Developer Advocate for IBM Cloud Functions and Apache OpenWhisk. Belinda led her team to deliver the functionality for the Templates feature in Cloud Functions, and has worked on and delivered a number of Open Source Apache projects, including a package for deploying serverless functions from a manifest file. Belinda has taken serverless cross-country, speaking at ServerlessDays Seattle and ServerlessDays NYC, among many other serverless events. Thanks, Belinda, for helping to make serverless better! 🙌

Final Thoughts 🤔

It looks like it was another busy week for all the stay-at-home serverlessers out there. I hope creating all this amazing serverless content is keeping you relatively sane. #StayAtHome is wearing really thin here at the Daly household, but we’re staying healthy. I hope you all are too.

Just an FYI, I’m planning on launching the next version of DynamoDB Toolbox this week, so stay tuned for that. Check it out if you get a chance.

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.