SlideShare une entreprise Scribd logo
1  sur  70
Aviran Mordo
Head of Engineering
@aviranm
linkedin.com/in/aviran
aviransplace.com
The Road to
Continuous Delivery
Wix In Numbers
• Over 66,000,000 users
• Static storage is >2PB of data
• 3 Data centers + 3 Clouds (Google, Amazon)
• 2B HTTP requests/day
• 1000 people work atWix
Traditional Dev Pipeline
Product Dev QA Operations
16:06
Traditional Dev Pipeline
Product Dev QA Operations
Waterfall
Long development cycle
Time waste (Wait)
Late feedback
Hard to fix
1-2 Releases a year
Scrum
Lean
Agile
SCRUM
XP
Scrum != Agile
Lets Go Back In Time
Where We Were
• Working traditional waterfall
• With fear of change
• With low product quality
• With slow development velocity
• With tradition enterprise development lifecycle
-Three months of a “VERSION” development and QA
- Six months of crisis mode stabilizing system
16:06
Production System
Approach to Production
• Build only what is needed
• Stop if something goes wrong
• Eliminate anything which
does not add value
Philosophy of Work
• Respect for workers
• Full utilization of workers capabilities
• Entrust workers with responsibility & authority
Taiichi Ohno (1912-1990)
Seeing Waste
SevenWastes of
Manufacturing
• Inventory
• Extra Processing
• Overproduction
• Transportation
• Waiting
• Motion
• Defects
SevenWastes of Software
Development
• Partially DoneWork
• Paperwork
• Extra Features
• Building the wrong thing
• Waiting for information
• Task switching
• Defects
Sometimes
16%
Rarely
19%
Never
45%
Always
7%
Often
13%
The Biggest Source Of Waste
Features and functions used in a typical system
Often or Always
used: 20%
Rarely or
never used:
64%
Lean Product development
Top 5 Most-Used Commands in Microsoft Word
• Paste
• Save
• Copy
• Undo
• Bold
Paste itself accounts for more than 11% of all commands
used, and has more than twice as much usage as the #2 entry on
the list, Save.
32% of the total command usage
Scaling challenges – Product
Product Minimum Viable Product (MVP)
• Does MVP meet your product standards?
• What about tooltip, help,first time ux, etc.. ?
• And that can win in a/b test …
To Be
Implemente
d
Get out of thought land
• The law of failure
Most new “its” will fail even if they are flawlessly
executed
• Invest less, in-touch less , better ability to admit it fail
Data beats opinions - let the customer decide
Make sure you building the right it before build it right
Quick
Feedback
Continuous Delivery
Risk
• Waterfall - minimize number of deployments
• CD - minimize number of changes and impact in $$
Risk = #deployments
* chance of something going wrong (~ number of
changes) * impact of something wrong in $$
Small Development Iterations
• No Waterfall
• No Scrum
• No Iterations
• No long documents
• Build something small
• When it is ready, deploy it
- Measure it
- Then fix it
- Repeat, until Dev, Product and Customers are happy
Product / Dev / QA / Ops
boundaries are going down
What Is The Common Denominator?
• Product manager
• Project manager
• QA
• Operations
• DBA
CD is culture & mindset
• Trust the developers
- Empower developers to change production
- Developer knows his system best
• Automation as a default choice
- No more “is it worth to automate ?”
- Everything should be automated
• Welcome to the twilight zone
- Product/Dev/QA boundaries are going down
- Everyone need to care about everything
- Less formality : Corridor - IN , Meeting Room - Out
Dev Centric Culture –
Involve the Developer
• Product definition (with product)
• Development (with architect)
• Testing (with QA developers)
• Deployment / Rollback(with ops)
• Monitoring / BI (with BI team)
• DevOps – to enable deployment
and rollback, fully automated
Developer
Product
QA
ManagementOperation
BI
Support Circle
• The process for releasing/deploying software MUST be
repeatable and reliable
• Automate everything!
• If something's difficult or painful, do it more often
• Keep everything in source control
• Done means “released”
• Built in quality
• Everybody has responsibility for the release process
• Improve continuously
Continuous Delivery principles
Test Driven Development
• No new code is pushed to Git without being fully tested
- We currently have over 40,000 automated tests
• Before fixing a bug first write a test to reproduce the bug
• Cover legacy (untested) systems with Integration tests
What people think of TDD
• TDD slows down development
• With TDD we write more code (product + test code).
• TDD has no significant impact on quality
What people think of TDD
• TDD slows down development
• With TDD we write more code (product + test code).
• TDD has no significant impact on quality
TDD Actual impact on development
• We develop products faster
• Removes fear of change
• Easier to enter some one else’s project
• Do we still need QA? (Yes, they code automation tests)
- We don’t have QA for back-end applications
• Writing a feature is 10-30% slower, 45-90% less bugs
• 50% faster to reach production.
• Considerably less time to fix bugs (almost no need for
debuger)
Guidelines for successful TDD
• Tests should run on project checkout to a
random computer.
• Tests should be debugged on a developer’s
machine
• Tests should run fast
• Tests have to be readable – They are the
project’s specs
• Fixture is evil!
Refactoring
Is Refactoring Rework?
Absolutely NOT !
• Refactoring is the outcome of learning
• Refactoring is the cornerstone of improvement
• Refactoring builds the capacity to change
• Refactoring doesn’t cost, it pays
Refactoring
Refactor from inside out
• Small iterations with tests
• Refactor small methods make
sure the tests don’t break
• Deploy often
Re-write from the outside in
• Write from scratch (one piece at
a time)
• Code duplication sometimes
needed (temporary)
• Protected by Feature Toggle
Before refactoring cover everything with tests
- Legacy code usually covered by IT tests
16:06
Code branch
New Code Old Code
FT
Opened
Yes No
Usage example
Simple “if” statement in your code
Feature Toggles
• Everyone develops on the Trunk
• Every piece of code can get to production at anytime
• Unused new code can go to production – no harm done
• Operational new code goes with a guard – use new or old code
by feature toggle
DB Schema Changes Without Downtime
• Adding columns
- Use another table link by primary key
- Use blob field for schema flexibility
• Removing fields
- Stop using. Do not do any DB schema changes
New DB schema with data migration
• Plan a lazy migration path controlled by feature toggle
1. Write to old / Read from old
2. Write to both / Read from old
3. Write to both / Read from new, fallback to old
Backward compatibility is a must
4. Write to new / Read from new, fallback to old
5. Eagerly migrate data in the background
6. Write to new / Read from new
Feature Toggle Strategies
(gradual expose users)
• Company employees
• Specific users or group of users
• Percentage of traffic
• By GEO
• By Language
• By user-agent
• User Profile based
• By context (site id or some kind of hash on site id)
Feature Toggle Override
• By specific server
• Used to test system load
• New database flows/migration
• Refactoring that may affect performance and memory usage
• By Url parameter
• Enable internal testing
• Product acceptance
• Faking GEO
• By FT cookie value
• Testing
• When working with API on a single page application
A/B Test
A/B Test
• Every new feature is A/B tested
• We open the new feature to a % of users
- Define KPIs to check if the new feature is better
- If it is better, keep it
- If worse, check why and improve
- impact of flaws is just for % of our users
An interesting site effect on product
How many times did you have the conversion “what is
better”?
- Put the menu on top / on the side
Well, how about building both and A/B Testing?
Marking users for persistent UX
• Anonymous user
- Toss is randomly determined
- Can not guarantee persistent experience if changing browser
• Registered User
- Toss is determined by the user ID
- Guarantee toss persistency across browsers
- Allows setting additional tossing criteria (for example new users only)
- Only use this for sections that a user has to be authenticated
• Do not mix anonymous and registered tests
• AB test parentage of users with optional filters
• New Users Only (Registered users only)
• By language
• By GEO
• By Browser
• user-agent
• OS
• Any other criteria you have on your users
A/B Test Features
• A/B Test Override
• Start
• Stop
• Pause
• Bots are always excluded from the test
Wix PETRI
NOT !!!
Gradual Deployment
• Assume two components
• We shutdown one and install on it the
new version. It is not active yet
• Do self test
• Activate the new server it is passes self
test
• Continue deploying the other servers,
a few at a time, checking each one with
self test
A 1.1 B 1.1
A 1.1
B 1.2
A 1.1
A 1.1
B 1.1
B 1.1
A 1.1
A 1.1
B 1.1
B 1.2
A 1.1
B 1.2
A 1.1
A 1.1
B 1.1
B 1.2
A 1.1 B 1.1
A 1.1
A 1.1
B 1.1
B 1.2
Self Test / Post Deployment
TestAfter each server deployment run a self test before deploying the next
server.
• Checking server configuration and topology
- Make sure DB is accessible
- Is the schema the one I expect
- Access required local resources (files, config, templates, etc’)
- Access remote resources
- RPC / REST endpoints reachable and operational
• Server will refuse requests unless it passes the self test
• Allow a way to skip self test (and continue deployment)
Tools - App-info – Self Test
Backward and Forward compatible
• Assume two components
• We release a new version of one
• Now Rollback the other…
A 1.1
B 1.2
A 1.2
B 1.1A 1.1A 1.1
B 1.1
B 1.2
A 1.2A 1.1
B 1.1B 1.1
A 1.1 B 1.1A 1.1A 1.1 B 1.1B 1.1
A 1.0
A 1.2A 1.1 B 1.2B 1.1
B 1.2 A 1.2
A 1.2A 1.1 B 1.2B 1.1
B 1.0
A Story on Wix Time Machine
Time machine event =
• Deployment capabilities : “no click” deployment
- Dozens of services , 130+ servers, 3 Data Centers
• Backward and forward compatibility at the extreme
field test case
- Mixed versions of services / DB with no service
downtime
• Empowerment
- The power we give to individual
• Risk taken and failure embracement
17,000 Deployments (production changes) a year
Double the velocity from last year
Every 7 minutes production changes its state
(during working hours)
Do You Have The Guts To
Deploy 60 Times A Day?
CD – prepare to invest…..
• Dev infrastructure - Refactor , Refactor, Refactor
• Testing infrastructure & know how
• Deployment infrastructure & tools
• Automation , Automation , Automation
• Monitoring (business and technical)
• hundreds of aspects
• thresholds use is a Must
• Monitor business KPIs
• Internal & external
• Endless Tuning & learning
How does it work – CD Practices
• Test driven development
• Small Development Iterations
• Backwards and Forwards compatible
• Gradual Deployment & Self-Test
• Feature Toggle
• A/B Testing
• Exception Classification
• Production visibility
Tools - App-info - Dashboard
Tools - App-info –
Running Experiments
App-Info Resource Pools
Tools – Monitoring - New Relic
Tools – Frying Pan
Tools – Lifecycle To Rule Them All
Where are we today?
• We have re-written our flash editor product as an HTML 5 editor
- In just 4 months
• Introduced Wix 3rd party applications (developers API)
- In just 6 weeks
• We are easily replacing significant parts of our infrastructure
• And we are doing ~60 releases a day!
• Production state changes every 7 minutes.
Aviran Mordo
Head of Back-end Engineering
@aviranm
linkedin.com/in/aviran
aviransplace.com
The Road to
Continuous Delivery
Read more: The Road to Continuous Delivery: http://goo.gl/K6zEK
Dev-Centric Culture: http://goo.gl/0Vo70t
How would you do it?
How will you change Wix session encryption key
with as little service interruption as possible
• Encryption key is currently hard coded in the
framework
• All the services have the encryption key
• User server creates a session
• Services can renew a session
• External services not in the framework also have the
encryption key

