Off-by-none: Issue #86

April 21, 2020

Why is AppSync suddenly so popular? 🤔

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

Last week, Fargate got an overhaul, we did some EventBridge storming, and we learned some rules for DynamoDB modeling. This week, we have an unusually high number of AppSync posts, some good serverless fundraising news, and a new serverless Redis solution. Plus, we have plenty of amazing posts from the 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 monitoring startup Dashbird raises $2.1m and releases new features for serverless monitoring
Congratulations to Taavi and the team over at Dashbird. It’s always great to see serverless vendors getting funding so they can continue to innovate and move the ball forward.

Serverless Redis Is Here!
I have yet to try this, but a Serverless Redis implementation has been needed for quite sometime. I’m still wondering if an HTTP interface might make more sense, but it’s hard to compete with native Redis speeds. I definitely need to take this thing for a spin.

Cloudflare goes retro with COBOL delivery service – Older coders: Who’s laughing now? Turns out we’re still vital
Using the GNUCobol project, you can compile COBOL code to C and then use Emscripten to compile the C code to WebAssembly. Then you can run it on a Cloudflare Worker. How about that?

Serverless Stories 📖

How serverless tools helped us make good architecture decisions under time pressure
Phil Sarin talks about a recent project he worked on and how they built it using a serverless stack on AWS in only two weeks. He also points out that besides the more well-known benefits of serverless, forcing yourself to think in terms of events, can make it easier to adopt event-driven architectures under time and budget pressure.

Lessons learned building serverless data pipelines
Nathan Pointer points out (sorry, couldn’t resist) a few lessons he’s learned while working with serverless data pipelines. The information is relatively straightforward, but the pun alone made it worth including. 😉

Serverless Use Cases 🗺

Netflix Images Enhanced With AWS Lambda
Resizing images is a classic serverless use case, but did you know that Netflix is now using it to generate their images? This is a great post that shows the comparison between their EC2 and Lambda approaches and why Lambda comes out on top with a landslide victory.

How to trigger AWS Lambda by SMS?
Mohammed Lutfalla presents you with the simple use case of triggering a Lambda function with an SMS message received by AWS Pinpoint. Lots of ways to implement this, including using services like Twilio, but there are plenty of cool tools that could be built using this pattern.

Recipe for Resilient Engineers: Resilient, Scalable, Cloud-Native AWS SFTP for < $300/Month
This is another really great use case that takes advantage of a number of AWS services. In this post, Mark Fowler shows you how to set up a fully-managed SFTP solution. I’m not sure how he’s calculating the costs exactly, but either way, for a system under heavy load, the TCO is quite attractive.

Designing a serverless video streaming pipeline
This is a very cool serverless use case. Thomas Schoffelen explains how he build a video conversion and streaming pipeline using serverless services from AWS.

Export CloudWatch Logs to S3 using Lambda
Here’s a straightforward DevOps use case for serverless. Omar Dulaimi explains how to run a scheduled Lambda function to copy your CloudWatch Logs over to an S3 bucket.

Serverless Concepts 🏗

The Hitchhiker’s Guide to S3 Access Controls
Awesome resource created by Matt Tyler that gives you pretty much all you need to know about S3 Access Controls as well as some strategies for choosing the right access level.

Services, Microservices and Stacks
Like Paul Swail, I too tend to be a stickler for semantics, especially when it comes to communicating technical concepts. You won’t get all your questions answered with this post, but Paul does a good job giving us clear and useful definitions of these terms.

Asynchronous client interaction in AWS Serverless: Polling, WebSocket, Server-Sent Events or AppSync?
Xavier Lefèvre shows us different ways to push data to your client applications. AppSync is one of the choices, but Xavier prefers WebSockets, and explains why in this post.

Why Serverless Apps Fail and How to Design Resilient Architectures
Renato Byrro points out a common architectural design problem that often creeps up in serverless applications. When you have dependent downstream systems that do not have the same scaling characteristics, using proper mitigation techniques is essential.

