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

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

  • Upload
    leanh

  • View
    230

  • Download
    0

Embed Size (px)

Citation preview

Microservices with Red Hat JBoss Fuse

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

and 3scale API Management

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.

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.”

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

F4726-022217

SOA is dead, long live SOA Services

microservices

F4726-022217

SOA• Separation of

responsibilities • Flexibility • Standardisation • Enabled BPM

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

changes

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)

F4726-022217

What we had

Big, expensive monolithic systems

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

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

F4726-022217

What we wanted

Shared Service Shared Service Shared Service

App App App

Sharable Enterprise services

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!

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!

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

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

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

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

F4726-022217

Microservices benefits - Agility

DesignDevelopTestDeployManageUpdate

Crusty monolith

F4726-022217

Microservices benefits - Agility

Awesome microservices

DesignDevelopTestDeployManageUpdate

DesignDevelopTestDeployManageUpdate

DesignDevelopTestDeployManageUpdate

DesignDevelopTestDeployManageUpdate

F4726-022217

Crusty monolith Traditional scaling

Overhead?!?

Microservices benefits - Scaling & High Availability

F4726-022217

Awesome microservices Microservices scaling

Only scale what’s necessary

Microservices benefits - Scaling

F4726-022217

Microservices Architecture - What do you need to build it?

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?

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

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

F4726-022217

JBoss Visual Development - Routes

F4726-022217

JBoss Visual Development - Data mapping

F4726-022217

Visual Debugging

F4726-022217

Service Implementation

F4726-022217

Service Binding REST

F4726-022217

Service Contracts

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?

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

10,000 foot overview

Source 2 Image Walk Through

Code

Build

Deploy

Container Image Registry

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

☒ ☑

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?

F4726-022217

API Management Key Benefits for MSA

OpenShift & Fuse

API Management

F4726-022217

API Layer

API Management - What you actually need

API Management = Service Management = SOA Governance

F4726-022217

API Layer

API Management - What you actually need

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

F4726-022217

API Layer

API Management - What you actually need

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

Red Hat3scaleAPI Management

Modular

No single point of failure

Cloud access

Highly scalable

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

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

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

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

F4726-022217

Microservices Architecture with Red Hat Middleware

F4726-022217

Demo material

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

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

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

THANK YOU

plus.google.com/+RedHat

linkedin.com/company/red-hat

youtube.com/user/RedHatVideos

facebook.com/redhatinc

twitter.com/RedHatNews