microservices with red hat jboss fuse a microservices... · microservices with red hat jboss fuse...
TRANSCRIPT
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