A Weekly Newsletter By Jeremy Daly

Off-by-none: Issue #34

April 23, 2019

Serverless is not a hammer to every nail  –  but it’s a serious contender… 🔨

Welcome to Issue #34 of Off-by-none. I’m so glad you’re here! 💯

Last week we looked at Google Cloud Run and saw how serverless can make for better vacations. This week, we (re)address the serverless versus containers debate, look at some interesting thought pieces on serverless, and share plenty of excellent content generated by the community.

Lots of amazing serverless stuff to get to, so let’s do this! 🤘🏻

Serverless versus Containers (not this again)… 🤦🏻‍♂️

It seems that this debate comes up from time to time, and I found some articles this week that I thought were interesting in their framing. I’m hoping by now, that most of us realize that containers are extremely powerful, but oftentimes unnecessary with the advent of FaaS. If your argument is over portability or cloud vendor lock-in, then I think you need to evaluate how important those are to your organization versus the operational complexity it adds. Here are few articles that might help you make a more informed decision.

Serverless vs. Docker — what to choose in 2019?
This is a good post that outlines the advantages and disadvantages of using the different approaches. Ultimately it concludes that both have valid use cases and we should choose the one that works best for our workload.

Use Docker and AWS Lambda Together? A Layered Approach
Vijay Balasubramaniam argues that you can use Docker and Lambda together in a way that leverages the strengths of each technology, while compensating for each other’s limitations.

Run your containers on AWS Fargate
If you’re still undecided, take a look at this post from Glenn Wedin that guides you step-by-step on how to launch a container in Fargate. Sure, much of this can be automated, but I still prefer Lambda when possible.

Serverless Product Announcements 📢

PureSec Recognized as a Gartner Cool Vendor!
Gartner awards the Cool Vendor honor to vendors and products who prove themselves as innovators in their space, and I would definitely agree that PureSec deserves to be here.

IOpipe launches serverless alerts upgrades with PagerDuty
New IOpipe functionality improves the developer on-call experience and minimizes disruptions for brands building serverless applications.

Tackle Serverless Observability Challenges with the New Stackery-Epsagon Integration
I love seeing companies collaborate to create better experiences for their users. Stackery and Epsagon working together seems like a great fit.

Enhanced IOpipe Observability: Reducing Overhead with CloudWatch Logs
You can now enable a new AWS integration on your IOpipe dashboard that will instantly unlock access to your CloudWatch logs for each and every AWS Lambda invocation you observe and monitor with IOpipe. This makes a lot more sense to me than synchronous logging.

Serverless Use Cases 🗺

From Poll to Push: Transform APIs using Amazon API Gateway REST APIs and WebSockets
Sending long-running requests that need to perform a subsequent action is a very common use case. Now with serverless WebSockets, we can ditch the polling hack and be notified when our job is complete.

Using Lambda and Jira to handle DEVOPS tasks
Perry Yang from TechOps shows us a clever way to automate tasks using JIRA tickets and AWS Lambda. This could be applied to a number of integrations and could significantly reduce repetitive maintenance tasks.

Copy Millions of S3 Objects in minutes
Keith Rozario found himself with an “embarrassingly parallel problem”, needing to copy S3 objects between regions. He uses a combination of SQS Queues and Lambdas to create a robust serverless solution with built-in monitoring, exception handling and scaling.

The complete guide to use node oracledb on AWS lambda using serverless framework and lambda layers
Apparently some people are still using Oracle databases. How quaint. Jinglun Ding is one of them, and he shows us how to a) use Lambda Layers to solve this problem, and b) demonstrate why we probably shouldn’t use Oracle with Lambda in the first place. 😬

How to check millions of URLs in a serverless way. AWS Lambda uses case
Alessandro Marino is a self-described “Junior Dev”, but he outlined an interesting serverless approach to checking/validating a massive number of URLs very quickly. Where do we find more “junior” devs that can think this way?

Start a new Twilio Functions project the easy way
Yup, the revolution has begun. Twilio isn’t the only vendor (*cough* Adobe) that is letting their users build serverless functions directly within their platform, and for good reason. There will be many use cases for this that will give developers much more control over third-party services.

Detecting Faces from Videos using Serverless Architecture
Mahmudul Haque Azad uses AWS Rekognition for a neat little use case with just a few lines of code and configuration.

