What integration, service, or API infrastructure components are appropriate for my platform?
Should teams Decouple at Edge or Center?
Why incorporate API Gateways, Enterprise Service Bus (ESB), or integration frameworks into your platform and architecture?
7. Well Behaved Services
• Well Organized
• Follows Standards
• Consumer Friendly
• High Performing
• Secure
• Maintainable
• Supportable
• Adhere to Development and Testing Standards
• Well Governed
5/26/201
6 7
8. Build a Well Behaved Service Core
Architectural Attributes
• Lightweight
• Self-contained - Autonomous
• Deterministic Performance
• Dynamic Discovery
• Flexible Composition
10. Optional Mediation Requirements
• Resource adapters
• Reliable message delivery
• Transactional integrity
• Protocol bridging
• e.g. http to ftp, http to jms
• Message Exchange Pattern (MEP) mediation
• e.g. request/reply to asynch, request/reply to one-way
5/26/201
6
Source: http://wso2.com/library/webinars/2012/08/wso2-advantage-webinar-esb-evaluation-framework/
10
Mediation papers over legacy connectivity issues
11. Business Logic Requirements
• Composition [60-80% Rule]
• Orchestration [transaction scope]
• Event processing
5/26/201
6
Source: IT Well Behaved Services, April 2015
11
“A collection of independent services can
be used in a mediation/orchestration layer
to compose a complex business
transaction depending on the use case. “
12. Required Decoupling
Attribute
• Service Location
• Service Host Routing
• Client-side entity model
• Retry and Failover
5/26/201
6 12
Technical Component / Best Practice
• Service Discovery and Virtual
Endpoints
• Service Agent Registration and
Facade Pattern
• Publish Provider Schemas
• Circuit Breaker Pattern
13. Decouple at Edge or Center?
• Routing
• Dynamic location and binding, load balancing
• Message transformation
• Message validation
• Security policy enforcement
5/26/201
6
Source: http://wso2.com/library/webinars/2012/08/wso2-advantage-webinar-esb-evaluation-framework/
13
14. The Core Embracing Integration Primitives
• Java 8
• CompletableFutures (Promises)
• Streaming resultsets with Java Lambdas
• Open API Specification
• JSON Schemas and XML Schema
• Simple Library Add-ons with Advanced Integration Functionality
• Java Rx, Netty, Linkerd, Hystrix, Gson/Jackson
5/26/201
6 14
17. Right-size Service Infrastructure
5/26/201
6 17
Integration
Framework
Gateway
Enterprise
Service Bus
Full
Integration
Platform
Cloud-Native Routers and Container
Platforms
Automatically Decouple Service Hosts
Behind Virtual Endpoints
18. What has change at the Edge?
• Self-contained, Lightweight, Minimalistic
• Service-Oriented, API-Friendly
• Powerful transport module
• Runtime Insights and Diagnostics
• Security modules
• Service discovery
• Container management
Spring Boot
http://projects.spring.io/spring-boot/
DropWizard
https://dropwizard.github.io/dropwizard/index.html
NetFlix Karyon
https://github.com/Netflix/karyon
19. Light Bus or Lighter Integration Framework
Enterprise Service Bus
• WSO2 ESB
• Red Hat Jboss Fuse
Integration Framework
• Apache Camel
• Spring Integration
• NServiceBus for .NET
5/26/201
6 19
21. Every use case covered
Full Integration Platform
• WSO2
• Mule Anypoint
• Oracle Fusion Middleware
• Tibco ActiveMatrix ESB
• IBM WebSphere ESB
5/26/201
6 21
22. Time to get off the bus?
5/26/201
6
Source: http://www.gartner.com/webinar/2855231
22
23. Name Change or Deeper Design Change?
5/26/201
6 23
• Web API
• Policy definition
• Light service mediation
• Developer Self-Service
• Metrics and analytics
25. Common Use Cases
• Decouple Consumers from Provider Location (aka service
virtualization)
• Dynamically Route Messages Based On hostname, URI, headers,
content
• Failover to Available Providers
• Transform Message into Back-end Format
• Cache Response Data
5/26/201
6 25
26. ESB versus API Gateway Comparison Matrix
5/26/201
6 26
• Decoupling
• Externalize authorization
• Enforce QoS and Security Policies
• Separate interface from implementation
• Manage Service Lifecycle
• Enable independent evolution and deployment
• Reduce implementation redundancy
• Mediation
• Routing
• Transaction Cache
• Platform Integration
• Monitoring
28. Founder and Chief Architect of KaruX
F500/G2000 Advisor
Former Gartner Research Team Leader
Assisting organizations navigate the tectonic
shift towards;
Microservices
API Centric Architecture
DevOps
Cloud-Native Container Platforms
/in/cobiacom
m@cobiacomm
slideshare.net./cobiacomm
About Chris Haddad
Hinweis der Redaktion
Message Oriented: message is the medium. MQ , ActiveMQ, topics/queues used to channel appropriate messages . Hub and spoke
Service Oriented: services as first-class components. Strive towards canonical message.
Resource Oriented: constraints service with 4 verbs, hierarchical nouns
Microservice Oriented: divides business domain into standalone, autonomous units: peer to peer,
Cloud-Native: dynamic instances, no fixed IPs.
“A collection of independent services can be used in a mediation/orchestration layer to compose a complex business transaction depending on the use case. “
Source: IT Well Behaved Services, April 2015
Are you centralizing integration tasks?
Architecture Decisions
Client side service discovery or server-side routing
Canonical message transformations in middle bus or at edge
Embedded Adapters or Standalone Connectivity Services
Policy Enforcement Point Location
Resiliency policy enforcement at edge or center
Security policy enforcement at edge, center, or throughout
metrics and analytics
developer self-service
service discovery
internal and external consumers
distributed policy enforcement point
policy: security, traffic/capacity, api definition, product definition, lifecycle management,
self-service within guide rails
Monitoring and alerting
-
container
security
PEP
web api
Enterprise Integration Patterns close impedance mismatch between front-end consumers and backend service.
DropWizard https://dropwizard.github.io/dropwizard/index.html
Dropwizard has out-of-the-box support for sophisticated configuration, application metrics, logging, operational tools, and much more, allowing you and your team to ship a production-quality web service in the shortest time possible.
Spring Boot http://projects.spring.io/spring-boot/
Create stand-alone Spring applications
Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)
Provide opinionated 'starter' POMs to simplify your Maven configuration
Automatically configure Spring whenever possible
Provide production-ready features such as metrics, health checks and externalized configuration
Absolutely no code generation and no requirement for XML configuration