Upload
others
View
24
Download
0
Embed Size (px)
Citation preview
Kai Wähner
Technology Evangelist
LinkedIn / Xing
@KaiWaehner
www.kai-waehner.de
April 2016 – JPoint Moscow, Russia
Microservices and Containers in the Middleware World
© Copyright 2000-2016 TIBCO Software Inc.
• A cloud-native architecture enables flexible and agile development
• Modern middleware leverages containers and Microservices
• Just using Jenkins and Docker is not enough
Key Takeaways
© Copyright 2000-2016 TIBCO Software Inc.
1) Digital Transformation
2) Middleware
3) Microservices and Containers
4) A Cloud-Native Architecture
5) Cloud Native Middleware
6) Live Demo
Agenda
© Copyright 2000-2016 TIBCO Software Inc.
1) Digital Transformation
2) Middleware
3) Microservices and Containers
4) A Cloud-Native Architecture
5) Cloud Native Middleware
6) Live Demo
Agenda
© Copyright 2000-2016 TIBCO Software Inc.
The Digital Transformation cannot be stopped!
© Copyright 2000-2016 TIBCO Software Inc.
Evolving Demands from the Business
AGILITY & SPEED
REDUCED
CYCLE TIMES
WEB
SCALE
LOWER
COST
FAIL FAST
© Copyright 2000-2016 TIBCO Software Inc.
1) Digital Transformation
2) Middleware
3) Microservices and Containers
4) A Cloud-Native Architecture
5) Cloud Native Middleware
6) Live Demo
Agenda
© Copyright 2000-2016 TIBCO Software Inc.
“Middleware is computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glue”.
Middleware makes it easier for software developers to implement communication and input/output, so they can focus on the specific purpose of their application.” Wikipedia (https://en.wikipedia.org/wiki/Middleware)
Middleware
© Copyright 2000-2016 TIBCO Software Inc.
• Keywords PAST:
Application Integration, EAI, Broker, Process, Application, Integration, Enterprise, Hub and Spoke, Backbone, Scalability, Platform, Batch
• Keywords PRESENT:
Service Integration, Bus, SOA, BPM, Service, ESB, Flexibility, Distribution, Events, EDA, Real Time, Event Correlation, Open, Standards, Extensibility
• Keywords FUTURE:
Integration of Everything, Gateway, iBPMS, Cloud, IoT, Microservice, API, Continuous Delivery, Self-Service, Prediction
Middleware - Buzzwords
© Copyright 2000-2016 TIBCO Software Inc.
„... ESB frameworks are generally characterized as
heavyweight – complex, centralized and difficult...“ “Electronic Services: Concepts, Methodologies, Tools and Applications, Information“ - Science Reference (15. Juli 2010)
Middleware – The Double Burden?
© Copyright 2000-2016 TIBCO Software Inc.
Middleware Example: Enterprise Service Bus (ESB)
An enterprise service bus (ESB) is a software architecture model used for designing and
implementing communication between mutually interacting software applications in a service-
oriented architecture (SOA). Its primary use is in enterprise application integration (EAI) of heterogeneous and complex landscapes.
http://en.wikipedia.org/wiki/Enterprise_service_bus (Wikipedia, 2016)
© Copyright 2000-2016 TIBCO Software Inc.
Is the ESB dead? #NoESB
Gartner https://www.gartner.com/user/registration/webinar?resId=2855231&commId=128383&channelId=5500&srcId=null
Akana (former SOA Software) https://blog.soa.com/noesb/
© Copyright 2000-2016 TIBCO Software Inc.
What to use an ESB for?
• Integration, orchestration, choreography, routing, (some kinds of) event processing / correlation / business activity monitoring
• Legacy Integration (e.g. with a powerful SAP or Mainframe connector)
• API and REST integration and business services
• Messaging (WebSockets, MQTT, AMQP, …) Internet of Things
Deploy these services independently from each other with a standardized interface to a scalable runtime platform; automatically.
Definition of the Term “ESB” in 2016
© Copyright 2000-2016 TIBCO Software Inc.
1) Digital Transformation
2) Middleware
3) Microservices and Containers
4) A Cloud-Native Architecture
5) Cloud Native Middleware
6) Live Demo
Agenda
© Copyright 2000-2016 TIBCO Software Inc.
Microservices
• Suite of small services running in its own process
• Communication via lightweight mechanisms
• Built around business capabilities
• Independently deployable, written in different languages and using different data stores
• Bare minimum of centralized management
• Shorter time to results and increased flexibility
© Copyright 2000-2016 TIBCO Software Inc.
Various Forms of Microservices
Integration
Service
Monolith application
SOA
Integration
Service
Service Service Service Service
API Gateway
SaaS Service BPM Service
© Copyright 2000-2016 TIBCO Software Inc.
== The Momentum of Containers
How to deploy independent Microservices?
Garden / Warden
© Copyright 2000-2016 TIBCO Software Inc.
Why Containers?
http://www.slideshare.net/andersjanmyr/docker-the-future-of-devops
© Copyright 2000-2016 TIBCO Software Inc.
“Build, Ship, and Run Any App, Anywhere”
http://www.slideshare.net/ andersjanmyr/ docker-the-future-of-devops
© Copyright 2000-2016 TIBCO Software Inc.
An Open Standard for Containers...
https://www.opencontainers.org/
© Copyright 2000-2016 TIBCO Software Inc.
1) Digital Transformation
2) Middleware
3) Microservices and Containers
4) A Cloud-Native Architecture
5) Cloud Native Middleware
6) Live Demo
Agenda
© Copyright 2000-2016 TIBCO Software Inc.
• scalable services
• resiliency
• automatic load balancing and failover
• DevOps
• usage public cloud platforms, but also private or hybrid
• vendor-agnostic deployment
• focus on business problems
Cloud Native enables...
© Copyright 2000-2016 TIBCO Software Inc.
Cloud-Native Architecture
Microservices and Containers are just the Foundation!
© Copyright 2000-2016 TIBCO Software Inc.
• Microservices and Containers
[as discussed…]
• Continuous Integration and Continuous Delivery
• Scripting / Automatic Test and Deployment
• Service Discovery
• Dynamic Distributed Configuration Management
• Scalability and Failover
• Cluster Management (Scheduling and Orchestration)
• Load Balancing (Server-side and Client-side)
• Cloud Native Platform
• Self-Service Agile Infrastructure
• Private / Public / Hybrid PaaS
Requirements for a Cloud-Native Architecture
© Copyright 2000-2016 TIBCO Software Inc.
Continuous Integration and Continuous Delivery
http://en.wikipedia.org/wiki/Continuous_delivery
BENEFITS • Accelerated Time to Market • Building the Right Product • Improved Productivity and Efficiency • Reliable Releases • Improved Product Quality • Improved Customer Satisfaction
Build Management • Ant, Maven, Gradle, … Continuous Integration • Jenkins, Bamboo, … Continuous Delivery • Chef, Puppet, Salt, …
Scripting / Automatic Test and Deployment
© Copyright 2000-2016 TIBCO Software Inc.
Continuous Integration and Continuous Delivery
Internal Service Discovery for a Scalable Runtime
https://docs.pivotal.io/spring-cloud-services/service-registry/
Service Registry • Eureka • Apache Zookeeper • Consul • Etcd
Cluster Frameworks with implicit Service Registry • Kubernetes • Mesos Marathon • Amazon AWS ELB PaaS Cloud Platforms reusing an existing Service Registry • Pivotal Cloud Foundry
is based on Eureka
© Copyright 2000-2016 TIBCO Software Inc.
Continuous Integration and Continuous Delivery
External Service Discovery for an “Open API”
Examples for API Management: JBoss apiman, Apigee, Akana, TIBCO Mashery, Layer7
© Copyright 2000-2016 TIBCO Software Inc.
Continuous Integration and Continuous Delivery
Dynamic Distributed Configuration Management Features • Effect changes dynamically at runtime • Change multi-dimensional properties based on a complex request or deployment context Use Cases • Enable / disable features based on request context • Change UI presentation logic • Override behaviors of patterns (e.g. Circuit Breaker) • Change log level after observing issues in a service • … Examples Netflix’ Archaius, Spring Cloud Config
http://techblog.netflix.com/2012/06/annoucing-archaius-dynamic-properties.html
© Copyright 2000-2016 TIBCO Software Inc.
Scalability and Failover
Cluster Management (Scheduling and Orchestration) Features • Orchestrate the combination of container scheduling and managing hosts • Select relevant hosts (applying rules and constraints) • Load containers onto the specific hosts • Start, stop, and manage the life cycle of the process • Designed to be fault-tolerant and scalable
Examples • Swarm (Docker-native) • Fleet (CoreOS’ low-level framework) • Kubernetes (open source’d by Google)
• Adopted by others (IBM, Red Hat, Microsoft …)
• Mesos’ Marathon (most powerful and complex) • For large scale; multi-use (e.g. Containers, Hadoop)
https://www.oreilly.com/ideas/swarm-v-fleet-v-kubernetes-v-mesos https://www.digitalocean.com/community/tutorials/the-docker-ecosystem-an-introduction-to-common-components
© Copyright 2000-2016 TIBCO Software Inc.
Scalability and Failover
Server-side and Client-side Load Balancing (LB) Features • Distributes network or application traffic across a number of servers • Used to increase capacity (concurrent users) and reliability of applications • Server-Side External Load Balancing (“Edge Services”) • Client-Side Internal Load Balancing (“Mid-Tier Services”) Why also Client-Side LB? • Inter-Service-Communication (1 hop instead of 2 hops) • Implicit LB, no need for an external LB • Traditional LB with IP addresses and host names not sufficient • Registering and de-registering servers with load balancer on the fly • No restrictions on the protocol or method of communication Examples • F5 – internal / DMZ, server-side • Netflix’ Ribbon – internal / within cloud platform, client-side • AWS ELB (Elastic Load Balancer) – public cloud, server-side
www.devcentral.f5.com
© Copyright 2000-2016 TIBCO Software Inc.
What Cloud Native Solutions
are available?
Cloud Native Architecture
Cloud Native Platform (Infrastructure-as-a-Service)
Choose your IaaS
Private or Hybrid Cloud
Reduced costs of Infra
Self-hosted & Controlled Env
Servers
Storage
Network
IaaS
Cloud Native Platform (Platform-as-a-Service)
Choose your PaaS / Container
Cloud-Native App Dev
Self-service agile
infrastructure
Elasticity & Scalability
OS & Containers
Scalability
Routing
Logging / Monitoring
PaaS
© Copyright 2000-2016 TIBCO Software Inc.
Cloud Native Platform
Choose your IaaS
Choose your PaaS / Container
Private or Hybrid Cloud
Cloud-Native App Dev
Reduced costs of Infra
Self-service agile
infrastructure
Self-hosted & Controlled Env
Elasticity & Scalability
Servers
Storage
Network
OS & Containers
Scalability
Routing
Logging / Monitoring
PaaS
IaaS
© Copyright 2000-2016 TIBCO Software Inc.
PaaS Platforms on top of IaaS in 2016
What container and PaaS tools are used to manage OpenStack applications? OpenStack Survey, April 2016: http://www.openstack.org/assets/survey/April-2016-User-Survey-Report.pdf
© Copyright 2000-2016 TIBCO Software Inc.
Cloud Foundry
© Copyright 2000-2016 TIBCO Software Inc.
Kubernetes (K8S)
http://kubernetes.io/docs/getting-started-guides/#cloud
© Copyright 2000-2016 TIBCO Software Inc.
Kubernetes on Google Cloud Platform
© Copyright 2000-2016 TIBCO Software Inc.
Apache Mesos
http://www.slideshare.net/Docker/building-web-scale-apps-with-docker-and-mesos/30
© Copyright 2000-2016 TIBCO Software Inc.
SaaS – “The Other” Cloud Native Alternative
https://www.linkedin.com/pulse/saas-vs-paas-iaas-ultimate-guide-when-use-what-sonia-patel
… you have no control! You “just” use the service!
© Copyright 2000-2016 TIBCO Software Inc.
“Containers as a service (CaaS) is a form of container-based virtualization in
which container engines, orchestration and the underlying compute resources
are delivered to users as a service from a cloud provider.
The basic resource for CaaS is a container, rather than a virtual machine (VM)
or a bare metal hardware host system”
http://searchcloudcomputing.techtarget.com/definition/Containers-as-a-Service-CaaS
Container-as-a-Service
© Copyright 2000-2016 TIBCO Software Inc.
1) Digital Transformation
2) Middleware
3) Microservices and Containers
4) A Cloud-Native Architecture
5) Cloud Native Middleware
6) Live Demo
Agenda
© Copyright 2000-2016 TIBCO Software Inc.
Some Middleware examples
• Integration
• Services / APIs, Integration, Orchestration
• API Management
• Publish and Monetize Microservices (internal, partner, public)
• Log Management
• Monitor distributed Microservices in a central way
• Event Processing
• Correlation of Microservices events in real time
All the above Middleware components
• control and leverage other Microservices
• have to support Microservice characteristics itself (Containers, CI / CD, Elastic Scalability, etc.) to fit into a cloud-native architecture
Microservices and Containers in the Middleware World
© Copyright 2000-2016 TIBCO Software Inc.
PaaS Integration Platform
Backend Legacy Apps
ESB & Common Services
Integration Apps & Services
Functional Microservices
Omnichannel client apps
Microservices
(Node/Java/Python) Microservices
(Node/Java/Python) Microservices
(Node/Java/Python)
API
Choreography
Inte
gra
tio
n P
aa
S
Functional Microservices Build focused business functionality-oriented apps
without getting into code complexity
API Choreography Visually choreograph APIs leveraging the PaaS
Integration Tooling (e.g. data mapper, connectors)
Integration Apps & Services Build consumable Web APIs out of backend web
services like SOAP, SAP, Oracle, IBM MQ, etc.
• Web-based Integration
• “Edge-Services”
• “Citizen Developer”
© Copyright 2000-2016 TIBCO Software Inc.
SaaS Integration Solution
© Copyright 2000-2016 TIBCO Software Inc.
API Management
TRAFFIC
MANAGEMENT
API PACKAGER
SECURITY
ANALYTICS
API Gateway
TRAFFIC
MANAGEMENT
ADVANCED
SECURITY
TRANSFORM
PORTAL
APIs
AP
I P
acka
gin
g
an
d D
istr
ibu
tio
n
AP
I
Cre
atio
n
API Management
© Copyright 2000-2016 TIBCO Software Inc.
Log Management
Operational Intelligence Platform
Centralize and Store of Record Search, Auto-id, OOTB Parsing, Correlation Forensics and Alerts Reports
Sen
sors
Ap
plic
atio
n L
ogs
Tran
sact
ion
s
Mo
nit
ori
ng
Co
nfi
gura
tio
n
Mes
sagi
ng
Stre
amin
g A
nal
ytic
s
Dat
a D
isco
very
WEB UI WS API
Analysis Tools
© Copyright 2000-2016 TIBCO Software Inc.
Event Processing
Voltage
Temperature
Vibration
Device
history
Temporal analytic: “If vibration spike is followed by temp spike then
voltage spike [within 12 minutes] then flag high severity alert.”
Correlation of Microservice Events in Real Time
© Copyright 2000-2016 TIBCO Software Inc.
1) Digital Transformation
2) Middleware
3) Microservices and Containers
4) A Cloud-Native Architecture
5) Cloud Native Middleware
6) Live Demo
Agenda
© Copyright 2000-2016 TIBCO Software Inc.
Cloud Native Architecture for the Live Demo
TIBCO ESB
Gateway
App
BW CE
App
BW CE
App
Cloud Foundry
BW6
Node App Spring App
Gateway
App
Partner
App
.com
Web App
Android
App
iPhone
App
EMS
MongoDB
ROUTER
CONTROLLER
HEALTH MGR
NATS
LOGGING
SVC BROKER
BW CE
App
Java App
eFTL
SaaS
PaaS
“Legacy”
© Copyright 2000-2016 TIBCO Software Inc.
Live Demo
• Cloud (PaaS, Microservices, Container) • IDE (REST, APIs, Integration) • Administration (Deployment, Versioning) • Operations (Failover, Scalability, Log
Management) • Log Management (Distributed Search and
Correlation) • Open API (Packaging, External Discovery)
Cloud-Native Microservices with Pivotal Cloud Foundry, Docker, Kubernetes, TIBCO BusinessWorks Container Edition, TIBCO Mashery and Papertrail
© Copyright 2000-2016 TIBCO Software Inc.
• A cloud-native architecture enables flexible and agile development
• Modern middleware leverages containers and Microservices
• Just using Jenkins and Docker is not enough
Key Takeaways
Questions?
Kai Wähner [email protected]
@KaiWaehner
www.kai-waehner.de
LinkedIn / Xing Please connect!