I’ve always gravitated to the infrastructure side of things, and as a software engineer, nothing makes me happier than being able to fully define my infrastructure in an automated fashion without having to touch any hardware.
While the cloud providers do an admirable job in enabling one to do this, to date their interface to doing so has either been via a web ui, which isn’t very repeatable or maintainable, or via a complex SDK for which one would have to write a LOT of plumbing code to tie it all together. Other solutions, like AWS’s CloudFormation are too locked in to the provider, which makes it hard to port or even be hybrid across multiple providers.
Enter terraform. While it doesn’t do much to address the complexity of most cloud systems, it does handle most of the plumbing. This makes it much easier to assemble a fully working system, with all the interdependencies between components being easily tracked using the resource graph generated by its DSL. Fully repeatable, everything in text files under source control. Yay! The ability to separate the plan and apply stages to see a diff of changes before committing to them is gold! The entire system makes one very confident when iterating on and maintaining one’s infrastructure.
Skip ahead 2 years of devops consulting with terraform, and I’ve decided to try and make a business out of it. To that end I’ve released atmos — an open source platform which wraps terraform, and makes it much easier to get up an running with it and AWS. It is the tooling I always desired when building out the infrastructure for a new startup, and will serve as my platform for rapid cloud development for my customers. It allows one to use as much of the higher level cloud constructs as you desire, but also allows you to build what you need as you evolve, all integrated together. As a proof of concept it includes a basic service oriented architecture. Man-months down to man-hours. For free.
So how do I pay my bills? All the cloud infrastructure patterns that I build with Atmos will be made available in a reusable form in Atmos Pro. You can think of it as a supported library of functioning architectural patterns. Additionally, runtime improvements that are of particular benefit to businesses will also be released into an Atmos Pro runtime, bundled as a Atmos plugin. My initial thoughts are that I will sell an annual subscription for access to this library/runtime to allow one to use it at a lower cost — you stop paying, you stop using. I’ll also offer a perpetual license at a higher price if you want it free and clear in perpetuity so that your business isn’t beholden to mine.
Who is this for? I’m targeting early stage startups, probably funded. Maybe they have some infrastructure that’s hard to maintain or doesn’t quite do what they need, and they know they need something better. If you need cloud infrastructure, I’ll build it for you as a part of Atmos Pro. It will cost you nothing but some time to tell me what to build, and if you like it you can become a customer.
In the future I’m hoping to create patterns for other cloud providers, but for now AWS is a big enough target. Layers of abstraction to allow for inter-cloud portability is another direction of interest, but that’s even further out.
I also plan to blog a lot more, documenting this process as I go through it. An open business plan so to speak. The introvert in me doesn’t spend much energy browsing social media, but I’m always happy to have a conversation with anyone that pings me for my attention.