Modeling business logic flows in serverless applications… 📈
Welcome to Issue #99 of Off-by-none. Thanks for joining us!
Last week, we got more CDK patterns to explore, another reason to look at BigQuery, and some updated serverless best practices. This week, we get a Q2 serverless recap, someone realizes that NAT Gateways are expensive, and we learn how to model our apps for simpler evolutions. Plus, we’ve got some amazing posts from the serverless community.
Serverless News & Announcements 📣
TriggerMesh helps you do more with serverless
Connect GitLab with Confluent and Zendesk, or connect these and dozens of other apps with AWS services like Kinesis, SQS, SNS, and Cognito. Even integrate with EventBridge. Join the Beta program today! Sponsored
ICYMI: Serverless Q2 2020
The Serverless Team at AWS has wrapped up all of the Q2 serverless announcements, blog posts, videos and more into a nice little package for you. Lots of stuff happened, so set aside a few hours if you click this link!
Epsagon Introduces Fastly Technology Integration
Pay attention to Fastly. Oh, and by the way, Epsagon now supports tracing their requests from the edge.
MIT Spinoff Data Management Company TileDB Closes $15 Million
“With a totally serverless infrastructure, TileDB delivers access control and enables distributed computing at extreme scale, eliminating all cluster management and minimizing TCO.” Hmm, a universal data engine that can access, analyze, and share complex data sets with any tool at planet scale? Very, very interesting. 🤔
Begin supports renaming default GitHub branches
I’ve seen a lot of people rightfully question some of the naming conventions we use in tech, but Begin actually did something about it. Now you no longer need to use the
master branch, but can rename it to something else and still have their system pick it up.
Serverless Stories 📖
A 1 year review of Laravel Vapor
This is an excellent post by Jack Ellis that not only recounts his team’s use of Laravel Vapor, but offers some great insights into the benefits (and constraints) of serverless. For those of you toiling with servers to run your Laravel applications, this glowing endorsement of Vapor might be just what you’re looking for.
Lessons in Serverless Tech. 1 – NAT GW is expensive.
Yup. I might even go as far as saying it’s too expensive. If you are trying to optimize your serverless application costs, think long and hard about whether you need both VPC and Internet access from the same Lambda function. Audrius Kucinskas clearly agrees with me.
El Chapo: an open source & serverless URL shortener written in python/flask
Here is an interesting post by Sankalp Jonna that highlights one of the core tenets of serverless development: build vs. buy. In order to save $30/mth on a prebuilt solution, his team spent a day building their own, and now it costs only $5/mth to run it. I probably would have built my own solution as well, but I have to think the $25/mth cost savings wouldn’t outweigh the cost of development. 🤷♂️
Serverless Use Cases 🗺
What scenarios are appropriate for serverless?
“Serverless computing is best-used for tasks that don’t block the user interface.” 🤦♂️ Please, please, please stop saying things like this. Either the author has never run a serverless application at scale, or didn’t take the time to learn how to optimize it. According to the results of the Serverless Community Survey, 75% of respondents are using serverless for REST APIs. So, yes, this is a perfectly appropriate scenario for it!
How I Built a REST API Using Google Sheets
I think there are much easier ways to accomplish this without needing to use Cloud Run, but the use case still stands. Google Sheets works great for a number of things, and being able to pull or push data to it from an API can make a lot sense in the right scenario.
5 Popular Use Cases for Going Serverless
Mariliis Retter offers up five use cases for serverless. We’ve covered these in depth before, but it never hurts to get a good reminder now and then.
Serverless Concepts 🏗
Scale and Resilience Aren’t Just Buzzwords
So this isn’t specifically about serverless, and I have a feeling this series is going to eventually go down the Kubernetes route, but Stephanie Wong lays out some very good principles here, and more importantly, adds helpful context to the terms “scale” and “resilience”. I know I’ve seen “but will it scale?” become a party joke, but for modern application developers, it needs to be the cornerstone of your architecture.
Using the AWS Serverless Application Model (SAM)
Great post by Andrew May that compares and contrasts SAM and the Serverless Framework. He points out a lot of the limitations faced by SAM, but I often find myself working around limitations in the Serverless Framework as well. If you’re trying to choose between the two, this post will give you some good insights.
TypeScript and Netlify Functions
The more you know. Alex Chiu reminds us that Netlify just uses AWS Lambda functions, and can therefore utilize the
@types/aws-lambda type definitions for
event object autocompletion.
6 things you didn’t know you could do with the Twilio Serverless Toolkit
I really love this model that allows you to develop serverless functions on the SaaS platforms you’re using. In this post, Phil Nash highlights a few features of the Twilio Serverless Toolkit.
Serverless Tutorials 👷♀️
Free 50-Minute Learning Path: How to Use Objects in Amazon S3 to Trigger Automated Workflows Using AWS Lambda
From the same author that brought you the episodic Innovator Island virtual workshop, this 6-episode learning series shows you how to use the S3 and Lambda pattern through several example applications. You’ll deploy applications into your own AWS account, explore extending them to your own use-cases, and ultimately be ready to develop sophisticated distributed applications built around S3 events using custom code to integrate with other AWS services. Sponsored
Crash Course on AWS CDK and Serverless with REST API and Data Lake Analytical Querying
If you’re looking to get started with the AWS CDK, this might be a good place to start. Simple, straightforward tutorial by Renato Byrro that walks you step by step through the basics and then right into a working example.
Vue Serverless Side Rendering with AWS Lambda@Edge
David Porter has some code and explanations that will let you perform SSR with Vue apps on Lambda@Edge. Lots of good reasons to do this, which David points out in the post.
AppSync: how to inject table names into DynamoDB batch & transact operations
Yan Cui has a quick fix for those of you using dynamic table names for DynamoDB and are required to pass it into your AppSync resolvers. Really interesting approach, but he says this could be better encapsulated as part of the
serverless-appsync-plugin. So if you have some free time, maybe add a PR. 😀
How to structure GraphQL and Typescript app using Serverless infrastructure
Here’s a tutorial from Mirco Guidetti that uses the
apollo-server-lambda npm package to turn Lambda into a GraphQL server. Should you use AppSync instead? Maybe, but I’ve seen people having success with this approach.
Serverless end-to-end tracing, troubleshooting & performance monitoring with Lumigo
Mohammed Izzy provides a good overview of Lumigo and how their tracing features and console allow you to quickly debug your serverless applications. There are a lot of good tools out there for adding observability to your serverless applications, and at this point, you probably can’t go wrong choosing any of them.
Serverless Security 🔒
Protecting Your Serverless Solution
This article by Sat Gainda gives a pretty good overview of all the things to think about when it comes to securing your serverless application, along with some other things to think about (like cost). The section on serverless development was a bit confusing (modern approaches use IaC, not containers), but otherwise, some really great info in here.
Serverless Reads 🤓
Monitor & Debug Serverless with 30-Second Auto-Instrumentation
Complete observability over your serverless environment with no code changes required. With one-click distributed tracing, Lumigo lets you effortlessly find & fix issues in serverless and microservices environments. Get serverless-specific smart alerts before they impact performance or cost. Sign up for a free account and get up & running in minutes. Sponsored
Modeling business logic flows in serverless applications
I really enjoyed this piece by James Beswick that walks you through the evolution of a serverless application as business requirements change. My evolutions have never been quite as smooth and straightforward as the example James gives, but the point is well taken. Designing serverless applications in small, single-purpose, discrete actions, certainly does make iteration much easier.
Building Well-Architected Serverless Applications with Thundra (3-part series)
This three-part series is vendor specific to Thundra, but Emrah Samdam does an excellent job taking you through the Well-Architected Serverless Lens and addressing the questions that every developer should be asking when building a serverless app.
AWS Serverless: you might not need third party monitoring
This is a really interesting post by Rehan van der Merwe that highlights all of the powerful monitoring, logging, and tracing features provided by AWS for your serverless applications. Here’s the problem, the complexity of setting all of these components up (and getting everything configured correctly) is still a massive exercise in patience. For smaller projects, I will typically rely on the built-in AWS services, but for critical applications, third-party services give you what you need out-of-the-box, with minimal setup.
Grow, not build, your serverless team!
If Sheen Brisals can’t inspire you to go serverless, then no one can! In his latest post, he outlines a number of stages for growing a serverless team from with your organization, culminating in an agile and efficient culture with highly-accelerated development processes.
The exotic mixture of Enterprise and Serverless
This is an entertaining read by Pang Bian that juxtaposes the multiple layers of corporate bureaucracy with the novelty of serverless in the enterprise he works for. I’m still not sure how they seem to make it work, but good for them for trying.
For the serverless (non)commuter… 🚎
Episode #58: Observing Serverless Observability with Erica Windisch
In this episode, I chat with Erica Windisch about the challenges with monitoring and troubleshooting serverless applications, why observability is so important with serverless, what advancements have been made over the last year, and so much more. Watch on YouTube.
New from AWS 🆕
Announcing automatic backups for Amazon Elastic File System
It would be amazing if AWS would do more things like this. Under what circumstances would you not want your file system backed up? There might be a few, but things like this make more sense as an opt out.
New classroom course: AWS Cloud Financial Management for Builders
Interesting course from AWS that says it’ll teach how to design “cost-optimized” architectures. The syllabus seems quite solid, and just might give you some Corey Quinn level skills (without all the snark of course 😉).
Amazon CloudFront announces new TLS1.2 security policy for viewer connections
Improvements to the SSL/TLS protocols are always good to see.
Announcing CDK Pipelines Preview, continuous delivery for AWS CDK applications
Two things you need to know about this. One, CDK Pipelines are self-mutating, meaning they automatically update themselves when you add new applications or stages, and two, they seem pretty amazing.
Introducing Amazon Interactive Video Service (Amazon IVS)
I have no idea how good (or pricey) this is, but under the right circumstances, hosting your own live broadcasts does sound amazing. There are plenty of streaming platforms out there, but to be able to “own your audience” is an interesting value prop.
New Amazon Elastic File System console simplifies file system creation and management
Again, I like these moves by AWS to simplify the user experience. Not known for their console UX, seeing these strides gives me hope for the future.
Amazon SQS Now Supports New Console Experience
Not to keep harping on this, but these upgrades are very welcome. Now, granted, most of this stuff should be managed with IaC, but being able to poke around and easily look at configurations is a handy feature.
Introducing the Cloud Development Kit for Terraform (Preview)
cdktf lets you define application infrastructure with familiar programming languages, while leveraging the hundreds of providers and thousands of module definitions provided by Terraform and the Terraform community. Hey, if this is your thing, go for it.
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.
July 28th, 2020 – CloudZero presents How We Built a Serverless Machine Learning Pipeline for Under $7/Day with Adam Tankanow (Webinar)
July 22, 2020 – Serverless 201: Advanced Development and Monitoring with AWS, Stackery, and Lumigo
July 22, 2020 – Predicting and Managing Costs in Serverless Applications with AWS
July 27/28, 2020 – ServerlessDays Virtual
July 28, 2020 – Hosting Without Hoisting: NPM Flattening for Zero Cold Start Serverless (Online Meetup)
July 29, 2020 – Orchestrating Distributed Business Workflows with AWS Step Functions
July 30, 2020 – Building Intelligent Application Flows in the Cloud and On-premises with TriggerMesh (Webinar)
September 3, 2020 – ServerlessDays Warsaw
October 1-2, 2020 – ServerlessDays Hamburg 2019
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 Alex Wood (@alexwwood). Alex is currently a Senior Software Engineer at AWS developing open source serverless tools. Before that, Alex was the lead developer on the AWS Ruby SDK and is the author of the AWS Lambda Ruby runtime. He’s spoken about writing Lambda functions as idiomatic Ruby code and running them on AWS for the Ruby on Rails podcast, and also had a re:Invent 2019 session, speaking about AWS SAM and the AWS SAM CLI. Thank you, Alex, for your incredible work – and sharing it with others! 🙌
Final Thoughts 🤔
Another busy week for serverless, and it’s super exciting to see some additional serverless events starting to pop up.
And speaking of super exciting, next week the Off-by-none newsletter celebrates 100 issues! It seems a bit crazy to think about how many amazing serverless stories, use cases, tutorials, and more have been shared over the last two years. I’m planning something kinda big for next week, so I hope you’ll share this with your friends and coworkers so they don’t miss it!
I hope you enjoyed this newsletter. We’re always looking for ideas and feedback to make it better and more inclusive, so please feel free to reach out to me via Twitter, LinkedIn, Facebook, or email.
See you next week,
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.