SlideShare a Scribd company logo
Kai Wähner
Technology Evangelist
kontakt@kai-waehner.de
LinkedIn
@KaiWaehner
www.kai-waehner.de
TIBCO Meetup Mumbai, India (February 2017)
Case Study:
How to move from a Monolith to Cloud, Containers and Microservices
© Copyright 2000-2017 TIBCO Software Inc.
Evolving Demands from the Business
AGILITY &
SPEED
REDUCED
CYCLE
TIMES
WEB
SCALE
LOWER
COST
FAIL FAST
© Copyright 2000-2017 TIBCO Software Inc.
• A cloud-native architecture enables flexible and agile development
• Only vendor- and platform-agnostic architectures are future-safe
• Various programming languages, open source frameworks and middleware
complement each other well in a Microservices world
Key Takeaways
© Copyright 2000-2017 TIBCO Software Inc.
1) A Legacy Monolith Application
2) The Move to Microservices
3) The Need for a Cloud Native Platform
4) Cloud Native Microservices
5) Live Demo with Docker, Kubernetes, Cloud Foundry
Agenda
© Copyright 2000-2017 TIBCO Software Inc.
1) A Legacy Monolith Application
2) The Move to Microservices
3) The Need for a Cloud Native Platform
4) Cloud Native Microservices
5) Live Demo with Docker, Kubernetes, Cloud Foundry
Agenda
© Copyright 2000-2017 TIBCO Software Inc.
Big and Complex Monolith
Monolith 1
„Big SOA Application“
(Middleware + Java)
Monolith 2
Monolith 3
CRM ERM Host ...
Virtual Machine(s)
Cloud-Ready
On Premise
Public Cloud
© Copyright 2000-2017 TIBCO Software Inc.
#1
On premise will not die.
Not everything will or should go to the cloud!
© Copyright 2000-2017 TIBCO Software Inc.
Various Technologies Glued Together
Middleware
© Copyright 2000-2017 TIBCO Software Inc.
Development Environment
Zero
Coding
Code
Everything
or anything in between
© Copyright 2000-2017 TIBCO Software Inc.
#2
Visual coding works,
even for very complex scenarios.
It can be combined with coding, too!
© Copyright 2000-2017 TIBCO Software Inc.
1) A Legacy Monolith Application
2) The Move to Microservices
3) The Need for a Cloud Native Platform
4) Cloud Native Microservices
5) Live Demo with Docker, Kubernetes, Cloud Foundry
Agenda
© Copyright 2000-2017 TIBCO Software Inc. 12
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
© Copyright 2000-2017 TIBCO Software Inc.
From a Monolith to Microservices
Business
Service A1
Java
Cloud-Ready
On Premise
Public Cloud
CRM ERM Host ...
Business
Service A2
Python
Integration
Service A3
Middleware
Business
Service B1
Java
Business
Service B3
Python
Business
Service B2
Go
Integration
Service B4
Middleware
Virtual Machine(s)
© Copyright 2000-2017 TIBCO Software Inc.
Various Forms of (Micro)Services
Integration
Service
Monolith application SOA
Integration
Service
Service ServiceService Service
SaaS Service BPM Service
© Copyright 2000-2017 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.”
© Copyright 2000-2017 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
• ...
© Copyright 2000-2017 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
© Copyright 2000-2017 TIBCO Software Inc.
#3
Microservices are not free lunch.
They do not fit into every scenario!
© Copyright 2000-2017 TIBCO Software Inc.
Open API and API Management
© Copyright 2000-2017 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)
?
A
P
I
M
A
N
A
G
E
M
E
N
T
© Copyright 2000-2017 TIBCO Software Inc.
From Microservices to Open APIs
Business
Service A1
Java
Cloud-Ready
On Premise
Public Cloud
CRM ERM Host ...
Business
Service A2
Python
Integration
Service A3
Middleware
Business
Service B1
Java
Business
Service B3
Python
Business
Service B2
Go
Integration
Service B4
Middleware
API
API
Virtual Machine(s)
© Copyright 2000-2017 TIBCO Software Inc.
#4
Design Microservices
with open APIs in mind!
© Copyright 2000-2017 TIBCO Software Inc.
1) A Legacy Monolith Application
2) The Move to Microservices
3) The Need for a Cloud Native Platform
4) Cloud Native Microservices
5) Live Demo with Docker, Kubernetes, Cloud Foundry
Agenda
© Copyright 2000-2017 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 vs. Cloud Native
http://searchcloudstorage.techtarget.com/definition/cloud-washing
!
© Copyright 2000-2017 TIBCO Software Inc.
12 (or 13, 14, …) 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/
© Copyright 2000-2017 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
© Copyright 2000-2017 TIBCO Software Inc.
#5
Cloud-Native means much more
than a “cloud-washed” application
deployed to a cloud provider!
© Copyright 2000-2017 TIBCO Software Inc.
== The Momentum of Containers
How to deploy independent Applications or (Micro)Services?
Garden
© Copyright 2000-2017 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 (!!!)
A
P
I
M
A
N
A
G
E
M
E
N
T
© Copyright 2000-2017 TIBCO Software Inc.
From Microservices and Open APIs to Containers
Business
Service A1
Java
CRM ERM Host ...
Business
Service A2
Python
Integration
Service A3
Middleware
Business
Service B1
Java
Business
Service B3
Python
Business
Service B2
Go
Integration
Service B4
Middleware
API
API
Cloud-Ready
On Premise
Public Cloud
Container(s) Container(s) Container(s)
© Copyright 2000-2017 TIBCO Software Inc.
#6
Microservices and Containers are often used together,
but also work very well without each other!
© Copyright 2000-2017 TIBCO Software Inc.
Cloud-Native Architecture
Containers are just the Foundation
for a Cloud Native Architecture!
© Copyright 2000-2017 TIBCO Software Inc.
Cloud Native Landscape (created by CNCF)
https://github.com/cncf/landscape
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-2017 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
© Copyright 2000-2017 TIBCO Software Inc.
Kubernetes (K8S)
http://kubernetes.io/docs/getting-started-guides/#cloud
© Copyright 2000-2017 TIBCO Software Inc.
Cloud Foundry
http://www.slideshare.net/cdavisafc/cloud-foundry-technical-overview
© Copyright 2000-2017 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)
© Copyright 2000-2017 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
© Copyright 2000-2017 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"
© Copyright 2000-2017 TIBCO Software Inc.
#7
Be cloud platform agnostic.
The (container) world changes fast!
© Copyright 2000-2017 TIBCO Software Inc.
1) A Legacy Monolith Application
2) The Move to Microservices
3) The Need for a Cloud Native Platform
4) Cloud Native Microservices
5) Live Demo with Docker, Kubernetes, Cloud Foundry
Agenda
A
P
I
M
A
N
A
G
E
M
E
N
T
© Copyright 2000-2017 TIBCO Software Inc.
From Containers to a Cloud-Native Platform
Business
Service A1
Java
CRM ERM Host ...
Business
Service A2
Python
Integration
Service A3
Middleware
Business
Service B1
Java
Business
Service B3
Python
Business
Service B2
Go
Integration
Service B4
Middleware
API
API
Cloud-Native
On Premise
Public Cloud
Container(s) Container(s) Container(s)
Cloud-Native Platform
© Copyright 2000-2017 TIBCO Software Inc.
#8
Containers are a lower level technology.
Only the infrastructure provider should care,
but not the application developer!
© Copyright 2000-2017 TIBCO Software Inc.
DevOps Elements – Culture and Technology!
Process
Tools
Automation
Culture
Continuous Integration/
Continuous Development
APIs
MicroservicesFrequent releases
Collaboration
© Copyright 2000-2017 TIBCO Software Inc.
#9
Automation (CI / CD / DevOps) and the related
cultural change are key for success.
Especially for Cloud-Native Microservices!
© Copyright 2000-2017 TIBCO Software Inc.
Microservices,
Cloud, Container,
PaaS, APIs,
Coding, Visual Dev, …
Show me some
cloud native examples!
© Copyright 2000-2017 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
© Copyright 2000-2017 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>
© Copyright 2000-2017 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
© Copyright 2000-2017 TIBCO Software Inc.
TIBCO
• Runs on various cloud platforms (TIBCO BusinessWorks Container Edition)
• Native integration with 3rd party frameworks like Consul or Hystrix
• Also available as iPaaS (TIBCO Cloud Integration)
• Focus on visual coding and productivity
• Powerful IDE (Visual Coding) + Web user interface
• For Integration Specialists and Citizen Integrators
© Copyright 2000-2017 TIBCO Software Inc.
#10
A cloud native architecture
leverages various programming languages,
open source frameworks and middleware!
© Copyright 2000-2017 TIBCO Software Inc.
1) A Legacy Monolith Application
2) The Move to Microservices
3) The Need for a Cloud Native Platform
4) Cloud Native Microservices
5) Live Demo with Docker, Kubernetes, Cloud Foundry
Agenda
© Copyright 2000-2016 TIBCO Software Inc.
Develop Deploy
Commit
Build
Config
Demo Setup
© Copyright 2000-2017 TIBCO Software Inc.
Live Demo
Cloud-Native Middleware Development with
• Pivotal Cloud Foundry
• Spring Cloud Config
• Docker
• Kubernetes
• Consul
• Hystrix
• TIBCO BusinessWorks Container Edition
• TIBCO Mashery
• Papertrail
© Copyright 2000-2017 TIBCO Software Inc.
• A cloud-native architecture enables flexible and agile development
• Only vendor- and platform-agnostic architectures are future-safe
• Various languages, open source frameworks and middleware complement each other
Key Takeaways
Questions? Please contact me!
Kai Wähner
Technology Evangelist
kontakt@kai-waehner.de
@KaiWaehner
www.kai-waehner.de
LinkedIn

