1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# Notes towards automating deployment
This is mostly aimed at the hosted-apps folks; deploying packaged software for
end users requires a slightly different approach.
## Assumptions
1. You have one or more _services_ to deploy. (If not, what are you doing
here?)
2. Your services are tracked in _source control_. (If not, go sort that out,
then come back. No, seriously, _now_.)
3. You will be deploying your services to one or more _environments_. An
environment is an abstract thing: think "production", not
"web01.public.example.com". (If not, where, exactly, will your service run?)
4. For each service, in each environment, there are one or more _servers_ to
host the service. These servers are functionally identical. (If not, go pave
them and rebuild them using Puppet, Chef, CFengine, or, hell, shell scripts
and duct tape. An environment full of one-offs is the kind of hell I wouldn't
wish on my worst enemy.)
5. For each service, in each environment, there is a canonical series of steps
that produce a "deployed" system.
|