A Weekly Newsletter By Jeremy Daly

Off-by-none: Issue #37

May 14, 2019

Your serverless apps just got some major upgrades… 🚀

Welcome to Issue #37 of Off-by-none. It’s so great you’re here! 🎉

Last week we look at how we can create a better local development experience when building serverless applications. This week, we look at a number of exciting updates to the Serverless Framework and the AWS Lambda Node.js runtime. Plus we share lots of great content from the serverless community.

There were a lot of serverless happenings last week, so let’s jump right in. 🦈

Serverless News & Product Announcements 📢

Serverless Framework v1.42.0 Released
There are so many amazing things packed into this version including API Gateway Logs support, enabling Binary Media Type responses, and Request Body Validations.

Azure SQL Database serverless (preview)
Some more information about the new “serverless” Azure SQL Database. Interesting points in here. Take note of what it is “well-suited” for and what it is not.

Stick to your ELK Stack and Continue to Observe your Lambdas
Now you can use your own ELK stack with a new Thundra plugin. I’m a big fan of Thundra’s integration strategy, especially since many companies adopting serverless are still using these other tools for existing workloads.

Epsagon Launches Agentless Tracing and Why That’s Important
This announcement from Epsagon is also extremely interesting. Many of these serverless observability companies started by focusing on the ephemeral compute monitoring problem. But by adopting the broader vision to support “modern” applications in general, I think they are positioning themselves much better.

Serverless Use Cases 🗺

Serverless for data scientists
Mike Williams presents a really well-written (and long) article about using Lambda for a variety of data science tasks. Sure there are limitations, but there are also plenty of great use cases for it as well.

How to Proxy the BigCommerce API Using Serverless Functions and Amazon API Gateway
Using AWS Lambda as a proxy might not always be the best idea, but Brian Davenport has a valid use case for it.

Streaming data analysis with Kinesis
Dhaval Nagar outlines and demonstrates a powerful use case using Kinesis streams and Kinesis Data Analytics.

How to control and record voice calls with Node.js serverless functions
Another use case for Twilio functions. I really like the approach that Twilio is taking. This will (or at least should) become a new standard for providers like this.

When you’re thinking about going serverless… 🤔

Ask the expert: why your business needs AWS serverless
Yan Cui says serverless is scalable and resilient, helps teams respond to business needs faster and more efficiently, and maximizes the return from your most expensive resource: developers.

AWS vs Azure – a quick comparison
Azure is moving fast (though not as fast as AWS), so it might be worth giving it another look. John Demian breaks down the differences.

Serverless Stories 📖

My CloudWatch Logs Are How Old?
Scott Hankinson ran into a fairly common issue with log retention policies. He offers up some solutions as well.

Aggregating Lambda@Edge logs into one CloudWatch log group
This is another common log issue when using Lambda@Edge. Danil Smirnov shows you how he dealt with it, complete with caveats.

Serverless Certifications: The AWS Developer Associate
Yann Stoneman from Serverless Guru shares some tips for prepping and passing the AWS Developer Associate certification exam, based on his own experience.

6 Lessons Learned Sending Mass Emails With AWS Lambda
Interesting look at how Austin Huminski built a mass emailing system that was (almost) 100% serverless. Lots of good patterns mentioned in here.

Serverless Tutorials 🏗

Using AWS Step Functions To Schedule Or Delay SNS Message Publication
Eric Hammond shares a great technique that uses AWS Step Functions’ Wait state to put a delay in front of publishing a message to an SNS topic. All without writing any AWS Lambda code. 👍

Building a REST API with Stackery
The Serverless Guru was blown away by the power of Stackery, and you probably will be too.

How to include Serverless Repository apps in serverless.yml
Simple tip from Yan Cui that shows you how to benefit from SAR apps by using them with your Serverless Framework project.

CloudFormation protip: use !Sub instead of !Join
Yan Cui explains why it’s easier (and less of a cognitive load) to use !Sub instead of !Join in your serverless.yml templates.

GraphQLifying REST
Interesting approach by Nader Dabit that shows you how to put AWS AppSync in front of your existing REST APIs to allow your frontend devs to start working with GraphQL.

