Contenu connexe Similaire à Cloud Native Middleware Microservices - Lessons Learned with Docker, Kubernetes and Cloud Foundry (20) Cloud Native Middleware Microservices - Lessons Learned with Docker, Kubernetes and Cloud Foundry2. © Copyright 2000-2016 TIBCO Software Inc.
Processes Analytics
APIs Streams & Events
Interconnect Everything
Devices
Equipment
CORE
Run the Business
EDGE
Change the Business
People
3. © Copyright 2000-2016 TIBCO Software Inc.
Evolving Demands from the Business
AGILITY &
SPEED
REDUCED
CYCLE
TIMES
WEB
SCALE
LOWER
COST
FAIL FAST
4. © Copyright 2000-2016 TIBCO Software Inc.
• Integration is key for success in today’s agile and always changing world
• Modern middleware leverages containers and microservices
• A cloud-native architecture enables flexible and agile development
Key Takeaways
5. © Copyright 2000-2016 TIBCO Software Inc.
1) Middleware Overview
2) Microservices
3) Cloud Native
4) Cloud Native Middleware Microservices
5) Live Demo
Agenda
6. © Copyright 2000-2016 TIBCO Software Inc.
1) Middleware Overview
2) Microservices
3) Cloud Native
4) Cloud Native Middleware Microservices
5) Live Demo
Agenda
7. © 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
8. © Copyright 2000-2016 TIBCO Software Inc.
Middleware
Application Integration
„Big SOA Application“
Process Integration
„Business Process Application“
Streaming
Analytics
„Streaming Application“
Cloud-Ready
On Premise
Public Cloud
CRM ERM Host ...
9. © Copyright 2000-2016 TIBCO Software Inc.
#1
On premise will not die.
Not everything will or should go to the cloud!
10. © Copyright 2000-2016 TIBCO Software Inc.
Development Environment for Middleware
Zero
Coding
Code
Everything
or anything in between
11. © Copyright 2000-2016 TIBCO Software Inc.
#2
Visual coding works,
even for very complex scenarios.
Forget the early 2000 SOA days!
12. © Copyright 2000-2016 TIBCO Software Inc.
1) Middleware Overview
2) Microservices
3) Cloud Native
4) Cloud Native Middleware Microservices
5) Live Demo
Agenda
13. © 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
à Replace small pieces instead of a complete application
14. © Copyright 2000-2016 TIBCO Software Inc. 14
Microservices Example
http://www.ibm.com/developerworks/cloud/library/cl-bluemix-microservices-in-action-part-1-trs/
Each tile is a microservice
“bookflights” interacts
with other microservices
Height corresponds to usage
Each microservice can be
Independently managed
à Shorter time to results and increased flexibility / scalability
à Replace small pieces instead of a complete application
15. © Copyright 2000-2016 TIBCO Software Inc.
Middleware Microservices
Application
Integration
„Integration Service 1“
Cloud-Ready
On Premise
Public Cloud
CRM ERM Host ...
Application
Integration
„Integration Service 2“
Application
Integration
„Integration Service 3“
Process
Integration
„Business Process
Service 1“
Streaming
Analytics
„Streaming Service 1“
Process
Integration
„Business Process
Service 1“
Streaming
Analytics
„Streaming Service 2“
16. © Copyright 2000-2016 TIBCO Software Inc.
Various Forms of (Micro)Services
Integration
Service
Monolith application SOA
Integration
Service
Service ServiceService Service
API Management
SaaS Service BPM Service
17. © Copyright 2000-2016 TIBCO Software Inc.
Distributed Microservice Architecture
http://blogs.gartner.com/gary-olliffe/2015/01/30/microservices-guts-on-the-outside/
”That complexity
has moved and
[…] increased [to]
the outer
architecture.”
18. © Copyright 2000-2016 TIBCO Software Inc.
New Challenges Emerging…
http://highscalability.com/blog/2014/4/8/microservices-not-a-free-lunch.html
”[…] when considering Microservice like architectures, it's really important to not be attracted
to the hype on this one as the challenges and costs are as real as the benefits."
• Different Languages / Technologies
• DevOps Skills Required
• Distributed System Complexity
• Distributed Configuration
• Service Discovery
• Resiliency
• Client Side Load Balancing
• Testability Challenges
• Orchestration / Integration
• Spaghetti Communication (again ?!)
• Re-Delivery
• Re-Route
• Cache
• ...
19. © Copyright 2000-2016 TIBCO Software Inc.
New Design Patterns Emerging…
Resilience Design Patterns
Features
• Fail fast and rapidly recover
• Prevent cascading failures
• Latency tolerance logic
• Fault tolerance logic
• Fallback Options
http://martinfowler.com/bliki/CircuitBreaker.html
https://github.com/Netflix/Hystrix/wiki
maxFailures = 5
resetTimeout = 1min
callTimeout = 10s
à maxFailures++
Example: Circuit Breaker
20. © Copyright 2000-2016 TIBCO Software Inc.
#3
Microservices are not free lunch.
They do not fit into every scenario!
22. © Copyright 2000-2016 TIBCO Software Inc.
New Design Patterns Emerging…
http://samnewman.io/patterns/architectural/bff
https://www.thoughtworks.com/insights/blog/bff-soundcloud
Example: Backends for Fronteds (BfF)
?
24. © Copyright 2000-2016 TIBCO Software Inc.
1) Middleware Overview
2) Microservices
3) Cloud Native
4) Cloud Native Middleware Microservices
5) Live Demo
Agenda
25. © Copyright 2000-2016 TIBCO Software Inc.
“Cloud washing is the purposeful and sometimes deceptive
attempt by a vendor to rebrand an old product or service by
associating the buzzword ‘cloud’ with it [and offering it via a
public cloud infrastructure].”
Cloud Washing
http://searchcloudstorage.techtarget.com/definition/cloud-washing
!
26. © Copyright 2000-2016 TIBCO Software Inc.
12 Factor Apps for Cloud Native Microservices
Codebase
One codebase
tracked in
revision control,
many deploys.
Dependencies
Explicitly declare
and isolate
dependencies.
Config
Store config in
the environment.
Backing
Services
Treat backing
services as
attached
resources.
Build, Release,
Run
Strictly separate
build and run
stages.
Processes
Execute the app
as one or more
stateless
processes.
Port Binding
Export services
via port binding.
Concurrency
Scale out via the
process model.
Disposability
Maximize
robustness with
fast startup and
graceful
shutdown.
Dev / Prod
Parity
Keep dev,
staging, and
prod as similar as
possible.
Logs
Treat logs as
event streams.
Admin
Processes
Run
admin/mgmt
tasks as one-off
processes.
https://12factor.net/
27. © Copyright 2000-2016 TIBCO Software Inc.
• Scalable services
• Service Discovery
• Load balancing and failover
• Resiliency
• DevOps and automation
• Usage of public cloud platforms, but also private or hybrid
• Self-service, pay-as-you-use, multi-tenancy
• Vendor-agnostic deployment
Cloud Native (à not just Microservices)
à Focus on business problems (after initial start-up efforts)
28. © Copyright 2000-2016 TIBCO Software Inc.
#5
Cloud-Native means much more
than a “cloud-washed” application
deployed to a cloud provider!
29. © Copyright 2000-2016 TIBCO Software Inc.
== The Momentum of Containers
How to deploy independent Applications or (Micro)Services?
Garden
30. © Copyright 2000-2016 TIBCO Software Inc.
Why Containers?
http://www.slideshare.net/andersjanmyr/docker-the-future-of-devops
Containers enable:
• Lightweight deployment
• Automation
• Better resource utilization
• Scaling up and down quickly
• Platform agnostic deployment
• Innovation and Fail Fast Concepts
• Standardization ? Ø The Open Container Initiative (OCI)
Ø Docker Fork Discussions (!!!)
31. © Copyright 2000-2016 TIBCO Software Inc.
#6
Microservices and Containers are often used together,
but also work very well without each other!
32. © Copyright 2000-2016 TIBCO Software Inc.
Cloud-Native Architecture
Containers are just the Foundation
for a Cloud Native Architecture!
33. 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
34. 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
35. © Copyright 2000-2016 TIBCO Software Inc.
Cloud Native Platform (IaaS + PaaS)
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
36. © Copyright 2000-2016 TIBCO Software Inc.
Kubernetes (K8S)
http://kubernetes.io/docs/getting-started-guides/#cloud
37. © Copyright 2000-2016 TIBCO Software Inc.
Kubernetes on Google Cloud Platform
http://kubernetes.io/docs/hellonode/
38. © Copyright 2000-2016 TIBCO Software Inc.
Cloud Foundry
http://www.slideshare.net/cdavisafc/cloud-foundry-technical-overview
39. © Copyright 2000-2016 TIBCO Software Inc.
#7
Containers are a lower level technology.
Only the infrastructure provider should care,
but not the application developer!
40. © Copyright 2000-2016 TIBCO Software Inc.
Apache Mesos – a “Cloud Operating System”
http://www.slideshare.net/Docker/building-web-scale-apps-with-docker-and-mesos/30
• Enterprises have to manage different clusters with different technologies
• Based on containers (but no specific technology, e.g. you can use Docker and rkt!
41. © Copyright 2000-2016 TIBCO Software Inc.
“The basic resource for CaaS is a container, rather than a virtual machine
(VM) or a bare metal hardware host system.”
Container-as-a-Service (CaaS)
http://searchcloudcomputing.techtarget.com/definition/Containers-as-a-Service-CaaS
42. © Copyright 2000-2016 TIBCO Software Inc.
Serverless Computing
• Bring a function (not an entire application) up for one single request.
• No cluster or server instance management.
• Small microservice-style functions running for a few (milli)seconds or at latest a few minutes.
• 100% utilization (!!!)
“Sponsored by Red Hat / JBoss"
43. © Copyright 2000-2016 TIBCO Software Inc.
… the Container Wars just began!
https://www.infoq.com/articles/
container-landscape-2016
44. © Copyright 2000-2016 TIBCO Software Inc.
#8
Be cloud platform agnostic.
The (container) world changes fast!
45. © Copyright 2000-2016 TIBCO Software Inc.
DevOps Elements – Culture and Technology!
Process
Tools
Automation
Culture
Continuous Integration/
Continuous Development
APIs
MicroservicesFrequent releases
Collaboration
46. © Copyright 2000-2016 TIBCO Software Inc.
#9
Automation (CI / CD / DevOps) and the related
cultural change are key for success.
Especially for Cloud-Native Microservices!
47. © Copyright 2000-2016 TIBCO Software Inc.
1) Middleware Overview
2) Microservices
3) Cloud Native
4) Cloud Native Middleware Microserivces
5) Live Demo
Agenda
48. © Copyright 2000-2016 TIBCO Software Inc.
Hybrid Integration Platform (HIP)
Application
Integration
Application
Integration
(on a PaaS)
iPaaS
Integration
Platform as a Service
iSaaS
Integration
Software as a Service
Cloud-Ready Cloud-Native
API
Management
On Premise
Public Cloud
Public Cloud Public Cloud
On Premise
Public Cloud
Process
Integration
Business Process
Management Platform
Streaming
Analytics
Fog Computing
Edge Devices
Edge
Integration
Analysts are sure:
HIP is “the new default”
in most enterprises!
49. © Copyright 2000-2016 TIBCO Software Inc.
Cloud, Container,
PaaS, iPaaS, iSaaS,
Coding, Visual Dev, …
Show me some different
cloud native middleware
examples!
50. © Copyright 2000-2016 TIBCO Software Inc.
• Open Source
• Runs on OpenShift PaaS (which is based on Kubernetes)
• Also available as iPaaS
• JBoss Fuse (based on Apache Camel and JBoss A-MQ)
• For Integration Specialists
• Focus on writing source code
JBoss Middleware Services
https://www.openshift.com/container-platform/middleware-services.html
51. © Copyright 2000-2016 TIBCO Software Inc.
JBoss Example: Apache Camel Integration Service
Java DSL
new RouteBuilder() {
public void configure() {
from(”jms:myQueue").loadBalance()
.circuitBreaker(2, 1000L, MyCustomException.class)
.to("mock:result"); }};
XML DSL
<route>
<from uri=“jms:myQueue"/>
<loadBalance>
<circuitBreaker threshold="2" halfOpenAfter="1000">
<exception>MyCustomException</exception>
</circuitBreaker>
<to uri="mock:result"/>
</loadBalance>
</route>
52. © Copyright 2000-2016 TIBCO Software Inc.
WSO2
http://wso2.com/cloud/paas/
• Open Source
• Runs on different cloud platforms
• Also available as iPaaS
• WSO2 Products (like ESB or CEP) containerized for cloud offerings
• WSO2 Microservices Framework for Java
• For Integration Specialists
• Focus on writing source code and configuration
53. © Copyright 2000-2016 TIBCO Software Inc.
• Available only as iPaaS (hosted runtime and IDE)
• Focus on visual coding and productivity
• Web IDE
• For Ad-Hoc Integrators
Dell Boomi
http://www.boomi.com
54. © Copyright 2000-2016 TIBCO Software Inc.
TIBCO
• Runs on different cloud platforms (TIBCO Container Edition)
• Also available as iPaaS (TIBCO Cloud Integration)
• Focus on visual coding and productivity
• Powerful IDE (Visual Coding) + Web user interface
• For Integration Specialists and Ad-hoc Integrators
55. © Copyright 2000-2016 TIBCO Software Inc.
• Simple – often personal - integration scenarios
• Web based integration
• For business users (also called Citizen Integrators)
iSaaS
http://bamageek.com/wp-content/uploads/2013/09/IFTTT-_-My-Recipes-1.pnghttps://www.snaplogic.com/ https://simplr.tibco.com
https://ifttt.com/
56. © Copyright 2000-2016 TIBCO Software Inc.
Commonalities:
• Open source frameworks
• Connectivity to IoT technologies (MQTT, CoaP, REST, …)
• Web UI for visual coding, testing, debugging
• Deployable “at the edge”
• For developers / integration specialists / citizen integrators
• Extendable SDKs / APIs
Edge Integration - Open Source IoT Process Engines
57. Edge Integration - Open Source IoT Process Engines
Eclipse Kura Node-RED Flogo
VM JVM V8 Golang
Base Disk Space 59 MB 56 MB ~ 0 MB
Base Runtime Memory ~ 170 MB (with Open JDK)
~ 20 MB (with Oracle Embedded Java)
> 50 MB ~ 5 MB
Startup time Slow (~8 sec) Slow (~5 sec) Fast (~1 sec)
Application Build Slow Not Applicable Fast (~2 secs)
58. © Copyright 2000-2016 TIBCO Software Inc.
#10
Establish a hybrid integration architecture
to solve different business requirements!
59. © Copyright 2000-2016 TIBCO Software Inc.
1) Middleware Overview
2) Microservices
3) Cloud Native
4) Cloud Native Middleware Microservices
5) Live Demo
Agenda
60. © Copyright 2000-2016 TIBCO Software Inc.
TIBCO’s Cloud Agnostic Platform
On-Premise
Cloud-Native Apps,
Managed Services
Cloud, IaaS, PaaS
(public, private, hybrid)
62. © Copyright 2000-2016 TIBCO Software Inc.
Live Demo
Cloud-Native Middleware Development with
• Pivotal Cloud Foundry
• Spring Cloud Config
• Docker
• Kubernetes
• Consul
• TIBCO BusinessWorks Container Edition
• TIBCO Mashery
• Papertrail
63. © Copyright 2000-2016 TIBCO Software Inc.
#1 - On premise will not die. Not everything will or should go to the cloud!
#2 - Tools (visual coding) works, even for very complex scenarios. Forget the early 2000 SOA days!
#3 - Microservices are not free lunch. They do not fit into every scenario!
#4 - Design Microservices with open APIs in mind!
#5 - Cloud-Native means much more than a “cloud-washed” application deployed to a cloud provider!
#6 - Microservices and Containers are often used together, but also work very well without each other!
#7 - Containers are a lower level technology. Only the infrastructure provider should care, but not the application developer!
#8 - Be cloud platform agnostic. The world changes fast!
#9 - Automation (CI / CD / DevOps) and the related cultural change is key for success. Especially for Cloud-Native Microservices!
#10 - Establish a hybrid integration architecture to solve different business requirements!
10 Lessons Learned
64. © Copyright 2000-2016 TIBCO Software Inc.
• Integration is key for success in today’s agile and always changing world
• Modern middleware leverages containers and microservices
• A cloud-native architecture enables flexible and agile development
• A Hybrid Integration Platform helps focusing on business problems
Key Takeaways
65. Questions? Please contact me!
Kai Wähner
Technology Evangelist
kontakt@kai-waehner.de
@KaiWaehner
www.kai-waehner.de
LinkedIn