SlideShare ist ein Scribd-Unternehmen logo
1 von 67
DELIVER
APPLICATION
TO 50M+
USERS
EVERY 15 MINUTES
Yet Another
Talk About
Continuous
Delivery?
2
Deploy
Feature
3
I’m Sergey
No twitter handler here
4
5
6
8
9
10
Stress
11
Competition
12
Iterate
Fail Fast
Evolve
13
Deliver often
Small changes
14
15
16
17
18
Values
19
Trust
Everyone can GA
20
21
Trust
Everyone can GA
22
Responsibility
Responsibly for writing code
23
Responsibility
Responsibility for writing code
24
Responsibility
Responsibility for testing code
25
Responsibility
Responsibility for deploying code
26
Responsibility
Responsibility for monitoring code
27
28
Responsibility
Responsibility for fixing code
29
Continuous
Delivery
30
24/7
Engineering
=
Engineering
Culture
31
No fear
32
No finger-pointing
33
Everyone is responsible
34
Share knowledge
35
36
Engineering
Practices
37
Deploy first
38
Test
Driven
Development
39
Test
Driven
Design
40
Feature Toggles
41
A/B Tests
42
43
A/B Test at scale
http://github/wix/petri
44
Business
Intelligence
45
Application
Monitoring
46
47
48
Continuous
Delivery
Life
49
50
Define
feature
Write
test
Write
code
Commit
CI
RC
Staging
QA
Deploy
Open
feature
Monitoring
Close
feature
Clean
code
QA
Define
feature
51
Define
feature
Write
test
Write
code
Commit
CI
RC
Staging
QA
Deploy
Open
feature
Monitoring
Close
feature
Clean
code
QA
Define
feature
52
Define
feature
Write
test
Write
code
Commit
CI
RC
Staging
QA
Deploy
Open
feature
Monitoring
Close
feature
Clean
code
QA
Define
feature
53
Define
feature
Write
test
Write
code
Commit
CI
RC
Staging
QA
Deploy
Open
feature
Monitoring
Close
feature
Clean
code
QA
Define
feature
54
Define
feature
Write
test
Write
code
Commit
CI
RC
Staging
QA
Deploy
Open
feature
Monitoring
Close
feature
Clean
code
QA
Define
feature
55
Define
feature
Write
test
Write
code
Commit
CI
RC
Staging
QA
Deploy
Open
feature
Monitoring
Close
feature
Clean
code
QA
Define
feature
56
Define
feature
Write
test
Write
code
Commit
CI
RC
Staging
QA
Deploy
Open
feature
Monitoring
Close
feature
Clean
code
QA
Define
feature
57
Define
feature
Write
test
Write
code
Commit
CI
RC
Staging
QA
Deploy
Open
feature
Monitoring
Close
feature
Clean
code
QA
Define
feature
58
Define
feature
Write
test
Write
code
Commit
CI
RC
Staging
QA
Deploy
Open
feature
Monitoring
Close
feature
Clean
code
QA
Define
feature
59
Define
feature
Write
test
Write
code
Commit
CI
RC
Staging
QA
Deploy
Open
feature
Monitoring
Close
feature
Clean
code
QA
Define
feature
60
Define
feature
Write
test
Write
code
Commit
CI
RC
Staging
QA
Deploy
Open
feature
Monitoring
Close
feature
Clean
code
QA
Define
feature
61
Define
feature
Write
test
Write
code
Commit
CI
RC
Staging
QA
Deploy
Open
feature
Monitoring
Close
feature
Clean
code
QA
Define
feature
62
Define
feature
Write
test
Write
code
Commit
CI
RC
Staging
QA
Deploy
Open
feature
Monitoring
Close
feature
Clean
code
QA
Define
feature
63
Define
feature
Write
test
Write
code
Commit
CI
RC
Staging
QA
Deploy
Open
feature
Monitoring
Close
feature
Clean
code
QA
Define
feature
Open
Feature
64
Set Values
Develop Culture
Arrange Tools
65
DELIVER
66
http://bolshchikov.net
http://il.linkedin.com/in/bolshchikov
http://github.com/bolshchikov
THANK YOU!

Weitere ähnliche Inhalte

Was ist angesagt?

Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...
Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...
Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...
VincitOy
 
