Deployment pipelines describe how a change in your application moves through your infrastructure into production. It lays out all necessary automated and manual steps. Every step that can be automated should be, to make the deployments as productive as possible.
If there's something potentially risky in the pipe we'll build out before pushing that so it can be deployed by itself.
This section talks also about software product development practices.
Less Work, More Production !
See Code Shipping - Continuous (Deployment|Development|Delivery) Generally, the more automated (scripted) the deployment is, the safer. This is actually not because of the automation, but because of an effect of automation. With automated deployment in place, deployment usually becomes a more frequent process, which tends to exercise, expose, and remove sources of risk to a larger extent.
Before being pushed, code is subject to peer review, internal use, and extensive automated testing.
The feature development is done on one branch that must be ahead of master
The developer is responsible for pushing the code and monitoring the system with the help of a global monitoring dashboard.
After the code push, engineers must monitor the site’s behavior and identify any sign of trouble.
git clone –depth 1 grabs the current file state and no history — just what we need for a build. See Git - Clone
if new code is needed to handle the database migrations, it must be deployed first.
If we have a cache, we let the old one fall out naturally with time.
Deployments can show up in the timeline of corresponding pull requests through the GitHub API.
Cycle Time is the total elapsed time to move a change from the beginning to the production.
- Heaven is a rails app that receives Deployment events from GitHub and deploys your code.
The only change between environment should be the configuration. See 12 factor app where they store config in environment variables
Inventing/improving developer workflows should be an area of of expertise and a job family in software engineering.