SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

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
 
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 DeliveryMike 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 processAndrii Soldatenko
 
Continuous delivery with open source tools
Continuous delivery with open source toolsContinuous delivery with open source tools
Continuous delivery with open source toolsSebastian Helzle
 
Continuous integration & deployment
Continuous integration & deploymentContinuous integration & deployment
Continuous integration & deploymentAlan Harper
 
Cypress first impressions
Cypress first impressionsCypress first impressions
Cypress first impressionsHans 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
 
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 explainedJeroen Niesen
 
Ship It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemShip It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemYi-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. SeleniumLyudmil Latinov
 
Semi Automatic Code Review
Semi Automatic Code ReviewSemi Automatic Code Review
Semi Automatic Code ReviewRichard Huang
 
Continuous delivery - tools and techniques
Continuous delivery - tools and techniquesContinuous delivery - tools and techniques
Continuous delivery - tools and techniquesMike McGarr
 
Introduction To Continuous Integration
Introduction To Continuous IntegrationIntroduction To Continuous Integration
Introduction To Continuous IntegrationChristopher Read
 
Introduction to Integration Testing With Cypress
Introduction to Integration Testing With CypressIntroduction to Integration Testing With Cypress
Introduction to Integration Testing With CypressErez 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 ReportSencha
 

Tendances (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
 

En vedette

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 discipleshipYomi Adeyinka
 
мастер класс изготовление из бумаги снегурочки и деда мороза
мастер класс изготовление из бумаги снегурочки и деда морозамастер класс изготовление из бумаги снегурочки и деда мороза
мастер класс изготовление из бумаги снегурочки и деда морозаРуслан Дикий
 
Sin título 1
Sin título 1Sin título 1
Sin título 1mbave7
 
выставка детских работ марш парков
выставка детских работ марш парковвыставка детских работ марш парков
выставка детских работ марш парковРуслан Дикий
 
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
 
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
 
Вот и осень -2015 наступила...
Вот и осень -2015 наступила...Вот и осень -2015 наступила...
Вот и осень -2015 наступила...sad72
 
Diffy : Automatic Testing of Microservices @ Twitter
Diffy : Automatic Testing of Microservices @ TwitterDiffy : Automatic Testing of Microservices @ Twitter
Diffy : Automatic Testing of Microservices @ TwitterPuneet Khanduri
 
MOOC: tendencia de inspiración
MOOC: tendencia de inspiraciónMOOC: tendencia de inspiración
MOOC: tendencia de inspiraciónSilvia Andreoli
 
MOOC en el escenario educativo
MOOC en el escenario educativoMOOC en el escenario educativo
MOOC en el escenario educativoSilvia 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 2ice799
 
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 2Thanh 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 PrioritizationThanh Nguyen
 

En vedette (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
 

Similaire à DevCon-Shikhar Slides

Angular 2 overview
Angular 2 overviewAngular 2 overview
Angular 2 overviewJesse 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 ExperienceJakub Holy
 
Project management frameworks for software developing
Project management frameworks for software developingProject management frameworks for software developing
Project management frameworks for software developingVicente Bolea
 
Tips For Maintaining OSS Projects
Tips For Maintaining OSS ProjectsTips For Maintaining OSS Projects
Tips For Maintaining OSS ProjectsTaro 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 ScrumAbdul 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 2014Phil Leggetter
 
Microservices: The Best Practices
Microservices: The Best PracticesMicroservices: The Best Practices
Microservices: The Best PracticesPavel Mička
 
What is this agile thing anyway
What is this agile thing anywayWhat is this agile thing anyway
What is this agile thing anywayLisa Van Gelder
 
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
 
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 2014Phil 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 DockerRightScale
 
All about that reactive ui
All about that reactive uiAll about that reactive ui
All about that reactive uiPaul 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 Controlindiver
 
Angular + JHipster - JHipster Conf
Angular + JHipster - JHipster ConfAngular + JHipster - JHipster Conf
Angular + JHipster - JHipster ConfWilliam Marques
 
Continuous Delivery Using Jenkins
Continuous Delivery Using JenkinsContinuous Delivery Using Jenkins
Continuous Delivery Using JenkinsCliffano Subagio
 
Microfrontends Monoreops & Trunkbased based
Microfrontends Monoreops & Trunkbased basedMicrofrontends Monoreops & Trunkbased based
Microfrontends Monoreops & Trunkbased basedVinci Rufus
 

Similaire à 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