November 20, 2018
Welcome to Issue #12 of Off-by-none. I’m glad to see all the new faces here and I can’t wait to meet several of you at re:Invent next week!
Last week we looked at a number of resources for serverless beginners as well as some advanced topics for devs looking to level up. This week we’ll continue to dig deeper and explore more about microservices and step functions, plus we’ll look at how startups can benefit from using serverless.
Before we jump in, I wanted to mention Mark Hinkle’s post that compiles a bunch of serverless survey results. Serverless Adoption by the Numbers is a great overview of the serverless landscape. Some key takeaways include: searches for the term “serverless” have increased 20x in the last 3 years, serverless will overtake containers-as-a-service in 2018, and many companies are leveraging multiple cloud providers. There’s also a list of resources at the end if you want to check out the different surveys. Very encouraging news.
Okay, there is a ton to get to today. Let’s get started! 🤘🏻
Toby Fee from Stackery has a great post that outlines 6 Best Practices for High-Performance Serverless Engineering. Lots of useful tips in here.
A few weeks ago I went to ServerlessNYC and outlined a few key takeaways from Gwen Shapira‘s talk about handling data in serverless applications. Mark Boyd from The New Stack has written a post about her talk that goes into a little more detail. You can watch her talk as well.
Thinking about doing some queue processing with your serverless application? Mikhail Shilkov ran some experiments and documented them in his post From 0 to 1000 Instances: How Serverless Providers Scale Queue Processing. He compares Lambda, Google Cloud Functions and Azure Functions to see how they handle 100,000 messages flooded into a queue. The results are very interesting.
Are you prepared to build a production-ready serverless application? Yan Cui (aka @theburningmonk) has completed his Production-Ready Serverless video course! If you want to get a complete overview of testing, debugging, CI/CD, monitoring, error handling, and more, check out his serverless course.
If you’re still using servers, like Chad Van Wyhe at PCI, you can reduce AWS Costs with Step Functions simply by automating the shutdown and snapshotting of your instances. This is an interesting use case that could be applied to a number of applications.
Paul Swail discovered how to Schedule emails without polling a database using Step Functions. I thought this was quite clever, so I posted the link on Twitter.
Apparently other people thought it was clever as well. 😉 Perhaps this use case was already discovered, but thanks to Paul for documenting it. Plus, there are plenty of applications that would be perfect for. This is most likely going to be my go to strategy for building scheduling services.
I’m a huge fan of microservices and have written extensively about them (see here and here, oh and here). So whenever I find content about microservices, I have to take a look. There were a few good resources I came across this week that I wanted to share.
Kyle Galbraith tells us 6 Interesting Things You Need to Know from Creating Serverless Microservices. Kyle is just building a small application, but many of his observations are spot on. I’m not sure I would start by creating separate AWS accounts for each microservice, but it certainly is a valid approach for fine-grained scoping of resource limits plus avoiding other services being noisy neighbors and exhausting concurrent executions.
I recently went down the YouTube rabbit hole when I discovered a talk by Sam Newman from GOTO Berlin earlier this month. Sam Newman is the author of Building Microservices, which is a must read, btw. Anyway, his talk, Insecure Transit – Microservice Security, dives deep into things like the Confused Deputy problem and proposes solutions (like using an internal JSON Web Token to pass context to downstream services). Really good stuff.
I then found a talk he did at GOTO Amsterdam called, Confusion in the Land of Serverless, which is another excellent talk. This ultimately led me to his course: Serverless Fundamentals for Microservices: An Introduction to Core Concepts and Best Practices. I didn’t get a chance to watch this yet, but it looks like a really good, in-depth courses for building microservices with serverless.
James Beswick‘s new post, Serverless for startups — it’s the fastest way to build your technology idea, is a great overview of how serverless can be used to quickly and inexpensively test your product concept. Unless your application needs to do something that serverless can’t do (🤔), there really isn’t a better way to build a greenfield application.
Along the same lines, Necmettin Karakaya wrote a piece that gives you a Full-Stack Serverless MVP recipe for cash-trapped Startups. This might not be the perfect recipe for your use case, but it shows you that there are enough tools and services out there to build your applications without the need to manage servers.
Finally, a while back I wrote a fictional story about two different startup teams. One chose serverless technology, the other did not, and the outcomes are very different. A Tale of Two Teams is a fun read that draws from real experiences that I’ve had over the course of my 20 years spent writing software and building applications.
New Relic gives us some Tips and Practical Guidance for Getting Started with AWS Lambda. There is plenty of good bits of information in here. Worth the read if you’re new to Lambda and serverless.
It’s amazing how many open source serverless platforms there are. In 7 open source platforms to get started with serverless computing, Daniel Oh lays out a number of popular choices. He also gives a great overview of Knative. Helpful if you’re interested in orchestrating and serving up your own serverless function containers.
Forrest Brazeal and Chris Munns put on a great webinar on Serverless Workflows for the Enterprise. There were some excellent ideas in there for segregating shared services accounts and setting up Dynamic Feature Pipelines. There were also lots of best practices for testing, secrets management, and multi-account security. You can watch the video and download the slides.
And I thought there were a lot of updates last week! AWS is continuing to pump out new features before re:Invent next week. Below is just a sample of some announcements that make their total serverless offering even better.
Also, Forrest Brazeal noticed this in the CloudFormation schema for AppSync the other day:
Looks like we might be getting RDS HTTP Endpoints after all. #gamechanger 👍
This past week I finally released Lambda API v0.9. Lambda API v0.9 adds new features to give developers better control over error handling and serialization. A TypeScript declaration file has also been added along with some additional API Gateway inputs that are now available in the
REQUEST object. You can contribute to the project on GitHub or install it via npm.
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 Paul Swail (@paulswail). Paul is a full-stack web developer/cloud architect from Northern Ireland who has a consulting company called, Winter Wind Software. He’s got a great blog about serverless and a weekly newsletter. He also built this handy Lambda Scaling Calculator. Earlier we mentioned his latest article, Schedule emails without polling a database using Step Functions, but it is worth mentioning again. It’s use case ideas like this that help developers and businesses realize the power of serverless. Keep up the great work, Paul!
That was a lot to get through, but I hope you’re encouraged (as I am) by all the progress being made with serverless. Some new patterns are starting to emerge that are expanding use case examples, plus more experiments and tales from developers using it in production are making the case for serverless even stronger. There’s always more to do, plus with re:Invent next week, we’re sure to see a number of great new features.
I’ll be at re:Invent next week, so I look forward to sharing all the things I learn! And please ping me if you want to meet up to chat about serverless or grab a drink. 😀🍻
I hope you’ve enjoyed this issue of Off-by-none. Please send me your feedback and suggestions. They are always welcome and appreciated. It helps me make this newsletter better each week. Please feel free to contact me via Twitter, LinkedIn, Facebook, or email and let me know your thoughts, criticisms, and if you’d like to contribute to Off-by-none.
Now go build some amazing serverless apps! ⚡️
P.S. If you liked this newsletter, please share with your friends and coworkers. I’d really appreciate it. Thanks! 😉
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!
Check out all our amazing sponsors and find out how you can help spread the #serverless word by sponsoring an issue.
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.
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 ⭐️!