Comparison
Environment parityvsTwelve-factor app
Environment parity
it worked in staging and broke in production, because staging had one replica, no mesh and a different database size.
How closely lower environments resemble production in configuration, topology, data shape and scale. Perfect parity is unaffordable, so the useful discipline is knowing exactly where the differences are and which classes of bug those differences will therefore let through. Undocumented divergence is what turns a green staging run into false confidence.
Full entry →Twelve-factor app
configuration comes from the environment, logs go to stdout, and the same image runs in staging and production unchanged.
A set of conventions for applications that are going to be run as disposable processes by a platform: config in the environment, backing services as attached resources, stateless processes, logs as a stream. It predates containers and describes them almost exactly, which is why it is still the fastest way to explain why an application resists being containerised. The failures it names are concrete — a config file baked into the image, a process that writes logs to a path, a session held in local memory.
Full entry →