What's in a serverless developer's environment?
I often get asked what software tools are ideal for a serverless developer. I like being asked for my tooling preferences as much as the next developer gal, but when you break it down, this particular question is flawed. Serverless is, after all, about using a massive suite of platform tools to let you do minimal management. A smart-mouthed kid could say “all you need for serverless is a text editor, an AWS account, and a cup of coffee.”
But, since I get asked so often, I will go over my simple local setup.
1. The Stackery CLI
Let’s begin with the tool most near and dear to my heart. The Stackery CLI lets you deploy all your serverless resources all at once, and has local development superpowers that let your local code get responses from resources inside your AWS cloud. I would love to go into great depth about why our CLI is so great, but we’ve written that piece already :)
There are a few prerequisites that deserve mention on their own:
- AWS CLI is the basic interface with AWS on the command line, necessary for stuff like authenticating.
- SAM CLI to let me run my Lambdas locally. The Stackery CLI extends this tool (the SAM CLI itself has multiple things you’ll need to install first, all in the install guide!)
- Docker Desktop to let you run a local container for your Lambda. Once you install this, you shouldn’t need to mess with containers directly— it just needs to be running to get the other stuff to work.
You’ll need at least two accounts to get started:
- An AWS account with your cloudside dev environment
- A Stackery Account — at least if you want to use the tools in our great tutorials
And you’ll almost certainly end up using
Though alternatives do exist and Github isn’t integral to my current workflow.
3. Visual Studio Code
Of course, you have a choice when it comes to IDEs and you can find a surfeit of forums about why one is better than the other. I’ll spare you my own entry about why Microsoft’s VSCode is my choice and instead just say that it is.
Visual Studio code is based closely on the design of Sublime Text, which is still a great code editor though it does cost a bit. Atom, from GitHub, is another free editor with a nice clean interface but I didn’t really find it up to scratch, particularly since it’s hard to find some of the plugins closely related to serverless and AWS.
VSCode has a nice light interface that gives tons of visual space for code. Its most important feature is its fantastic variety of plugins
I’ll note that VSCode has a ton of cool features that I just don’t use: git tracking, and the internal command line are both really useful features that I’m just too used to doing in a separate window. The plugins I do use:
The VS Code + Stackery Plugin unlocks a lot of capabilities:
- Create and iterate the architecture of my service
- Develop my lambda
- Deploy to my dev environment
- Pull down copies of existing services from different environments?
4. General CLI Tools
The only thing I use beyond those listed above is the git CLI. Right now I’m on a very small team and if I were working with more people I might well choose a visual explorer for git.
I use a background image and old-style green text, not because it improves ergonomics but why are we working with computers all day if they don’t look cool?
And really folks that is all you need!
You can serverless in many different ways, but the goal should always be simplicity— if you’re wrestling with your tools or tracking changes with your team via a spreadsheet, you should probably rethink your setup. Remember serverless is not a technology and you should always be focusing on business logic rather than the details of your platform.