luisfmelo
4/2/2018 - 3:39 PM

best_practices

  • Implement CI/CD pipelines
    • Gitlab CI
      • Use Runners
    • Github
      • Use TravisCI or others
    • Necessary stages
      • Build Code
      • Run Tests
        • Code quality
        • Unit testing
        • End-to-end testing (front-end tests)
      • Deploy
        • On develop branch deploy to staging server
        • On master branch deploy to production server
  • Deployment Options
    • AWS (recommend using beanstalk service)
    • Heroku also a good choice
    • Nanobox (hard to add to gitlab ci, perfect on github)
  • Protect master and develop branchs, only allow merge requests which need to be peer reviwed before aproving the request
  • Use linters on IDEs
  • Use a diferente database for development and production environments
  • USE envionment variables fo sensitive data, keep this on a config file
  • Use docker images for better compatibility and easy configuration