More Related Content

What's hot (20)

PDF
The Complete Guide to Service Mesh
Aspen Mesh
 
PPTX
Microservices
SmartBear
 
PPTX
Introduction to microservices
Anil Allewar
 
PDF
API Management within a Microservice Architecture
WSO2
 
PDF
Microservices with Java, Spring Boot and Spring Cloud
Eberhard Wolff
 
PDF
Design patterns for microservice architecture
The Software House
 
PPTX
Micro services Architecture
Araf Karsh Hamid
 
PDF
Free GitOps Workshop + Intro to Kubernetes & GitOps
Weaveworks
 
PDF
Microservices architecture
Abdelghani Azri
 
PPTX
API Strategy Introduction
Doug Gregory
 
PDF
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
VMware Tanzu Korea
 
PPTX
GCP IAM.pptx
MohitBabbar6
 
PDF
Kubernetes Basics
Eueung Mulyana
 
PPSX
Microservices, Containers, Kubernetes, Kafka, Kanban
Araf Karsh Hamid
 
PDF
GitOps with ArgoCD
CloudOps2005
 
PPTX
Microservices Architecture - Bangkok 2018
Araf Karsh Hamid
 
PDF
Integration Patterns and Anti-Patterns for Microservices Architectures
Apcera
 
PPSX
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Araf Karsh Hamid
 
