SlideShare a Scribd company logo
github.com/williamsbg03/thatconf2016
Want a local running example?
Highly Available Node.js
Bryan Pfremmer / Brad Williams
August 10th, 2016
March 25, 2015
The Goal
Integrate the distinct LearnVest digital client experience with
Northwestern Mutual’s financial planning and products.
• In the cloud, highly available
• Lightweight web runtimes with
latest modern frameworks
• Automated infrastructure
• Application and infrastructure
design built for failure
• Single data center with many
maintenance windows
• Heavy server runtimes for large
batch consumption
• Classic infrastructure builds
• Application and infrastructure
design built to try to prevent
failure
The Key Principle
Be Available
Brett Favre
9/27/1992 - 12/5/2010
100% Availability
http://dailysnark.com/wp-content/uploads/2016/04/131.jpg
• Split your application into small
services that can be reused,
remixed and shared.
• Enables smaller, nimble,
decoupled teams and processes.
• Lightweight runtime, starts in
seconds
• Stateless and backwards
compatible.
Microservices
http://martinfowler.com/articles/microservices.html
http://slides.eightypercent.net/kubernetes-101/kubernetes-101.html#7
• Modules cannot be blocking, we are looking for async I/O
• Module pattern encourages lightweight packages with small footprint
• Seconds to initialize
• Excellent performance
• Express.js, async, bunyan, mysql, body-parser, config, memwatch-
next, underscore, and util
Node.js
• Log important activities and errors (bunyan, winston, log4js)
• Handle SIGTERM for graceful shutdown
• Select and review NPM modules carefully
• Lock down NPM dependencies (shrinkwrap)
• Test, Test, Test (supertest, proxyquire)
• NODE_ENV = production
Node.js Production Considerations
The number of deployable artifacts increase to the point at which
automated testing, building, deploying, and monitoring becomes
essential.
But, they come at a cost…
http://techblog.netflix.com/2013/01/announcing-ribbon-tying-netflix-mid.html
How do we make microservices easier to build and deploy?
Wrap up a piece of software in a complete filesystem that contains
everything it needs to run.
• Guaranteed to always run the same,
regardless of the environment
• Start/stop almost instantly
• Efficient use of system resources
• Portable
• Easy to configure
Containers
https://www.docker.com/what-docker
Provides an implementation of containers that is actively used in the
software community. Docker illustrates how containers differ from the
traditional VM hypervisor.
Docker
https://www.docker.com/what-docker
A sea of containers…
While containers provide us with a stable build and deploy platform, we still
have many artifacts to deploy and maintain.
Kubernetes
An open-source system for automating deployment, operations, and scaling
of containerized applications.
• Ensures containers stay running
• Abstracts port managements away from the developer
• Schedules containers based on cluster health metrics
• Provides lightweight deployment and horizontal scaling
• Stores application configuration and secrets outside the container
• Deploy a set of grouped containers as a single deployable unit
Kubernetes Architecture
http://kubernetes.io
We are ready to run, but where?
With a solid application framework we can scale our application quite easily.
Without the same capability in our infrastructure we are going nowhere fast.
Automated & Immutable Infrastructure
Public cloud providers provide APIs to create infrastructure of all types. By
leveraging infrastructure as code tools we can script our entire environment.
Guidelines to code by:
• No manual changes
• Replace containers, VM’s instead of fixing them
• Rebuilds and re-deploys should take minutes
• Goal is idempotent scripts. Rerun to ensure a known working state.
Demo
Micro-App Framework
There were many benefits to microservices that we also wanted to realize in
building our web applications. So we have built what one of our senior
engineers, Ming Fang, has coined the “micro-app” pattern.
Micro-App Framework
Micro-Apps - It isn’t all unicorns and rainbows
• You need to be diligent about using a base stylesheet or style guide at a
minimum
• Header / footer needs to be simple and without dependencies to avoid
conflicts across micro-apps
• Urls that cross micro-apps are provided by the api layer
• Client storage needs a namespace to avoid any conflicts
• Production implemented March 2016. Like front-end frameworks, this is what
is in style right now. We have yet to see if this pattern will stand up over the
coming year(s)
Tech Stack
Lessons Learned
• Architect for failure
• Tag your releases for prod, run current development in non-production
• Different purchasing considerations for vendor tools when you need to
orchestrate its install and configuration
• Orchestration can make security easier
We’re Hiring!
If any of this sounds cool come talk to us at the NM booth or contact us @
northwesternmutual.com/careers. We have a number of open positions
working on everything you have seen here!
ThatConference 2016 - Highly Available Node.js

