-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Figure out graph queryability #30
Comments
This tags the relevant TODO with the work item #30.
This documents our latest thinking on Mu languages. At a high level, there are three classes of language at play: 1. Mu Metadata Languages (MuML): these are the high-level language subsets that a programmer uses to specify Mu modules, etc. Examples include MuJS, MuPy, MuRu, and MyGo, each representing a deterministic subset of JavaScript, Python, Ruby, and Go, respectively. 2. Mu Intermediate Language (MuIL): this is the intermediate form that all of the above compile down to. It is capable of representing computations like functions, conditionals, and basic expressions like string concatenation, etc. This is fully statically analyzable and can be used to create deterministic plans and topology graphs. 3. Mu Graph Language (MuGL): this is the "final" form in which any Mu service topology is represented. It never contains computations and is merely a metadata description of services-as-nodes, dependencies-as- edges, and all known properties. In the planning form, it may contain "holes" because output properties aren't known until execution has occurred, while in the actual applied form, those holes have been plugged. MuGLs can be diffed, and a MuGL can be generated from an existing live environment (for bootstrapping and/or drift analysis). There are several TODOs in here, but this is braindump of where we're at.
This came up in a different place just now: resource providers. The usage of This would be tough to add after the fact (because it changes the internal behavior of resource providers), and so I'm adding to 0.3 so we at least discuss it. |
I'm repurposing this work item to cover only the graph querying aspects -- presumably part of the service API -- and we will continue using #83 for resource APIs specifically. |
@hausdorff implemented a prototype in #2502 of adding checks into the Pulumi deployment process to block or warn on based on rules related to the desired state of a Pulumi deployment. This addresses a few of the issues above, as well as other "gating" scenarios. This issue is rather old, and doesn't really capture the paths we expect to go down going forward. I suspect we should close this out and open new issues to track the concrete issues we are expect to invest in over coming months. |
We are now pursuing this as part of #2601. |
A scenario to consider is queryability of resource graphs. This covers multiple scenarios:
Furthermore, this could be exposed in a bot-like interface (text or speech), for real bot-driven IT/configuration management workflows.
There are many graph technologies to consider, however we should keep this in mind as we design.
The text was updated successfully, but these errors were encountered: