how to deploy with confidence

14
How to continuously deploy with confidence. Success story of wego.here.com Vadim Ivanov Event Title | August 31, 2016

Upload: vadim-ivanov

Post on 07-Feb-2017

31 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: How to deploy with confidence

How to continuously deploy with confidence. Success story of wego.here.comVadim IvanovEvent Title | August 31, 2016

Page 2: How to deploy with confidence

Source Control Server

… …

Year

Commits

Lines added

Lines removed

2016

2116 733408 326301

2015

4477 253713 254151

Page 3: How to deploy with confidence

AgileYou're only as #agile as your ability to ship frequently, and without drama.

Page 4: How to deploy with confidence

PR deployments

589 in 2015 721 in 2016

Page 5: How to deploy with confidence

How do we do it

• Development rules + code review• Feature flags + progressive rollouts• Tests: FE UT, BE UT, Integration tests, UI tests, Smoke tests• A/B tests• KPI gate: performance regression tests• 0 downtime blue green deployments• Analytics + monitoring• Continuous deployment

Page 6: How to deploy with confidence

Development rules + code review

• New feature only under Feature flag• Every new feature has a rollout schedule starting from 1%• Feature can not be deployed without tests written• Code style + pre-commit git hooks• No code review for bug fixes without UT

Page 7: How to deploy with confidence

Tests + performance regression

• FE UT: 3552, 87% code coverage• BE UT: 690• Integration tests: 195• UI tests: 495 Scenarios• Smoke tests: a subset of UI tests running against real API on dev,

staging, pr envs• Web Page Performance: Load time, fully loaded, start render, speed

index

Page 8: How to deploy with confidence

A/B tests

• Currently running 15 A/B tests• NPS scoring to evaluate test success

Page 9: How to deploy with confidence

Deployment

• Zero downtime blue green deployment• Continuous Deployment:

~47 mins from commit to production

Page 10: How to deploy with confidence

Build pipeline (Jenkins Pipeline)

Page 11: How to deploy with confidence
Page 12: How to deploy with confidence

Analytics + monitoring

• Keep an eye after deployment• Real-time metrics for: system, application, business• Quality alerts

Bug introduced Bug fixed

Page 13: How to deploy with confidence

Conclusion

• Stimulates a culture of quality, the mindset to always keep the product in releasable state

• Low risk releases: small change -> small risk; zero-downtime deployments that are undetectable to users

• Faster time to market: Value delivered immediately to the user when it's ready; Quick feedback on product changes

• Higher quality: automated tools to discover a regression; easy to rollback; easy to identify bugs

• Better products: A/B testing enable us to take a hypothesis-driven approach to product development

• Happier teams

Page 14: How to deploy with confidence

Thank youContactVadim [email protected]

HERE