More Related Content

What's hot

Webinar: OpenStack Benefits for KVM
Webinar: OpenStack Benefits for KVMWebinar: OpenStack Benefits for KVM
Webinar: OpenStack Benefits for KVM
Platform9
 
Got Shadow IT? How to Win-Win with a Private Cloud.
Got Shadow IT? How to Win-Win with a Private Cloud.Got Shadow IT? How to Win-Win with a Private Cloud.
Got Shadow IT? How to Win-Win with a Private Cloud.
Platform9
 
HPE & Cloud Foundry @ CF Summit Berlin 2015
HPE & Cloud Foundry @ CF Summit Berlin 2015HPE & Cloud Foundry @ CF Summit Berlin 2015
HPE & Cloud Foundry @ CF Summit Berlin 2015
Omri Gazitt
 
Spring: Your Next Java Micro-Framework
Spring: Your Next Java Micro-FrameworkSpring: Your Next Java Micro-Framework
Spring: Your Next Java Micro-Framework
VMware Tanzu
 
The twelve factor app
The twelve factor appThe twelve factor app
The twelve factor app
Ravi Okade
 
Micro services, reactive manifesto and 12-factors
Micro services, reactive manifesto and 12-factorsMicro services, reactive manifesto and 12-factors
Micro services, reactive manifesto and 12-factors
Dejan Glozic
 
Top 5 Considerations for Successful Deployment of Kubernetes
Top 5 Considerations for Successful Deployment of KubernetesTop 5 Considerations for Successful Deployment of Kubernetes
Top 5 Considerations for Successful Deployment of Kubernetes
Platform9
 
IoT Scale Event-Stream Processing for Connected Fleet at Penske
IoT Scale Event-Stream Processing for Connected Fleet at PenskeIoT Scale Event-Stream Processing for Connected Fleet at Penske
IoT Scale Event-Stream Processing for Connected Fleet at Penske
VMware Tanzu
 
SolidFire + Platform9: Simply Faster OpenStack
SolidFire + Platform9: Simply Faster OpenStackSolidFire + Platform9: Simply Faster OpenStack
SolidFire + Platform9: Simply Faster OpenStack
Platform9
 
Getting Started with PaaS
Getting Started with PaaSGetting Started with PaaS
Getting Started with PaaS
CloudBees
 
Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...
Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...
Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...
VMware Tanzu
 
12 factor app an introduction
12 factor app an introduction12 factor app an introduction
12 factor app an introduction
Krishna-Kumar
 
StorageOS - 8 core principles of cloud native storage
StorageOS - 8 core principles of cloud native storageStorageOS - 8 core principles of cloud native storage
StorageOS - 8 core principles of cloud native storage
StorageOS
 
Introduction To Jenkins - SpringPeople
Introduction To Jenkins - SpringPeopleIntroduction To Jenkins - SpringPeople
Introduction To Jenkins - SpringPeople
SpringPeople
 
Building A Diverse Geo-Architecture For Cloud Native Applications In One Day
Building A Diverse Geo-Architecture For Cloud Native Applications In One DayBuilding A Diverse Geo-Architecture For Cloud Native Applications In One Day
Building A Diverse Geo-Architecture For Cloud Native Applications In One Day
VMware Tanzu
 
12 Factor App Methodology
12 Factor App Methodology12 Factor App Methodology
12 Factor App Methodology
laeshin park
 
Azure functions
Azure functionsAzure functions
Azure functions
Khaled Elbedri
 
The Journey to Becoming Cloud Native – A Three Step Path to Modernizing Appli...
The Journey to Becoming Cloud Native – A Three Step Path to Modernizing Appli...The Journey to Becoming Cloud Native – A Three Step Path to Modernizing Appli...
The Journey to Becoming Cloud Native – A Three Step Path to Modernizing Appli...
VMware Tanzu
 
Transporting Data at Warp Speed: How to Connect Spring Boot Apps Quickly, Pow...
Transporting Data at Warp Speed: How to Connect Spring Boot Apps Quickly, Pow...Transporting Data at Warp Speed: How to Connect Spring Boot Apps Quickly, Pow...
Transporting Data at Warp Speed: How to Connect Spring Boot Apps Quickly, Pow...
VMware Tanzu
 
