Notes about programming environments and deployment
Environments:
- Staging: test your deployment process/scripting (not your code)
- no developers access, unless they are also sysadmins
- very restricted outbound networking
- mirrors production as best as possible
- Pre-production (optional): test the code in prod env wo/impacting customers
- test app w/prod setting wo/customer interaction
- Production: real live environment
- developers not have access (they can be tempted to fix something)
- deployment should be done wo/developer input
- very limited inbound traffic, generally only the service that being served
PHP
Deployment options:
- rsync
- source control
- PEAR
- os-based
Which should you use?
- something simple: rsync
- multiple dispare platforms: pear
- internal w/minimal dev input: os-based (like. yum/apt)
References:
-
- process automatization with phing
- pack sources in a .tar.gz file
- creat .rpm package
- deploy package to a .rpm repository