SlideShare a Scribd company logo
Deploying Node
applications at scale
Shikhar Kapoor (@kapoorshikhar)
UI Engineer @ Flipkart
A modern front-end
engineers job
Webpack
React
Redux
Gulp
NodeAngular
Express
GraphQL
NPM
MongoDB
Grunt
Jest
Mocha
• Branching Strategies
• Continuous Integration
• Accelerating build times
• Packaging
• Deployments
• Monitoring
• Testing
Branching strategies
• Decide upfront and enforce them.
• Master is sacred!
• Feature flags are your friends.
Mainline/Master
Future
Feature1
Feature2
Feature3
Long release cycles
Shorter but fixed release cycles
Mainline/Master
Release - week 1
Fix
Feature
Fix
Release - week 2
Feature
Feature
Fix
Short cycles/ Daily deployments
Mainline/Master
Fix
Feature 1 *
Fix
Feature1 *
Feature 2 *
Feature 2 *
* Features get pushed to master daily, with feature flags
Continuous Integration
• Tools
• Automate mundane tasks like linting, unit test ..
• Build on merge
• Store artifacts
Pull request
Run tests
Tests
passing?
Merge/Rebase
Build
Fix
No
Yes
Accelerate build times
• Build once, promote everywhere
• BUT be careful of the gotchas
• Freeze dependencies (Yarn, Shrinkwrap)
• Offload mundane tasks to orchestrators
Get playbook Get hosts
Start
Run tasks
EndA typical orchestration workflow
Packaging
• How do you package and send your code to the
server?
• Git clone
• Archive and copy
• Debian (FPM, Post Install, Versioning, easy
reverts)
Deployment
• Manage your environments, keep them as
similar to production as possible.
• Blue-Green? Rolling?
• Keep your deployment scripts close and your
rollback scripts closer!
Production
Cluster
Blue green deployment strategy
Stage
Cluster
Load Balancer
Production
Cluster
Load Balancer
Rolling deployment strategy
Load balancer
Monitoring
• What should you monitor?
• Trends
• Stack traces/ deep dives
• How do you monitor?
• OpenTSDB based tools like Grafana for trends
• Sentry/ NewRelic for deep dives and stack traces
Image: http://grafana.org
Testing
• What to test?
• Functional - Automate critical flows.
• Unit tests
• Non-functional
• Capacity testing and API Fanout
• Performance
• RUM / Synthetic - SpeedCurve, Dareboost
Key takeaways
Thank you!
@kapoorshikhar

More Related Content

What's hot

An almost complete continuous delivery pipeline including configuration manag...
An almost complete continuous delivery pipeline including configuration manag...An almost complete continuous delivery pipeline including configuration manag...
An almost complete continuous delivery pipeline including configuration manag...
ulfmansson
 
The Rounds Project: Growing from thousands to millions - Berry Ventura & Yoah...
The Rounds Project: Growing from thousands to millions - Berry Ventura & Yoah...The Rounds Project: Growing from thousands to millions - Berry Ventura & Yoah...
The Rounds Project: Growing from thousands to millions - Berry Ventura & Yoah...
DroidConTLV
 
Cypress for Testing
Cypress for TestingCypress for Testing
Cypress for Testing
PoojaSingh1123
 
Engineering Tools at Netflix: Enabling Continuous Delivery
Engineering Tools at Netflix: Enabling Continuous DeliveryEngineering Tools at Netflix: Enabling Continuous Delivery
Engineering Tools at Netflix: Enabling Continuous Delivery
Mike McGarr
 
Introduction to cypress in Angular (Chinese)
Introduction to cypress in Angular (Chinese)Introduction to cypress in Angular (Chinese)
Introduction to cypress in Angular (Chinese)
Hong Tat Yew
 
Practical continuous quality gates for development process
Practical continuous quality gates for development processPractical continuous quality gates for development process
Practical continuous quality gates for development process
Andrii Soldatenko
 
Continuous delivery with open source tools
Continuous delivery with open source toolsContinuous delivery with open source tools
Continuous delivery with open source tools
Sebastian Helzle
 
Continuous integration & deployment
Continuous integration & deploymentContinuous integration & deployment
Continuous integration & deployment
Alan Harper
 
Cypress first impressions
Cypress first impressionsCypress first impressions
Cypress first impressions
Hans Emmel
 
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...
DevClub_lv
 
Automating Your Way to Greatness by Combining OutSystems CI/CD With the Power...
Automating Your Way to Greatness by Combining OutSystems CI/CD With the Power...Automating Your Way to Greatness by Combining OutSystems CI/CD With the Power...
Automating Your Way to Greatness by Combining OutSystems CI/CD With the Power...
OutSystems
 
Cypress
CypressCypress
IaC? VSTS to the rescue! Abbreviations explained
IaC? VSTS to the rescue! Abbreviations explainedIaC? VSTS to the rescue! Abbreviations explained
IaC? VSTS to the rescue! Abbreviations explained
Jeroen Niesen
 
Ship It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemShip It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails Ecosystem
Yi-Ting Cheng
 
QA Challenge Accepted 4.0 - Cypress vs. Selenium
QA Challenge Accepted 4.0 - Cypress vs. SeleniumQA Challenge Accepted 4.0 - Cypress vs. Selenium
QA Challenge Accepted 4.0 - Cypress vs. Selenium
Lyudmil Latinov
 
Semi Automatic Code Review
Semi Automatic Code ReviewSemi Automatic Code Review
Semi Automatic Code Review
Richard Huang
 
Continuous delivery - tools and techniques
Continuous delivery - tools and techniquesContinuous delivery - tools and techniques
Continuous delivery - tools and techniques
Mike McGarr
 
Introduction To Continuous Integration
Introduction To Continuous IntegrationIntroduction To Continuous Integration
Introduction To Continuous Integration
Christopher Read
 
Introduction to Integration Testing With Cypress
Introduction to Integration Testing With CypressIntroduction to Integration Testing With Cypress
Introduction to Integration Testing With Cypress
Erez Cohen
 
Learn Key Insights from The State of Web Application Testing Research Report
Learn Key Insights from The State of Web Application Testing Research ReportLearn Key Insights from The State of Web Application Testing Research Report
Learn Key Insights from The State of Web Application Testing Research Report
Sencha
 

What's hot (20)

An almost complete continuous delivery pipeline including configuration manag...
An almost complete continuous delivery pipeline including configuration manag...An almost complete continuous delivery pipeline including configuration manag...
An almost complete continuous delivery pipeline including configuration manag...
 
The Rounds Project: Growing from thousands to millions - Berry Ventura & Yoah...
The Rounds Project: Growing from thousands to millions - Berry Ventura & Yoah...The Rounds Project: Growing from thousands to millions - Berry Ventura & Yoah...
The Rounds Project: Growing from thousands to millions - Berry Ventura & Yoah...
 
Cypress for Testing
Cypress for TestingCypress for Testing
Cypress for Testing
 
Engineering Tools at Netflix: Enabling Continuous Delivery
Engineering Tools at Netflix: Enabling Continuous DeliveryEngineering Tools at Netflix: Enabling Continuous Delivery
Engineering Tools at Netflix: Enabling Continuous Delivery
 
Introduction to cypress in Angular (Chinese)
Introduction to cypress in Angular (Chinese)Introduction to cypress in Angular (Chinese)
Introduction to cypress in Angular (Chinese)
 
Practical continuous quality gates for development process
Practical continuous quality gates for development processPractical continuous quality gates for development process
Practical continuous quality gates for development process
 
Continuous delivery with open source tools
Continuous delivery with open source toolsContinuous delivery with open source tools
Continuous delivery with open source tools
 
Continuous integration & deployment
Continuous integration & deploymentContinuous integration & deployment
Continuous integration & deployment
 
Cypress first impressions
Cypress first impressionsCypress first impressions
Cypress first impressions
 
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...
 
Automating Your Way to Greatness by Combining OutSystems CI/CD With the Power...
Automating Your Way to Greatness by Combining OutSystems CI/CD With the Power...Automating Your Way to Greatness by Combining OutSystems CI/CD With the Power...
Automating Your Way to Greatness by Combining OutSystems CI/CD With the Power...
 
Cypress
CypressCypress
Cypress
 
IaC? VSTS to the rescue! Abbreviations explained
IaC? VSTS to the rescue! Abbreviations explainedIaC? VSTS to the rescue! Abbreviations explained
IaC? VSTS to the rescue! Abbreviations explained
 
Ship It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemShip It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails Ecosystem
 
QA Challenge Accepted 4.0 - Cypress vs. Selenium
QA Challenge Accepted 4.0 - Cypress vs. SeleniumQA Challenge Accepted 4.0 - Cypress vs. Selenium
QA Challenge Accepted 4.0 - Cypress vs. Selenium
 
