5 minutes to enterprise javascript - lance...

40
5 Minutes to Enterprise JavaScript With Red Hat OpenShift Application Runtimes Lance Ball Principal Software Engineer Wednesday, May 9 2018 John Clingan Product Manager RHOAR

Upload: others

Post on 25-May-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

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 - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

NODE.JSIs a Thing at Red Hat

Page 3: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J
Page 4: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

● 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 - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

OK… But Why Node.js?

Page 6: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

In the Beginning, there was the Monolith

My App

Page 7: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

The Monolith Begat Microservices

µ svcA

µ svcB

µ svcC

µ svcD

µ svcJ

µ svcH

µ svcF

µ svcG

µ svcE

Page 8: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

Small, discrete services that do one thing well - usually as REST over HTTP

Page 9: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

This is what Node.js does well

Page 10: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

But waitMy application is very complex!

Page 11: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

Application complexity shifts from application code to the runtime platform

Page 12: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

Logging

µ svcA

µ svcB

µ svcC

µ svcD

µ svcJ

µ svcH

µ svcF

µ svcG

µ svcE

Service Discovery

Routing Elasticity

Tracing

Authn/z Resilience

Service Mesh

Page 13: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

Application logic should be simple

Page 14: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

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 - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

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 - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

Yeah and… now what?

Page 17: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

Didn’t you say “Enterprise”?

Page 18: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

µ-Services are not a panacea

µ svcA

µ svcB

µ svcC

µ svcD

µ svcJ

µ svcH

µ svcF

µ svcG

µ svcE

Page 19: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

Some services will fail

µ svcA

µ svcB

µ svcC

µ svcD

µ svcJ

µ svcH

µ svcF

µ svcG

µ svcE

Page 20: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

Causing more services to fail

µ svcA

µ svcB

µ svcC

µ svcD

µ svcJ

µ svcH

µ svcF

µ svcG

µ svcE

Page 21: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

eval(cascading failures) > dead application

µ svcA

µ svcB

µ svcC

µ svcD

µ svcJ

µ svcH

µ svcF

µ svcG

µ svcE

Page 22: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

Let’s get enterpriseyWith RHOAR circuit breakers

Page 23: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J
Page 24: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J
Page 25: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J
Page 26: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J
Page 27: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J
Page 28: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J
Page 29: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

RHOAR Demo

Page 30: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

Logging

µ svcA

µ svcB

µ svcC

µ svcD

µ svcJ

µ svcH

µ svcF

µ svcG

µ svcE

Service Discovery

Routing Elasticity

Tracing

Authn/z Resilience

Service Mesh

Page 31: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

Commercial Break

Page 32: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

F7212-090617

DEVELOPERS DEMAND MORE OPTIONS

32

ENTERPRISES EXPAND USE OF LANGUAGES, FRAMEWORKS, & RUNTIMES

Page 33: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

F7212-090617

Developers are Asked to Manage a Lot of Change

DevOps

Container-ization

Micro-Services

New Runtime

Page 34: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

F7212-090617

Helping Developers find their Inner Peace

Page 35: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

Support Services

> Smart Routing> API Management> Caching Service> Configuration> Messaging> SSO> Registry

35

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 36: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

RED HAT OPENSHIFT APPLICATION RUNTIMESProviding curated set of integrated runtimes and frameworks that standardizes Cloud Native App Dev

36

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 37: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

Optimized for Kubernetes and DevOps

• Reduce complexity of build cloud native applications• Supports kubernetes features that replace traditional standalone backing

services• Externalized Configuration: Kubernetes ConfigMap• Service Discovery: Kubernetes Services (DNS)• Load Balancing: Kubernetes Replication Controller• Auto-Restart: Kubernetes Health Check w/MicroProfile Health Check API• Metrics: MicroProfile Metrics API with CNCF Prometheus• Distributed Tracing: Istio & OpenTracing with CNCF Jaeger

Page 38: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

RHOAR Node.js Support and Lifecycle

● Support LTS releases

● Align with Node.js lifecycle

● Developer builds of non-LTS releases

Page 39: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

https://developers.redhat.com/launchhttps://github.com/bucharest-gold/node-rpmhttps://github.com/bucharest-gold/centos7-s2i-nodejs

Page 40: 5 Minutes to Enterprise JavaScript - Lance Balllanceball.com/slides/red-hat-summit-2018/5-minutes-to...The Monolith Begat Microservices µ svc A µ svc B µ svc C µ svc D µ svc J

THANK YOUplus.google.com/+RedHat

linkedin.com/company/red-hat

youtube.com/user/RedHatVideos

facebook.com/redhatinc

twitter.com/RedHat