Apply/Destroy Terraform Modules via a Simple REST API Endpoint

Now you can do even more with your REST.

Terraform is a great tool for infrastructure as code and one of my personal favorites, but while it is very easy to apply and destroy runs via a CLI and having plenty of tools to ensure Terraform runs via git push/pull requests, applying Terraform runs via an API command is a lot trickier.

You may also enjoy:  Intro to Terraform for Infrastructure as Code

That is why I created Terraformize to fill in that gap, the basic idea being that, by having the ability to create Terraform runs via a simple REST API, a developer can integrate a Terraform environment creation into their product code flow in an easy way.

Container Orchestration for IoT devices and Distributed Systems

Let’s say you started a new job as a developer at a company that created a new smart speaker (think Amazon Echo or Google home). The said device gained a lot of success and you quickly find yourself with a million clients, each with a single device at their home. Sounds great, right? Now, the only problem you have is how you handle deployments to a million devices located all across the world?

  • You could go the way most old-school vendors do by releasing a package for the end user to download and install themselves on the company website, but in this day and age, this will quickly lose your customers to the competition who doesn’t have such high maintenance needs.
  • You could create a self-updating system built into your codebase, but that will require a lot of maintenance and man-hours from the development team, and even then, it will likely lead to problems and failures down the road.
  • You could containerize the codebase, create on each smart speaker a single server Kubernetes cluster, and create a huge federated cluster out of all of them (as Kubernetes doesn’t support this scale nor latency tolerant workers, this is required), but that will lead to huge costs on all the resources wasted only to run all said clusters.
  • You could use Nebula Container Orchestrator — which was designed to solve exactly this kind of orchestration needs.

As you may have guessed from the title, I want to discuss the last option from the list.