Todo

Deployment involves the following:

  1. Deployment database to keep track of all host machines, and what applications are hosted where
    1. Using the database schema from Component & Deployment Database - LCLSControls - SLAC Confluence (stanford.edu).
  2. Ansible for deployment automation, system configuration, rollback to previous versions
  3. Github code reviews for pull requests / official tags
  4. CLI to initiate deployment 

Types of Deployment

Developer/Test Deployment

What - When a developer needs to host their app on a certain test stand(s). So, they can test functionality. 
When - Anytime a developer wants to test, or automatically done on pushes to main branch / pull requests
How - Options:

  1. Through the CLI, using 'bs run deployment', then once confirmed app deployed successfully, then any automated tests are automatically ran

Production/Official Deployment

What - When an app is updated for bug fix / feature, code reviewed, tested through build system, scheduled in PAMM, is now ready to deploy in production.
When - When an app is code reviewed, tested, scheduled to release. 
How - Options:

  1. Through the CLI, using 'bs run deployment prod', once deployed, but not replacing the current app, because some tests will be done while app is in production. If they pass then the latest tag will become the official tag, and will be officially deployed and recorded to deployment database. 
  • No labels