When you’re still trying to figure out the best way to “serverless”… 🤔

5 Common Misconceptions About Serverless in 2019
Gracie Gregory of Stackery takes on some common misconceptions in the serverless space. It might help you level-set your expectations if you’re still on the fence.

Lambda Deployment Frameworks Compared
Interesting post that compares nine different serverless deployment frameworks. There is a lot of flexibility with the Serverless Framework and AWS SAM, but sometimes highly-opinionated frameworks can be useful in a number of circumstances.

6 unknown CloudFormation features you should know about
Building serverless applications means you are likely going to need to deal with CloudFormation. There are some handy tips in here, like cfn-lint and understanding Deletion and Update replace policies.

Serverless Stories 📖

Lessons learned in Serverless
Jon Vines highlights some of the challenges AO.com’s engineering team faced on their journey to understanding serverless architectures.

Experimenting with GCP Cloud Functions
Danielle Adamz is an Information Security and Privacy grad student who spent some time playing around with serverless. I love reading stories like this because it gives me a chance to see how people experience serverless as a beginner (a perspective now lost on me). If anything, it’s better than those stupid YouTube reaction videos.

Serverless Tutorials 🏗

Canary Deployment with LaunchDarkly and AWS Lambda
Another interesting post by Yan Cui that shows you how to circumvent some of the limitations of API Gateway canary deployments by using LaunchDarkly instead.

Tutorial to setup Azure EventGrid Topic to call Azure Function, that triggers a Sendgrid email
Something for the Azureans. Arjit Sharma shows you how to buffer events with EventGrid and then send off an email with an Azure Function.

How to compile resources for AWS Lambda?!
Great post by Mohammed Lutfalla that shows you how to use Lambda Docker images to compile resources for your serverless applications.

Safely validating usernames with Amazon Cognito
Super cool article that shows you how to use a pre-sign-up Lambda trigger to validate usernames before creating a user in Cognito.

Circumventing CORS with Netlify Functions & Nodejs
Kamry Bowman gives us a way to bypass CORS with a serverless application. It seems like a lot of overhead, but if the use case calls for it, I guess it makes sense.

Serverless Reads 🤓

Fighting vendor lock-in and designing testable serverless apps using hexagonal architecture
Slobodan Stojanović has another great article that says the best way to mitigate switching costs is to implement proper testing and pluggable architectures right from the beginning.

The Fundamental Problem: Solving .NET Lambda Cold Start Part I & Holy Grail of Solutions: Solving .NET Lambda Cold Start Part II
Cold start times with .NET on Lambda are worse than Java, but apparently people still love C#. This two-part series from Thundra gives you some solutions to minimize the problem.

AWS Summit Recap: What’s new for Lambda, Cloudformation and more
Excellent recap from Raoul Meyer of the AWS Summit in Amsterdam.

Benchmarking .NET Core 3.0-preview4 on Lambda
Zac Charles runs some new tests on the .NET Core 3.0-preview4 runtime. TLDR; stick with 2.1 or 2.2 for critical workloads, but if you’re looking for performance, give 3.0-preview4 a try.

The next three articles are all very similar. However, I found that each of them had some interesting takes on serverless, so I included them all.

IT Managers Guide to Serverless
Altaf Rehmani does an excellent job laying out the serverless paradigm and what it means for companies in the future. I don’t agree with everything (as I rarely do), but I really enjoyed reading this piece.

Is Serverless computing the future of Cloud computing?
Not as in-depth as Altaf’s piece, but Moumita Charaborty recognizes how serverless complements microservices, the importance of BaaS, and the methodology that allows teams to bring products to market faster.

Deconstructing Serverless Computing Part 1: A new layer of abstraction
Lucian Toader’s post also correctly emphasizes the role of BaaS, while pushing the conversation a bit further to discuss CapEx versus OpEx, the out-of-the-box security considerations, and the speed to market.

For members of the A/V club… 📽

Build On Serverless, hosted by Heitor Lessa
This weekly Twitch show will guide you through building a full-stack serverless airline ticket booking application. And I’m honored to be a guest on the May 29th episode. First episode is tomorrow!

