SlideShare a Scribd company logo
Trunk Based Development
&
Feature Toggle
- Pre-commit Code Review & Test
Toggle Use Case
• Business Toggle:
๏ A/B Testing
• Low Risk Release and No Downtime
๏ Canary Release, Dark Launch
๏ DB/Schema Migration
• Why μService Need FF
๏ Decouple Feature Rollout from Code Deployment
Canary Release
Dark Launch
DB/Schema
Migration
src: LaunchDarkly
What’s TBD
Decoupling
Deployment and Release
Trunk-Based Development and Toggling
Re-planning
src: Paul Hammant
What’s the common part of previous toggling
scenarios in order to achieve continuous delivery?
‘‘Get good with build-flags and toggles’’
‘‘TBD is the best way to implement CI’’
‘‘TBD enable CD’’
~ Paul Hammant
‘‘LinkedIn’s big switch to continuous deployment
has been linked to very concrete and visible
financial success…’’
~ Kevin Scott, the senior VP of engineering
Trunk-Based Development and Toggling
Trunk-Based Development and Toggling
src: Paul Hammant
Best Practices
• Feature Toggles have a cost
๏ More complex code, more testing, maintenance overhead
• Feature Toggles should be regarded as an investment
• Implement carefully to minimize complexity and technical debt
• Have a good overview over which feature toggles exist, for what
purpose, what state they are in and why
• Have a process for removing unnecessary feature toggles
๏ Most of them should be temporary
• Try to create mutually exclusive toggles and control number of toggles
ref: https://www.slideshare.net/TAlexanderLystad/feature-toggling-61333705
Here is the pre-commit verification to rescue!!
Pre-Commit Verification
• Build from local diff, no branch created on git
server required
• Everyone loves fail in private, abandon your
revision and start over as wish
• Encourage to check in often
Pre-Commit Verification
Pre-Commit Verification
Declarative Pipeline
Syntax Checking
• Immediate runtime syntax checking with explicit error messages.
• API endpoint for linting Jenkinsfiles.
• CLI command to lint Jenkinsfiles.
Docker Pipeline Plugin Integration
• Run all stages in a single container.
• Run each stage in a different container.
Easy Configuration
• Quickly define parameters for your pipeline.
• Quickly define environment variables and credentials for your pipeline.
• Quickly define options (such as timeout, retry, and build discarding) for your pipeline.
Conditional Actions
• Send notifications or take actions depending upon success or failure.
• Skip stages based on branches, environment, or other Boolean expressions.
Iterate Quickly & Shift Left
ref:
Trunk-Based Development and Toggling
Trunk-Based Development and Toggling

More Related Content

PDF
Trunk-Based Development
PPTX
Trunk Based Development in the Enterprise - Its Relevance and Economics
PPTX
Git branching strategies
PDF
Git flow Introduction
PPTX
Jenkins CI
PDF
Trunk based development for Beginners
PDF
Holistic testing in DevOps
PDF
Git Series. Episode 3. Git Flow and Github-Flow
Trunk-Based Development
Trunk Based Development in the Enterprise - Its Relevance and Economics
Git branching strategies
Git flow Introduction
Jenkins CI
Trunk based development for Beginners
Holistic testing in DevOps
Git Series. Episode 3. Git Flow and Github-Flow

What's hot (20)

PPTX
Agile Training: Roles and Expectations
PDF
Gitlab ci-cd
PDF
Git flow
PDF
GitOps with ArgoCD
PPTX
Kubernetes and container security
PDF
What's New for GitLab CI/CD February 2020
PDF
Trunk based development
PDF
CD using ArgoCD(KnolX).pdf
PDF
Intro to Github Actions @likecoin
PDF
An introduction to Behavior-Driven Development (BDD)
PPTX
Azure Pipelines
PPTX
Git 101 for Beginners
PPTX
Git - Basic Crash Course
PDF
CI with Gitlab & Docker
PDF
Agile testing principles and practices - Anil Karade
PDF
Git real slides
PPTX
Git One Day Training Notes
PPTX
CI/CD with GitHub Actions
PDF
Gitlab, GitOps & ArgoCD
PDF
Git and github 101
Agile Training: Roles and Expectations
Gitlab ci-cd
Git flow
GitOps with ArgoCD
Kubernetes and container security
What's New for GitLab CI/CD February 2020
Trunk based development
CD using ArgoCD(KnolX).pdf
Intro to Github Actions @likecoin
An introduction to Behavior-Driven Development (BDD)
Azure Pipelines
Git 101 for Beginners
Git - Basic Crash Course
CI with Gitlab & Docker
Agile testing principles and practices - Anil Karade
Git real slides
Git One Day Training Notes
CI/CD with GitHub Actions
Gitlab, GitOps & ArgoCD
Git and github 101
Ad

Similar to Trunk-Based Development and Toggling (20)

