An automated deployment system which is similar to AWS CodeDeploy but is hostable inside an enterprise.
The target is to minimize the manual prone errors of code deployment.
The project will have the following componemts:
- Deployment Daemon (to run under root role so it can restart servers).
- Deployment Client (which can communicate with the server giving it the scripts to run).
- Deployment Interface (to see the progress and it can be used to deploy certain code versions).
The deployment configuration will be based on YAML Format.
The client should be callable from CI systems (like Jenkins) to deploy the code after a successful build.
##Events:##
The following events will be handled by the system:
- beforeInstall: This event will run after the code is downloaded, normal will be used to stop servers/decrypt files
- Install: doing the deployment operation itself
- afterInstall: Actions required after Installing like reloading a server.
- Validation: An optiomal step to make sure that everything is OK.
Every event should have the following format:
events:
event-name
- location: script-location
runas: user-name
- pyyaml (>3.0)
- pycrypto
- django 1.8.1+
- django-table-2
- django-table-report