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.
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 🛠
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.
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.
I respect your privacy and I will NEVER sell, rent or share your email address.