Contenu connexe

Tendances

Introduction to devops 2016
Introduction to devops 2016Introduction to devops 2016
Introduction to devops 2016gjdevos
 
DevOps vs Agile | DevOps Tutorial For Beginners | DevOps Training | Edureka
DevOps vs Agile | DevOps Tutorial For Beginners | DevOps Training | EdurekaDevOps vs Agile | DevOps Tutorial For Beginners | DevOps Training | Edureka
DevOps vs Agile | DevOps Tutorial For Beginners | DevOps Training | EdurekaEdureka!
 
Crash Course Scrum - handout
Crash Course Scrum - handoutCrash Course Scrum - handout
Crash Course Scrum - handoutArjan Franzen
 
Service Architectures At Scale - QCon London 2015
Service Architectures At Scale - QCon London 2015Service Architectures At Scale - QCon London 2015
Service Architectures At Scale - QCon London 2015Randy Shoup
 
Introduction to Agile Hardware
Introduction to Agile Hardware Introduction to Agile Hardware
Introduction to Agile Hardware Cprime
 
Best Practices for Database Deployments
Best Practices for Database DeploymentsBest Practices for Database Deployments
Best Practices for Database DeploymentsRed Gate Software
 
How to get started with DevOps
How to get started with DevOps How to get started with DevOps
How to get started with DevOps Red Gate Software
 
