SlideShare a Scribd company logo
1 of 15
Download to read offline
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

More Related Content

Viewers also liked

食品と科学Vol.54 no.10「迷路から抜け出す問題解決の第一歩」
食品と科学Vol.54 no.10「迷路から抜け出す問題解決の第一歩」食品と科学Vol.54 no.10「迷路から抜け出す問題解決の第一歩」
食品と科学Vol.54 no.10「迷路から抜け出す問題解決の第一歩」
YUMIKO HIRAI
 
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
luisc1001
 

Viewers also liked (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
 

Recently uploaded

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 

Recently uploaded (20)

Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
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
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
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
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 

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