Learn By Doing Volume 12 -- New York, New York and API design patterns

Learn By Doing Newsletter

A free weekly curated cloud, blockchain, and coding newsletter delivered to your inbox every week.

Blockchain Newsletter

Subscribe to get the best cloud technology, blockchain news, and coding articles in your inbox every week

We will never send you spam and it's easy peezy to unsubscribe at anytime.

☁️ 📖 Learn By Doing Volume #12 💻🔨

It's a huge week for the Learn By Doing newsletter, we have content from the AWS Summit in New York and a brand new Tools section to help you get better code out the door. I am also very excited to announce our first sponsor, CloudForecast.io, they just launched a brand new service this week for monitoring your AWS costs. Check them out and get an extended free trial by mentioning you joined because of this newsletter.

This week we dive into CI/CD for Kubernetes and the gotchas that come along with it. We explore our preconceived ideas of what RESTful APIs are. Then we explore old fashioned assembly language and just how deep that rabbit hole can go. To wrap things up there is some new tools and announcement coming out of New York that might improve your serverless delivery.

If you want to share this week's issue with all your friends, you can see this issue and past issues on the Learn By Doing site.

Always Caught Off Guard by Hidden Charges in Your AWS Bill? Starting at only $49/month, CloudForecast.io is a simple daily email report to help you keep an eye on your AWS cost. Special offer for Learn by Doing Subscribers: Email us at [email protected] to double your free trial!

☁️ Cloud

Automating My Newsletter Generation with MailChimp, Google Sheets, and AWS LambdaThis recent blog post of mine is about this very newsletter. In this post I talk about a core use case for AWS Lambda, automating all the mundane tasks that I don't want to do. I leverage serverless architecture to automate the generation of this newsletter using the MailChimp API with a Google Sheet API. Dive in to read more about my automation that frees me up to focus on content curation.

Using AWS Lambda & Node.js to scan your S3 uploadsOne of the best lesser known features of AWS Lambda is the ability to include compiled libraries in your deployments. Why is this cool? Because you can then spawn out of the Lambda handler to invoke your libraries. This is a great post on how this was done to run ClamAV on S3 file uploads.

Amazon Kinesis Video Streams Adds Support For HLS Output StreamsKinesis video streams was launched back at re:Invent and since then it has been fairly quiet in terms of seeing what people are doing with it. This release of HLS output streams to enable live on-demand video gives us a glimpse at what folks may be building with Kinesis video streams. This combined with something like DeepLens could make for an interesting weekend hacking project.

Unit testing for Node.js Serverless projects with JestThis isn't a earth shattering post by any means, however, it is a nice reminder that testing your serverless function is still critical to software development. Unit testing serverless is talked about a lot and this is yet another example of how to implement it and best practices to follow.

AWS Fargate 101Fargate has been coming up in my feed quite a bit lately for some reason. Yet the AWS Fargate use case is almost always what is talked about and this post isn't much different in that regard. What I appreciate about this post from Twistlock is the value proposition a service like Fargate could offer enterprises.

Dead man's switch with CloudWatchCloudWatch custom metrics are one of the most overlooked features I have seen. For simple application monitoring tasks they are great to use. If you are doing massive things at a large scale the price can add up. But this post highlights how you can leverage custom metrics to add basic monitoring of your applications.

Amazon S3 Announces Increased Request Rate PerformanceA subtle announcement out of New York this week. S3 now supports 3,500 requests/second for writing data and 5,500 requests/second for reading data. Both are per key, which is nothing short of holy smoke!

Vue.js and AWS Lambda: Developing Production-Ready Apps (Part 1)We often see posts about AWS Lambda or VueJs, but this series from Auth0 is all about building a production ready application using Lambda, MongoDB, VueJs, Express, and of course their own identity as a service platform.

SRE fundamentals: SLIs, SLAs and SLOsAhead of Google Next 18, this article has been rolled out by GCP team that covers the three key metrics to site reliability engineering. I find the differentiation between SLO and SLA to be key to ensuring a product team keeps availability at the top of their minds.

🔨 Tools

lambda-warmer: A module to optimize AWS Lambda function cold startsAfter the AWS Startup Day in Boston it came out that the "hack" we have been using to keep our Lambdas warm by periodically invoking them from CloudWatch is now considered the best we have at the moment for minimizing cold starts. Lucky for us, Jeremy Daly created this simple NPM package to add to function handlers to abstract away the warming events so that were not all reinventing the wheel here.

Nabla Containers: A new approach to Container IsolationWhen it comes to the newfound love for containerization there is some folks that are opposed to the isolation, or lack thereof, that Docker provides. Nabla containers are a new approach that level up the isolation by restricting the system calls an individual container has access to. Could this be the next evolution of containers for enterprises?

Continuous Delivery from GitHub to your Kubernetes cluster with heighlinerI have been trying to use AWS CodePipeline and CodeBuild to continuously deploy Kubernetes pods to EKS and it is proving to be more difficult than I thought it would be. This project, heighliner, appears to recognize the pain points around this and tries to solve it. This is slick in that it integrates with your GitHub pull requests as well.

Code && Languages

Proxymise Your Async CodeProxymise is a slick library that takes away those ugly looking .then() chains in Node. Kay does a fantastic job here of showing the simplicity that this library adds and how it makes your code more readable.

How Image Optimisation Decreased My Website's Page Weight by 62%This is a good read on image optimization for the web and includes several tips on how to decrease the payload of your websites. I am especially excited about the new WebP format and will be applying these tips to my own projects.

Here's Why Your Static Website Needs HTTPSThe days of just getting by with plain ole HTTP are fading faster by the day. I am a huge fan of HTTPS on everything, especially if that site is taking any kind of information from me. Some argue that HTTPS is being forced upon us by the likes of Google and that may very well be true, but as Troy Hunt explains here is that really all that bad?

Getting to Go: Garbage collection and runtime issuesThese are notes and slides from a recent talk Rick Hudson gave at ISMM on the Go lang garbage collector. There is quite a bit of interesting bits in here, like Go has no notion JIT compilation and the runtime is packaged with the application. Lots of tradeoff analysis.

Assembly Language for BeginnersLooking for some light evening reading? This most likely is not that, but this is still awesome. Dennis Yurichev put together this 1,055 page deep dive into assembly language. If you have always lived in high level languages it might be worth taking a peek at what is happening underneath the hood.

Kubernetes anti-patterns: Let's do GitOps, not CIOps!This is a good read on Kubernetes CI/CD process and how some of us may be doing it wrong. This is certainly debatable, but I like the idea of having my K8s pods deployed based on what is actually in source control. This runs counter to the idea of having your build system updating images in Kubernetes deployments.

Introducing GraphQL Cache for RubyCaching is relatively simple in a REST world. In a GraphQL world it is more complex and the tooling for it in its infancy right now. This is an interesting take on making caching a single boolean parameter so the complexity is hidden from developers.

REST was never about CRUDAPI design patterns is one of those topics in any software development space that is heavily debated. To the point that terminology becomes overused, skewed, and begins to lack any real meaning. RESTful api design has been around for quite sometime, but as this article points out, it has many misconceptions that are often taken as truth.

😎 Cool find of the week

Simone Giertz: Back from brain surgeryThis isn't development, cloud, coding, tools, or blockchain related. But, it is awesome. If you don't know the story about Simone Giertz and her brain tumor then I encourage you to watch this. This video will at least, hopefully, restore your faith in that good things still happen out in the world.

© 2019 Kyle Galbraith. All Rights Reserved.