St & internationalization
St & internationalizationSt & internationalization
St & internationalization
Sachin MK
 
Using Cluster Analysis for Characteristics Detection in Software Defect Reports
Using Cluster Analysis for Characteristics Detection in Software Defect ReportsUsing Cluster Analysis for Characteristics Detection in Software Defect Reports
Using Cluster Analysis for Characteristics Detection in Software Defect Reports
Iosif Itkin
 

Was ist angesagt? (20)

ATAGTR2017 Machine Learning telepathy for Shift Right approach of testing
ATAGTR2017 Machine Learning telepathy for Shift Right approach of testingATAGTR2017 Machine Learning telepathy for Shift Right approach of testing
ATAGTR2017 Machine Learning telepathy for Shift Right approach of testing
 
Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...
Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...
Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...
 
ATAGTR2017 Upgrading a mobile tester's weapons with advanced debugging
ATAGTR2017 Upgrading a mobile tester's weapons with advanced debuggingATAGTR2017 Upgrading a mobile tester's weapons with advanced debugging
ATAGTR2017 Upgrading a mobile tester's weapons with advanced debugging
 
Automation Maturity Heuristic
Automation Maturity HeuristicAutomation Maturity Heuristic
Automation Maturity Heuristic
 
Architecting A Testing Strategy
Architecting A Testing StrategyArchitecting A Testing Strategy
Architecting A Testing Strategy
 
Software Engineering Culture - Improve Code Quality
Software Engineering Culture - Improve Code QualitySoftware Engineering Culture - Improve Code Quality
Software Engineering Culture - Improve Code Quality
 
BDD along with Continuous Integration
BDD along with Continuous IntegrationBDD along with Continuous Integration
BDD along with Continuous Integration
 
JHipster conf : craftsmanship & tdd
JHipster conf : craftsmanship & tddJHipster conf : craftsmanship & tdd
JHipster conf : craftsmanship & tdd
 
DevOps at Lean Apps
DevOps at Lean AppsDevOps at Lean Apps
DevOps at Lean Apps
 
ATAGTR2017 Static and dynamic code analysis for mobile applications - Act ear...
ATAGTR2017 Static and dynamic code analysis for mobile applications - Act ear...ATAGTR2017 Static and dynamic code analysis for mobile applications - Act ear...
ATAGTR2017 Static and dynamic code analysis for mobile applications - Act ear...
 
Presentation slides: "How to get 100% code coverage"
Presentation slides: "How to get 100% code coverage" Presentation slides: "How to get 100% code coverage"
Presentation slides: "How to get 100% code coverage"
 
Peer Code Review An Agile Process
Peer Code Review An Agile ProcessPeer Code Review An Agile Process
Peer Code Review An Agile Process
 
When Testing Meets Code Review: Why and How Developers Review Tests
When Testing Meets Code Review: Why and How Developers Review TestsWhen Testing Meets Code Review: Why and How Developers Review Tests
When Testing Meets Code Review: Why and How Developers Review Tests
 
Tdd com Java
Tdd com JavaTdd com Java
Tdd com Java
 
St & internationalization
St & internationalizationSt & internationalization
St & internationalization
 
Pair Programming
Pair ProgrammingPair Programming
Pair Programming
 
Maturing your path toward DevOps with Continuous Testing
Maturing your path toward DevOps with Continuous TestingMaturing your path toward DevOps with Continuous Testing
Maturing your path toward DevOps with Continuous Testing
 
Reflections on Trusting Trust for Go
Reflections on Trusting Trust for GoReflections on Trusting Trust for Go
Reflections on Trusting Trust for Go
 
Using Cluster Analysis for Characteristics Detection in Software Defect Reports
Using Cluster Analysis for Characteristics Detection in Software Defect ReportsUsing Cluster Analysis for Characteristics Detection in Software Defect Reports
Using Cluster Analysis for Characteristics Detection in Software Defect Reports
 
Sibos 2017: Disruptive functional testing - the next frontier in post-trade s...
Sibos 2017: Disruptive functional testing - the next frontier in post-trade s...Sibos 2017: Disruptive functional testing - the next frontier in post-trade s...
Sibos 2017: Disruptive functional testing - the next frontier in post-trade s...
 

Andere mochten auch