Semi Automatic Code Review
Semi Automatic Code ReviewSemi Automatic Code Review
Semi Automatic Code Review
 
Continuous delivery - tools and techniques
Continuous delivery - tools and techniquesContinuous delivery - tools and techniques
Continuous delivery - tools and techniques
 
Introduction To Continuous Integration
Introduction To Continuous IntegrationIntroduction To Continuous Integration
Introduction To Continuous Integration
 
Introduction to Integration Testing With Cypress
Introduction to Integration Testing With CypressIntroduction to Integration Testing With Cypress
Introduction to Integration Testing With Cypress
 
Learn Key Insights from The State of Web Application Testing Research Report
Learn Key Insights from The State of Web Application Testing Research ReportLearn Key Insights from The State of Web Application Testing Research Report
Learn Key Insights from The State of Web Application Testing Research Report
 

Viewers also liked

The Highlands v2
The Highlands v2The Highlands v2
The Highlands v2
Emilie Van Camp
 
PART 1 - Introduction to digital evangelism and discipleship
PART 1 - Introduction to digital evangelism  and discipleshipPART 1 - Introduction to digital evangelism  and discipleship
PART 1 - Introduction to digital evangelism and discipleship
Yomi Adeyinka
 
мастер класс изготовление из бумаги снегурочки и деда мороза
мастер класс изготовление из бумаги снегурочки и деда морозамастер класс изготовление из бумаги снегурочки и деда мороза
мастер класс изготовление из бумаги снегурочки и деда мороза
Руслан Дикий
 
Sin título 1
Sin título 1Sin título 1
Sin título 1
mbave7
 
выставка детских работ марш парков
выставка детских работ марш парковвыставка детских работ марш парков
выставка детских работ марш парков
Руслан Дикий
 
Библиотека
БиблиотекаБиблиотека
Библиотека
Руслан Дикий
 
Face & Body Painting (Evgeny Freeone)
Face & Body Painting (Evgeny Freeone)Face & Body Painting (Evgeny Freeone)
Face & Body Painting (Evgeny Freeone)
Cachi Chien
 
iMots, el catàleg
iMots, el catàlegiMots, el catàleg
iMots, el catàlegMarta Rodeja
 
Gre Quant - Demo ppt
Gre Quant - Demo pptGre Quant - Demo ppt
Gre Quant - Demo ppt
Surendra Reddy
 
La leyenda del beso/The Legend of the kiss.
La leyenda del beso/The Legend of the kiss.La leyenda del beso/The Legend of the kiss.
La leyenda del beso/The Legend of the kiss.
Cachi Chien
 
Managing climate risks through resilient crop interventions and climate-smart...
Managing climate risks through resilient crop interventions and climate-smart...Managing climate risks through resilient crop interventions and climate-smart...
Managing climate risks through resilient crop interventions and climate-smart...
CCAFS | CGIAR Research Program on Climate Change, Agriculture and Food Security
 
e learning
 e learning  e learning
e learning
DAILYMAR GARCIA
 
Вот и осень -2015 наступила...
Вот и осень -2015 наступила...Вот и осень -2015 наступила...
Вот и осень -2015 наступила...
sad72
 
аттестация педработников
аттестация педработниковаттестация педработников
аттестация педработников
МБОУ "Мирновская школа №2"
 
Diffy : Automatic Testing of Microservices @ Twitter
Diffy : Automatic Testing of Microservices @ TwitterDiffy : Automatic Testing of Microservices @ Twitter
Diffy : Automatic Testing of Microservices @ Twitter
Puneet Khanduri
 
MOOC: tendencia de inspiración
MOOC: tendencia de inspiraciónMOOC: tendencia de inspiración
MOOC: tendencia de inspiración
Silvia Andreoli
 
MOOC en el escenario educativo
MOOC en el escenario educativoMOOC en el escenario educativo
MOOC en el escenario educativo
Silvia Andreoli
 
Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2
ice799
 
PMI-ACP Lesson 12 Knowledge and Skills Nugget 2
PMI-ACP Lesson 12 Knowledge and Skills Nugget 2PMI-ACP Lesson 12 Knowledge and Skills Nugget 2
PMI-ACP Lesson 12 Knowledge and Skills Nugget 2
Thanh Nguyen
 
