SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen
DevOps and Node.js
Chetan Desai, Intuit
DevOps Architect, TurboTax
@chetanddesai 11/17/2015
Intuit’s SOA
Application Services
Capability Services
Utility Services
User Experience Multi-device user experiences (cares about layout)
Application specific services (data interaction for UX)
Re-usable capabilities across applications (tax engine)
Data platform type services (login & identity)
My First Reaction
•  I come from deploying in containers like JBoss &
Tomcat
•  What do you mean the whole thing dies if there is an
exception?!
–  Run 30 million+ customers through it.
•  Consult some experts: NodeSource
•  Our DevOps practices was integral to our success
Enterprise Considerations
1.  Shared build farms
2.  Build once / deploy multiple times
3.  Minimize failure points during deployment
4.  Availability
Shared Build Farms
Problem: global npm dependencies
•  npm WARN prefer global <pkgName>@<ver> should be
installed with –g
–  No root access or sudo privileges
–  Other node services with different versions
CLI Tools
•  Solution: package.json
npm scripts!
•  Add global
dependencies to
devDependencies
section
•  Add your CLI calls as
npm scripts
•  Execute Scripts
–  npm run <script>
The power of the package.json
Other Benefits
1.  Local setup documentation:
- scripts for building, testing, running.
2.  Obtain consistency between developer workstations
- at least compatible
3.  Works in shared build environments!
- dependencies localized
Build Once / Deploy Multiple
•  Reproducibility is a requirement
•  Problem: Transitive Dependencies in package.json
•  semver major.minor.patch
–  ~1.1.1 "Approximately equivalent to version”
–  ^1.1.1 "Compatible with version”
–  1.1.1 "Specific version”
•  Did you install version 2.0.0 or version 2.0.0?
npm shrinkwrap
•  Solution: npm shrinkwrap –dev
–  Full transitive dependency list and versions installed
•  Somewhere in the middle
–  Don’t check in shrinkwrap.json
–  Generate it once at build time
•  How to balance dev speed and compliance?
|-----------------------------------------|
Developer Speed Reproducibility / Compliance
Fast & Reliable Deployments
•  Problem:
–  massive node_modules folder compared to the code size
–  dependency on an npm registry
•  Solution:
–  Our build OS (RHEL) is same as runtime OS
–  Reduce size of node_modules with npm prune –production
–  Zip up the remaining contents with service code
•  Never run npm at deployment time
Availability
•  Problem: Process
Management
–  Let it die and restart
–  Lots of options: pm2,
forever, strongloop pm,
cluster
•  http://strong-pm.io/
compare/
Availability
•  Solution: Who can manage processes better than the OS
itself?
–  RHEL6 upstart & RHEL7 systemd
–  Enterprises have heterogeneous set of languages
•  Deploy & monitor features needs to work across stack
•  Upstart Approach
–  Multiple stateless processes, 1:1 with CPUs
–  Load balanced & SSL termination with nginx
–  If the process dies, upstart restarts it
•  Configurable respawn window
•  Splunk for log monitoring
Recap: Enterprise Considerations
1.  Shared build farms
- local dependencies and npm scripts
2.  Build once / deploy multiple times
- zip and version deployable with modules
- shrinkwrap for reproducibility
3.  Minimize failure points during deployment
- only run npm at build time
4.  Availability
- upstart (RHEL6), systemd (RHEL7)
The solutions will evolve…
continue the conversation.
Thank you!
Chetan Desai, Intuit
DevOps Architect
@chetanddesai

Weitere ähnliche Inhalte

Andere mochten auch

MySQL 5.7: Focus on Replication
MySQL 5.7: Focus on ReplicationMySQL 5.7: Focus on Replication
MySQL 5.7: Focus on ReplicationMario Beck
 
Self evaluation
Self evaluationSelf evaluation
Self evaluationMulkacE147
 
UTE_Marco Teran _Gonzalo Remache_Fortalecer las Capacidades y Potencialidades...
UTE_Marco Teran _Gonzalo Remache_Fortalecer las Capacidades y Potencialidades...UTE_Marco Teran _Gonzalo Remache_Fortalecer las Capacidades y Potencialidades...
UTE_Marco Teran _Gonzalo Remache_Fortalecer las Capacidades y Potencialidades...Marco Terán
 