Building Happy Little APIs w/ Eric Johnson
This is another Twitch series with Eric Johnson (and guest) doing a deep dive into APIs on AWS. The first episode is already out, and totally worth the watch.

Differences between Cloud Run and Cloud Run on GKE
Bret McGowen and Martin Omander from Google explain the difference between the two versions of the new Google Cloud Run service. Makes sense, but be sure to check your use case.

Serverless In The Brownfield | Think FaaS with Trek10
Forrest Brazeal lays out how established companies can migrate their existing systems to serverless infrastructures.

AWS Lambda Layers Q&A
Marcia Villalba answers some common questions about Lambda Layers.

Building a Serverless Blog with Hugo and Netlify
In this video, Marcia will show you how she created her blog using Hugo and Netlify.

The Fast Track to Serverless Security on AWS
Andrew Brown’s Serverless Security talk for the Serverless Toronto User Group is loaded with useful information, especially if you’re interested in taking some AWS Certification Exams.

Serverless Tools 🛠

servian/aws-auto-cleanup
Open source application to programmatically clean your AWS resources based on whitelist and time to live (TTL) settings.

serverless-components/schedule
Easily run a scheduled/cron task on AWS Lambda using Serverless Components.

DavidWells/serverless-manifest-plugin
Generate list of api endpoints & stack outputs for consumption in other applications + service discovery.

When you’re wondering what AWS is working on… ⚙️

Introducing the Infrastructure & Automation blog
This new blog will share the experiences and challenges that the AWS Quick Start team has faced and patterns and tools that they have developed.

Amazon Aurora Serverless Supports Sharing and Cross-Region Copying of Snapshots
You can now share snapshots of Aurora Serverless DB clusters with other AWS accounts or publicly, as well as copy cluster snapshots across AWS regions.

AWS re:Inforce 2019 – Security, Identity, and Compliance
AWS is expecting over 8,000 attendees in Boston for their first ever cloud security conference. 300 breakout sessions including bootcamps, chalk talks, workshops, full-day hands-on labs, builder sessions, leadership sessions, and more. Security geeks welcome!

Amplify Framework announces new Amazon Aurora Serverless and GraphQL Transform features for building AWS AppSync APIs
You can now use an existing Amazon Aurora Serverless database as a data source for your AWS AppSync GraphQL APIs. Plus you can use the Amplify CLI to auto-generate the schema and resolvers.

Amazon Kinesis Data Firehose custom prefixes for Amazon S3 objects
Apparently this allows you to create prefixes that are compatible with Apache Hive. So if you need that, problem solved.

Upcoming Serverless Events 🗓

April 24, 2019Cloud-side development: Why it’s a thing and how to build faster than ever with serverless presented by Stackery

April 25, 2019ServerlessDays Helsinki.

April 25, 2019 – Mastering Amazon DynamoDB ACID Transactions: When and How to Use the New Transactional APIs

June 4, 2019  ServerlessDays Tel Aviv.

June 21, 2019 – ServerlessDays Milan.

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 Chase Douglas (@txase). Chase is the co-founder and CTO of Stackery, a visualization tool that makes building and scaling serverless applications drop-dead simple (i.e. without all that darn YAML). Chase and his team are not only pushing innovation in the serverless space, but are actively working to expand the serverless community and make adoption easier. Chase is instrumental to this, providing technical leadership for their product team, as well as contributing his insights on the Stackery blog, being a frequent conference speaker, and participating in their weekly training sessions. Thanks for what you do, Chase! The community appreciates it. 👏

Final Thoughts 🤔

Every week we see more content, more tools, more use cases, and more people and organizations adopting serverless. All the major cloud providers continue to invest in solutions that reduce operational complexity and focus on the developer experience, and we see some amazing developers continue to push the providers to make it even better. What a time to be alive. 😉

Before you go, Protego is running The State of Serverless Survey. Hopefully it will yield some interesting data, so give that a look if you’d like.

I hope you enjoyed this issue of Off-by-none. Please feel free to send feedback and suggestions so I can keep making this newsletter better each week. You can reach me via Twitter, LinkedIn, Facebook, or email and let me know your thoughts, criticisms, or how you’d like to contribute to Off-by-none.

If you have a minute, please share this newsletter with your friends and coworkers who might be interested in serverless. I would really appreciate it. 👍

Until next time,
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.