PMI-ACP Lesson 08 Nugget 1 Agile & Scrum Value-based Prioritization
PMI-ACP Lesson 08 Nugget 1 Agile & Scrum Value-based PrioritizationPMI-ACP Lesson 08 Nugget 1 Agile & Scrum Value-based Prioritization
PMI-ACP Lesson 08 Nugget 1 Agile & Scrum Value-based Prioritization
Thanh Nguyen
 

Viewers also liked (20)

The Highlands v2
The Highlands v2The Highlands v2
The Highlands v2
 
PART 1 - Introduction to digital evangelism and discipleship
PART 1 - Introduction to digital evangelism  and discipleshipPART 1 - Introduction to digital evangelism  and discipleship
PART 1 - Introduction to digital evangelism and discipleship
 
мастер класс изготовление из бумаги снегурочки и деда мороза
мастер класс изготовление из бумаги снегурочки и деда морозамастер класс изготовление из бумаги снегурочки и деда мороза
мастер класс изготовление из бумаги снегурочки и деда мороза
 
Sin título 1
Sin título 1Sin título 1
Sin título 1
 
выставка детских работ марш парков
выставка детских работ марш парковвыставка детских работ марш парков
выставка детских работ марш парков
 
Библиотека
БиблиотекаБиблиотека
Библиотека
 
Face & Body Painting (Evgeny Freeone)
Face & Body Painting (Evgeny Freeone)Face & Body Painting (Evgeny Freeone)
Face & Body Painting (Evgeny Freeone)
 
iMots, el catàleg
iMots, el catàlegiMots, el catàleg
iMots, el catàleg
 
Gre Quant - Demo ppt
Gre Quant - Demo pptGre Quant - Demo ppt
Gre Quant - Demo ppt
 
La leyenda del beso/The Legend of the kiss.
La leyenda del beso/The Legend of the kiss.La leyenda del beso/The Legend of the kiss.
La leyenda del beso/The Legend of the kiss.
 
Managing climate risks through resilient crop interventions and climate-smart...
Managing climate risks through resilient crop interventions and climate-smart...Managing climate risks through resilient crop interventions and climate-smart...
Managing climate risks through resilient crop interventions and climate-smart...
 
e learning
 e learning  e learning
e learning
 
Вот и осень -2015 наступила...
Вот и осень -2015 наступила...Вот и осень -2015 наступила...
Вот и осень -2015 наступила...
 
аттестация педработников
аттестация педработниковаттестация педработников
аттестация педработников
 
Diffy : Automatic Testing of Microservices @ Twitter
Diffy : Automatic Testing of Microservices @ TwitterDiffy : Automatic Testing of Microservices @ Twitter
Diffy : Automatic Testing of Microservices @ Twitter
 
MOOC: tendencia de inspiración
MOOC: tendencia de inspiraciónMOOC: tendencia de inspiración
MOOC: tendencia de inspiración
 
MOOC en el escenario educativo
MOOC en el escenario educativoMOOC en el escenario educativo
MOOC en el escenario educativo
 
Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2
 
PMI-ACP Lesson 12 Knowledge and Skills Nugget 2
PMI-ACP Lesson 12 Knowledge and Skills Nugget 2PMI-ACP Lesson 12 Knowledge and Skills Nugget 2
PMI-ACP Lesson 12 Knowledge and Skills Nugget 2
 
PMI-ACP Lesson 08 Nugget 1 Agile & Scrum Value-based Prioritization
PMI-ACP Lesson 08 Nugget 1 Agile & Scrum Value-based PrioritizationPMI-ACP Lesson 08 Nugget 1 Agile & Scrum Value-based Prioritization
PMI-ACP Lesson 08 Nugget 1 Agile & Scrum Value-based Prioritization
 

Similar to DevCon-Shikhar Slides

Angular 2 overview
Angular 2 overviewAngular 2 overview
Angular 2 overview
Jesse Warden
 
Dealing With Legacy: The Real-World Experience
Dealing With Legacy: The Real-World ExperienceDealing With Legacy: The Real-World Experience
Dealing With Legacy: The Real-World Experience
Jakub Holy
 
Project management frameworks for software developing
Project management frameworks for software developingProject management frameworks for software developing
Project management frameworks for software developing
Vicente Bolea
 
Tips For Maintaining OSS Projects
Tips For Maintaining OSS ProjectsTips For Maintaining OSS Projects
Tips For Maintaining OSS Projects
Taro L. Saito
 
TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)
Peter Kofler
 
