aboutsummaryrefslogtreecommitdiff
path: root/_slides
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2020-10-11 06:06:59 -0300
committerEuAndreh <eu@euandre.org>2020-10-11 11:08:52 -0300
commit0a8cb2d44554a98a8859efad550278737888a796 (patch)
treeab36c211e97b3cdbbf408188c35be9758f2ba42f /_slides
parentrm drafts/til.md (diff)
downloadeuandre.org-0a8cb2d44554a98a8859efad550278737888a796.tar.gz
euandre.org-0a8cb2d44554a98a8859efad550278737888a796.tar.xz
rollout slides: Add tweaked version, after improving post presentation
Diffstat (limited to '_slides')
-rw-r--r--_slides/2020-10-09-rollout-feature-flag-experiment-operational-toggle.slides (renamed from _slides/2020-10-10-rollout-feature-flag-experiment-operational-toggle.slides)39
1 files changed, 21 insertions, 18 deletions
diff --git a/_slides/2020-10-10-rollout-feature-flag-experiment-operational-toggle.slides b/_slides/2020-10-09-rollout-feature-flag-experiment-operational-toggle.slides
index cb374f4..7c78150 100644
--- a/_slides/2020-10-10-rollout-feature-flag-experiment-operational-toggle.slides
+++ b/_slides/2020-10-09-rollout-feature-flag-experiment-operational-toggle.slides
@@ -1,6 +1,6 @@
---
title: Rollout, feature flag, experiment, operational toggle
-date: 2020-10-10
+date: 2020-10-09
layout: slides
lang: en
ref: rollout-feature-flag-experiment-operational-toggle
@@ -104,6 +104,8 @@ Relevant as long as the new code is being developed
Lives for as long as the code is in production.
+It feels like a system-level circuit breaker.
+
---
We now know about the types
@@ -114,28 +116,28 @@ We now know about the types
# backend
-1. **rollout**: k8s, blue/green, canary pipeline and `common-rollout`
+1. **rollout**: k8s blue/green, canary and `common-rollout`
2. **feature flag**: `common-rollout` and datasets
-3. **operational toggle**: `common-rollout`
-4. **experiment**: `common-xp`
+3. **experiment**: `common-xp`
+4. **operational toggle**: `common-rollout`
???
-rollout: k8s, common-rollout
-
This is a bit why common-rollout isn't called *common-feature-flag*: it was
-initially designed with backend usage of *rollouts* in mind.
+initially designed with backend usage of mostly *rollouts* in mind, and just a
+bit *feature flags*.
-feature flag:
+Avoid using configuration for doing operational toggles: it is less dynamic, so
+it defeats the purpose.
---
# frontend
1. **rollout**: CDN and page refreshes
-2. **feature flag**: percentages and maybe IPs (no `:customer/id` on [www.nubank.com.br](www.nubank.com.br))
-3. **operational toggle**: via dynamic backend control
-4. **experiment**: via dynamic backend control
+2. **feature flag**: percentages and maybe IPs (no `:customer/id` on the website)
+3. **experiment**: via dynamic backend control
+4. **operational toggle**: via dynamic backend control
---
@@ -143,8 +145,8 @@ feature flag:
1. **rollout**: app stores
2. **feature flag**: via dynamic backend control
-3. **operational toggle**: via dynamic backend control
-4. **experiment**: via dynamic backend control
+3. **experiment**: via dynamic backend control
+4. **operational toggle**: via dynamic backend control
---
@@ -193,13 +195,14 @@ But it is easy to fallback to "reload the page and try again".
# Costs
- more complex code
-- nested flags combine exponentially
+- compatibility with old app versions
+- nesting is exponential
---
# Benefits
-- dynamically choose code paths for each customer
+- dynamicity
---
@@ -293,7 +296,7 @@ Use `:app-version` with `:min-version` instead
# ***Always*** rely on a feature flag on the app
-Hotfixes and expedited releases is a thing of the past
+Hot fixes and expedited releases is a thing of the past
???
@@ -314,8 +317,8 @@ You should ask yourself:
References:
-1. these slides: https://euandre.org/slides.html
-2. [prose version of this presentation]({% link _articles/2020-10-10-feature-flags-differences-between-backend-frontent-and-mobile.md %})
+1. these slides: [euandre.org/slides.html]({% link slides.md %})
+2. [prose version of this presentation]({% link _articles/2020-10-12-feature-flags-differences-between-backend-frontent-and-mobile.md %})
3. ["Feature Toggles (aka Feature Flags)"](https://martinfowler.com/articles/feature-toggles.html),
by Pete Hodgson
4. [Continuous integration vs. continuous delivery vs. continuous deployment](https://www.atlassian.com/continuous-delivery/principles/continuous-integration-vs-delivery-vs-deployment),