3 ms·
> "A System with 1000+ Microservices at Planet Scale described As Code 100% Declaratively" There's a fundamental problem here that I don't believe a (taking Pu
by joatmon-snoo 7y ago
> "A System with 1000+ Microservices at Planet Scale described As Code 100% Declaratively"
There's a fundamental problem here that I don't believe a (taking Pulumi at face value) better config language solves: you are working with an inherently complex system, and configs are only one part of that complexity.
Doesn't matter if you have 1k+ microservices, a monolith with 1k+ RPC services, or something in between - at that scale, you have accumulated such complexity in the system that configs are just one facet of the problem.
I do think it's an interesting premise (but I wonder if they've thought about the zip bomb problem, which has persisted across many, many new technologies, including yaml - at some level, you want to try to make guarantees about config parsing runtime requirements - cpu, memory, disk). An idea that's bounced around my head before is letting folks define small programs - Java, Python, whatever - to generate configs, and use static analysis to encourage hermeticity/reproducibility/etc (e.g. disallow random, disallow concurrency, no envvar deps).
A similar, but related problem: people very frequently write configs such that you could change settings x, y, z using this one line, often for the sake of comprehensibility/readability. But we have no way of writing tests for this- all you can do is hope whoever does the code review keeps that in mind.