InfraCopilot: The Wolfram Alpha of Infrastructure
infracopilot.ioLooks cool! How does it come up with different architectures when changing from one type of database (e.g.) to another?
InfraCopilot is built on Klotho which is designed on top of an adaptive architectures[0] paradigm - meaning every element in the internal representations is interchangeable. However if you think of an architecture as a puzzle, changing one element to another doesn't always just 'click in' - so the Copilot engine propagates the changes into the adjacent puzzle pieces and continues to reshape them until everything clicks again, ensuring that the result is valid. If it doesn't know how, it'll let you know, and why.
Right now the architectural patterns are curated, but algorithmically tested. The next phase is to combine curation with patterns from the community.
Very cool idea, and sleek execution!
Also, 2 questions that come to mind:
1. Is it based on ChatGPT? How does it ensure there are no hallucinations or that what it produces is correct? 2. Is this open source
We use OpenAI/GPT for NLP only - parsing intent - oversimplifying but normalizing things like "I want a serverless function that connects to RDS" is translated to a JSON schema that says serverless <-> RDS. That's then passed to the InfraCopilot engine which then unpacks what that means into a larger architectural representation (we have an Architecture-as-Code blog post coming soon).
This is open source to a large degree, it's powered by the Klotho engine ( https://github.com/KlothoPlatform/klotho )
Thanks for the explanation!
how does it compare to AWS' Application composer?
AWS Application Composer[0], Brainboard[1] and Cloudmaker[2] are a 1:1 mapping tool between a visual representation and an infra-as-code representation. They're more similar to Scratch[3]. You still need to know what to place to get an outcome you're interested in - If you want to set up a globally low latency static web site, or connect an RDS to a Lambda, you still need to figure out CloudFront, custom domains, VPCs, RDS Proxy, draw it all in, etc. And if you were to change RDS into DynamoDB, you'll have to manually undo/reshape the diagram/topology/IaC because some elements no longer make sense or are needed
InfraCopilot is more akin to Wolfram Alpha, in the sense that it has an intelligence/understanding of architecture. You can use high level design to describe your intent and requirements/constraints, and it will deterministically implement it (this isn't LLMs or ChatGPT). When you attempt low level changes, it will validate that they maintain correctness, because it has an understanding of impacts.
When you reshape elements, it has the understanding of follow-on effects, and how to propagate them into the rest of the architecture, all while staying valid.
[0] https://aws.amazon.com/application-composer/