How AWS Lambda Retry really works
Enrico Portolan lays out some of the retry mechanisms that AWS makes available when interacting with Lambda functions. There’s a discussion of swallowing errors in there, plus the coupling effects of Step Functions. I wouldn’t suggest following all the guidelines in here, but the need to learn failure modes in the cloud is the big takeaway.

How to tame GraphQL: AWS AppSync, Amplify and Cloudformation to the rescue!
This post gets into the weeds a bit, but is a good overall intro to GraphQL and AWS AppSync. I really love the idea of AppSync, but I still find it less than ideal for stitching together multiple microservices. I think I just need to spend some more time with it.

Serverless Tutorials 👷‍♀️

The Serverless Chats Podcast
Geek out on everything serverless! Each week, Jeremy Daly, serverless advocate, AWS Serverless Hero, and Off-by-none founder, chats with another serverless champion to explore and do a deep-dive into specific topics in the serverless space. Sponsored

AppSync With The AWS Cloud Development Kit
For more insight into AppSync, this post by Ken Winner gets into some of the challenges with building and maintaining AppSync configurations and how there are some tools that can help with that. Unfortunately, as you can see from the article, there’s still the need for some duct tape and popsicle sticks to use some of these features outside the CLI

AppSync: how to error on DynamoDB conditional check failures
If you’re using AppSync to interact with DynamoDB, make sure you check out this post by Yan Cui. Apparently the resolver doesn’t throw an error when condition checks fail, so you have to deal with this in your response mapping template.

Deploy an Angular application on AWS using serverless
Despite the fact that it’s using Angular as the frontend framework (kidding 😉), this is a great little tutorial by Marco Zuccaroli that shows you how to deploy your SPA to CloudFront using the Serverless Framework and the single-page-app plugin. No Lambda functions required.

Tutorial: Refactor Your Node.js and Express APIs to Serverless APIs with Azure Functions
In this tutorial, John Papa shows you how to convert your Express.js API into Azure Functions. It’s another example of a monolithic function (Azure Functionlith?), but again, a straightforward way to get your serverless on.

How to create a Selenium web scraper in Azure Functions
If your AWS IP addresses get blocked, maybe you could build your web scraper using Azure Functions instead? 🤷‍♂️ René Bremer teaches you how.

Serverless Reads 🤓

12 Important Lessons from The DynamoDB Book
I spoke with Alex DeBrie about his new DynamoDB Book, and we discussed twelve important lessons for anyone working with DynamoDB modeling. Lots of good lessons in here for anyone approaching DynamoDB.

Building a Serverless Web App: Why You Should Consider the Monolith
Ashan Fernando encourages the use of a Lambdalith as an easy path to serverless. I favor the single-purpose function approach, but this isn’t the worse pattern if you’re just getting started. Plus, he mentions my Lambda API project, so I don’t want to be overly critical. 😉

Serverless + GraphQL = Developer Nirvana
Hyperbole be damned! I obviously agree that serverless is a major game changer for speed and innovation, and clearly many companies have had great success with GraphQL. Although Tj Blogumas doesn’t mention it directly, I still think AppSync needs some work before it becomes my go-to.

4 Things you must know before using Firebase Cloud FireStore in 2020
I really appreciate this article by Shawn Wu, however, I think this type of developer confusion is becoming more prevalent as NoSQL databases like DynamoDB and Firebase become more popular. You can’t use NoSQL like a relational database, that’s not the point. So if you approach it with that mindset, like Shawn, you’re going to be sorely disappointed.

Podcasts and Videos… 📹

Serverless Chats – Episode #45: Serverless Use Cases with Gareth McCumskey (Part 1)
In this episode, I chat with Gareth McCumskey about a number of production-ready serverless use cases including RESTful APIs, GraphQL, WebSockets, and capturing clickstream data in PART 1 of this two-part conversation. Watch on YouTube!

