Continuous Deployment allows teams to get immediate feedback, debug, iterate, and fail fast, ultimately getting a better product into the hands of users faster.
In this talk, Kendra and Celia will talk about the challenges and benefits of continuously deploying their staging environments and how they applied that to their production environment during the development of CockroachCloud. They will discuss their use of:
Iterative development including PR structure and feature decomposition
Pushing all PR to staging environment
Feature Flags to make the customer magic happen
2. THE CLOUD
CONNECTIVITY COMPANY 2
Celia La
Software Engineer
Cockroach Labs
Kendra Curtis
Director of Engineering
Cockroach Labs
3. THE CLOUD
CONNECTIVITY COMPANY 3
DBasS offering of CockroachDB
Web offering to set-up, configure
and monitor the Database.
Background:
What is CockroachCloud?
7. THE CLOUD
CONNECTIVITY COMPANY
Possible Solutions
7
+ Continuous Deployment
+ Feature can be enabled/disable at any
time
+ Risk Mitigation
+ All in one place
- New features may affect existing
application
+ Guaranteed Feature Isolation
- High Maintenance Costs
- Merge Conflicts
Branches Feature Flags
8. THE CLOUD
CONNECTIVITY COMPANY
Common reasons to use Feature Flags
8
● Strategic Rollout (Dark launching, Gradual rollout)
● Continuous Delivery (CD) / Continuous Integration (CI)
● Split testing (AB tests, Engineering KPIs)
10. THE CLOUD
CONNECTIVITY COMPANY
Common Our reasons to use Feature Flags
10
● Strategic Rollout (Dark launching, Gradual rollout)
● Continuous Delivery (CD) / Continuous Integration (CI)
● Split testing (AB tests, Engineering KPIs)
Get immediate feedback & debug/iterate/fail fast
11. THE CLOUD
CONNECTIVITY COMPANY
Strategic Rollout of CockroachCloud features
11
● Ability to turn a feature fully on or off
● Ability to turn on/off for individual organizations
● Ability to turn on/off levers without a code change
Feature Flag Design Needs:
● More granular levers not needed (sufficient to toggle per organization)
Non-Needs:
12. THE CLOUD
CONNECTIVITY COMPANY
Feature Flags for Continuous Delivery / Integration (CD/CI)
12
● All merged PRs merged directly to
master (CI)
● Triggers automatic deploy to staging
● Regular releases to production (CD)
Deployment Flow Feature Flags
● Initial PRs contain new flag, with feature in
following PRs
● Rollout process:
○ Internal Employees/Services
○ 1-2 Beta partners for feedback
○ Increase user until feature is fully on
13. THE CLOUD
CONNECTIVITY COMPANY
Strategic
Feature Rollout
Each flag can have:
● a default value (all
on/off), or
● can be flipped on/off
per organization
Many features gated behind
multiple flags
13
14. THE CLOUD
CONNECTIVITY COMPANY 14
Feature Development for CockroachCloud
Deployment flow (CI / CD) Gradual rollout, feedback (Feature Flags)
15. THE CLOUD
CONNECTIVITY COMPANY
Feature Flags, other design considerations
15
● Easy for developers to create and use new flags
● Ability to quickly turn off flags (without code changes)
19. THE CLOUD
CONNECTIVITY COMPANY
● Continued development of new features
● 40% growth rate in production clusters since our beta launch, as of July 2020
19
Development Timeline, using Feature Flags
● Implemented Feature Flags, Continuous Integration and Deployment (CI/CD)
● Allowed for alpha users, while continuing to build out new features
● Beta launch with MVP feature set
2019
2020
25. THE CLOUD
CONNECTIVITY COMPANY
TINY ICONS
Access all Kong iconography here:
https://drive.google.com/drive/folders/1DZE4TpyEEFtTYvlI0u9f8BJZmnrjhqih?usp=sharing
25
26. THE CLOUD
CONNECTIVITY COMPANY 26
Block Title Icon
Database
DIAGRAMS
Template
Plugin
Access all existing Kong diagrams here:
https://drive.google.com/drive/folders/1TJkhy3TVIkj0Mw-XvAmGo38RF5q8zKqb?usp=sharing