How to Handle your Python packaging in Lambda with Serverless plugins
Quick and easy 5 step guide by Amit Joshi.

Build a Twitch Extension With an AWS Serverless Backend
This is a great post that shows you everything you need to know to implement your own Twitch extension using a completely serverless approach.

Serverless Security 🔒

Threat Modeling Serverless
Tanya Janca recounts an informal threat modeling exercise she went through with a colleague. Lots of good questions in here, many of which can probably be solved with the right managed services.

LandMark White drops revenue forecast by $11.5m after data breach
Note to self: Don’t leave your S3 buckets open to the public. 😬

Serverless Reads 🤓

Amazon S3 Path Deprecation Plan – The Rest of the Story
Jeff Barr gives us the inside story behind the announcement to deprecate the path-based access model in S3 buckets. Thanks to all the feedback, old buckets will be backwards compatible.

What AWS Lambda’s Performance Stats Reveal
Great post by Ran Ribenzaft that shares metrics from over 100,000 instances of Epsagon’s monitoring tool. Really interesting to see the most common runtimes, memory configurations, and number of functions per account.

You are wrong about serverless vendor lock-in
Another excellent post by Yan Cui that debunks some of the vendor lock-in FUD. It’s about time to market, not about the highly unlikely situation that will cause you to change cloud providers. Oh yeah, and ORMs are terrible.

Two missing links in Serverless Computing: Stateful Computation and Placement Control
Ion Stoica and Devin Petersohn wrote a very thoughtful piece that addresses (and offers solutions to) some limitations with serverless compute environments.

AWS Fargate: The Future of Serverless Containers
Another post by Ran Ribenzaft that talks about the benefits of Fargate and why it might be the solution you’re looking for (instead of Kubernetes).

Serverless Tools

a-h/dynamocapacity: Compare cost of DynamoDB On Demand versus your current Provisioned Capacity setup.
Nice little Go calculator that will download your DynamoDB stats and give you the cost of provisioned versus on-demand. This could be very useful.

S3 Bucket -> Lambda (AWS Transcribe Audio to Text) -> S3 Bucket
Handy SAR app by Aleksandar Simovic that takes MP3, MP4, WAV, and FLAC audio files, transcribes them to text, and outputs them to an S3 bucket.

AWS Lambda Power Tuning
Here’s another useful SAR app by Alex Casalboni. You provide any Lambda Function as the input, and the state machine will estimate the best power configuration to minimize cost.

hapipal/lalalambda: Serverless functions powered by hapijs
If you’re a hapi fan, you can use this framework to run it on Lambda.

horike37/serverless-step-functions: AWS Step Functions plugin for Serverless Framework
The serverless-step-functions plugin has been updated to support the new workflow execution events for AWS Step Functions.

Thoughts from Twitter… 🐦

In 2018 @comicrelief migrated their donation platform to #serverless – look at the costs! Thanks for sharing @CagsR89 🙏 ~ Danilo Poccia
Incredible cloud cost reduction by switching to a serverless approach. It would be interesting to know how much it saved them in Ops hours as well.

The serverless shift * From Code to Configuration * From High LoC towards Low LoC (preferably zero) * From Building Services to Consuming Services * From Owning Workloads to Disowning Workloads ~ Paul Johnston
Some thoughts on what it means to switch to the serverless mindset. Explanations for each point are in the thread.

An interesting illustration of why limits often lead to long term goodness. The fact that there was a way to achieve the desired results with 230 MB of lesser code means 230 MB less to review, maintain, upgrade, and deploy for the lifetime of the application. ~ Ajay Nair
Great point by Ajay Nair as to why limits aren’t always a bad thing. The same applies to serverless, just because you can’t do it the old way, doesn’t mean you can’t do it.

When you don’t feel like reading… 🍿

Trying different deployment strategies in CodeDeploy: Canary and Linear
Marcia Villalba shows us how to configure CodeDeploy from our Serverless Framework projects using Canary and Linear deployment strategies.