Minimum Viable Architecture -- Good Enough is Good Enough in a Startup
Minimum Viable Architecture -- Good Enough is Good Enough in a StartupMinimum Viable Architecture -- Good Enough is Good Enough in a Startup
Minimum Viable Architecture -- Good Enough is Good Enough in a StartupRandy Shoup
 
DevOps Explained
DevOps ExplainedDevOps Explained
DevOps ExplainedDevOpsAnon
 
What is DevOps? - ITSM Academy Webinar
What is DevOps?  - ITSM Academy Webinar What is DevOps?  - ITSM Academy Webinar
What is DevOps? - ITSM Academy Webinar ITSM Academy, Inc.
 
Agile Testing in Enterprise: Way to transform - SQA Days 2014
Agile Testing in Enterprise: Way to transform - SQA Days 2014Agile Testing in Enterprise: Way to transform - SQA Days 2014
Agile Testing in Enterprise: Way to transform - SQA Days 2014Andrey Rebrov
 
Database Deployment Pipeline - SQL In The City Workshop 2014
Database Deployment Pipeline - SQL In The City Workshop 2014Database Deployment Pipeline - SQL In The City Workshop 2014
Database Deployment Pipeline - SQL In The City Workshop 2014Red Gate Software
 
5 Steps for a High-Performing DevOps Culture
5 Steps for a High-Performing DevOps Culture5 Steps for a High-Performing DevOps Culture
5 Steps for a High-Performing DevOps CultureJumpCloud
 
Continuous Testing in DevOps
Continuous Testing in DevOpsContinuous Testing in DevOps
Continuous Testing in DevOpsTechWell
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOpsMatthew David
 
The Evolution of Test Automation for DevOps
The Evolution of Test Automation for DevOpsThe Evolution of Test Automation for DevOps
The Evolution of Test Automation for DevOpsTEST Huddle
 

Tendances (20)

Introduction to devops 2016
Introduction to devops 2016Introduction to devops 2016
Introduction to devops 2016
 
DevOps vs Agile | DevOps Tutorial For Beginners | DevOps Training | Edureka
DevOps vs Agile | DevOps Tutorial For Beginners | DevOps Training | EdurekaDevOps vs Agile | DevOps Tutorial For Beginners | DevOps Training | Edureka
DevOps vs Agile | DevOps Tutorial For Beginners | DevOps Training | Edureka
 
Crash Course Scrum - handout
Crash Course Scrum - handoutCrash Course Scrum - handout
Crash Course Scrum - handout
 
Service Architectures At Scale - QCon London 2015
Service Architectures At Scale - QCon London 2015Service Architectures At Scale - QCon London 2015
Service Architectures At Scale - QCon London 2015
 
Introduction to Agile Hardware
Introduction to Agile Hardware Introduction to Agile Hardware
Introduction to Agile Hardware
 
DevOps Foundation
DevOps FoundationDevOps Foundation
DevOps Foundation
 
