CategoriesServerless

Secure Pattern for Deploying WASM on S3

Picking up where I left off from the last article, I’d built a simple WASM project with Rust and walked through how to generate a publishable distribution. In this edition, which is probably the penultimate in the series, I need to get a path towards CloudFront and S3. I want to stay true to the Serverless objective and those two services are perfect for shipping web-delivered code. So let’s dive into Deploying WASM on S3.

CategoriesServerless

Surprisingly Powerful – Serverless WASM with Rust Article 1

It’s been a while since I wrote a series going back almost 9 months to my Building Serverless Applications. I enjoyed that so much that I have been wanting to write another, but just didn’t have a continuous thread of material. But lately, I’ve been thinking a lot about “full stack” development and where the future of delivery is going. Some of that thinking has led me down a path of what if. What if I was able to use my favorite programming language and my preferred AWS Serverless tools to build full-stack web applications? I’m not 100% sure I’d do this in production at the moment, but again, I’m exploring what if. This series is the expansion of that thought. Let’s get started on Serverless WASM with Rust.

CategoriesInfrastructureServerless

Guaranteed Safety using Blue Green with ECS and CDK

Buckle up for this one as it’s going to be a lengthy piece. I love writing articles like this one because they contain complete infrastructure builds that highlight some best practices to put multiple components together and act as great starting points for people to use immediately. I’ve been working a great deal with containers lately and I kept finding it difficult to locate a working sample of building Blue Green with ECS and CDK. So I set out to put that together. Let’s get started.

CategoriesServerless

3 Proven Patterns for Reporting with Serverless

Serverless architecture has given developers, architects, and business problem solvers new capabilities to deliver value to customers. It feels like we are in the age of maturation of serverless in so many ways. The boom of containers, the birth of functions, and now the options of even Zero-code serverless implementations (Step Functions). These are all great things from an application developer’s perspective. But what about reporting? There are so many signals emitted from these systems but has the reporting world kept up with the changes in architecture? And what are some strategies to take advantage of data in this current landscape? Let’s have a look at Reporting with Serverless.

CategoriesServerless

An Allow List Lambda Function in Rust is 1 Guaranteed Way to Improve CORS

Some time ago I wrote an article about Cross-Origin Resource Sharing with API Gateway that talks about custom allow lists. I wanted to revisit that implementation not because the code doesn’t work, but because I wanted to see what it would look like in Rust. Remember, I believe that more developers would be choosing Rust with Serverless if more content and examples existed. Let’s dive into building a Lambda Function in Rust for CORS.

CategoriesServerless

A Proven and Comprehensive Pattern for Building an API with Rust and Lambda

I’ve been encouraged lately by all of the Rust and Serverless content that has been posted on various platforms. I’ve also been public about the fact that I believe that Rust adoption with Serverless would be further along if there was more quality content written on the topic. I know for certain that there is interest from developers about whether they should and how would they introduce Rust into their builds and while I’ve tackled pieces of the puzzle, I haven’t taken on a fully working CRUD API. This article looks to change that. Let’s dive into building an API with Rust and Lambda.

CategoriesLeadership

4 Inspiring Tips to Think like a Consultant

I’m early on in this new venture as a full-time consultant but something that isn’t new for me is being someone people go to for help. Every time I speak to someone about this topic I tend to drive back to the same core concepts that I’ll talk about below. Being a consultant isn’t about rates, engagements, or hustling for business. Sure, it can be a career. But being a consultant is a mindset that can elevate your position and influence first in your team and then more broadly into your organization. Following along I give you 4 tips to think like a consultant.

CategoriesPersonal

Embrace that a Career isn’t always Measured by Climbing the Technology Ladder

What if I’ve been thinking about my career all wrong up until this point? How can that even be possible? I consider myself to be making the turn. Heading into the back nine of this adventure. Does that mean that I’ve wasted the first 9 holes of my technology career? These are heavy questions to explore but ones that I needed to address as I grabbed that metaphorical snack and made my way to the 10th tee. I realized this one important thing. My career isn’t defined by how high up the technology ladder I climb, but by the story I tell through the canvas I’m painting. I believe that this notion of climbing the technology ladder isn’t the only way to measure success.

CategoriesServerless

People Matter more than Technology when Building Serverless Applications

I’ve been hitting the gas pretty hard on Rust lately and doubling down on my desire to see more Rust in Serverless. I feel strongly though that balance is important in anything in life. For every period of intense push, there needs to be time to pause and reflect. So for this article, I want to take a step back and hit some brake on my Rust content by looking at what’s really important when building Serverless applications.

CategoriesServerless

Blazing Fast Change Data Capture with DynamoDB Streams and Rust

Propagating changes in an event-driven system can be accomplished in many different ways with many different tools. Do I work with transaction logs, put events on an event bus or do something else? Fortunately, when storing data in AWS’ DynamoDB I can take advantage of the DynamoDB streams feature. DynamoDB Streams gives me an iterator that I can read from to publish or process item-level changes outside of the transaction of persisting the data from the originating client. I’ve written about streams before, here, here and here but in this article I want to look at DynamoDB Streams and Rust.