Rails Continuous Delivery
Stack & Plan
Continuous Delivery
Requirements -> Go live -> After Live -> Requirements -> ...
Differences between CD/CD?
CD: Continuous Deployment
High frequency
High investment
High capability
How?
Test First
RSpec: unit / spec
*Minitest: unit / spec / mock / benchmark
Capybara: acceptance test for web application
TDD is your friend
Non-Functional Test
Deployment/Performance/Security
Environments
Dev -> Prod
Environments
Prod A: Dev -> CI -> Staging
Prod B: Dev -> CI -> Staging -> QA/Showcase/E2E -> Production
Prod C: Dev -> CI -> Staging
......
From the cloud, To the cloud
Vagrant / Puppet / Chef / Ansible
CI as Core
Essentials
1. Run CI Once you commit any changes
2. Never go home until CI all passed
More than CI: Pipelines
Pipelines
UT/FT/Package -> Staging -> QA/Showcase/E2E -> Production
Capistrano
Thoughts
Thoughts +
1. Moving forward to Ansible & Salt
Moving away from puppet to Saltstack or Ansible?
Rails Continuous Delivery
By hanyi8000
Rails Continuous Delivery
- 1,728