Skip to content

Deployment Pipeline Notes

Sam Joseph edited this page Mar 15, 2018 · 1 revision

Deployment Pipeline

Production Servers

https://www.petsworkforce.com --> master branch

(production data) (production settings) (production mode)

Staging Servers

https://staging.petsworkforce.com ---> staging branch

(production-like data) (production-like settings) (production mode)

Develop Servers

https://develop.petsworkforce.com ---> development branch

(random data on it) (random settings) (production mode)

Development machine

localhost:3000 ---> development branch or feature/bugfix branch

(random data on it) (random settings) (development mode)

Glossary

Continuous Integration --> automated running of the tests Automated Deployment --> tests pass then deployment Continuous Delivery/Deployment --> pass things about the pipeline automatically

API - Application Programming Interface (programmatic rather than UI)

codebase architecture (e.g. Rails MVC)

DIFFERENT OPERATIONS

working on a new feature

  1. check out latest version of develop 1a) copy to a fork
  2. write tests
  3. make changes

submitting a new feature

  1. get it all working
  2. submit pull request to development branch
  3. review from PM and peers
  4. gets merged in

deployment

  1. test will rerun
  2. deployed to the development server
  3. manual checks
  4. rebase develop into staging
  5. kick of a test run on the staging branch
  6. if passes goes to staging
  7. manual test
  8. production deploy

TroubleShooting

  1. error on production
  2. rollback production to previous release
  3. analysis
  4. tweak the staging settings and data to replicate the error on staging
  5. analysing locally - ultimately deploy fixes to staging
  6. once fixed, do the production deploy again

LetsEncrypt Notes

the right certificates in the right place

  • certificates are free
  • challenge has to be responded to (string has to be delivered to an endpoint, verification returned) --> https will then working --> has to be responded to from the machine in question