Best Practices for Database Deployments
Best Practices for Database DeploymentsBest Practices for Database Deployments
Best Practices for Database Deployments
 
How to get started with DevOps
How to get started with DevOps How to get started with DevOps
How to get started with DevOps
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Minimum Viable Architecture -- Good Enough is Good Enough in a Startup
Minimum Viable Architecture -- Good Enough is Good Enough in a StartupMinimum Viable Architecture -- Good Enough is Good Enough in a Startup
Minimum Viable Architecture -- Good Enough is Good Enough in a Startup
 
DevOps Explained
DevOps ExplainedDevOps Explained
DevOps Explained
 
What is DevOps? - ITSM Academy Webinar
What is DevOps?  - ITSM Academy Webinar What is DevOps?  - ITSM Academy Webinar
What is DevOps? - ITSM Academy Webinar
 
Agile Testing in Enterprise: Way to transform - SQA Days 2014
Agile Testing in Enterprise: Way to transform - SQA Days 2014Agile Testing in Enterprise: Way to transform - SQA Days 2014
Agile Testing in Enterprise: Way to transform - SQA Days 2014
 
Database Deployment Pipeline - SQL In The City Workshop 2014
Database Deployment Pipeline - SQL In The City Workshop 2014Database Deployment Pipeline - SQL In The City Workshop 2014
Database Deployment Pipeline - SQL In The City Workshop 2014
 
Agile EVM
Agile EVMAgile EVM
Agile EVM
 
DevOps 101
DevOps 101DevOps 101
DevOps 101
 
5 Steps for a High-Performing DevOps Culture
5 Steps for a High-Performing DevOps Culture5 Steps for a High-Performing DevOps Culture
5 Steps for a High-Performing DevOps Culture
 
Continuous Testing in DevOps
Continuous Testing in DevOpsContinuous Testing in DevOps
Continuous Testing in DevOps
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
The Evolution of Test Automation for DevOps
The Evolution of Test Automation for DevOpsThe Evolution of Test Automation for DevOps
The Evolution of Test Automation for DevOps
 

Similaire à Road to Continuous Delivery - Wix.com

The Hard Problems of Continuous Deployment
The Hard Problems of Continuous DeploymentThe Hard Problems of Continuous Deployment
The Hard Problems of Continuous DeploymentTimothy Fitz
 
Introduction to continuous delivery
Introduction to continuous deliveryIntroduction to continuous delivery
Introduction to continuous deliveryOlympicSoftware
 
So you-want-to-go-faster
So you-want-to-go-fasterSo you-want-to-go-faster
So you-want-to-go-fasterOoblioob
 
2016 09-dev opsjourney-devopsdaysoslo
2016 09-dev opsjourney-devopsdaysoslo2016 09-dev opsjourney-devopsdaysoslo
2016 09-dev opsjourney-devopsdaysosloJon Arild Tørresdal
 
Dev/Test scenarios in DevOps world
Dev/Test scenarios in DevOps worldDev/Test scenarios in DevOps world
Dev/Test scenarios in DevOps worldDavide Benvegnù
 
Why your company loves to welcome change but sucks at accommodating it
Why your company loves to welcome change but sucks at accommodating itWhy your company loves to welcome change but sucks at accommodating it
Why your company loves to welcome change but sucks at accommodating itFarooq Ali
 
Architecting for the cloud storage build test
Architecting for the cloud storage build testArchitecting for the cloud storage build test
Architecting for the cloud storage build testLen Bass
 
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald BelchamGetting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham.NET Conf UY
 
Continuous integration, delivery & deployment
Continuous integration,  delivery & deploymentContinuous integration,  delivery & deployment
Continuous integration, delivery & deploymentMartijn van der Kamp
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersSPC Adriatics
 
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings RevealedDBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings RevealedDBmaestro - Database DevOps
 
Migration Concentrate
Migration ConcentrateMigration Concentrate
Migration ConcentrateInnoTech
 
Definition of Done and Product Backlog refinement
Definition of Done and Product Backlog refinementDefinition of Done and Product Backlog refinement
Definition of Done and Product Backlog refinementChristian Vos
 
State of continuous delivery in 2015 - Minsk 15-5-2015
State of continuous delivery in 2015 - Minsk 15-5-2015State of continuous delivery in 2015 - Minsk 15-5-2015
State of continuous delivery in 2015 - Minsk 15-5-2015Pavel Chunyayev
 
Павел Чуняев - State of Continuous Delivery in 2015
Павел Чуняев - State of Continuous Delivery in 2015Павел Чуняев - State of Continuous Delivery in 2015
Павел Чуняев - State of Continuous Delivery in 2015ITSpringBY
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOpsEklove Mohan
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated TestingLars Thorup
 
Introduction to-automated-testing
Introduction to-automated-testingIntroduction to-automated-testing
Introduction to-automated-testingBestBrains
 
5 Steps on the Way to Continuous Delivery
5 Steps on the Way to Continuous Delivery5 Steps on the Way to Continuous Delivery
5 Steps on the Way to Continuous DeliveryXebiaLabs
 

Similaire à Road to Continuous Delivery - Wix.com (20)

Extreme Makeover OnBase Edition
Extreme Makeover OnBase EditionExtreme Makeover OnBase Edition
Extreme Makeover OnBase Edition
 
