Borg, Omega, and Kubernetes (ACM Queue)
Five Google developers share the lessons from ten years of containerdevelopment in thisACM Queue article. "To cope with these kinds of requirements, configuration-managementsystems tend to invent a domain-specific configuration language that(eventually) becomes Turing complete, starting from the desire to performcomputation on the data in the configuration (e.g., to adjust the amount ofmemory to give a server as a function of the number of shards in theservice). The result is the kind of inscrutable 'configuration is code'that people were trying to avoid by eliminating hard-coded parameters inthe application's source code. It doesn't reduce operational complexity ormake the configurations easier to debug or change; it just moves thecomputations from a real programming language to a domain-specific one,which typically has weaker development tools (e.g., debuggers, unit testframeworks, etc)."