PDF
Feature Toggle
PPTX
Andreas Grabner - Performance as Code, Let's Make It a Standard
PDF
Getting to Walk with DevOps
PPTX
Continuous Integration - Mobile Practice
PPTX
ASIC design verification
PPTX
Infrastructure as Code Presentation v5.pptx
PPTX
CI CD OPS WHATHAVEYOU
PDF
Dropwizard and Groovy
PPTX
Role of Pipelines in Continuous Delivery
PPTX
Continuous Integration as a Way of Life
PDF
Con-way Case Study: Optimizing Application Integration Software Development L...
PDF
Микросервисы со Spring Boot & Spring Cloud
PDF
Continuous Delivery: How RightScale Releases Weekly
PPTX
Jenkins Pipeline 101 and TCI - presentation and workshop
PDF
Mini-Track: Lessons from Public Cloud
PPTX
Migrating from oracle soa suite to microservices on kubernetes
PDF
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
PPT
Conway Case Study - Optimizing Application Integration SDLC
PPTX
Continuous Deployment into the Unknown with Artifactory, Bintray, Docker and ...
PPTX
Infrastructure as Code for Network
Feature Toggle
Andreas Grabner - Performance as Code, Let's Make It a Standard
Getting to Walk with DevOps
Continuous Integration - Mobile Practice
ASIC design verification
Infrastructure as Code Presentation v5.pptx
CI CD OPS WHATHAVEYOU
Dropwizard and Groovy
Role of Pipelines in Continuous Delivery
Continuous Integration as a Way of Life
Con-way Case Study: Optimizing Application Integration Software Development L...
Микросервисы со Spring Boot & Spring Cloud
Continuous Delivery: How RightScale Releases Weekly
Jenkins Pipeline 101 and TCI - presentation and workshop
Mini-Track: Lessons from Public Cloud
Migrating from oracle soa suite to microservices on kubernetes
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Conway Case Study - Optimizing Application Integration SDLC
Continuous Deployment into the Unknown with Artifactory, Bintray, Docker and ...
Infrastructure as Code for Network
Ad

Recently uploaded (20)

PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PPTX
ai tools demonstartion for schools and inter college
PDF
System and Network Administraation Chapter 3
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
ISO 45001 Occupational Health and Safety Management System
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
Introduction to Artificial Intelligence
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Nekopoi APK 2025 free lastest update
PDF
top salesforce developer skills in 2025.pdf
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Operating system designcfffgfgggggggvggggggggg
Odoo POS Development Services by CandidRoot Solutions
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
ai tools demonstartion for schools and inter college
System and Network Administraation Chapter 3
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PTS Company Brochure 2025 (1).pdf.......
How Creative Agencies Leverage Project Management Software.pdf
Odoo Companies in India – Driving Business Transformation.pdf
Softaken Excel to vCard Converter Software.pdf
ISO 45001 Occupational Health and Safety Management System
ManageIQ - Sprint 268 Review - Slide Deck
Design an Analysis of Algorithms I-SECS-1021-03
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Introduction to Artificial Intelligence
Which alternative to Crystal Reports is best for small or large businesses.pdf
Nekopoi APK 2025 free lastest update
top salesforce developer skills in 2025.pdf
Wondershare Filmora 15 Crack With Activation Key [2025
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf

Trunk-Based Development and Toggling

  • 1. Trunk Based Development & Feature Toggle - Pre-commit Code Review & Test
  • 2. Toggle Use Case • Business Toggle: ๏ A/B Testing • Low Risk Release and No Downtime ๏ Canary Release, Dark Launch ๏ DB/Schema Migration • Why μService Need FF ๏ Decouple Feature Rollout from Code Deployment
  • 10. What’s the common part of previous toggling scenarios in order to achieve continuous delivery?
  • 11. ‘‘Get good with build-flags and toggles’’ ‘‘TBD is the best way to implement CI’’ ‘‘TBD enable CD’’ ~ Paul Hammant
  • 12. ‘‘LinkedIn’s big switch to continuous deployment has been linked to very concrete and visible financial success…’’ ~ Kevin Scott, the senior VP of engineering
  • 16. Best Practices • Feature Toggles have a cost ๏ More complex code, more testing, maintenance overhead • Feature Toggles should be regarded as an investment • Implement carefully to minimize complexity and technical debt • Have a good overview over which feature toggles exist, for what purpose, what state they are in and why • Have a process for removing unnecessary feature toggles ๏ Most of them should be temporary • Try to create mutually exclusive toggles and control number of toggles ref: https://www.slideshare.net/TAlexanderLystad/feature-toggling-61333705
  • 17. Here is the pre-commit verification to rescue!!
  • 19. • Build from local diff, no branch created on git server required • Everyone loves fail in private, abandon your revision and start over as wish • Encourage to check in often Pre-Commit Verification
  • 21. Declarative Pipeline Syntax Checking • Immediate runtime syntax checking with explicit error messages. • API endpoint for linting Jenkinsfiles. • CLI command to lint Jenkinsfiles. Docker Pipeline Plugin Integration • Run all stages in a single container. • Run each stage in a different container. Easy Configuration • Quickly define parameters for your pipeline. • Quickly define environment variables and credentials for your pipeline. • Quickly define options (such as timeout, retry, and build discarding) for your pipeline. Conditional Actions • Send notifications or take actions depending upon success or failure. • Skip stages based on branches, environment, or other Boolean expressions.
  • 22. Iterate Quickly & Shift Left ref: