What Happens Between git push and Production
A deployment is a chain of transformations from source code to a running process, and each transformation can introduce failure.
The starting point
The phrase 'deploy the app' hides a lot of steps. Source code has to be selected, dependencies installed, environment configuration supplied, assets built, database migrations applied when appropriate, and a process started. A reliable deployment makes these steps explicit enough that a failure can be located rather than treated as one giant mysterious operation.
Builds turn source into an artifact
A Git repository is source, not a running application. The deployment environment resolves dependencies, runs the framework build, creates generated output, and prepares the application for execution. If the build environment differs from development, a problem can appear even though the source code is unchanged.
This is why reproducible dependency versions and a clearly defined build command matter. A deployment pipeline should make it possible to understand what artifact was produced from which source revision.
Runtime is a separate problem
A successful build does not guarantee a successful runtime. The process still needs configuration, network access, database connectivity, filesystem permissions, and a way to receive traffic. Logs from the runtime environment are therefore as important as build logs.
The more explicit these stages are, the easier it becomes to decide whether a failure belongs to source code, dependency resolution, build configuration, infrastructure, or runtime configuration.


OPEN
Thoughts on the article.