Foobar: Optimize Your Lambda Functions with Alex Casalboni
Marcia Villalba hosts Alex Casalboni to talk about optimizing your Lambda functions to minimize costs and maximize performance.

New from AWS 🆕

AWS X-Ray SDK for Go is now generally available
AWS X-Ray SDK for Go is now generally available, enabling Go developers to get an end to end view of requests as they travel through their applications.

Exporting HTTP APIs as OpenAPI 3.0 Now Supported by Amazon API Gateway
You can now export an OpenAPI 3.0 compliant API definition file from HTTP APIs in Amazon API Gateway.

Amazon Redshift announces general availability for federated querying
This is really cool. With Amazon Redshift Federated Query, you can query live data in Amazon RDS for PostgreSQL and Amazon Aurora PostgreSQL and integrate it with the data in your Amazon Redshift and Amazon S3 environments.

Introducing AWS Elemental Link: A Device to Send Live Video to AWS
I know it has nothing to do with serverless, but as someone who has been doing a lot with video lately, this thing looks pretty cool.

Serverless Tools 🛠

Dealing With Webhooks Sucks But There’s Something You Can Do About It
This actually looks like a great tool if you are dealing with lots of incoming webhooks. Add some throttling capabilities in there and this could be very useful for lots of people.

5 Open Source Tools to Improve Your Serverless Development Experience
Ben Ellerby has a list of open source tools that will make your serverless development experience much better.

Run multiple instances of Serverless Offline like a pro and watch for changes
George McCreadie built a cool little tool called serverless-offline-multi that lets you run multiple serverless-offline emulators in the same shell. Running serverless locally is still a pain, but this might make it a little easier for you.

Thoughts from Twitter 🐦

What’s your preferred way to reference DynamoDB Tables that have auto-generated names when the tables and functions are in separate stacks/#serverless services? Outputs? Environment Variables? Parameter Store? ~ Brett Andrews
Great discussion on this post by Brett. I think there are a lot of different factors to consider, but it seems that SSM Parameter Store has the most support.

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)

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

April 22, 2020 – Building Your First Application with AWS Lambda (Tech Talk)

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

April 24, 2020 ServerlessDays Paris (Canceled)

April 28, 2020 – Choosing Events, Queues, Topics, and Streams in Your Serverless Application (Tech Talk)

April 29, 2020 – ServerlessDays Virtual (I’m hosting this!)

May 4, 2020 – Production Ready Serverless – new instructor-led online workshop

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 Brett Andrews (@AWSbrett). Brett is a Staff Software Engineer at Wizeline where he helps improve the performance of software teams. Prior to Wizeline, Brett was a Front-End Engineer for AWS where he was instrumental in shaping the direction of serverless. He lead the UI teams for API Gateway and the Serverless Application Repository, along with the Open Source Software team for SAM and aws-serverless-express. In addition to his influential run at AWS, Brett has some great articles published on his personal site and LinkedIn, and can always be counted on to tweet about the latest in serverless. Thanks, Brett, for your part in the rise of serverless! 🙌

Final Thoughts 🤔

#StayAtHome, Day 342 😷 (at least it feels like it). I just found out that the Stay at Home order has been extended in Massachusetts, and that schools are closed for the rest of this school year. At least I can look forward to learning some more #COVIDskills and forcing my daughters to make thank you videos for people who send us free stuff. Oh, and maybe I’ll be able to finish v0.2 of this project sooner rather than later.

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 out there,
Jeremy

Previous Issue

Issue #85April 14, 2020

Next Issue

Issue #87April 28, 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 our amazing sponsors and find out how you can help spread the #serverless word by sponsoring an issue.

 

About the Author

Jeremy is an AWS Serverless Hero that has a soft spot for helping people solve problems using serverless, and 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, the Serverless Chats podcast, and at (virtual) 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 ⭐️!