食品と科学Vol.54 no.10「迷路から抜け出す問題解決の第一歩」
食品と科学Vol.54 no.10「迷路から抜け出す問題解決の第一歩」食品と科学Vol.54 no.10「迷路から抜け出す問題解決の第一歩」
食品と科学Vol.54 no.10「迷路から抜け出す問題解決の第一歩」YUMIKO HIRAI
 
10 Amazon Sponsored Ads Myths You Show Know About
10 Amazon Sponsored Ads Myths You Show Know About10 Amazon Sponsored Ads Myths You Show Know About
10 Amazon Sponsored Ads Myths You Show Know AboutDanny Mac
 
Amazon VPC Best Practices 2016
Amazon VPC Best Practices 2016Amazon VPC Best Practices 2016
Amazon VPC Best Practices 2016AWSBulgaria
 
Active teaching quick learning 8th Class Maths
Active teaching  quick learning 8th Class Maths Active teaching  quick learning 8th Class Maths
Active teaching quick learning 8th Class Maths Karnataka OER
 
(DEV202) Under the Desk to the AWS Cloud with Windows PowerShell
(DEV202) Under the Desk to the AWS Cloud with Windows PowerShell(DEV202) Under the Desk to the AWS Cloud with Windows PowerShell
(DEV202) Under the Desk to the AWS Cloud with Windows PowerShellAmazon Web Services
 
Network Security and Access Control in AWS
Network Security and Access Control in AWSNetwork Security and Access Control in AWS
Network Security and Access Control in AWSAmazon Web Services
 
Building Scalable Services with Amazon API Gateway - Technical 201
Building Scalable Services with Amazon API Gateway - Technical 201Building Scalable Services with Amazon API Gateway - Technical 201
Building Scalable Services with Amazon API Gateway - Technical 201Amazon Web Services
 
Rol del ingeniero industrial del peru frente a
Rol del ingeniero industrial del peru  frente aRol del ingeniero industrial del peru  frente a
Rol del ingeniero industrial del peru frente aluisc1001
 
Women's Access to Healthcare - Georgia CORE Presentation
Women's Access to Healthcare - Georgia CORE PresentationWomen's Access to Healthcare - Georgia CORE Presentation
Women's Access to Healthcare - Georgia CORE PresentationGeorgia Commission on Women
 

Andere mochten auch (12)

MySQL 5.7: Focus on Replication
MySQL 5.7: Focus on ReplicationMySQL 5.7: Focus on Replication
MySQL 5.7: Focus on Replication
 
Self evaluation
Self evaluationSelf evaluation
Self evaluation
 
UTE_Marco Teran _Gonzalo Remache_Fortalecer las Capacidades y Potencialidades...
UTE_Marco Teran _Gonzalo Remache_Fortalecer las Capacidades y Potencialidades...UTE_Marco Teran _Gonzalo Remache_Fortalecer las Capacidades y Potencialidades...
UTE_Marco Teran _Gonzalo Remache_Fortalecer las Capacidades y Potencialidades...
 
食品と科学Vol.54 no.10「迷路から抜け出す問題解決の第一歩」
食品と科学Vol.54 no.10「迷路から抜け出す問題解決の第一歩」食品と科学Vol.54 no.10「迷路から抜け出す問題解決の第一歩」
食品と科学Vol.54 no.10「迷路から抜け出す問題解決の第一歩」
 
10 Amazon Sponsored Ads Myths You Show Know About
10 Amazon Sponsored Ads Myths You Show Know About10 Amazon Sponsored Ads Myths You Show Know About
10 Amazon Sponsored Ads Myths You Show Know About
 
Amazon VPC Best Practices 2016
Amazon VPC Best Practices 2016Amazon VPC Best Practices 2016
Amazon VPC Best Practices 2016
 
Active teaching quick learning 8th Class Maths
Active teaching  quick learning 8th Class Maths Active teaching  quick learning 8th Class Maths
Active teaching quick learning 8th Class Maths
 
(DEV202) Under the Desk to the AWS Cloud with Windows PowerShell
(DEV202) Under the Desk to the AWS Cloud with Windows PowerShell(DEV202) Under the Desk to the AWS Cloud with Windows PowerShell
(DEV202) Under the Desk to the AWS Cloud with Windows PowerShell
 
Network Security and Access Control in AWS
Network Security and Access Control in AWSNetwork Security and Access Control in AWS
Network Security and Access Control in AWS
 