Introducing Cloud Foundry Integration for Eclipse (Cloud Foundry Summit 2014)
Introducing Cloud Foundry Integration for Eclipse (Cloud Foundry Summit 2014)Introducing Cloud Foundry Integration for Eclipse (Cloud Foundry Summit 2014)
Introducing Cloud Foundry Integration for Eclipse (Cloud Foundry Summit 2014)
VMware Tanzu
 

What's hot (20)

Webinar: OpenStack Benefits for KVM
Webinar: OpenStack Benefits for KVMWebinar: OpenStack Benefits for KVM
Webinar: OpenStack Benefits for KVM
 
Got Shadow IT? How to Win-Win with a Private Cloud.
Got Shadow IT? How to Win-Win with a Private Cloud.Got Shadow IT? How to Win-Win with a Private Cloud.
Got Shadow IT? How to Win-Win with a Private Cloud.
 
HPE & Cloud Foundry @ CF Summit Berlin 2015
HPE & Cloud Foundry @ CF Summit Berlin 2015HPE & Cloud Foundry @ CF Summit Berlin 2015
HPE & Cloud Foundry @ CF Summit Berlin 2015
 
Spring: Your Next Java Micro-Framework
Spring: Your Next Java Micro-FrameworkSpring: Your Next Java Micro-Framework
Spring: Your Next Java Micro-Framework
 
The twelve factor app
The twelve factor appThe twelve factor app
The twelve factor app
 
Micro services, reactive manifesto and 12-factors
Micro services, reactive manifesto and 12-factorsMicro services, reactive manifesto and 12-factors
Micro services, reactive manifesto and 12-factors
 
Top 5 Considerations for Successful Deployment of Kubernetes
Top 5 Considerations for Successful Deployment of KubernetesTop 5 Considerations for Successful Deployment of Kubernetes
Top 5 Considerations for Successful Deployment of Kubernetes
 
IoT Scale Event-Stream Processing for Connected Fleet at Penske
IoT Scale Event-Stream Processing for Connected Fleet at PenskeIoT Scale Event-Stream Processing for Connected Fleet at Penske
IoT Scale Event-Stream Processing for Connected Fleet at Penske
 
SolidFire + Platform9: Simply Faster OpenStack
SolidFire + Platform9: Simply Faster OpenStackSolidFire + Platform9: Simply Faster OpenStack
SolidFire + Platform9: Simply Faster OpenStack
 
Getting Started with PaaS
Getting Started with PaaSGetting Started with PaaS
Getting Started with PaaS
 
Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...
Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...
Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...
 
12 factor app an introduction
12 factor app an introduction12 factor app an introduction
12 factor app an introduction
 
StorageOS - 8 core principles of cloud native storage
StorageOS - 8 core principles of cloud native storageStorageOS - 8 core principles of cloud native storage
StorageOS - 8 core principles of cloud native storage
 
Introduction To Jenkins - SpringPeople
Introduction To Jenkins - SpringPeopleIntroduction To Jenkins - SpringPeople
Introduction To Jenkins - SpringPeople
 
Building A Diverse Geo-Architecture For Cloud Native Applications In One Day
Building A Diverse Geo-Architecture For Cloud Native Applications In One DayBuilding A Diverse Geo-Architecture For Cloud Native Applications In One Day
Building A Diverse Geo-Architecture For Cloud Native Applications In One Day
 
12 Factor App Methodology
12 Factor App Methodology12 Factor App Methodology
12 Factor App Methodology
 
Azure functions
Azure functionsAzure functions
Azure functions
 
The Journey to Becoming Cloud Native – A Three Step Path to Modernizing Appli...
The Journey to Becoming Cloud Native – A Three Step Path to Modernizing Appli...The Journey to Becoming Cloud Native – A Three Step Path to Modernizing Appli...
The Journey to Becoming Cloud Native – A Three Step Path to Modernizing Appli...
 
Transporting Data at Warp Speed: How to Connect Spring Boot Apps Quickly, Pow...
Transporting Data at Warp Speed: How to Connect Spring Boot Apps Quickly, Pow...Transporting Data at Warp Speed: How to Connect Spring Boot Apps Quickly, Pow...
Transporting Data at Warp Speed: How to Connect Spring Boot Apps Quickly, Pow...
 
