Pulumi for Cloud Infrastructure Management

IaC, but for real this time

I’ve recently been playing around with some cloud development tooling by a startup named Pulumi, and I thought I’d write up my first impressions.

Pulumi can be summed up as “Infrastructure as Code – but really, we mean it this time.” Instead of mucking around with YAML files and proprietary syntax, you define the infrastructure you need in actual code (JavaScript or Python, with more languages coming later). Is your production environment slightly different from your test environment? No problem, that’s just an if statement (or a more complex abstraction) away.

It’s still very early days (as of this writing, Pulumi is on version 0.14.3), but the general approach shows a ton of promise.

The State of Serverless

Almost, but not quite there yet

In my spare time I have been mucking around with 2 big Functions-as-a-Service (FaaS) offerings, AWS Lambda and Azure Functions. I’ve been meaning to write up a “The state of serverless development” post, but today Mike Roberts updated his overview of the market for serverless computing and it’s far more thorough than I could ever be.

The whole thing is well worth a read if you’re interested in the area, but these parts (emphasis mine) really resonated with me:

Serverless is not the correct approach for every problem, so be wary of anyone who says it will replace all of your existing architectures. Be careful if you take the plunge into Serverless systems now, especially in the FaaS realm. While there are riches — of scaling and saved deployment effort — to be plundered, there also be dragons — of debugging and monitoring — lurking right around the next corner.

Serverless services, and our understanding of how to use them, are today (May 2018) in the “slightly awkward teenage years” of maturity. There will be many advances in the field over the coming years, and it will be fascinating to see how Serverless fits into our architectural toolkit.

This is exactly right in my experience.

Lambda and Azure Functions let you write+deploy code quickly without an infrastructure team and an execution platform. However, the developer experience is often a big step backwards – Lambda doesn’t offer any remote debugging support, and just running+debugging functions locally is a big pain. Azure is further ahead in debugging, but things are still more complicated and less reliable than when debugging traditional apps. Integration testing is difficult on both platforms.

A few years ago, this short piece by former Vancouver councillor Gordon Price made a big impression on me.

The Canadian Institute of Planners had decided to celebrate Vancouver’s West End neighbourhood by giving it their 2015 “Great Neighbourhood” award. Price noted that this is ironic given that during its most recent development boom, the modern West End was widely regarded as a terrible planning decision:

…this neighbourhood of old converted single-family homes was largely bulldozed to create the Great Neighbourhood of today. The West End, during the boom era of highrise construction in the 1960s, was considered a concrete jungle – what most Vancouverites didn’t want anywhere near them: everyone’s best bad example of urban redevelopment.

Impossible to do that today. Imagine taking a square mile anywhere south of 16th Avenue and rezoning it for the kind of development that characterizes the West End.

This really surprised me as someone who moved to Vancouver in the 2000s. Nearly everyone loves the West End now! It’s got a lot of relatively affordable rental apartments, it’s close to all kinds of natural amenities, and it’s a short walk from downtown.

Fast-forward to late 2017, and I’m digging through old newspapers at the VPL for Abundant Housing Vancouver. When I get to the 1960s, I find out that Price is right: many people really hated the modern West End when it was being built. Here are just some of the articles I found.

I recently built a web tool to solve a simple question that comes up often in urban planning: after taking setback requirements into account, how much of lot can be built on? The answer is often surprising: for example, Vancouver’s most common residential zone only allows houses to cover about 28% of the land.

It was a fun weekend project, and a few weeks later I decided to upgrade it on a long plane ride. It’s now a neighbourhood-level simulator with many more parameters:

Alt Text

These are mobile and desktop-friendly, and the visualization is entirely done in the browser. Here’s how it all works.

AHV Letter Builder

Software for Housing, Part 1

I’m a member of a nonprofit called Abundant Housing Vancouver, and as you can probably tell, I happen to do some programming too. In 2017 I was able to spend a lot of time combining these interests which was pretty great!

Over a few blog posts I’ll briefly outline the projects I worked on – they’re all open source and who knows, they might even be useful for other housing advocacy groups someday. First up: the Abundant Housing Vancouver Letter Builder.

headshot

Cities & Code

Top Categories

View all categories