Customized Scrum
Customized ScrumCustomized Scrum
Customized Scrum
Abdul Karim
 
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Phil Leggetter
 
Microservices: The Best Practices
Microservices: The Best PracticesMicroservices: The Best Practices
Microservices: The Best Practices
Pavel Mička
 
What is this agile thing anyway
What is this agile thing anywayWhat is this agile thing anyway
What is this agile thing anyway
Lisa Van Gelder
 
Agile
AgileAgile
Agile
Komal2525
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
Hannes Lowette
 
Angular 2
Angular 2Angular 2
Building front-end apps that Scale - FOSDEM 2014
Building front-end apps that Scale - FOSDEM 2014Building front-end apps that Scale - FOSDEM 2014
Building front-end apps that Scale - FOSDEM 2014
Phil Leggetter
 
Project Sherpa: How RightScale Went All in on Docker
Project Sherpa: How RightScale Went All in on DockerProject Sherpa: How RightScale Went All in on Docker
Project Sherpa: How RightScale Went All in on Docker
RightScale
 
All about that reactive ui
All about that reactive uiAll about that reactive ui
All about that reactive ui
Paul van Zyl
 
Make It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version ControlMake It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version Control
indiver
 
Angular + JHipster - JHipster Conf
Angular + JHipster - JHipster ConfAngular + JHipster - JHipster Conf
Angular + JHipster - JHipster Conf
William Marques
 
Continuous Delivery Using Jenkins
Continuous Delivery Using JenkinsContinuous Delivery Using Jenkins
Continuous Delivery Using Jenkins
Cliffano Subagio
 
Microfrontends Monoreops & Trunkbased based
Microfrontends Monoreops & Trunkbased basedMicrofrontends Monoreops & Trunkbased based
Microfrontends Monoreops & Trunkbased based
Vinci Rufus
 
Requirements the Last Bottleneck
Requirements the Last BottleneckRequirements the Last Bottleneck
Requirements the Last Bottleneck
Karwin Software Solutions LLC
 

Similar to DevCon-Shikhar Slides (20)

Angular 2 overview
Angular 2 overviewAngular 2 overview
Angular 2 overview
 
Dealing With Legacy: The Real-World Experience
Dealing With Legacy: The Real-World ExperienceDealing With Legacy: The Real-World Experience
Dealing With Legacy: The Real-World Experience
 
Project management frameworks for software developing
Project management frameworks for software developingProject management frameworks for software developing
Project management frameworks for software developing
 
Tips For Maintaining OSS Projects
Tips For Maintaining OSS ProjectsTips For Maintaining OSS Projects
Tips For Maintaining OSS Projects
 
TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)
 
Customized Scrum
Customized ScrumCustomized Scrum
Customized Scrum
 
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
 
Microservices: The Best Practices
Microservices: The Best PracticesMicroservices: The Best Practices
Microservices: The Best Practices
 
What is this agile thing anyway
What is this agile thing anywayWhat is this agile thing anyway
What is this agile thing anyway
 
Agile
AgileAgile
Agile
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
 
Angular 2
Angular 2Angular 2
Angular 2
 
Building front-end apps that Scale - FOSDEM 2014
Building front-end apps that Scale - FOSDEM 2014Building front-end apps that Scale - FOSDEM 2014
Building front-end apps that Scale - FOSDEM 2014
 
Project Sherpa: How RightScale Went All in on Docker
Project Sherpa: How RightScale Went All in on DockerProject Sherpa: How RightScale Went All in on Docker
Project Sherpa: How RightScale Went All in on Docker
 
All about that reactive ui
All about that reactive uiAll about that reactive ui
All about that reactive ui
 
Make It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version ControlMake It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version Control
 
Angular + JHipster - JHipster Conf
Angular + JHipster - JHipster ConfAngular + JHipster - JHipster Conf
Angular + JHipster - JHipster Conf
 
Continuous Delivery Using Jenkins
Continuous Delivery Using JenkinsContinuous Delivery Using Jenkins
Continuous Delivery Using Jenkins
 
Microfrontends Monoreops & Trunkbased based
Microfrontends Monoreops & Trunkbased basedMicrofrontends Monoreops & Trunkbased based
Microfrontends Monoreops & Trunkbased based
 
Requirements the Last Bottleneck
Requirements the Last BottleneckRequirements the Last Bottleneck
Requirements the Last Bottleneck
 

DevCon-Shikhar Slides