Introducing Cloud Foundry Integration for Eclipse (Cloud Foundry Summit 2014)
Introducing Cloud Foundry Integration for Eclipse (Cloud Foundry Summit 2014)Introducing Cloud Foundry Integration for Eclipse (Cloud Foundry Summit 2014)
Introducing Cloud Foundry Integration for Eclipse (Cloud Foundry Summit 2014)
 

Viewers also liked

NodeJS Concurrency
NodeJS ConcurrencyNodeJS Concurrency
NodeJS Concurrency
pgriess
 
ReactJS.NET - Fast and Scalable Single Page Applications
ReactJS.NET - Fast and Scalable Single Page ApplicationsReactJS.NET - Fast and Scalable Single Page Applications
ReactJS.NET - Fast and Scalable Single Page Applications
Rick Beerendonk
 
Dirty - How simple is your database?
Dirty - How simple is your database?Dirty - How simple is your database?
Dirty - How simple is your database?
Felix Geisendörfer
 
Node.js - A Quick Tour
Node.js - A Quick TourNode.js - A Quick Tour
Node.js - A Quick Tour
Felix Geisendörfer
 
Nodejs
NodejsNodejs
Асинхронность и параллелизм в Node.js
Асинхронность и параллелизм в Node.jsАсинхронность и параллелизм в Node.js
Асинхронность и параллелизм в Node.jsGeeksLab Odessa
 
AWS Elastic Beanstalk - Running Microservices and Docker
AWS Elastic Beanstalk - Running Microservices and DockerAWS Elastic Beanstalk - Running Microservices and Docker
AWS Elastic Beanstalk - Running Microservices and Docker
Amazon Web Services
 
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...
Amazon Web Services
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
Vikash Singh
 
Deploy, Manage, and Scale your Apps with AWS Elastic Beanstalk
Deploy, Manage, and Scale your Apps with AWS Elastic BeanstalkDeploy, Manage, and Scale your Apps with AWS Elastic Beanstalk
Deploy, Manage, and Scale your Apps with AWS Elastic Beanstalk
Amazon Web Services
 

Viewers also liked (10)

NodeJS Concurrency
NodeJS ConcurrencyNodeJS Concurrency
NodeJS Concurrency
 
ReactJS.NET - Fast and Scalable Single Page Applications
ReactJS.NET - Fast and Scalable Single Page ApplicationsReactJS.NET - Fast and Scalable Single Page Applications
ReactJS.NET - Fast and Scalable Single Page Applications
 
Dirty - How simple is your database?
Dirty - How simple is your database?Dirty - How simple is your database?
Dirty - How simple is your database?
 
Node.js - A Quick Tour
Node.js - A Quick TourNode.js - A Quick Tour
Node.js - A Quick Tour
 
Nodejs
NodejsNodejs
Nodejs
 
Асинхронность и параллелизм в Node.js
Асинхронность и параллелизм в Node.jsАсинхронность и параллелизм в Node.js
Асинхронность и параллелизм в Node.js
 
AWS Elastic Beanstalk - Running Microservices and Docker
AWS Elastic Beanstalk - Running Microservices and DockerAWS Elastic Beanstalk - Running Microservices and Docker
AWS Elastic Beanstalk - Running Microservices and Docker
 
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Deploy, Manage, and Scale your Apps with AWS Elastic Beanstalk
Deploy, Manage, and Scale your Apps with AWS Elastic BeanstalkDeploy, Manage, and Scale your Apps with AWS Elastic Beanstalk
Deploy, Manage, and Scale your Apps with AWS Elastic Beanstalk
 

Similar to ThatConference 2016 - Highly Available Node.js

NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS
 
Developing Hybrid Cloud Applications
Developing Hybrid Cloud ApplicationsDeveloping Hybrid Cloud Applications
Developing Hybrid Cloud Applications
Daniel Berg
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
Decision Science Community
 
Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015
WaveMaker, Inc.
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics
sbbabu
 
DevOps Training | DevOps Training in Hyderabad
DevOps Training | DevOps Training in Hyderabad   DevOps Training | DevOps Training in Hyderabad
DevOps Training | DevOps Training in Hyderabad
TalluriRenuka
 
Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!
Shelly Megan
 
Eclipse tools for deployment to was liberty profile in Bluemix
Eclipse tools for deployment to was liberty profile in BluemixEclipse tools for deployment to was liberty profile in Bluemix
Eclipse tools for deployment to was liberty profile in Bluemix
Eclipse Day India
 
Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015
Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015
Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015
Christophe Lucas
 
Tampere Docker meetup - Happy 5th Birthday Docker
Tampere Docker meetup - Happy 5th Birthday DockerTampere Docker meetup - Happy 5th Birthday Docker
Tampere Docker meetup - Happy 5th Birthday Docker
Sakari Hoisko
 
Securing the Cloud Native stack
Securing the Cloud Native stackSecuring the Cloud Native stack
Securing the Cloud Native stack
Hector Tapia
 
Containers, microservices and serverless for realists
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realists
Karthik Gaekwad
 
Webinar: How and Why to Containerize Your Legacy Applications
Webinar: How and Why to Containerize Your Legacy ApplicationsWebinar: How and Why to Containerize Your Legacy Applications
Webinar: How and Why to Containerize Your Legacy Applications
Storage Switzerland
 
Designing Microservices
Designing MicroservicesDesigning Microservices
Designing Microservices
David Chou
 
Webinar : Microservices and Containerization
Webinar : Microservices and ContainerizationWebinar : Microservices and Containerization
Webinar : Microservices and Containerization
Newt Global Consulting LLC
 
SoCal DevOps Meetup 1/26/2017 - Habitat by Chef
SoCal DevOps Meetup 1/26/2017 - Habitat by ChefSoCal DevOps Meetup 1/26/2017 - Habitat by Chef
SoCal DevOps Meetup 1/26/2017 - Habitat by Chef
Trevor Hess
 
Rami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with DockerRami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with Docker
Web à Québec
 
Disruptive Trends in Application Development
Disruptive Trends in Application DevelopmentDisruptive Trends in Application Development
Disruptive Trends in Application Development
WaveMaker, Inc.
 
Kubernetes solutions
Kubernetes solutionsKubernetes solutions
Kubernetes solutions
Eric Cattoir
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
Markus Eisele
 

Similar to ThatConference 2016 - Highly Available Node.js (20)

NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
 
Developing Hybrid Cloud Applications
Developing Hybrid Cloud ApplicationsDeveloping Hybrid Cloud Applications
Developing Hybrid Cloud Applications
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
 
Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics
 
DevOps Training | DevOps Training in Hyderabad
DevOps Training | DevOps Training in Hyderabad   DevOps Training | DevOps Training in Hyderabad
DevOps Training | DevOps Training in Hyderabad
 
Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!
 
Eclipse tools for deployment to was liberty profile in Bluemix
Eclipse tools for deployment to was liberty profile in BluemixEclipse tools for deployment to was liberty profile in Bluemix
Eclipse tools for deployment to was liberty profile in Bluemix
 
Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015
Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015
Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015
 
Tampere Docker meetup - Happy 5th Birthday Docker
Tampere Docker meetup - Happy 5th Birthday DockerTampere Docker meetup - Happy 5th Birthday Docker
Tampere Docker meetup - Happy 5th Birthday Docker
 
Securing the Cloud Native stack
Securing the Cloud Native stackSecuring the Cloud Native stack
Securing the Cloud Native stack
 
Containers, microservices and serverless for realists
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realists
 
Webinar: How and Why to Containerize Your Legacy Applications
Webinar: How and Why to Containerize Your Legacy ApplicationsWebinar: How and Why to Containerize Your Legacy Applications
Webinar: How and Why to Containerize Your Legacy Applications
 
Designing Microservices
Designing MicroservicesDesigning Microservices
Designing Microservices
 
Webinar : Microservices and Containerization
Webinar : Microservices and ContainerizationWebinar : Microservices and Containerization
Webinar : Microservices and Containerization
 
SoCal DevOps Meetup 1/26/2017 - Habitat by Chef
SoCal DevOps Meetup 1/26/2017 - Habitat by ChefSoCal DevOps Meetup 1/26/2017 - Habitat by Chef
SoCal DevOps Meetup 1/26/2017 - Habitat by Chef
 
Rami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with DockerRami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with Docker
 
Disruptive Trends in Application Development
Disruptive Trends in Application DevelopmentDisruptive Trends in Application Development
Disruptive Trends in Application Development
 
Kubernetes solutions
Kubernetes solutionsKubernetes solutions
Kubernetes solutions
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 

Recently uploaded

Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 

Recently uploaded (20)

Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 