The Hard Problems of Continuous Deployment
The Hard Problems of Continuous DeploymentThe Hard Problems of Continuous Deployment
The Hard Problems of Continuous Deployment
 
Introduction to continuous delivery
Introduction to continuous deliveryIntroduction to continuous delivery
Introduction to continuous delivery
 
So you-want-to-go-faster
So you-want-to-go-fasterSo you-want-to-go-faster
So you-want-to-go-faster
 
2016 09-dev opsjourney-devopsdaysoslo
2016 09-dev opsjourney-devopsdaysoslo2016 09-dev opsjourney-devopsdaysoslo
2016 09-dev opsjourney-devopsdaysoslo
 
Dev/Test scenarios in DevOps world
Dev/Test scenarios in DevOps worldDev/Test scenarios in DevOps world
Dev/Test scenarios in DevOps world
 
Why your company loves to welcome change but sucks at accommodating it
Why your company loves to welcome change but sucks at accommodating itWhy your company loves to welcome change but sucks at accommodating it
Why your company loves to welcome change but sucks at accommodating it
 
Architecting for the cloud storage build test
Architecting for the cloud storage build testArchitecting for the cloud storage build test
Architecting for the cloud storage build test
 
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald BelchamGetting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
 
Continuous integration, delivery & deployment
Continuous integration,  delivery & deploymentContinuous integration,  delivery & deployment
Continuous integration, delivery & deployment
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill Ayers
 
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings RevealedDBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
 
Migration Concentrate
Migration ConcentrateMigration Concentrate
Migration Concentrate
 
Definition of Done and Product Backlog refinement
Definition of Done and Product Backlog refinementDefinition of Done and Product Backlog refinement
Definition of Done and Product Backlog refinement
 
State of continuous delivery in 2015 - Minsk 15-5-2015
State of continuous delivery in 2015 - Minsk 15-5-2015State of continuous delivery in 2015 - Minsk 15-5-2015
State of continuous delivery in 2015 - Minsk 15-5-2015
 
Павел Чуняев - State of Continuous Delivery in 2015
Павел Чуняев - State of Continuous Delivery in 2015Павел Чуняев - State of Continuous Delivery in 2015
Павел Чуняев - State of Continuous Delivery in 2015
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated Testing
 
Introduction to-automated-testing
Introduction to-automated-testingIntroduction to-automated-testing
Introduction to-automated-testing
 
5 Steps on the Way to Continuous Delivery
5 Steps on the Way to Continuous Delivery5 Steps on the Way to Continuous Delivery
5 Steps on the Way to Continuous Delivery
 

Plus de Aviran Mordo

Platform as a Runtime - PaaR QCON 2024 - Final
Platform as a Runtime - PaaR QCON 2024 - FinalPlatform as a Runtime - PaaR QCON 2024 - Final
Platform as a Runtime - PaaR QCON 2024 - FinalAviran Mordo
 
Scaling Engineering by Hacking Conway’s Law - Geecon,2022
Scaling Engineering by Hacking Conway’s Law - Geecon,2022Scaling Engineering by Hacking Conway’s Law - Geecon,2022
Scaling Engineering by Hacking Conway’s Law - Geecon,2022Aviran Mordo
 
Arrested by the cap devoxx uk 2018
Arrested by the cap devoxx uk 2018Arrested by the cap devoxx uk 2018
Arrested by the cap devoxx uk 2018Aviran Mordo
 
Scaling wix.com to 100 million users
Scaling wix.com to 100 million users Scaling wix.com to 100 million users
Scaling wix.com to 100 million users Aviran Mordo
 
Mircoservices, dev ops and Engineering best practices at Wix.com
Mircoservices, dev ops and Engineering best practices at Wix.comMircoservices, dev ops and Engineering best practices at Wix.com
Mircoservices, dev ops and Engineering best practices at Wix.comAviran Mordo
 
Scaling wix with microservices and multi cloud - 2015
Scaling wix with microservices and multi cloud - 2015Scaling wix with microservices and multi cloud - 2015
Scaling wix with microservices and multi cloud - 2015Aviran Mordo
 
Advanced A/B Testing - Jax London 2015
Advanced A/B Testing - Jax London 2015Advanced A/B Testing - Jax London 2015
Advanced A/B Testing - Jax London 2015Aviran Mordo
 
Scaling wix with microservices architecture jax london-2015
Scaling wix with microservices architecture jax london-2015Scaling wix with microservices architecture jax london-2015
Scaling wix with microservices architecture jax london-2015Aviran Mordo
 
Scaling wix with microservices architecture devoxx London 2015
Scaling wix with microservices architecture devoxx London 2015Scaling wix with microservices architecture devoxx London 2015
Scaling wix with microservices architecture devoxx London 2015Aviran Mordo
 
Scaling Wix with microservices architecture and multi-cloud platforms - Reve...
 Scaling Wix with microservices architecture and multi-cloud platforms - Reve... Scaling Wix with microservices architecture and multi-cloud platforms - Reve...
Scaling Wix with microservices architecture and multi-cloud platforms - Reve...Aviran Mordo
 
Experimenting on Humans - Advanced A/B Tests - QCon SF 2014
Experimenting on Humans - Advanced A/B Tests - QCon SF 2014Experimenting on Humans - Advanced A/B Tests - QCon SF 2014
Experimenting on Humans - Advanced A/B Tests - QCon SF 2014Aviran Mordo
 
