Enterprise Node.js

On OpenShift

 

Lance Ball

Principal Software Engineer

Red Hat Middleware

Node.Js

Is a Thing at Red Hat

IMAGE

So What Do You Mean?

  • RHOAR - Red Hat OpenShift Application Runtime for Node.js 8.x LTS
  • Supported Node.js RPMs and Runtime containers for Node.js 8.x LTS
  • Node.js Core Committers
  • Node.js Technical Steering Committee

OK - But Why Node.js?

Monolith

MyApp

MicroServices

µ-Svc B

µ-Svc J

µ-Svc D

µ-Svc G

µ-Svc E

µ-Svc H

µ-Svc F

µ-Svc C

µ-Svc A

This is What NOde.js Does Well

Shifting Complexity

microServices

=

Microservices

MyApp

Routing

Service Discovery

Monitoring

Tracing

Logging

Elasticity

Resilience

Authn/z

Application Code SHOULD Be SIMPLE

$ minishift profile set 'devnation-demo'
$ minishift config set cpus 2
$ minishift config set vm-driver virtualbox
$ minishift config set memory 4GB
$ minishift start
$ eval (minishift oc-env) # fish shell!
$ oc new-project devnation

Demo

Set up minishift

$ mkdir myapp && cd myapp
$ npm install -g express-generator
$ express .
$ code-insiders package.json # "PORT=8080 node ./bin/www"
$ npx nodeshift --strictSSL=false --expose

Demo

Create and Deploy an App

But Now What?

MicroServices

µ-Svc B

µ-Svc J

µ-Svc D

µ-Svc G

µ-Svc E

µ-Svc H

µ-Svc F

µ-Svc C

µ-Svc A

MicroServices

µ-Svc B

µ-Svc J

µ-Svc D

µ-Svc G

µ-Svc E

µ-Svc H

µ-Svc F

µ-Svc C

µ-Svc A

Cascading Failures

MicroServices

µ-Svc B

µ-Svc J

µ-Svc D

µ-Svc G

µ-Svc E

µ-Svc H

µ-Svc F

µ-Svc C

µ-Svc A

Cascading Failures

MicroServices

µ-Svc B

µ-Svc J

µ-Svc D

µ-Svc G

µ-Svc E

µ-Svc H

µ-Svc F

µ-Svc C

µ-Svc A

Cascading Failures

RHOAR DEmo

THANK YOU!

https://launch.openshift.io

https://github.com/bucharest-gold/node-rpm

https://github.com/bucharest-gold/centos7-s2i-nodejs

https://developers.redhat.com/blog/2018/04/16/zero-express-openshift-3-commands/