ThatConference 2016 - Highly Available Node.js

  • 1.
  • 2.
  • 4. Highly Available Node.js Bryan Pfremmer / Brad Williams August 10th, 2016
  • 6. The Goal Integrate the distinct LearnVest digital client experience with Northwestern Mutual’s financial planning and products.
  • 7. • In the cloud, highly available • Lightweight web runtimes with latest modern frameworks • Automated infrastructure • Application and infrastructure design built for failure • Single data center with many maintenance windows • Heavy server runtimes for large batch consumption • Classic infrastructure builds • Application and infrastructure design built to try to prevent failure
  • 8. The Key Principle Be Available Brett Favre 9/27/1992 - 12/5/2010 100% Availability http://dailysnark.com/wp-content/uploads/2016/04/131.jpg
  • 9. • Split your application into small services that can be reused, remixed and shared. • Enables smaller, nimble, decoupled teams and processes. • Lightweight runtime, starts in seconds • Stateless and backwards compatible. Microservices http://martinfowler.com/articles/microservices.html http://slides.eightypercent.net/kubernetes-101/kubernetes-101.html#7
  • 10. • Modules cannot be blocking, we are looking for async I/O • Module pattern encourages lightweight packages with small footprint • Seconds to initialize • Excellent performance • Express.js, async, bunyan, mysql, body-parser, config, memwatch- next, underscore, and util Node.js
  • 11. • Log important activities and errors (bunyan, winston, log4js) • Handle SIGTERM for graceful shutdown • Select and review NPM modules carefully • Lock down NPM dependencies (shrinkwrap) • Test, Test, Test (supertest, proxyquire) • NODE_ENV = production Node.js Production Considerations
  • 12. The number of deployable artifacts increase to the point at which automated testing, building, deploying, and monitoring becomes essential. But, they come at a cost… http://techblog.netflix.com/2013/01/announcing-ribbon-tying-netflix-mid.html How do we make microservices easier to build and deploy?
  • 13. Wrap up a piece of software in a complete filesystem that contains everything it needs to run. • Guaranteed to always run the same, regardless of the environment • Start/stop almost instantly • Efficient use of system resources • Portable • Easy to configure Containers https://www.docker.com/what-docker
  • 14. Provides an implementation of containers that is actively used in the software community. Docker illustrates how containers differ from the traditional VM hypervisor. Docker https://www.docker.com/what-docker
  • 15. A sea of containers… While containers provide us with a stable build and deploy platform, we still have many artifacts to deploy and maintain.
  • 16. Kubernetes An open-source system for automating deployment, operations, and scaling of containerized applications. • Ensures containers stay running • Abstracts port managements away from the developer • Schedules containers based on cluster health metrics • Provides lightweight deployment and horizontal scaling • Stores application configuration and secrets outside the container • Deploy a set of grouped containers as a single deployable unit
  • 18. We are ready to run, but where? With a solid application framework we can scale our application quite easily. Without the same capability in our infrastructure we are going nowhere fast.
  • 19. Automated & Immutable Infrastructure Public cloud providers provide APIs to create infrastructure of all types. By leveraging infrastructure as code tools we can script our entire environment. Guidelines to code by: • No manual changes • Replace containers, VM’s instead of fixing them • Rebuilds and re-deploys should take minutes • Goal is idempotent scripts. Rerun to ensure a known working state.
  • 20. Demo
  • 21. Micro-App Framework There were many benefits to microservices that we also wanted to realize in building our web applications. So we have built what one of our senior engineers, Ming Fang, has coined the “micro-app” pattern.
  • 23. Micro-Apps - It isn’t all unicorns and rainbows • You need to be diligent about using a base stylesheet or style guide at a minimum • Header / footer needs to be simple and without dependencies to avoid conflicts across micro-apps • Urls that cross micro-apps are provided by the api layer • Client storage needs a namespace to avoid any conflicts • Production implemented March 2016. Like front-end frameworks, this is what is in style right now. We have yet to see if this pattern will stand up over the coming year(s)
  • 25. Lessons Learned • Architect for failure • Tag your releases for prod, run current development in non-production • Different purchasing considerations for vendor tools when you need to orchestrate its install and configuration • Orchestration can make security easier
  • 26. We’re Hiring! If any of this sounds cool come talk to us at the NM booth or contact us @ northwesternmutual.com/careers. We have a number of open positions working on everything you have seen here!