Trunk Based Development (CBSoft 2011)
Trunk Based Development (CBSoft 2011)Trunk Based Development (CBSoft 2011)
Trunk Based Development (CBSoft 2011)
Wildtech
 
Trunk Based Development Demystified
Trunk Based Development DemystifiedTrunk Based Development Demystified
Trunk Based Development Demystified
Carlos Lopes
 
Bate-papo Trunk Based Development
Bate-papo Trunk Based DevelopmentBate-papo Trunk Based Development
Bate-papo Trunk Based Development
Wildtech
 
Agile Brazil 2010 - DSD + Open Source + Agile Methods
Agile Brazil 2010 - DSD + Open Source + Agile MethodsAgile Brazil 2010 - DSD + Open Source + Agile Methods
Agile Brazil 2010 - DSD + Open Source + Agile Methods
Wildtech
 

Andere mochten auch (20)

Feature flags and canary release
Feature flags and canary releaseFeature flags and canary release
Feature flags and canary release
 
Trunk Based Development (CBSoft 2011)
Trunk Based Development (CBSoft 2011)Trunk Based Development (CBSoft 2011)
Trunk Based Development (CBSoft 2011)
 
Trunk Based Development Demystified
Trunk Based Development DemystifiedTrunk Based Development Demystified
Trunk Based Development Demystified
 
Multiple projects, different goals, one thing in common: the codebase! at Agi...
Multiple projects, different goals, one thing in common: the codebase! at Agi...Multiple projects, different goals, one thing in common: the codebase! at Agi...
Multiple projects, different goals, one thing in common: the codebase! at Agi...
 
Bate-papo Trunk Based Development
Bate-papo Trunk Based DevelopmentBate-papo Trunk Based Development
Bate-papo Trunk Based Development
 
Feature Toggle Examples
Feature Toggle ExamplesFeature Toggle Examples
Feature Toggle Examples
 
Agile software development for startups
Agile software development for startupsAgile software development for startups
Agile software development for startups
 
Continuous delivery from the trenches
Continuous delivery from the trenchesContinuous delivery from the trenches
Continuous delivery from the trenches
 
Learning from the Early Adopters of DevOps: A Guidebook to Success featuring ...
Learning from the Early Adopters of DevOps: A Guidebook to Success featuring ...Learning from the Early Adopters of DevOps: A Guidebook to Success featuring ...
Learning from the Early Adopters of DevOps: A Guidebook to Success featuring ...
 
[Webinar] The Changing Role of Release Engineering in a DevOps World with J. ...
[Webinar] The Changing Role of Release Engineering in a DevOps World with J. ...[Webinar] The Changing Role of Release Engineering in a DevOps World with J. ...
[Webinar] The Changing Role of Release Engineering in a DevOps World with J. ...
 
Agile Brazil 2010 - DSD + Open Source + Agile Methods
Agile Brazil 2010 - DSD + Open Source + Agile MethodsAgile Brazil 2010 - DSD + Open Source + Agile Methods
Agile Brazil 2010 - DSD + Open Source + Agile Methods
 
Entregas Contínuas com feature toggles
Entregas Contínuas com feature togglesEntregas Contínuas com feature toggles
Entregas Contínuas com feature toggles
 
DevTalk: From Uni to Enterprise
DevTalk: From Uni to EnterpriseDevTalk: From Uni to Enterprise
DevTalk: From Uni to Enterprise
 
Feature toggling
Feature togglingFeature toggling
Feature toggling
 
Continously delivering
Continously deliveringContinously delivering
Continously delivering
 
Testing Microservices Architectures
Testing Microservices ArchitecturesTesting Microservices Architectures
Testing Microservices Architectures
 
Trunk based development
Trunk based developmentTrunk based development
Trunk based development
 
Perforce - Under New Management by Konrad Litwin
Perforce - Under New Management by Konrad LitwinPerforce - Under New Management by Konrad Litwin
Perforce - Under New Management by Konrad Litwin
 
Trunk Based Development Explored
Trunk Based Development ExploredTrunk Based Development Explored
Trunk Based Development Explored
 
Feature Toggles On Steroids
Feature Toggles On SteroidsFeature Toggles On Steroids
Feature Toggles On Steroids
 

Ähnlich wie Values & Culture of Continuous Deliver

Ähnlich wie Values & Culture of Continuous Deliver (20)

