A computer system, comprising one or more processors, one or more memories, and one or more computer readable hardware storage devices, said one or more hardware storage device containing program instructions executable by the one or more processors via the one or more memories to implement a method for providing debug information associated with computer software executing in a production container, said method comprising:
- replicating, by the one or more processors, the production container as a debug container;
- executing, by the one or more processors, the computer software in the production container and the debug container, wherein said executing the computer software in the production container and the debug container comprises executing the computer software in the production container with assertions disabled and executing the computer software in the debug container with assertions enabled, wherein each assertion comprises an assert statement that checks a Boolean condition and does nothing if the Boolean condition is true, but immediately terminates an executing program if the Boolean condition is false;
- processing, by one or more processors, requests via:
- a gateway sending each request to the computer software executing in the production container, said gateway replicating each request sent to the computer software executing in the production container, said gateway sending each replicated request to the corresponding computer software executing in the debug container, said computer software executing in the production container executing the requests received from the debug container, said corresponding computer software executing in the debug container executing the replicated requests received from the debug container;
- storing, by the one or more processors, the requests from the computer software executing in the production container together with responses to the stored requests;
- storing, by the one or more processors, debug information generated by the corresponding computer software executing in the debug container;
- debugging, by the one or more processors using the stored debug information generated by the computer software executing in the debug container, the computer software executing in the production container.