Skip to content

Instantly share code, notes, and snippets.

@jakubriedl
Last active August 29, 2015 14:14
Show Gist options
  • Save jakubriedl/cae2674f27c0137489ab to your computer and use it in GitHub Desktop.
Save jakubriedl/cae2674f27c0137489ab to your computer and use it in GitHub Desktop.
Concept of new development and deploy flow

Concept of development and deploy flow

  • based on github flow
  • promotes devOps
  • covers all parts of Deming Cycle
  • 4 eyes rule - every task result is seen by at least 4 eyes before deployment

Benefits of this flow

  • smaller releases
  • when its done its on production
  • smaller releases = 30% - 50% less issues in production
  • every task is validated by two persons and one machine
  • it's proven by biggest players on market
  • removes need of the deploy guy

Development Flow - SCRUM compatible

BACKLOG -> TODO -> DOING -> TO REVIEW -> REVIEWING -> DONE

  • BACKLOG - (PDCA) Plan all tasks here
  • TODO - task which has to be done
  • DOING - (PDCA) task under active development
    • developer creates new branch when starts working on it
    • branch is linked with ticket
    • multiple related tickets can have one branch
  • TO REVIEW - task is developed and waiting for review
    • when develper finishes task he/she creates pull-request
  • REVIEWING - (PDCA) QA worker or another developer is reviewing the ticket
    • second worker builds the branch in his environment with staging resources
    • worker validates task, functionality and all quality signs
    • when something is not good enough pull-request is commented and ticket returned to TODO column
    • when everything is ok he merges pull-request to master and moves ticket to done, and code gets deployed to production (PDCA)
  • DONE - finished tasks

Automatic Code Review

  • when pull request is made CI automaticaly run test and validates quality signs such as formating, phpdoc ...
  • when finished message is send to slack
  • there is badge in pull-request which shows if current branch is passing

Deployment

  • is automatic when pull-request is merged to master
    1. build production docker image
    2. image is pushed to Docker Hub
    3. OpsWorks deploy on all running instances is triggered
    4. OpsWorks deploy pulls image from Docker Hub and lunches it
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment