The talk about continues delivery for front-end engineers.
- Prelude: how did we write software
- Watefall: dev -> integration -> qa -> deploy
- Scrum: short sprints -> qa -> deploy
- Why it sucks?
- Long release cycle: 4 releases/year at most
- Inability to change: we push features our customers don't need
- Lost competition and time to market
- Continuous Delivery at Wix * Deployble artifact after every commit * 50-100 deploys/day * Developers deploy into production * CD is a culture/mindset
- Let the journey begin
- Automation is the key
- NPM & Bower: package registries with private features
- Yeoman: scaffolding generator
- Wix-angular-generator
- Test Driven Development
- Why?
- Manual QA is expensive
- Better code
- Faster development
- No QA on the server side
- How?
- Write you tests first, see them fail
- Write code
- Run tests, see them passed
- Do again
- Tools
- Karma unit test runner
- AngularJS
- Integration test w/ Protractor
- Why?
- Continues Integration
- Github
- JetBrains' Team City
- Grunt & Wix Gruntfile
- Sauce Labs
- Deploy often
- Continuous Delivery is a risk management: deploys * probability of mistake * cost of mistake
- Waterfall is risky
- CD 4 times less risky than watefall
- Lifecycle
- Projects and versions
- Actions: RC & GA
- Monitoring
- Business Intelligence
- Analyze user behavior
- Report about every significant action
- Alerts
- Performance w/ New Relic
- Browser performance
- JS errors before user start complaining
- Alerts
- Business Intelligence
- Feature Toggles
- It is an
if else
statement in code - Commit unfhinished code
- Rewrite and refactor
- FT overrides
- It is an
- A/B Tests
- Divide and meauser (package picker story)
- Gradual release
- Guarantee consistency
- Petri Experiments
- Automation is the key
- Coda
- CD is a culture
- We need to teach it