Wix Architecture at Scale - QCon London 2014
Wix Architecture at Scale - QCon London 2014Wix Architecture at Scale - QCon London 2014
Wix Architecture at Scale - QCon London 2014Aviran Mordo
 
Introduction to HTTP protocol
Introduction to HTTP protocolIntroduction to HTTP protocol
Introduction to HTTP protocolAviran Mordo
 
Scaling up to 30M users - The Wix Story
Scaling up to 30M users - The Wix StoryScaling up to 30M users - The Wix Story
Scaling up to 30M users - The Wix StoryAviran Mordo
 

Plus de Aviran Mordo (14)

Platform as a Runtime - PaaR QCON 2024 - Final
Platform as a Runtime - PaaR QCON 2024 - FinalPlatform as a Runtime - PaaR QCON 2024 - Final
Platform as a Runtime - PaaR QCON 2024 - Final
 
Scaling Engineering by Hacking Conway’s Law - Geecon,2022
Scaling Engineering by Hacking Conway’s Law - Geecon,2022Scaling Engineering by Hacking Conway’s Law - Geecon,2022
Scaling Engineering by Hacking Conway’s Law - Geecon,2022
 
Arrested by the cap devoxx uk 2018
Arrested by the cap devoxx uk 2018Arrested by the cap devoxx uk 2018
Arrested by the cap devoxx uk 2018
 
Scaling wix.com to 100 million users
Scaling wix.com to 100 million users Scaling wix.com to 100 million users
Scaling wix.com to 100 million users
 
Mircoservices, dev ops and Engineering best practices at Wix.com
Mircoservices, dev ops and Engineering best practices at Wix.comMircoservices, dev ops and Engineering best practices at Wix.com
Mircoservices, dev ops and Engineering best practices at Wix.com
 
Scaling wix with microservices and multi cloud - 2015
Scaling wix with microservices and multi cloud - 2015Scaling wix with microservices and multi cloud - 2015
Scaling wix with microservices and multi cloud - 2015
 
Advanced A/B Testing - Jax London 2015
Advanced A/B Testing - Jax London 2015Advanced A/B Testing - Jax London 2015
Advanced A/B Testing - Jax London 2015
 
Scaling wix with microservices architecture jax london-2015
Scaling wix with microservices architecture jax london-2015Scaling wix with microservices architecture jax london-2015
Scaling wix with microservices architecture jax london-2015
 
Scaling wix with microservices architecture devoxx London 2015
Scaling wix with microservices architecture devoxx London 2015Scaling wix with microservices architecture devoxx London 2015
Scaling wix with microservices architecture devoxx London 2015
 
Scaling Wix with microservices architecture and multi-cloud platforms - Reve...
 Scaling Wix with microservices architecture and multi-cloud platforms - Reve... Scaling Wix with microservices architecture and multi-cloud platforms - Reve...
Scaling Wix with microservices architecture and multi-cloud platforms - Reve...
 
Experimenting on Humans - Advanced A/B Tests - QCon SF 2014
Experimenting on Humans - Advanced A/B Tests - QCon SF 2014Experimenting on Humans - Advanced A/B Tests - QCon SF 2014
Experimenting on Humans - Advanced A/B Tests - QCon SF 2014
 
Wix Architecture at Scale - QCon London 2014
Wix Architecture at Scale - QCon London 2014Wix Architecture at Scale - QCon London 2014
Wix Architecture at Scale - QCon London 2014
 
Introduction to HTTP protocol
Introduction to HTTP protocolIntroduction to HTTP protocol
Introduction to HTTP protocol
 
Scaling up to 30M users - The Wix Story
Scaling up to 30M users - The Wix StoryScaling up to 30M users - The Wix Story
Scaling up to 30M users - The Wix Story
 

Dernier

Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROmotivationalword821
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 

Dernier (20)

Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTRO
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 