519225492-DevOps-Version-2-4.pptx xxxxxx
519225492-DevOps-Version-2-4.pptx xxxxxx519225492-DevOps-Version-2-4.pptx xxxxxx
519225492-DevOps-Version-2-4.pptx xxxxxx
 
Practical Testing Strategy for Agile Team
Practical Testing Strategy for Agile TeamPractical Testing Strategy for Agile Team
Practical Testing Strategy for Agile Team
 
Continuous Testing
Continuous TestingContinuous Testing
Continuous Testing
 
Continuous Delivery for people who do not write code - Matthew Skelton - Conflux
Continuous Delivery for people who do not write code - Matthew Skelton - ConfluxContinuous Delivery for people who do not write code - Matthew Skelton - Conflux
Continuous Delivery for people who do not write code - Matthew Skelton - Conflux
 
Test-Driven Code Review: An Empirical Study
Test-Driven Code Review: An Empirical StudyTest-Driven Code Review: An Empirical Study
Test-Driven Code Review: An Empirical Study
 
Continuously Delivering Distributed Systems
Continuously Delivering Distributed SystemsContinuously Delivering Distributed Systems
Continuously Delivering Distributed Systems
 
TMF2014 Mobile Testing Workshop Michael Palotas
TMF2014 Mobile Testing Workshop Michael PalotasTMF2014 Mobile Testing Workshop Michael Palotas
TMF2014 Mobile Testing Workshop Michael Palotas
 
The Knowledgeable Software Engineer
The Knowledgeable Software EngineerThe Knowledgeable Software Engineer
The Knowledgeable Software Engineer
 
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery Workshop
 
Agile DevOps Implementation
Agile DevOps ImplementationAgile DevOps Implementation
Agile DevOps Implementation
 
Making the business case for DevOps
Making the business case for DevOpsMaking the business case for DevOps
Making the business case for DevOps
 
KubeCon EU 2016: ITNW (If This Now What): Orchestrating an Enterprise
KubeCon EU 2016: ITNW (If This Now What): Orchestrating an EnterpriseKubeCon EU 2016: ITNW (If This Now What): Orchestrating an Enterprise
KubeCon EU 2016: ITNW (If This Now What): Orchestrating an Enterprise
 
Continuous delivery its not about the technology, its about the people. @pipe...
Continuous delivery its not about the technology, its about the people. @pipe...Continuous delivery its not about the technology, its about the people. @pipe...
Continuous delivery its not about the technology, its about the people. @pipe...
 
DevOps 101 - Moving Fast with Confidence
DevOps 101 - Moving Fast with ConfidenceDevOps 101 - Moving Fast with Confidence
DevOps 101 - Moving Fast with Confidence
 
Microservices: a journey of an eternal improvement
Microservices: a journey of an eternal improvementMicroservices: a journey of an eternal improvement
Microservices: a journey of an eternal improvement
 
Continuous Testing in Vegas
Continuous Testing in VegasContinuous Testing in Vegas
Continuous Testing in Vegas
 
Introduction and Background @ ICSME 2022
Introduction and Background @ ICSME 2022Introduction and Background @ ICSME 2022
Introduction and Background @ ICSME 2022
 
Salesforce DevOps Maturity Matrix, Anna Walach
Salesforce DevOps Maturity Matrix, Anna WalachSalesforce DevOps Maturity Matrix, Anna Walach
Salesforce DevOps Maturity Matrix, Anna Walach
 
the grinder testing certification
the grinder testing certificationthe grinder testing certification
the grinder testing certification
 
What is DevOps
What is DevOpsWhat is DevOps
What is DevOps
 

Mehr von Sergey Bolshchikov

Mehr von Sergey Bolshchikov (14)

Onboarding for Software Engineers Done Right
Onboarding for Software Engineers Done RightOnboarding for Software Engineers Done Right
Onboarding for Software Engineers Done Right
 
Pragmatic React Workshop
Pragmatic React WorkshopPragmatic React Workshop
Pragmatic React Workshop
 
Microservices on the client side
Microservices on the client sideMicroservices on the client side
Microservices on the client side
 
ES2015 Quiz
ES2015 QuizES2015 Quiz
ES2015 Quiz
 
Talking code: How To
Talking code: How ToTalking code: How To
Talking code: How To
 