Building Scalable Services with Amazon API Gateway - Technical 201
Building Scalable Services with Amazon API Gateway - Technical 201Building Scalable Services with Amazon API Gateway - Technical 201
Building Scalable Services with Amazon API Gateway - Technical 201
 
Rol del ingeniero industrial del peru frente a
Rol del ingeniero industrial del peru  frente aRol del ingeniero industrial del peru  frente a
Rol del ingeniero industrial del peru frente a
 
Women's Access to Healthcare - Georgia CORE Presentation
Women's Access to Healthcare - Georgia CORE PresentationWomen's Access to Healthcare - Georgia CORE Presentation
Women's Access to Healthcare - Georgia CORE Presentation
 

Kürzlich hochgeladen

The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 

Kürzlich hochgeladen (20)

The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 

DevOps and Node.js

  • 1. DevOps and Node.js Chetan Desai, Intuit DevOps Architect, TurboTax @chetanddesai 11/17/2015
  • 2. Intuit’s SOA Application Services Capability Services Utility Services User Experience Multi-device user experiences (cares about layout) Application specific services (data interaction for UX) Re-usable capabilities across applications (tax engine) Data platform type services (login & identity)
  • 3. My First Reaction •  I come from deploying in containers like JBoss & Tomcat •  What do you mean the whole thing dies if there is an exception?! –  Run 30 million+ customers through it. •  Consult some experts: NodeSource •  Our DevOps practices was integral to our success
  • 4. Enterprise Considerations 1.  Shared build farms 2.  Build once / deploy multiple times 3.  Minimize failure points during deployment 4.  Availability
  • 5. Shared Build Farms Problem: global npm dependencies •  npm WARN prefer global <pkgName>@<ver> should be installed with –g –  No root access or sudo privileges –  Other node services with different versions
  • 6. CLI Tools •  Solution: package.json npm scripts! •  Add global dependencies to devDependencies section •  Add your CLI calls as npm scripts •  Execute Scripts –  npm run <script>
  • 7. The power of the package.json Other Benefits 1.  Local setup documentation: - scripts for building, testing, running. 2.  Obtain consistency between developer workstations - at least compatible 3.  Works in shared build environments! - dependencies localized
  • 8. Build Once / Deploy Multiple •  Reproducibility is a requirement •  Problem: Transitive Dependencies in package.json •  semver major.minor.patch –  ~1.1.1 "Approximately equivalent to version” –  ^1.1.1 "Compatible with version” –  1.1.1 "Specific version” •  Did you install version 2.0.0 or version 2.0.0?
  • 9. npm shrinkwrap •  Solution: npm shrinkwrap –dev –  Full transitive dependency list and versions installed •  Somewhere in the middle –  Don’t check in shrinkwrap.json –  Generate it once at build time •  How to balance dev speed and compliance? |-----------------------------------------| Developer Speed Reproducibility / Compliance
  • 10. Fast & Reliable Deployments •  Problem: –  massive node_modules folder compared to the code size –  dependency on an npm registry •  Solution: –  Our build OS (RHEL) is same as runtime OS –  Reduce size of node_modules with npm prune –production –  Zip up the remaining contents with service code •  Never run npm at deployment time
  • 11. Availability •  Problem: Process Management –  Let it die and restart –  Lots of options: pm2, forever, strongloop pm, cluster •  http://strong-pm.io/ compare/
  • 12. Availability •  Solution: Who can manage processes better than the OS itself? –  RHEL6 upstart & RHEL7 systemd –  Enterprises have heterogeneous set of languages •  Deploy & monitor features needs to work across stack •  Upstart Approach –  Multiple stateless processes, 1:1 with CPUs –  Load balanced & SSL termination with nginx –  If the process dies, upstart restarts it •  Configurable respawn window •  Splunk for log monitoring
  • 13. Recap: Enterprise Considerations 1.  Shared build farms - local dependencies and npm scripts 2.  Build once / deploy multiple times - zip and version deployable with modules - shrinkwrap for reproducibility 3.  Minimize failure points during deployment - only run npm at build time 4.  Availability - upstart (RHEL6), systemd (RHEL7)
  • 14. The solutions will evolve… continue the conversation.
  • 15. Thank you! Chetan Desai, Intuit DevOps Architect @chetanddesai