Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Continuous Delivery in Motion
Search
Avinash Chugh
May 07, 2016
Programming
150
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Continuous Delivery in Motion
The deck we used for the XConf Jaipur 2016.
Avinash Chugh
May 07, 2016
More Decks by Avinash Chugh
See All by Avinash Chugh
Platform Thinking - Bringing Agility to Business
avinashchugh
0
45
Embracing the changing technology paradigms
avinashchugh
0
50
product thinking is problem solving.
avinashchugh
0
160
The anatomy of a platform.
avinashchugh
0
120
Evolutionary Enterprise Architectures
avinashchugh
0
66
seven tips to effective writing
avinashchugh
0
240
clean code: four rules of simple design
avinashchugh
5
1.2k
micro services, yotta benefits
avinashchugh
1
210
managing build artifacts with nexus
avinashchugh
0
110
Other Decks in Programming
See All in Programming
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
190
なぜ型を書くのか? TSKaigi2026で改めて考える #tskaigi_smarthr
kajitack
0
110
エンジニア向け会社紹介/Findy Company Profile
findyinc
6
350k
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
580
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
130
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
11
6k
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
3
720
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
250
Webフレームワークの ベンチマークについて
yusukebe
0
170
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.7k
さぁV100、メモリをお食べ・・・
nilpe
0
150
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
550
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
590
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
The browser strikes back
jonoalderson
0
1.3k
How to make the Groovebox
asonas
2
2.2k
Rails Girls Zürich Keynote
gr2m
96
14k
Into the Great Unknown - MozCon
thekraken
41
2.6k
Docker and Python
trallard
47
3.9k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
250
The Spectacular Lies of Maps
axbom
PRO
1
820
GraphQLとの向き合い方2022年版
quramy
50
15k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
740
Transcript
CONTINUOUS DELIVERY IN MOTION Avinash Chugh & Praveer Gupta 1
AGENDA 2 ▪The business case ▪A typical delivery pipeline ▪Putting
it into practice
THE BUSINESS CASE 3
WHAT DOES IT TAKE FOR A BUSINESS TO SUCCEED 4
Faster time to market Being responsive to customer needs
TRUE AGILITY MEANS 5 Collaboration Rapid response to change Working
software
CONTINUOUS DELIVERY 6 Frequent Releases Reliable Releases
PERILS OF LONG RELEASE CYCLES 7 1 1 2 1
2 3 4 1 2 3 Release Time Unreleased changes = risk Risk Value
BENEFITS OF FREQUENT RELEASES 8 1 2 3 4 1
1 2 1 2 3 Release Release Release Released changes = value
9 HOW CAN I FREQUENTLY RELEASE SOFTWARE HOW CAN I
BUILD SOFTWARE INCREMENTALLY HOW CAN I CONFIDENTLY RELEASE NEW SOFTWARE
10 Release Iteration Story Commit MODERN DEVELOPMENT CYCLE
11 Series of commits Release MANY COMMITS FORMING A RELEASE
Release candidates Series of commits WHAT IF EACH COMMIT WERE
A RELEASE Releases on demand
DELIVERY PIPELINE 13
A DELIVERY PIPELINE 14 App Service Library
2. CI server checks out & compiles code 4. Code
analysis 5. Create & publish artifact 15 3. Unit tests 1. Developer commits code to SCM Commit Stage COMMIT STAGE
16 2. Retrieve artifact 4. Run smoke tests 5. Run
acceptance tests 3. Deploy artifact 1. Prepare environment Acceptance Stage ACCEPTANCE STAGE
17 2. Retrieve artifacts 4. Run smoke tests 3. Deploy
artifacts 1. Prepare environment Deploy Stage DEPLOY STAGE One-click deployments
1 2 3 4 5 6 A LOT HAPPENS BEFORE
A RELEASE 18 Regression testing User Acceptance Integration Infrastructure Setup Performance testing Security Audit
Increasing confidence Faster feedback SHORTER RELEASE CYCLE 19 Commit Live
TESTING PYRAMID 20 End to end – business facing Localized
– technology facing ▪Slower feedback ▪Higher cost of change
DEVELOPMENT IN SILOS 21 Merge Merge Trunk Anti-pattern: Feature branching
LOW REUSE AND MERGE ISSUES 22 Merge Merge Trunk 2
2 3 4 2 3 1 1 1 1 4 5 2 3 1 2 1 3 2 1 1 4 3 2 1 4 3 2 1 4 5 2 3
COLLABORATIVE DEVELOPMENT 23 Trunk 1 2 3 4 5 1
1 3 4 2 4 5 2 1 3 2 4 3 Key principle: Continuous Integration
CONTINUOUS INTEGRATION PRACTICES 24 ▪ One component, one repository ▪
Everyone commits to trunk every day ▪ No branches
25 CD Tools IAAS PAAS Mobile Systems Delivering software CONTINUOUS
DELIVERY IN DIVERSE CONTEXTS
CD IN PRACTICE 26
MANAGING LARGE CODE BASES 27 ▪ Dependency management ▪ Service
Oriented Architectures ▪ Microservices
RELEASING INCOMPLETE WORK 28 [featureToggles] wobblyFoobars: true flightyForkHandles: false Config
File <toggle name=wobblyFoobars> ... various UI elements </toggle> some.jsp forkHandle = (featureConfig.isOn(‘flightlyForkHandles)) ? new FlightyForkHander(aCandle) : new ForkHandler(aCandle) other.java Pattern: Feature toggles
GUIDELINES FOR FEATURE TOGGLES 29 ▪ Use them only when
needed ▪ Prefer feature hiding ▪ Remove toggles once feature is live
MAKING BIG CHANGES 30 Application New Library Library Pattern: Branch
by abstraction
31 Interface implements Application New Library Library MAKING BIG CHANGES
32 Interface implements Application New Library Library MAKING BIG CHANGES
33 Interface implements Application New Library Library MAKING BIG CHANGES
34 Interface implements Application New Library MAKING BIG CHANGES
35 Application New Library MAKING BIG CHANGES
WRAPPING UP 36
WHAT WE COVERED 37 ▪Fast feedback, and short release cycles
▪Keeping WIPs to a minimum ▪If it’s hard, do it more often ▪Trunk-based development ▪The need for automation ▪Feature toggles ▪Branch by abstraction
SO MUCH MORE TO EXPLORE 38 ▪Deployment strategies ▪Automated deployments
▪Configuration management ▪Infrastructure provisioning ▪Cloud deployments ▪Virtualization ▪Tooling support
39 ADDITIONAL READING
@thoughtworks THANK YOU