Serving Serverless (Erica Windisch) – Giant Robots Smashing Into Other Giant Robots
Erica Windisch, CTO and co-founder of IOpipe, discusses serverless architecture and how it can make for a clearer user-interaction story.

When you’re curious what cool serverless things AWS has been building… 🕵️‍♂️

AWS Lambda adds support for Node.js v10
You can now develop your AWS Lambda functions using Node.js v10! In addition to leveraging new features (like the V8 6.6 engine performance improvements), Lambda functions written in Node.js 10 run on the latest generation of Amazon Linux, Amazon Linux 2. Sweet.

ICYMI: Serverless Q1 2019
This post recaps all of the amazing things AWS did with serverless during the first quarter of this year. And it is a very long list.

Upcoming updates to the AWS Lambda and AWS Lambda@Edge execution environment
AWS is updating the Lambda execution environment AMI, which, in rare cases, may introduce some compatibility issues. This affects AWS Lambda and AWS Lambda@Edge, so you should read through the post to see if any of your existing functions could be impacted.

Amazon Kinesis Data Analytics now allows you to assign AWS resource tags to your real-time applications
You can now assign AWS resource tags to applications in Amazon Kinesis Data Analytics to easily organize and identify your resources, create cost allocation reports, and control access to resources.

AWS Step Functions Adds Support for Workflow Execution Events
This is a great feature. Step Functions can now automatically deliver event notifications when a workflow starts or completes through CloudWatch Events. This allows you to configure targets like AWS Lambda, Amazon SNS, Amazon Kinesis, or AWS Step Functions to respond to these events.

AWS AppSync Now Enables More Visibility into Performance and Health of GraphQL Operations
You can now better understand the performance of your GraphQL requests and usage characteristics of your schema fields. Plus you can identify resolvers with large latencies and the most and least frequently used fields in your schemas.

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 15, 2019 – Serverless Monitoring & Troubleshooting – Expert Roundtable with Yan Cui, Jeremy Daly and Erez Berkner 😊

May 15, 2019 – AWS Developer Happiness – Cloudside Consistency AND Local development speed. Hosted by Stackery

May 21, 2019 – Epsagon Webinar: Modernizing Applications with Serverless on AWS

May 22, 2019 – Build On Serverless, hosted by Heitor Lessa (with me as a guest)

May 22, 2019 – Building Event-Driven Serverless Apps with AWS Event Fork Pipelines. Hosted by James Hood.

May 25, 2019 – Webinar: Comic Relief’s Journey to Serverless for Red Nose Day (IOpipe)

May 29, 2019 – Webinar: Running Serverless with Full Observability (Thundra)

June 4, 2019  ServerlessDays Tel Aviv.

June 11-12, 2019Designing Serverless Architecture with AWS Lambda with Yan Cui

June 21, 2019 – ServerlessDays Milan. The agenda was just released!

June 25-26, 2019 – AWS re:Inforce.

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 Erica Windisch (@ewindisch). Erica is the CTO and co-founder of IOpipe (@IOpipes). She’s also an AWS Serverless Community Hero and (of course) a huge proponent of serverless. You can find Erica speaking at conferences and sharing her serverless insights on Twitter, the IOpipe blog, and the occasional podcast. But beyond Erica’s community efforts, her team at IOpipe is empowering companies to more easily adopt and implement this amazing technology. Cloud providers are doing a great job innovating, but having people like Erica and her team constantly pushing the limits, makes for a better overall ecosystem. Thanks for what you do, Erica! 🙌

Final Thoughts 🤔

I feel like I’m repeating myself, but it was another great week for serverless innovations. The Lambda Node.js v10 upgrade is huge. The upgrades to the Serverless Framework are awesome (and much needed). The continued investments from cloud providers, third-parties, and individual developers are pushing serverless forward at a remarkable pace. If you’re overwhelmed, you’re not alone. But it is amazing to watch.

I hope you enjoyed this issue of Off-by-none. Please send me your feedback and suggestions. 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) how you’d like to contribute to Off-by-none.

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. 👍

Cheers,
Jeremy

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.

Sign up below and get Off-by-none delivered to your inbox every Tuesday.

I respect your privacy and I will NEVER sell, rent or share your email address.