Protractor: Tips & Tricks
Protractor: Tips & TricksProtractor: Tips & Tricks
Protractor: Tips & Tricks
 
Continuous Delivery for Front-End Engineers
Continuous Delivery for Front-End EngineersContinuous Delivery for Front-End Engineers
Continuous Delivery for Front-End Engineers
 
Зачем нужен EmberJS, если мне хвататет jQuery
Зачем нужен EmberJS, если мне хвататет jQueryЗачем нужен EmberJS, если мне хвататет jQuery
Зачем нужен EmberJS, если мне хвататет jQuery
 
Ember Reusable Components and Widgets
Ember Reusable Components and WidgetsEmber Reusable Components and Widgets
Ember Reusable Components and Widgets
 
Front End Development: The Important Parts
Front End Development: The Important PartsFront End Development: The Important Parts
Front End Development: The Important Parts
 
Web Projects: From Theory To Practice
Web Projects: From Theory To PracticeWeb Projects: From Theory To Practice
Web Projects: From Theory To Practice
 
AngularJS Basics with Example
AngularJS Basics with ExampleAngularJS Basics with Example
AngularJS Basics with Example
 
Backbone Basics with Examples
Backbone Basics with ExamplesBackbone Basics with Examples
Backbone Basics with Examples
 
JS Single-Page Web App Essentials
JS Single-Page Web App EssentialsJS Single-Page Web App Essentials
JS Single-Page Web App Essentials
 

Kürzlich hochgeladen

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Kürzlich hochgeladen (20)

Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 

Values & Culture of Continuous Deliver

