microservices with red hat jboss fuse a microservices... · microservices with red hat jboss fuse...

47
Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - [email protected] Senior Solutions Architect June 2017 and 3scale API Management

Upload: vomien

Post on 05-May-2018

235 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

Microservices with Red Hat JBoss Fuse

Ruud Zwakenberg - [email protected] Senior Solutions Architect June 2017

and 3scale API Management

Page 2: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

Disclaimer The content set forth herein is Red Hat confidential information and does not constitute in any way a binding or legal agreement or impose any legal obligation or duty on Red Hat.

This information is provided for discussion purposes only and is subject to change for any or no reason.

Page 3: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

Preface

“Building a horizontally scalable API on your enterprise systems is not difficult with the integration tools from Red Hat.

Ruud Zwakenberg explains how to build a modern, micro services based API with JBoss Fuse and 3scale API management.”

Page 4: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

• From SOA to Microservices• The benefits of microservices• Building microservices with Red Hat• Red Hat JBoss Fuse• Red Hat OpenShift• Red Hat 3scale API Management

Agenda

https://github.com/jbossdemocentral/jboss-fis-weightwatcher

https://github.com/rmarting/fis-demo

https://github.com/jbossdemocentral/coolstore-microservice

Page 5: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

SOA is dead, long live SOA Services

microservices

Page 6: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

SOA• Separation of

responsibilities • Flexibility • Standardisation • Enabled BPM

• Full monty • Takes time • Expensive • Needs governance • Needs organisational

changes

Page 7: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

Microservices - doing SOA the right way

• Keep the services orientation (services are not a bad idea)• Kill the service overhead (you don’t need it)• Focus on the business (in the end, they pay the bills)

Page 8: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

What we had

Big, expensive monolithic systems

$$$$$$$$$$$$

• Difficult to maintain • Difficult to integrate • Difficult to scale

Page 9: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

What we wanted

Shared Service Shared Service Shared Service

App App App

Sharable Enterprise services

Page 10: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

We even added a big fat Enterprise Service Bus

Shared Service Shared Service Shared Service

App App App

Enterprise Service Bus

Cheaper! Faster! More Agile!

Page 11: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

Challenges

Shared Service Shared Service Shared Service

App App App

Enterprise Service BusAdding new features is difficult

Trouble!

Easy

This is your system

Bad Time to Market!

Page 12: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

So what we did

Shared Service Shared Service Shared Service

App App App

Enterprise Service Bus

We stuffed everything in here

and here

Page 13: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

We ended up with this

Shared Service Shared Service Shared Service

App AppYeahh, we made a new monolith!

Our very fat Enterprise Service Bus

Our own legacy

Difficult to upgrade Difficult to change Difficult to scale Difficult to manage Very expensive

Page 14: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

So, what now?

Shared Service

App App App

Enterprise Service Bus

Shared Service

Shared Service

Put the bus on a diet

Dedicated business microservices

Page 15: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

Microservices = pragmatic SOA

Well defined simple API (REST)

Dedicated storage

Service runs in its own process

Services should be small and perform a a single function

Services should be fault tolerant

Independently deployable

Each service is elastic, resilient, composable, minimal, and complete

Build by Continuous Delivery

Services are dedicated to a business goal

Page 16: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

Microservices benefits - Agility

DesignDevelopTestDeployManageUpdate

Crusty monolith

Page 17: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

Microservices benefits - Agility

Awesome microservices

DesignDevelopTestDeployManageUpdate

DesignDevelopTestDeployManageUpdate

DesignDevelopTestDeployManageUpdate

DesignDevelopTestDeployManageUpdate

Page 18: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

Crusty monolith Traditional scaling

Overhead?!?

Microservices benefits - Scaling & High Availability

Page 19: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

Awesome microservices Microservices scaling

Only scale what’s necessary

Microservices benefits - Scaling

Page 20: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

Microservices Architecture - What do you need to build it?

Page 21: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

API Layer Red Hat 3scale

Microservices Development Platform Red Hat JBoss Fuse

Container Platform Red Hat OpenShift

Microservices Architecture - What do you need to build it?

Page 22: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

JBoss Fuse - Good fit for Microservices• Extremely lightweight • Container ready • Easy to integrate with CI/CD • Easy fallback procedures • Polyglot (XML, Java, Groovy, Scala) • Self monitoring out of the box

