5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE...
Transcript of 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE...
![Page 1: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/1.jpg)
5 Minutes to Enterprise JavaScript With Red Hat OpenShift Application Runtimes
Lance BallPrincipal Software Engineer
Wednesday, May 9 2018
John ClinganProduct Manager RHOAR
![Page 2: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/2.jpg)
NODE.JSIs a Thing at Red Hat
![Page 3: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/3.jpg)
![Page 4: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/4.jpg)
● 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
● Community Node.js RPMs and Runtime containers for Node.js 9.x and 10.x
● Node.js tools and utilities for containerized deployment
● Node.js Core Committers
● Node.js Technical Steering Committee
So What Do You Mean?
![Page 5: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/5.jpg)
OK… But Why Node.js?
![Page 6: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/6.jpg)
In the Beginning, there was the Monolith
My App
![Page 7: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/7.jpg)
The Monolith Begat Microservices
µ svcA
µ svcB
µ svcC
µ svcD
µ svcJ
µ svcH
µ svcF
µ svcG
µ svcE
![Page 8: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/8.jpg)
Small, discrete services that do one thing well - usually as REST over HTTP
![Page 9: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/9.jpg)
This is what Node.js does well
![Page 10: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/10.jpg)
But waitMy application is very complex!
![Page 11: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/11.jpg)
Application complexity shifts from application code to the runtime platform
![Page 12: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/12.jpg)
Logging
µ svcA
µ svcB
µ svcC
µ svcD
µ svcJ
µ svcH
µ svcF
µ svcG
µ svcE
Service Discovery
Routing Elasticity
Tracing
Authn/z Resilience
![Page 13: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/13.jpg)
Application logic should be simple
![Page 14: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/14.jpg)
Demo: set up minishift$ minishift profile set 'summit-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 summit-demo
![Page 15: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/15.jpg)
Demo: create and deploy an application$ mkdir myapp; and cd myapp
$ npm install -g express-generator
$ express .
$ code-insiders package.json # fish shell!
$ npx nodeshift --strictSSL=false --expose
![Page 16: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/16.jpg)
Yeah and… now what?
![Page 17: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/17.jpg)
Didn’t you say “Enterprise”?
![Page 18: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/18.jpg)
µ-Services are not a panacea
µ svcA
µ svcB
µ svcC
µ svcD
µ svcJ
µ svcH
µ svcF
µ svcG
µ svcE
![Page 19: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/19.jpg)
Some services will fail
µ svcA
µ svcB
µ svcC
µ svcD
µ svcJ
µ svcH
µ svcF
µ svcG
µ svcE
![Page 20: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/20.jpg)
Causing more services to fail
µ svcA
µ svcB
µ svcC
µ svcD
µ svcJ
µ svcH
µ svcF
µ svcG
µ svcE
![Page 21: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/21.jpg)
eval(cascading failures) > dead application
µ svcA
µ svcB
µ svcC
µ svcD
µ svcJ
µ svcH
µ svcF
µ svcG
µ svcE
![Page 22: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/22.jpg)
Let’s get enterpriseyWith RHOAR circuit breakers
![Page 23: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/23.jpg)
RHOAR Demo
![Page 24: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/24.jpg)
Support Services
> Smart Routing> API Management> Caching Service> Configuration> Messaging> SSO> Registry
24
Application Logic
> Client-side Load Balancing> Service Registration> Circuit Breaker> Distributed Tracing
MICROSERVICES 2014 - Current
2014
![Page 25: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/25.jpg)
RED HAT OPENSHIFT APPLICATION RUNTIMESProviding curated set of integrated runtimes and frameworks that standardizes Cloud Native App Dev
25
RED HAT OPENSHIFT
RED HAT OPENSHIFT APPLICATION RUNTIMES
APPLICATIONS LIFECYCLE MANAGEMENT
CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES)
Amazon Web Services Microsoft Azure Google CloudOpenStackDatacenterLaptop
YOUR INFRASTRUCTURE
YOUR APPS AND SERVICES
SUPPORTING MIDDLEWARE SERVICES
ReactiveVert.x
MicroProfile WildFly Swarm
Spring BootTomcat
JavaScript Node.js
Java EE JBoss EAP
Launch Service✓ Simplified
development
✓ Strategic flexibility
✓ DevOps automation
![Page 26: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/26.jpg)
Support Services
> Smart Routing> API Management> Caching Service> Configuration> Messaging> SSO> Registry
26
Application Logic
> Client-side Load Balancing> Service Registration> Circuit Breaker> Distributed Tracing
Application Logic
> Client-side Load Balancing> Circuit Breaker
Support Services
> Distributed Tracing> API Management> Caching Service> Messaging> SSO
> Registry> Configuration> Server-side Load Balancing
MICROSERVICES (Current)
2014 Current
![Page 27: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/27.jpg)
Support Services
> Smart Routing> API Management> Caching Service> Configuration> Messaging> SSO> Registry
27
Application Logic
> Client-side Load Balancing> Service Registration> Circuit Breaker> Distributed Tracing
Application Logic
> Client-side Load Balancing> Circuit Breaker
Support Services
> Distributed Tracing> API Management> Caching Service> Messaging> SSO
> Registry> Configuration> Server-side Load Balancing
EVOLUTION OF MICROSERVICES (2014 - FUTURE)
Support Services
> API Management> Caching Service> Messaging> SSO
Application Logic
> Registry> Configuration> Server-side Load Balancing> Client-side Load Balancing> Distributed Tracing> Circuit Breaker> Fault Injection
2014 Current Future
![Page 28: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/28.jpg)
https://developers.redhat.com/launchhttps://github.com/bucharest-gold/node-rpmhttps://github.com/bucharest-gold/centos7-s2i-nodejs
![Page 29: 5 Minutes to Enterprise JavaScript › c2511cea-81c5-4386-8731-cc44… · APPLICATIONS LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION & MANAGEMENT (KUBERNETES) Laptop Datacenter OpenStack](https://reader033.fdocuments.in/reader033/viewer/2022042310/5ed79a0030ed446bab02c3b0/html5/thumbnails/29.jpg)
THANK YOUplus.google.com/+RedHat
linkedin.com/company/red-hat
youtube.com/user/RedHatVideos
facebook.com/redhatinc
twitter.com/RedHat