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.
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 🛠
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 👩💻
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
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,
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.