Page 23: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

JBoss Fuse Components

Bonus: JBoss EAP J2EE Application Server

JBoss Development Studio Your Eclipse-based IDE

Apache Camel Integration routes, flows

Apache CXF SOAP / REST interfacing

Fabric8 Platform management

Apache A-MQ JMS / Message Broker

Apache Karaf OSGi Container

Page 24: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

JBoss Visual Development - Routes

Page 25: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

JBoss Visual Development - Data mapping

Page 26: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

Visual Debugging

Page 27: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

Service Implementation

Page 28: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

Service Binding REST

Page 29: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

Service Contracts

Page 30: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

API Layer Red Hat 3scale

Microservices Development Platform Red Hat JBoss Fuse

Container Platform Red Hat OpenShift

Microservices Architecture - What do you need to build it?

Page 31: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

Service deployment and scaling

• Microservice are your backbone, scaling is a must

• Docker containers managed by OpenShift provides a manageable environment for the JBoss platform

• JBoss Fuse (with JBoss EAP) images can be managed using Fabric8 and Kubernetes

Page 32: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

10,000 foot overview

Page 33: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

Source 2 Image Walk Through

Code

Build

Deploy

Container Image Registry

Page 34: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

OPENSHIFT TECHNICAL OVERVIEW

INTEGRATEDIMAGE

REGISTRY

OPENSHIFTCLUSTER

34

CONTINUOUS DELIVERY PIPELINEDEVELOPER GIT SERVER ARTIFACT

REPOSITORY

OPENSHIFT CI/CD PIPELINE (JENKINS) IMAGE BUILD

& DEPLOY

INTEGRATEDIMAGEREGISTRY

OPENSHIFTCLUSTER

GOLIVE?

PROMOTETO TEST

PROMOTETO UAT

PROMOTETO PROD

RELEASE MANAGER

NON-PROD PRODDEV TEST UAT

☒ ☑

Page 35: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

API Layer Red Hat 3scale

Microservices Development Platform Red Hat JBoss Fuse

Container Platform Red Hat OpenShift

Microservices Architecture - What do you need to build it?

Page 36: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

API Management Key Benefits for MSA

OpenShift & Fuse

API Management

Page 37: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

API Layer

API Management - What you actually need

API Management = Service Management = SOA Governance

Page 38: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

API Layer

API Management - What you actually need

For your service users • Secure Gateway between service consumers and providers • Nice developer portal

Page 39: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

API Layer

API Management - What you actually need

For your service admins • Service rate limiter • Monitoring • API monetising

Page 40: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

Red Hat3scaleAPI Management

Modular

No single point of failure

Cloud access

Highly scalable

Page 41: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

Access Control & SecurityAuthenticate and restrict access to your APIs. Protect backend services.

Multiple authentication mechanisms

Can be combined with IP / Domain referrer whitelisting

– API Key – App ID / App Key – Oauth 2.0

Authenticate traffic

Restrict by policy

Drop unwelcome calls

Protect backend services

Generate overage alerts

Impose rate limits

Page 42: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

API Contracts and Rate LimitsPackage your APIs. Create access tiers. Set rate limits.

Allow/restrict access to

your API end points along with rate limits

- Endpoint A- Endpoint t B

- X Calls / Minute - Y Calls / Day

- Free- $X per Month- $Y per Call

Package #1

Package #2

Package #3 Developers

Internal Teams

Strategic Partners

API services

Rate limits

API services

Page 43: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

Analytics & ReportingTrack and monitor usage. Get reports by API, app, method and metric.

Page 44: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

Developer & Partner PortalYour brand. Your user experience. Your user interface.

Page 45: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

Microservices Architecture with Red Hat Middleware

Page 46: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

F4726-022217

Demo material

https://github.com/jbossdemocentral/jboss-fis-weightwatcher

https://github.com/rmarting/fis-demo

https://github.com/jbossdemocentral/coolstore-microservice

Page 47: Microservices with Red Hat JBoss Fuse a microservices... · Microservices with Red Hat JBoss Fuse Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 and 3scale

THANK YOU

plus.google.com/+RedHat

linkedin.com/company/red-hat

youtube.com/user/RedHatVideos

facebook.com/redhatinc

twitter.com/RedHatNews