Hinweis der Redaktion

  1. Hey, Let’s talk today how we can ship our code at pace of one deploy every 15 minutes to 50 million users that we currently have.
  2. And here what you might be thinking. How many of you are doing CD? With 100 developers? There are many different talks about continuous delivery from companies like Netflix, Etsy, Flickr. And they are great talks. They all talk about tooling, but actually none of them vividly demonstrates the magic, that itchy feeling of excitement when you upload code to production.
  3. I want to share that feeling with you today, and reveal today the feature that I wrote in the morning. Because, you know, live codings are always going very smooth.
  4. Do we have to write features that way? Of course, not. 4-5 months we are writing features then about 1 month of QA, and then release. Sounds familiar? And then pray. Pray that everything will work. And after that we have about 1 month of fixing bugs. So we can change it CD by treating deployment as a part of our daily routine and deploy small changes to production.
  5. But why the rush? Because we want our product to succeed. We want to be the first one. To deliver great features first.
  6. But that also means to iterate and fail fast. For example, you have a theory that might influence our conversion, you don’t want to wait for 6 month till next release. We make the change and run A/B test and within 24 hours to see the results already. That’s the pace that we want to work.
  7. Continuous delivery is an engineering practice that advocates for pushing code into production often by small changes.
  8. There are many different talks about CD from different companies that shares their experience.
  9. And most of those talks are about tooling. However, it only one piece of a puzzle. There’s a huge variety of tools, including modern solutions like “codeship” that offers CD as a service. When you are a startup with team of 5-6 developers, it might be good enough. But when you start growing there’s more to the story.
  10. How do you continue shipping when R&D department is 150 people instead of 5? So what is answer? People are. People together form engineering practices.
  11. The heart of CD process is values that we set and the culture that we form. This is another form of engineering - human engineering. It enables us to deliver. And those are two things that I wanna focus on today.
  12. We start with values.
  13. It’s hard to work together we you don’t trust each other. We trust our people. We trust our developers. It's very hard to describe this feeling.
  14. Trust doesn't go alone. It’s a two-way street.
  15. With trust developers are receiving responsibility and certain obligations.
  16. We are responsible for the code we write. No doubt here.
  17. But we are also responsible for testing. We, developers, thinking how to cover the whole app with all sorts of tests including unit tests, component tests, e2e tests, contract tests and others. The role of QA becomes in checking the work of the applications overall. If QA finds some bugs, it means that we, as developers, didn’t do good job. So the first thing we do is to add the tests that reveals that bug (for regressions in future) and then write a fix.
  18. There are no special people for it. Developers write code, they deploy it into production. And if something goes south, we roll back, or fix and push another version. The roles of devops, like roles of QA are shifting. They provide infrastructure and tools so that developers can deploy code by one click of a button.
  19. After we deploy code to production, we are done, right? No. It’s our liability to monitor that services are working properly. Many devs have separate monitors in their rooms that display application graphs.
  20. Besides the code that developers write, we are in charge of fixing it as well. It might sound obvious, but it’s an important detail. We don’t have other developers/juniors that we fixing bugs, and others write features. If you have a bug in production, the first who will wake up by the support call is the team leader, and then the corresponding developer.
  21. If we have only several developers with such qualities that we’ve discussed before, it doesn’t help much. We need every developer to have them and care for them. This is the engineering culture.
  22. We want to make the deployment the part of our daily routine. And we start early. Every new employee pushes code into production within first two weeks so they won’t fear. They can feel that trust and responsibility. Have a feeling of ownership.
  23. However, things go wrong. Always. Almost every day. But blaming somebody and pointing fingers doesn’t help much. We deal with problems, fix them and move forward. At the end, we write postmortem to the whole R&D with detailed explanations of what happened, how we solved it, and most importantly, what conclusions have been drawn to prevent the same issue in future.
  24. Moreover, everyone can and should report to urgent (it’s our mail) when we notice that something is broken. It can be either support receiving a ticket from a customer. But it can be also that BI analyst saw a drop in a certain graph, or developer stumbled upon a bug in production.
  25. When we are growing, sharing knowledge becomes very crucial. There’s no way we can track every project and coordinate technologies. So, we have guilds for that.
  26. Every developer belongs to the guild. Together, as a guild, we decide which technologies and tools we are using. Developing common components, libraries. We invest 20% of dev time in the guild sharing knowledge and in improving our infrastructure and engineering practices.
  27. After having set values and culture, we can devise some engineering practices that we are using in CD.
  28. When do you start a new project, from where do you start? Writing server side? Writing client side? Since deployment is the part of our routine, we deploy “hello world” project into production first and then start writing features.
  29. Writing features starts with failure - failing e2e test. Writing TDD is not a “nice to have” practice at delivering at a high pace, it’s a must. We need to make sure that our code works w/o relying on QA checks. Server guild don’t have a single person of QA. Client side uses the help of QA for sanity and styling bugs.
  30. We even consider TDD as a test driven design. Imagine what happens when hundreds of developers write code. It easily becomes complex (sometimes unnecessarily). Writing code in TDD drives your design squeezing out unnecessary complexity by writing the minimal required amount of code. The good suit of tests allows future code refactoring w/ any fear.
  31. Most of the features that we write are protected under feature toggle. You’ve probably all heard about feature toggle before. In case you didn’t. Feature toggles is a technique to push unfinished code to production secured by toggle or flag. As long as feature toggle is off, the code won’t be executed. How does it look like in code? Basically, it’s an if statement. The main confusion is that pushing code is not the same as releasing the feature. When your feature is ready, you open the flag in the backoffice, and the feature is available to users.
  32. Feature toggle is a form of A/B test. Stateless experiment. A/B test is an experiment where groups are defined according to a certain criteria. This practice allows us to experiment and iterate. We release features gradually. For example, a common scenario to open a feature: Wix Users, 20% New Users Canada, 50% new users Canada, US, 100% new users, 100% registered users. We first open new features to new users.
  33. A/B tests at scale become a pretty hairy thing that involve many situations to consider. For example how to provide consistency to anonymous users how to manage almost 500 running experiment simultaneously how to pause experiments (Demonstrate guinepig production)
  34. When we run A/B tests, we must know how they perform. On the way here, I’ve read the article where the 26 y.o. CEO of Mixpanel pitched Andersen and Horowitz about his startup. “Most of the world will make decisions by either guessing or using their gut. They will be either lucky or fail”. We don’t wanna be like that. Thus, BI has an important part of the a project. It provides the understanding how users react on our changes, how they influence on our KPIs. Each application sends the set of predefined events on clicks, navigations, etc. We analyze them and monitor.
  35. BI is mostly a tool for a product manager and less for a developer. However, applications also need monitoring. New Relic does a fantastic job in real-time. We know transaction times, error rates, loading times, session traces and much more. We have monitors w/ graphs in many rooms that are irreplaceable during the deployment process. (Demonstrate New Relic graphs of APM and Browser).