PPTX
RESTful API - Best Practices
Tricode (part of Dept)
 
PPTX
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
Simplilearn
 
The Complete Guide to Service Mesh
Aspen Mesh
 
Microservices
SmartBear
 
Introduction to microservices
Anil Allewar
 
API Management within a Microservice Architecture
WSO2
 
Microservices with Java, Spring Boot and Spring Cloud
Eberhard Wolff
 
Design patterns for microservice architecture
The Software House
 
Micro services Architecture
Araf Karsh Hamid
 
Free GitOps Workshop + Intro to Kubernetes & GitOps
Weaveworks
 
Microservices architecture
Abdelghani Azri
 
API Strategy Introduction
Doug Gregory
 
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
VMware Tanzu Korea
 
GCP IAM.pptx
MohitBabbar6
 
Kubernetes Basics
Eueung Mulyana
 
Microservices, Containers, Kubernetes, Kafka, Kanban
Araf Karsh Hamid
 
GitOps with ArgoCD
CloudOps2005
 
Microservices Architecture - Bangkok 2018
Araf Karsh Hamid
 
Integration Patterns and Anti-Patterns for Microservices Architectures
Apcera
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Araf Karsh Hamid
 
RESTful API - Best Practices
Tricode (part of Dept)
 
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
Simplilearn
 

Similar to Case Study: How to move from a Monolith to Cloud, Containers and Microservices (20)

PDF
Cloud Native Middleware Microservices - 10 Lessons Learned
Kai Wähner
 
PDF
Cloud Native Middleware Microservices - Lessons Learned with Docker, Kubernet...
Kai Wähner
 
PDF
Trends at JavaOne 2016: Microservices, Docker and Cloud-Native Middleware
Kai Wähner
 
