Production-like development environments

How many times have you had to rollback, or fix a push, after a problem was only found in production?

These usually fit into one of the following categories:

  • Dependencies are mocked out when developing the feature, and real dependencies end up having a different behavior.
  • Datasets or database implementations differ, leading to different behavior.
  • The runtime environment is isolated, you don't have the same set of tools or global configuration available in your workstation.
  • Networking differs: locally you may hit a server directly, while in production your request is routed through various reverse proxies, encountering validating and transformation before hitting your server.

The list goes on.

Namespace helps you bridge this gap -- while recognizing the trade-offs in complexity and dollar cost -- by making it easier to use production-like environments for development. Whether it's by deploying to a similar container system (e.g. Kubernetes), replicating your networking setup in parts or as a whole, by making it simpler to instantiate datastores that follow production data, and others.