Tell HN: Software That I Want
I'm not sure if the software I want exists and if it shall ever exist but it's something I have always wanted. I think the nearest software that exists is Portainer.
I use Terraform to bring up infrastructure and use AWS Console or an automated test to verify it was created properly.
I would like a desktop or web app that can present the resources/objects in Docker, Kubernetes, AWS, GCP and Azure, Kafka objects, I would also like configuration management things to be available such as installed packages.
I would also like the ability to modify resources in the GUI and generate Terraform or Ansible for the changes, or CloudFormation or Pulumi or CDK code.
I would also like the GUI to be integrated with monitoring, so if the tool knows about a haproxy healthcheck, it also presents that in a health dashboard.
1 comment
[ 2.9 ms ] story [ 27.2 ms ] threadAlso a list of startups building similar value propositions - some great products there: https://diggerdev.notion.site/DX-platforms-for-your-cloud-ac...
We however realised recently that this is not something that can be tackled in one go by a single product. Because this is multiple products solving multiple problems in one package.
We still believe that this "end state" of an OS-like layer that'd manage cloud-native services like hardware, using IaC as an "assembly language" of sorts, is inevitable. It will get built one way or another. But not as a platform from scratch; rather, as an expansion of something much smaller.
What could it be? If the "assembly language" hunch is right, then it must have something to do with IaC. We played with an idea of a tool that'd generate Terraform based on higher-level concepts as inputs. Here's one (UI): https://terrabook.io/ And another (CLI / framework): https://diggerhq.gitbook.io/trowel-docs/getting-started/what...
The framework idea still looks promising, we haven't fully explored it yet. But even with a perfect framework in place that "compiles" into Terraform, you'd still need something to take the output and make sure the changes are reflected in the target cloud account. Continuing the "assembly language" parallel, think bytecode, the missing piece of the puzzle appears to be a "runtime" for IaC.
So we are building such a runtime. Funny enough, it strongly resembles CI - you push Terraform code to Git and it gets deployed. Sort of an "orthogonal" CI pipeline to your normal application build-deploy CI/CD.
But existing CI tools are ill-suited for Terraform, because it has state and that creates potential for race conditions; while most CI tools assume stateless jobs. A class of CI/CD products for Terraform exists (Spacelift, Terraform Cloud, Atlantis) but they are more like separate full-stack CI systems. We think that having 2 CI systems for that doesn't make sense. The infrastructure of asynchronous jobs, logs etc can and should be reused. Stretching the "assembly language" parallel, this is a bit like the CPU for a yet-to-be-created "cloud PC".
So it boils down to making it possible to run Terraform in existing CI systems. This is what Digger does - check it out: https://digger.dev