PDF
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Kai Wähner
 
PDF
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
David Currie
 
PDF
Evolving your Architecture to MicroServices
Hector Tapia
 
PDF
ClouNS - A Cloud-native Application Reference Model for Enterprise Architects
Nane Kratzke
 
PPTX
Nab 2017 a journey to the future of cloud-native media micro-services - was...
Washington Cabral
 
PPTX
Move existing middleware to the cloud
Arthur De Magalhaes
 
PDF
Elevate Your Continuous Delivery Strategy Above the Rolling Clouds (Interconn...
Michael Elder
 
PDF
Your Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Atlassian
 
PPTX
The Cloud Native Journey
VMware Tanzu
 
PDF
Enterprise Integration in Cloud Native Microservices Architectures
Crishantha Nanayakkara
 
PDF
Modern Software Architecture - Cloud Scale Computing
Giragadurai Vallirajan
 
PDF
Cloud Native In-Depth
Siva Rama Krishna Chunduru
 
PPTX
Microservices approach for Websphere commerce
HARIHARAN ANANTHARAMAN
 
PDF
WSO2 Cloud Middleware
Afkham Azeez
 
PPTX
Enterprise Cloud Native
Cloud Best Practices Network
 
PPTX
Chapter VI -CLOUD NATIVE AND EMERGENT TRENDS.pptx
JerianMacatuggal
 
PDF
The App Evolution
Dev_Events
 
Cloud Native Middleware Microservices - 10 Lessons Learned
Kai Wähner
 
Cloud Native Middleware Microservices - Lessons Learned with Docker, Kubernet...
Kai Wähner
 
Trends at JavaOne 2016: Microservices, Docker and Cloud-Native Middleware
Kai Wähner
 
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Kai Wähner
 
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
David Currie
 
Evolving your Architecture to MicroServices
Hector Tapia
 
ClouNS - A Cloud-native Application Reference Model for Enterprise Architects
Nane Kratzke
 
Nab 2017 a journey to the future of cloud-native media micro-services - was...
Washington Cabral
 
Move existing middleware to the cloud
Arthur De Magalhaes
 
Elevate Your Continuous Delivery Strategy Above the Rolling Clouds (Interconn...
Michael Elder
 
Your Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Atlassian
 
The Cloud Native Journey
VMware Tanzu
 
Enterprise Integration in Cloud Native Microservices Architectures
Crishantha Nanayakkara
 
Modern Software Architecture - Cloud Scale Computing
Giragadurai Vallirajan
 
Cloud Native In-Depth
Siva Rama Krishna Chunduru
 
Microservices approach for Websphere commerce
HARIHARAN ANANTHARAMAN
 
WSO2 Cloud Middleware
Afkham Azeez
 
Enterprise Cloud Native
Cloud Best Practices Network
 
Chapter VI -CLOUD NATIVE AND EMERGENT TRENDS.pptx
JerianMacatuggal
 
The App Evolution
Dev_Events
 
Ad

More from Kai Wähner (20)

PDF
Apache Kafka as Data Hub for Crypto, NFT, Metaverse (Beyond the Buzz!)
Kai Wähner
 
PDF
When NOT to use Apache Kafka?
Kai Wähner
 
PDF
Kafka for Live Commerce to Transform the Retail and Shopping Metaverse
Kai Wähner
 
PDF
The Heart of the Data Mesh Beats in Real-Time with Apache Kafka
Kai Wähner
 
PDF
Apache Kafka vs. Cloud-native iPaaS Integration Platform Middleware
Kai Wähner
 
PDF
Data Warehouse vs. Data Lake vs. Data Streaming – Friends, Enemies, Frenemies?
Kai Wähner
 
PDF
Serverless Kafka and Spark in a Multi-Cloud Lakehouse Architecture
Kai Wähner
 
PDF
Resilient Real-time Data Streaming across the Edge and Hybrid Cloud with Apac...
Kai Wähner
 
PDF
Data Streaming with Apache Kafka in the Defence and Cybersecurity Industry
Kai Wähner
 
PDF
Apache Kafka in the Healthcare Industry
Kai Wähner
 
PDF
Apache Kafka in the Healthcare Industry
Kai Wähner
 
PDF
Apache Kafka for Real-time Supply Chain in the Food and Retail Industry
Kai Wähner
 
PDF
Kafka for Real-Time Replication between Edge and Hybrid Cloud
Kai Wähner
 
PDF
Apache Kafka for Predictive Maintenance in Industrial IoT / Industry 4.0
Kai Wähner
 
PDF
Apache Kafka Landscape for Automotive and Manufacturing
Kai Wähner
 
PDF
Kappa vs Lambda Architectures and Technology Comparison
Kai Wähner
 
PPTX
The Top 5 Apache Kafka Use Cases and Architectures in 2022
Kai Wähner
 
PDF
Event Streaming CTO Roundtable for Cloud-native Kafka Architectures
Kai Wähner
 
PDF
Apache Kafka in the Public Sector (Government, National Security, Citizen Ser...
Kai Wähner
 
PDF
Telco 4.0 - Payment and FinServ Integration for Data in Motion with 5G and Ap...
Kai Wähner
 
Apache Kafka as Data Hub for Crypto, NFT, Metaverse (Beyond the Buzz!)
Kai Wähner
 
When NOT to use Apache Kafka?
Kai Wähner
 
Kafka for Live Commerce to Transform the Retail and Shopping Metaverse
Kai Wähner
 
The Heart of the Data Mesh Beats in Real-Time with Apache Kafka
Kai Wähner
 
Apache Kafka vs. Cloud-native iPaaS Integration Platform Middleware
Kai Wähner
 
Data Warehouse vs. Data Lake vs. Data Streaming – Friends, Enemies, Frenemies?
Kai Wähner
 
Serverless Kafka and Spark in a Multi-Cloud Lakehouse Architecture
Kai Wähner
 
Resilient Real-time Data Streaming across the Edge and Hybrid Cloud with Apac...
Kai Wähner
 
Data Streaming with Apache Kafka in the Defence and Cybersecurity Industry
Kai Wähner
 
Apache Kafka in the Healthcare Industry
Kai Wähner
 
Apache Kafka in the Healthcare Industry
Kai Wähner
 
Apache Kafka for Real-time Supply Chain in the Food and Retail Industry
Kai Wähner
 
Kafka for Real-Time Replication between Edge and Hybrid Cloud
Kai Wähner
 
Apache Kafka for Predictive Maintenance in Industrial IoT / Industry 4.0
Kai Wähner
 
Apache Kafka Landscape for Automotive and Manufacturing
Kai Wähner
 
Kappa vs Lambda Architectures and Technology Comparison
Kai Wähner
 
The Top 5 Apache Kafka Use Cases and Architectures in 2022
Kai Wähner
 
Event Streaming CTO Roundtable for Cloud-native Kafka Architectures
Kai Wähner
 
Apache Kafka in the Public Sector (Government, National Security, Citizen Ser...
Kai Wähner
 
Telco 4.0 - Payment and FinServ Integration for Data in Motion with 5G and Ap...
Kai Wähner
 
Ad

Recently uploaded (20)

PPTX
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
Python basic programing language for automation
DanialHabibi2
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
Python basic programing language for automation
DanialHabibi2
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 

Case Study: How to move from a Monolith to Cloud, Containers and Microservices

  • 1. Kai Wähner Technology Evangelist [email protected] LinkedIn @KaiWaehner www.kai-waehner.de TIBCO Meetup Mumbai, India (February 2017) Case Study: How to move from a Monolith to Cloud, Containers and Microservices
  • 2. © Copyright 2000-2017 TIBCO Software Inc. Evolving Demands from the Business AGILITY & SPEED REDUCED CYCLE TIMES WEB SCALE LOWER COST FAIL FAST
  • 3. © Copyright 2000-2017 TIBCO Software Inc. • A cloud-native architecture enables flexible and agile development • Only vendor- and platform-agnostic architectures are future-safe • Various programming languages, open source frameworks and middleware complement each other well in a Microservices world Key Takeaways
  • 4. © Copyright 2000-2017 TIBCO Software Inc. 1) A Legacy Monolith Application 2) The Move to Microservices 3) The Need for a Cloud Native Platform 4) Cloud Native Microservices 5) Live Demo with Docker, Kubernetes, Cloud Foundry Agenda
  • 5. © Copyright 2000-2017 TIBCO Software Inc. 1) A Legacy Monolith Application 2) The Move to Microservices 3) The Need for a Cloud Native Platform 4) Cloud Native Microservices 5) Live Demo with Docker, Kubernetes, Cloud Foundry Agenda
  • 6. © Copyright 2000-2017 TIBCO Software Inc. Big and Complex Monolith Monolith 1 „Big SOA Application“ (Middleware + Java) Monolith 2 Monolith 3 CRM ERM Host ... Virtual Machine(s) Cloud-Ready On Premise Public Cloud
  • 7. © Copyright 2000-2017 TIBCO Software Inc. #1 On premise will not die. Not everything will or should go to the cloud!
  • 8. © Copyright 2000-2017 TIBCO Software Inc. Various Technologies Glued Together Middleware
  • 9. © Copyright 2000-2017 TIBCO Software Inc. Development Environment Zero Coding Code Everything or anything in between
  • 10. © Copyright 2000-2017 TIBCO Software Inc. #2 Visual coding works, even for very complex scenarios. It can be combined with coding, too!
  • 11. © Copyright 2000-2017 TIBCO Software Inc. 1) A Legacy Monolith Application 2) The Move to Microservices 3) The Need for a Cloud Native Platform 4) Cloud Native Microservices 5) Live Demo with Docker, Kubernetes, Cloud Foundry Agenda
  • 12. © Copyright 2000-2017 TIBCO Software Inc. 12 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
  • 13. © Copyright 2000-2017 TIBCO Software Inc. From a Monolith to Microservices Business Service A1 Java Cloud-Ready On Premise Public Cloud CRM ERM Host ... Business Service A2 Python Integration Service A3 Middleware Business Service B1 Java Business Service B3 Python Business Service B2 Go Integration Service B4 Middleware Virtual Machine(s)
  • 14. © Copyright 2000-2017 TIBCO Software Inc. Various Forms of (Micro)Services Integration Service Monolith application SOA Integration Service Service ServiceService Service SaaS Service BPM Service
  • 15. © Copyright 2000-2017 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.”
  • 16. © Copyright 2000-2017 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 • ...
  • 17. © Copyright 2000-2017 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
  • 18. © Copyright 2000-2017 TIBCO Software Inc. #3 Microservices are not free lunch. They do not fit into every scenario!
  • 19. © Copyright 2000-2017 TIBCO Software Inc. Open API and API Management
  • 20. © Copyright 2000-2017 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) ?
  • 21. A P I M A N A G E M E N T © Copyright 2000-2017 TIBCO Software Inc. From Microservices to Open APIs Business Service A1 Java Cloud-Ready On Premise Public Cloud CRM ERM Host ... Business Service A2 Python Integration Service A3 Middleware Business Service B1 Java Business Service B3 Python Business Service B2 Go Integration Service B4 Middleware API API Virtual Machine(s)
  • 22. © Copyright 2000-2017 TIBCO Software Inc. #4 Design Microservices with open APIs in mind!
  • 23. © Copyright 2000-2017 TIBCO Software Inc. 1) A Legacy Monolith Application 2) The Move to Microservices 3) The Need for a Cloud Native Platform 4) Cloud Native Microservices 5) Live Demo with Docker, Kubernetes, Cloud Foundry Agenda
  • 24. © Copyright 2000-2017 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 vs. Cloud Native http://searchcloudstorage.techtarget.com/definition/cloud-washing !
  • 25. © Copyright 2000-2017 TIBCO Software Inc. 12 (or 13, 14, …) 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/
  • 26. © Copyright 2000-2017 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
  • 27. © Copyright 2000-2017 TIBCO Software Inc. #5 Cloud-Native means much more than a “cloud-washed” application deployed to a cloud provider!
  • 28. © Copyright 2000-2017 TIBCO Software Inc. == The Momentum of Containers How to deploy independent Applications or (Micro)Services? Garden
  • 29. © Copyright 2000-2017 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 (!!!)
  • 30. A P I M A N A G E M E N T © Copyright 2000-2017 TIBCO Software Inc. From Microservices and Open APIs to Containers Business Service A1 Java CRM ERM Host ... Business Service A2 Python Integration Service A3 Middleware Business Service B1 Java Business Service B3 Python Business Service B2 Go Integration Service B4 Middleware API API Cloud-Ready On Premise Public Cloud Container(s) Container(s) Container(s)
  • 31. © Copyright 2000-2017 TIBCO Software Inc. #6 Microservices and Containers are often used together, but also work very well without each other!
  • 32. © Copyright 2000-2017 TIBCO Software Inc. Cloud-Native Architecture Containers are just the Foundation for a Cloud Native Architecture!
  • 33. © Copyright 2000-2017 TIBCO Software Inc. Cloud Native Landscape (created by CNCF) https://github.com/cncf/landscape
  • 34. 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
  • 35. 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
  • 36. © Copyright 2000-2017 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
  • 37. © Copyright 2000-2017 TIBCO Software Inc. Kubernetes (K8S) http://kubernetes.io/docs/getting-started-guides/#cloud
  • 38. © Copyright 2000-2017 TIBCO Software Inc. Cloud Foundry http://www.slideshare.net/cdavisafc/cloud-foundry-technical-overview
  • 39. © Copyright 2000-2017 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)
  • 40. © Copyright 2000-2017 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
  • 41. © Copyright 2000-2017 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"
  • 42. © Copyright 2000-2017 TIBCO Software Inc. #7 Be cloud platform agnostic. The (container) world changes fast!
  • 43. © Copyright 2000-2017 TIBCO Software Inc. 1) A Legacy Monolith Application 2) The Move to Microservices 3) The Need for a Cloud Native Platform 4) Cloud Native Microservices 5) Live Demo with Docker, Kubernetes, Cloud Foundry Agenda
  • 44. A P I M A N A G E M E N T © Copyright 2000-2017 TIBCO Software Inc. From Containers to a Cloud-Native Platform Business Service A1 Java CRM ERM Host ... Business Service A2 Python Integration Service A3 Middleware Business Service B1 Java Business Service B3 Python Business Service B2 Go Integration Service B4 Middleware API API Cloud-Native On Premise Public Cloud Container(s) Container(s) Container(s) Cloud-Native Platform
  • 45. © Copyright 2000-2017 TIBCO Software Inc. #8 Containers are a lower level technology. Only the infrastructure provider should care, but not the application developer!
  • 46. © Copyright 2000-2017 TIBCO Software Inc. DevOps Elements – Culture and Technology! Process Tools Automation Culture Continuous Integration/ Continuous Development APIs MicroservicesFrequent releases Collaboration
  • 47. © Copyright 2000-2017 TIBCO Software Inc. #9 Automation (CI / CD / DevOps) and the related cultural change are key for success. Especially for Cloud-Native Microservices!
  • 48. © Copyright 2000-2017 TIBCO Software Inc. Microservices, Cloud, Container, PaaS, APIs, Coding, Visual Dev, … Show me some cloud native examples!
  • 49. © Copyright 2000-2017 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
  • 50. © Copyright 2000-2017 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>
  • 51. © Copyright 2000-2017 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
  • 52. © Copyright 2000-2017 TIBCO Software Inc. TIBCO • Runs on various cloud platforms (TIBCO BusinessWorks Container Edition) • Native integration with 3rd party frameworks like Consul or Hystrix • Also available as iPaaS (TIBCO Cloud Integration) • Focus on visual coding and productivity • Powerful IDE (Visual Coding) + Web user interface • For Integration Specialists and Citizen Integrators
  • 53. © Copyright 2000-2017 TIBCO Software Inc. #10 A cloud native architecture leverages various programming languages, open source frameworks and middleware!
  • 54. © Copyright 2000-2017 TIBCO Software Inc. 1) A Legacy Monolith Application 2) The Move to Microservices 3) The Need for a Cloud Native Platform 4) Cloud Native Microservices 5) Live Demo with Docker, Kubernetes, Cloud Foundry Agenda
  • 55. © Copyright 2000-2016 TIBCO Software Inc. Develop Deploy Commit Build Config Demo Setup
  • 56. © Copyright 2000-2017 TIBCO Software Inc. Live Demo Cloud-Native Middleware Development with • Pivotal Cloud Foundry • Spring Cloud Config • Docker • Kubernetes • Consul • Hystrix • TIBCO BusinessWorks Container Edition • TIBCO Mashery • Papertrail
  • 57. © Copyright 2000-2017 TIBCO Software Inc. • A cloud-native architecture enables flexible and agile development • Only vendor- and platform-agnostic architectures are future-safe • Various languages, open source frameworks and middleware complement each other Key Takeaways
  • 58. Questions? Please contact me! Kai Wähner Technology Evangelist [email protected] @KaiWaehner www.kai-waehner.de LinkedIn