Road to Continuous Delivery - Wix.com

  • 1. Aviran Mordo Head of Engineering @aviranm linkedin.com/in/aviran aviransplace.com The Road to Continuous Delivery
  • 2.
  • 3. Wix In Numbers • Over 66,000,000 users • Static storage is >2PB of data • 3 Data centers + 3 Clouds (Google, Amazon) • 2B HTTP requests/day • 1000 people work atWix
  • 7. Waterfall Long development cycle Time waste (Wait) Late feedback Hard to fix 1-2 Releases a year
  • 10. Lets Go Back In Time
  • 11. Where We Were • Working traditional waterfall • With fear of change • With low product quality • With slow development velocity • With tradition enterprise development lifecycle -Three months of a “VERSION” development and QA - Six months of crisis mode stabilizing system
  • 12. 16:06
  • 13. Production System Approach to Production • Build only what is needed • Stop if something goes wrong • Eliminate anything which does not add value Philosophy of Work • Respect for workers • Full utilization of workers capabilities • Entrust workers with responsibility & authority Taiichi Ohno (1912-1990)
  • 14. Seeing Waste SevenWastes of Manufacturing • Inventory • Extra Processing • Overproduction • Transportation • Waiting • Motion • Defects SevenWastes of Software Development • Partially DoneWork • Paperwork • Extra Features • Building the wrong thing • Waiting for information • Task switching • Defects
  • 15. Sometimes 16% Rarely 19% Never 45% Always 7% Often 13% The Biggest Source Of Waste Features and functions used in a typical system Often or Always used: 20% Rarely or never used: 64%
  • 16. Lean Product development Top 5 Most-Used Commands in Microsoft Word • Paste • Save • Copy • Undo • Bold Paste itself accounts for more than 11% of all commands used, and has more than twice as much usage as the #2 entry on the list, Save. 32% of the total command usage
  • 17. Scaling challenges – Product Product Minimum Viable Product (MVP) • Does MVP meet your product standards? • What about tooltip, help,first time ux, etc.. ? • And that can win in a/b test … To Be Implemente d
  • 18. Get out of thought land • The law of failure Most new “its” will fail even if they are flawlessly executed • Invest less, in-touch less , better ability to admit it fail Data beats opinions - let the customer decide Make sure you building the right it before build it right Quick Feedback
  • 20. Risk • Waterfall - minimize number of deployments • CD - minimize number of changes and impact in $$ Risk = #deployments * chance of something going wrong (~ number of changes) * impact of something wrong in $$
  • 21. Small Development Iterations • No Waterfall • No Scrum • No Iterations • No long documents • Build something small • When it is ready, deploy it - Measure it - Then fix it - Repeat, until Dev, Product and Customers are happy
  • 22. Product / Dev / QA / Ops boundaries are going down
  • 23. What Is The Common Denominator? • Product manager • Project manager • QA • Operations • DBA
  • 24. CD is culture & mindset • Trust the developers - Empower developers to change production - Developer knows his system best • Automation as a default choice - No more “is it worth to automate ?” - Everything should be automated • Welcome to the twilight zone - Product/Dev/QA boundaries are going down - Everyone need to care about everything - Less formality : Corridor - IN , Meeting Room - Out
  • 25. Dev Centric Culture – Involve the Developer • Product definition (with product) • Development (with architect) • Testing (with QA developers) • Deployment / Rollback(with ops) • Monitoring / BI (with BI team) • DevOps – to enable deployment and rollback, fully automated Developer Product QA ManagementOperation BI Support Circle
  • 26. • The process for releasing/deploying software MUST be repeatable and reliable • Automate everything! • If something's difficult or painful, do it more often • Keep everything in source control • Done means “released” • Built in quality • Everybody has responsibility for the release process • Improve continuously Continuous Delivery principles
  • 27. Test Driven Development • No new code is pushed to Git without being fully tested - We currently have over 40,000 automated tests • Before fixing a bug first write a test to reproduce the bug • Cover legacy (untested) systems with Integration tests
  • 28. What people think of TDD • TDD slows down development • With TDD we write more code (product + test code). • TDD has no significant impact on quality
  • 29. What people think of TDD • TDD slows down development • With TDD we write more code (product + test code). • TDD has no significant impact on quality
  • 30. TDD Actual impact on development • We develop products faster • Removes fear of change • Easier to enter some one else’s project • Do we still need QA? (Yes, they code automation tests) - We don’t have QA for back-end applications • Writing a feature is 10-30% slower, 45-90% less bugs • 50% faster to reach production. • Considerably less time to fix bugs (almost no need for debuger)
  • 31. Guidelines for successful TDD • Tests should run on project checkout to a random computer. • Tests should be debugged on a developer’s machine • Tests should run fast • Tests have to be readable – They are the project’s specs • Fixture is evil!
  • 33. Is Refactoring Rework? Absolutely NOT ! • Refactoring is the outcome of learning • Refactoring is the cornerstone of improvement • Refactoring builds the capacity to change • Refactoring doesn’t cost, it pays
  • 34. Refactoring Refactor from inside out • Small iterations with tests • Refactor small methods make sure the tests don’t break • Deploy often Re-write from the outside in • Write from scratch (one piece at a time) • Code duplication sometimes needed (temporary) • Protected by Feature Toggle Before refactoring cover everything with tests - Legacy code usually covered by IT tests
  • 35. 16:06
  • 36. Code branch New Code Old Code FT Opened Yes No
  • 37. Usage example Simple “if” statement in your code
  • 38. Feature Toggles • Everyone develops on the Trunk • Every piece of code can get to production at anytime • Unused new code can go to production – no harm done • Operational new code goes with a guard – use new or old code by feature toggle
  • 39.
  • 40. DB Schema Changes Without Downtime • Adding columns - Use another table link by primary key - Use blob field for schema flexibility • Removing fields - Stop using. Do not do any DB schema changes
  • 41. New DB schema with data migration • Plan a lazy migration path controlled by feature toggle 1. Write to old / Read from old 2. Write to both / Read from old 3. Write to both / Read from new, fallback to old Backward compatibility is a must 4. Write to new / Read from new, fallback to old 5. Eagerly migrate data in the background 6. Write to new / Read from new
  • 42. Feature Toggle Strategies (gradual expose users) • Company employees • Specific users or group of users • Percentage of traffic • By GEO • By Language • By user-agent • User Profile based • By context (site id or some kind of hash on site id)
  • 43. Feature Toggle Override • By specific server • Used to test system load • New database flows/migration • Refactoring that may affect performance and memory usage • By Url parameter • Enable internal testing • Product acceptance • Faking GEO • By FT cookie value • Testing • When working with API on a single page application
  • 45. A/B Test • Every new feature is A/B tested • We open the new feature to a % of users - Define KPIs to check if the new feature is better - If it is better, keep it - If worse, check why and improve - impact of flaws is just for % of our users
  • 46. An interesting site effect on product How many times did you have the conversion “what is better”? - Put the menu on top / on the side Well, how about building both and A/B Testing?
  • 47. Marking users for persistent UX • Anonymous user - Toss is randomly determined - Can not guarantee persistent experience if changing browser • Registered User - Toss is determined by the user ID - Guarantee toss persistency across browsers - Allows setting additional tossing criteria (for example new users only) - Only use this for sections that a user has to be authenticated
  • 48. • Do not mix anonymous and registered tests • AB test parentage of users with optional filters • New Users Only (Registered users only) • By language • By GEO • By Browser • user-agent • OS • Any other criteria you have on your users
  • 49. A/B Test Features • A/B Test Override • Start • Stop • Pause • Bots are always excluded from the test
  • 52. Gradual Deployment • Assume two components • We shutdown one and install on it the new version. It is not active yet • Do self test • Activate the new server it is passes self test • Continue deploying the other servers, a few at a time, checking each one with self test A 1.1 B 1.1 A 1.1 B 1.2 A 1.1 A 1.1 B 1.1 B 1.1 A 1.1 A 1.1 B 1.1 B 1.2 A 1.1 B 1.2 A 1.1 A 1.1 B 1.1 B 1.2 A 1.1 B 1.1 A 1.1 A 1.1 B 1.1 B 1.2
  • 53. Self Test / Post Deployment TestAfter each server deployment run a self test before deploying the next server. • Checking server configuration and topology - Make sure DB is accessible - Is the schema the one I expect - Access required local resources (files, config, templates, etc’) - Access remote resources - RPC / REST endpoints reachable and operational • Server will refuse requests unless it passes the self test • Allow a way to skip self test (and continue deployment)
  • 54. Tools - App-info – Self Test
  • 55. Backward and Forward compatible • Assume two components • We release a new version of one • Now Rollback the other… A 1.1 B 1.2 A 1.2 B 1.1A 1.1A 1.1 B 1.1 B 1.2 A 1.2A 1.1 B 1.1B 1.1 A 1.1 B 1.1A 1.1A 1.1 B 1.1B 1.1 A 1.0 A 1.2A 1.1 B 1.2B 1.1 B 1.2 A 1.2 A 1.2A 1.1 B 1.2B 1.1 B 1.0
  • 56. A Story on Wix Time Machine
  • 57. Time machine event = • Deployment capabilities : “no click” deployment - Dozens of services , 130+ servers, 3 Data Centers • Backward and forward compatibility at the extreme field test case - Mixed versions of services / DB with no service downtime • Empowerment - The power we give to individual • Risk taken and failure embracement
  • 58. 17,000 Deployments (production changes) a year Double the velocity from last year Every 7 minutes production changes its state (during working hours)
  • 59. Do You Have The Guts To Deploy 60 Times A Day?
  • 60. CD – prepare to invest….. • Dev infrastructure - Refactor , Refactor, Refactor • Testing infrastructure & know how • Deployment infrastructure & tools • Automation , Automation , Automation • Monitoring (business and technical) • hundreds of aspects • thresholds use is a Must • Monitor business KPIs • Internal & external • Endless Tuning & learning
  • 61. How does it work – CD Practices • Test driven development • Small Development Iterations • Backwards and Forwards compatible • Gradual Deployment & Self-Test • Feature Toggle • A/B Testing • Exception Classification • Production visibility
  • 62. Tools - App-info - Dashboard
  • 63. Tools - App-info – Running Experiments
  • 65. Tools – Monitoring - New Relic
  • 67. Tools – Lifecycle To Rule Them All
  • 68. Where are we today? • We have re-written our flash editor product as an HTML 5 editor - In just 4 months • Introduced Wix 3rd party applications (developers API) - In just 6 weeks • We are easily replacing significant parts of our infrastructure • And we are doing ~60 releases a day! • Production state changes every 7 minutes.
  • 69. Aviran Mordo Head of Back-end Engineering @aviranm linkedin.com/in/aviran aviransplace.com The Road to Continuous Delivery Read more: The Road to Continuous Delivery: http://goo.gl/K6zEK Dev-Centric Culture: http://goo.gl/0Vo70t
  • 70. How would you do it? How will you change Wix session encryption key with as little service interruption as possible • Encryption key is currently hard coded in the framework • All the services have the encryption key • User server creates a session • Services can renew a session • External services not in the framework also have the encryption key

Notes de l'éditeur

  1. How many built a website?
  2. Wix is a web publishing platform
  3. Taiichi Ohno, Toyota's chief of production in the post-WWII period. He was THE main developer of Toyota Production System (TPS).
  4. Taiichi Ohno, Toyota's chief of production in the post-WWII period. He was THE main developer of Toyota Production System (TPS).
  5. Taiichi Ohno, Toyota's chief of production in the post-WWII period. He was THE main developer of Toyota Production System (TPS).
  6. One of the key components to successful CD
  7. Full load on a single server Override size limitation by setting a cookie on the client
  8. Link to purchase on the editor was causing drop in conversion because users went there too soon without intent
  9. Link to purchase on the editor was causing drop in conversion because users went there too soon without intent
  10. How many built a website?