SlideShare a Scribd company logo
1 of 51
Download to read offline
Senacor Technologies AG
Fehlertolerante und skalierbare Systeme
mit dem Netflix OSS
Dr. Michael Menzel, Senacor Technologies AG
FrOSCon 2017, 19.08.2017
Senacor Technologies AG
Digitalization
FrOSCon 201719.08.2017
Senacor Technologies AG
DIGITALIZATION
3FrOSCon 2017
Change in customer expectations
19.08.2017
Senacor Technologies AG
DIGITALIZATION
Change in customer expectations
4FrOSCon 201719.08.2017
Senacor Technologies AG
DIGITALIZATION
Change in customer expectations
5FrOSCon 201719.08.2017
Senacor Technologies AG
DIGITALIZATION
Change in customer expectations
6FrOSCon 201719.08.2017
Senacor Technologies AG
DIGITALIZATION
The “Digital Ready Architecture” is based on a set of key
assumptions/guidelines
19.08.2017
2. Elasticity and Scalability
Cloud native applications
Digital
Ready
Architecture
1. Embrace Change
Fast delivery of ideas into production
3. Embrace Failure
Cope with failures; high availability
4. Responsiveness and Reactivity
Excellent user experience from end-to-end
Elasticity
Resilience
Responsive
Changeability
FrOSCon 2017
Senacor Technologies AG 19.08.2017 FrOSCon 2017
How to build it?
8
Senacor Technologies AG
MICROSERVICE ARCHITECTURE
Vertical decomposition of monolithic applications in independent services
decouples releases of independent functionality
19.08.2017 FrOSCon 2017
Loan
Service
Account
Service
Partner
Service
Loan
Frontend
Account
Frontend
Partner
Frontend
Self-
Contained
System
Self-
Contained
System
Self-
Contained
System
Loan
DB
Account
DB
Partner
DB
Micro
Services
Frontend
Integration
FrontendServicesDatabase
Loan
UI
Account
UI
Partner
UI
Loan
Service
Account
Service
Trading
Service
Loan
Schema
Account
Schema
Partner
Schema
Release
monthly
Release
quarterly
Release
2-weekly
Release
half a year
Monolithic
Applications
Senacor Technologies AG
MICROSERVICE ARCHITECTURE
19.08.2017 FrOSCon 2017
Senacor Technologies AG
This is not how it works!
(Well, maybe it is, if it was a good one)
But most likely not
MICROSERVICE ARCHITECTURE
19.08.2017 FrOSCon 2017
A Microservice is not …
… your monolith cut into pieces
Senacor Technologies AG
MICROSERVICE ARCHITECTURE
19.08.2017 FrOSCon 2017
Senacor Technologies AG
MICROSERVICE ARCHITECTURE
19.08.2017 FrOSCon 2017
Senacor Technologies AG
MICROSERVICE ARCHITECTURE
19.08.2017 FrOSCon 2017
Senacor Technologies AG
MICROSERVICE ARCHITECTURE
19.08.2017 FrOSCon 2017
Senacor Technologies AG
MICROSERVICE ARCHITECTURE
Microservices with Spring Cloud and Netflix OSS
19.08.2017 FrOSCon 2017
SpringBoot
Creation of stand-alone,
Spring-based Applications
SpringCloud
Routing and Load-Balancing
Service registration and discovery
Messaging
Circuit Breakers
Service-to-service calls
NetflixOSS
Eureka
Spring Framework Integration
Parent/Dependency-POMs
Maven-Plugins
Ribbon
Zuul
RxJava
Hystrix
Feign
Based on integrates
Tool integration and pattern adaption
for distributed systems
Distributed/versioned configuration
Archaius
Senacor Technologies AG
MICROSERVICE ARCHITECTURE
Get started with a small application class and spring boot starter POMs
19.08.2017 FrOSCon 2017
package hello;
import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.stereotype.*;
import org.springframework.web.bind.annotation.*;
@Controller
@EnableAutoConfiguration
public class SampleController {
@RequestMapping("/")
@ResponseBody
String home() {
return "Hello World!";
}
public static void main(String[] args) throws Exception {
SpringApplication.run(SampleController.class, args);
}
}
+ Java Classes
+ Maven POMs
+ Configuration
Fat
JAR
Senacor Technologies AG
MICROSERVICE ARCHITECTURE
How to implement to implement changeability, elasticity, resilience and
responsiveness in a Microservice architecture?
19.08.2017 FrOSCon 2017
2. Elasticity and Scalability
Cloud native applications
Microservice
Architecture
1. Embrace Change
Fast delivery of ideas into production
3. Embrace Failure
Cope with failures; high availability
4. Responsiveness and Reactivity
Excellent user experience from end-to-end
Elasticity
Resilience
Responsive
Changeability
Senacor Technologies AG
MICROSERVICE ARCHITECTURE - CHANGEABILITY
How to implement to implement changeability
in a Microservice architecture?
19.08.2017 FrOSCon 2017
2. Elasticity and Scalability
Cloud native applications
1. Embrace Change
Fast delivery of ideas into production
3. Embrace Failure
Cope with failures; high availability
4. Responsiveness and Reactivity
Excellent user experience from end-to-end
Elasticity
Resilience
Responsive
Changeability
Microservice
Architecture
Senacor Technologies AG
MICROSERVICE ARCHITECTURE - CHANGEABILITY
19.08.2017 FrOSCon 2017
Web FrontendClients
Services Layer
Account
Service
Account
Service
…
Account
Service
IP2:Port2IP1:Port1
http://<domain>/services/bank-accounts/
IP3:Port3
Routing and load balancing
Senacor Technologies AG
MICROSERVICE ARCHITECTURE - CHANGEABILITY
19.08.2017 FrOSCon 2017
Web FrontendClients
Services Layer
Account
Service
Account
Service
…
Account
Service
ZUUL
Reverse Proxy and Load Balancer
Proxy
IP2:Port2IP1:Port1
http://<domain>/services/bank-accounts/
 Reverse proxy to route service requests to instances
 Versioned APIs enable a decoupling of services and clients
v2.0/
v1.0
v1.0
v2.0
IP3:Port3
Senacor Technologies AG
MICROSERVICE ARCHITECTURE - CHANGEABILITY
ZUUL gateway can be biuld as Spring cloud application
19.08.2017 FrOSCon 2017
package example.zuul;
import …;
@SpringBootApplication
@EnableZuulProxy
public class ZuulApplication {
public static void main(String[] args) throws Exception {
SpringApplication.run(SampleController.class, args);
}
}
+ Java Classes
+ Maven POMs
+ Configuration
Fat
JAR
ZUUL
App
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>
zuul:
routes:
bankaccounts:
path: /bank-accounts/v2.0/**
url: http://IP3:Port3
Zuul
Deployment
Senacor Technologies AG
Zuul: static
route configuration
MICROSERVICE ARCHITECTURE - CHANGEABILITY
19.08.2017 FrOSCon 2017
Web FrontendClients
Services Layer
Account
Service
Account
Service
…
Account
Service
ZUUL
Reverse Proxy and Load Balancer
Proxy
IP2:Port2IP1:Port1
http://<domain>/services/bank-accounts/ v2.0/
v1.0
v1.0
v2.0
IP3:Port3
zuul:
routes:
bankaccounts:
path: /bank-accounts/v2.0/**
url: http://IP3:Port3
Senacor Technologies AG
MICROSERVICE ARCHITECTURE - CHANGEABILITY
Load balancing and fault tolerance in ZUUL
19.08.2017 FrOSCon 2017
Zuul integrates:
zuul:
routes:
bankAccounts:
path: /bank-accounts/v1.0/**
serviceId: bankAccounts
bankAccounts:
ribbon:
listOfServers: IP1:Port1, IP2:Port2
 Ribbon: Client-side Load Balancer
 Hystrix: Circuit Breaker Library
to implement fault tolerance
Senacor Technologies AG
Build once, run everywhere
Good
java -jar service.jar -spring.profiles.active="production“
Bad
mvn clean install spring-boot:repacke -P "production"
MICROSERVICE ARCHITECTURE - CHANGEABILITY
19.08.2017 FrOSCon 2017
A microservice JAR file is built exactly
once and then never touched again
Senacor Technologies AG
MICROSERVICE ARCHITECTURE - CHANGEABILITY
A configuration server enables environment independent
delivery artefacts
19.08.2017 FrOSCon 2017
Config
Server
Service Service
Frontend
Frontend
Integration
Service
Layer
Configuration Server
offers a service interface to query profile-specific
configuration values
Configuration Client (Services)
retrieve configuration after start-up
PUSH
Dynamic configuration update
 Annotate dynamic properties with
@RefreshScope
 after triggering a refresh endpoint
(/refresh)
 on change using a message bus
Senacor Technologies AG
MICROSERVICE ARCHITECTURE - CHANGEABILITY
A configuration server enables environment independent
delivery artefacts
19.08.2017 FrOSCon 2017
Config
Server
Service Service
Frontend
Frontend
Integration
Service
Layer
PUSH
Config-Server
 Activation by Annotation: @EnableConfigServer
 GIT-configuration:
spring.cloud.configrepo.server.git.uri = <uri>
Config-Client
 Activation by configuration:
cloud:
config:
enabled: true
uri: <url>
Senacor Technologies AG
Archaius:
 Framework to access properties
 Based on Apache commons
 Aggregates different sources:
Properties-Files, URLs, database
 Type safe access
 On change callbacks
MICROSERVICE ARCHITECTURE - CHANGEABILITY
19.08.2017 FrOSCon 2017
Senacor Technologies AG
MICROSERVICE ARCHITECTURE - ELASTICITY
How to implement to implement elasticity and scalability
in a Microservice architecture?
19.08.2017 FrOSCon 2017
2. Elasticity and Scalability
Cloud native applications
Microservice
Architecture
1. Embrace Change
Fast delivery of ideas into production
3. Embrace Failure
Cope with failures; high availability
4. Responsiveness and Reactivity
Excellent user experience from end-to-end
Elasticity
Resilience
Responsive
Changeability
Senacor Technologies AG
MICROSERVICE ARCHITECTURE - ELASTICITY
19.08.2017 FrOSCon 2017
Web FrontendClients
Services Layer
…
ZUUL
Reverse Proxy and Load Balancer
Proxy
http://<domain>/services/bank-accounts/v2.0/
Account
Service
Account
Service
Account
Service
Scale
Out!
Account
ServiceHow to enable a transparent scale-out
Senacor Technologies AG
MICROSERVICE ARCHITECTURE - ELASTICITY
19.08.2017 FrOSCon 2017
Web FrontendClients
Services Layer
…
Proxy
Account
Service
Account
Service
Account
Service
Scale
Out!
Account
Service
ServiceRegistry
 Service registration on start up
 Heart beat guarantees services availability
 Master/Slave operation mode for service registry
http://<domain>/services/bank-accounts/v2.0/
ZUUL
Reverse Proxy and Load Balancer
Senacor Technologies AG
Service Discovery in a Spring Cloud ZUUL application is
enabled via configuration and annotation @EnableDiscoveryClient
MICROSERVICE ARCHITECTURE - ELASTICITY
19.08.2017 FrOSCon 2017
zuul:
routes:
bankAccounts:
path: /bank-accounts/v1.0/**
serviceId: bankAccounts
eureka:
client:
serviceUrl:
defaultZone: <URL Registry>
Zuul Applicatin Configuration
Senacor Technologies AG
Service invocations with Feign
 Simple creation of REST clients with connection to Eureka
 Definition via interfaces and annotations
 Activation of feign clients: @EnableFeignClients
@FeignClient("users-service")
interface UserClient {
@RequestMapping(method = RequestMethod.GET, value = "/user")
User getUser();
}
MICROSERVICE ARCHITECTURE - ELASTICITY
19.08.2017 FrOSCon 2017
Senacor Technologies AG
RESILIENCE
How to implement to implement resilience
in a Microservice architecture?
19.08.2017 FrOSCon 2017
2. Elasticity and Scalability
Cloud native applications
Microservice
Architecture
1. Embrace Change
Fast delivery of ideas into production
3. Embrace Failure
Cope with failures; high availability
4. Responsiveness and Reactivity
Excellent user experience from end-to-end
Elasticity
Resilience
Responsive
Changeability
Senacor Technologies AG
Resilience
The system stays responsive in the face of failure with
a graceful degradation of service if required
MICROSERVICE ARCHITECTURE - RESILIENCE
19.08.2017 FrOSCon 2017
Isolate
failures by
Redundancy
Insulation
Loose coupling
 Circuit Breaker Pattern
 Fallback
i.e. cached data
 see Elasticity
 own data store
 asynchronous messaging
 location transparency
 eventual consistency
Senacor Technologies AG
MICROSERVICE ARCHITECTURE - RESILIENCE
Unavailable services can affect the overall availability
of synchronous, blocking systems
19.08.2017 FrOSCon 2017
Microservice Backend
Requests
Timeout
Senacor Technologies AG
MICROSERVICE ARCHITECTURE - RESILIENCE
19.08.2017 FrOSCon 2017
Circuit Breaker
The circuit breaker breaks the circuit instead of the house
burning down – since 1879
37
Senacor Technologies AG
MICROSERVICE ARCHITECTURE - RESILIENCE
Circuit Breaker Pattern isolates backend access
19.08.2017 FrOSCon 2017
Microservice
x x
Backend
TimeoutFailfast
Senacor Technologies AG
MICROSERVICE ARCHITECTURE - RESILIENCE
Hystrix isolates invocations in Server-side service compositions
19.08.2017 FrOSCon 2017
Web FrontendClients
Services Layer
…
ZUUL
Reverse Proxy and Load Balancer
Proxy
Account
Service
Authorization
Service
Service
Service
ServiceRegistryhttp://<domain>/services/bank-accounts/v2.0/
Hystrix
Hystrix
Hystrix Hystrix-Integration
Senacor Technologies AG
MICROSERVICE ARCHITECTURE - RESPONSIVENESS
How to implement to implement responsiveness
in a Microservice architecture?
19.08.2017 FrOSCon 2017
2. Elasticity and Scalability
Cloud native applications
Microservice
Architecture
1. Embrace Change
Fast delivery of ideas into production
3. Embrace Failure
Cope with failures; high availability
4. Responsiveness and Reactivity
Excellent user experience from end-to-end
Elasticity
Resilience
Responsive
Changeability
Senacor Technologies AG
MICROSERVICE ARCHITECTURE - RESPONSIVENESS
Client side service composition result in communication overhead
19.08.2017 FrOSCon 2017
100 ms
Browser
200 ms 300 ms 400 ms 500 ms 600 ms
Services
Server Request Latency Network Latency
Prefer server-side service compositions
Senacor Technologies AG
// load customer data
customerService.findById( customerId, reply -> {
// check on error
if (reply.succeeded()) {
// extract customer from reply
Customer customer = (Customer) reply.result().body();
// update address
customer.setAddress( "..." );
// update customer
customerService.update(customer, updateReply -> {
// ...
// nested code for error checking and processing
// ...
});
} else {
// process error
});
MICROSERVICE ARCHITECTURE - RESPONSIVENESS
Callbacks result in nested code
19.08.2017 FrOSCon 2017
Senacor Technologies AG
MICROSERVICE ARCHITECTURE - RESPONSIVENESS - RXJAVA
How to design the API?
19.08.2017 FrOSCon 2017
single
data set
multiple
data sets
synchronous Object
Iterable
Stream
asynchronous
Callback
Future
CompletableFuture
Observable
Senacor Technologies AG
MICROSERVICE ARCHITECTURE - RESPONSIVENESS - RXJAVA
19.08.2017 FrOSCon 2017
library for creating, transforming, composing and
subscribing asynchronous and event-based streams
using observable sequences
ObservableObserver
subscribe
onNext(T)
onError(Throwable t)
onCompleted()
Senacor Technologies AG
MICROSERVICE ARCHITECTURE - RESPONSIVENESS - RXJAVA
19.08.2017 FrOSCon 2017
// asynchronous send method returns an observable
customerService.findById", "123")
//extract customer from response
.map(asyncResult -> (Customer) asyncResult.body())
//update customer object
.map(customer -> ... )
//save customer data
.flatMap(customer -> customerService.update(customer))
//consume result and error
.subscribe(customer -> ..., error -> ... );
Senacor Technologies AG
Conclusion
FrOSCon 201719.08.2017
Senacor Technologies AG
Spring cloud offers a seamless integration of Netflix OSS that provides
infrastructure components for microservice systems
CONCLUSION
FrOSCon 2017
SpringCloud
Routing and Load-Balancing
Service registration and discovery
Messaging
Circuit Breakers
Service-to-service calls
NetflixOSS
Eureka
Ribbon
Zuul
RxJava
Hystrix
Feign
integrates
Tool integration and pattern
adaption for distributed systems
Distributed/versioned configuration
Archaius
19.08.2017
Senacor Technologies AG
CONCLUSION
Think before your act, …
FrOSCon 201719.08.2017
Senacor Technologies AG
CONCLUSION
…, so you do not build this!
FrOSCon 201719.08.2017
Senacor Technologies AG
Fehlertolerante und skalierbare Systeme
mit dem Netflix OSS
Dr. Michael Menzel, Senacor Technologies AG
Email: michael.menzel@senacor.com
Twitter: @mwmenzel
FrOSCon 2017, 19.08.2017
Senacor Technologies AG
Images links / Copyright belongs to resp. author
 Rick Ligthelm ligthelm@flickr
 Ben Babcock tachyondecay@flickr
 PhotoArt Laatzen trombone65@flickr
 Leslie Lamport wikipedia.org
 Steve Watts quicksandala@morguefile.com
 DAVINCI Haus 62694216@N05@flickr
 Susanne Nilsson infomastern@flickr
 Kurtis Garbutt kjgarbutt@flickr
 Oliver Widder geek-and-poke.com
 Angus MacRae gustaffo89@flickr
 Lynne Cazaly lynnecazaly.com.au
REFERENCES
5151
 ctbto@flickr
 Stefano Leotta mylife1@flicker
 Osvaldo Gago fotografar@flickr
 Moyan Brenn aigle_dore@flickr
 Martin Fowler martinfowler.com
 leafbug@flickr
 Sonya Ong and Travis Hydzik SonyaandTravis.com
 Tony Guyton tonzpalmer24@flickr
 Timothy Pearce timpearcelosgatos@flickr
 dany13@flickr
 Will Arktek https://www.flickr.com/people/bongonian

More Related Content

What's hot

Focusing on What Matters
Focusing on What MattersFocusing on What Matters
Focusing on What MattersVMware Tanzu
 
Controller and Coffee: Deliver APIs in Real Time with API Management
Controller and Coffee: Deliver APIs in Real Time with API ManagementController and Coffee: Deliver APIs in Real Time with API Management
Controller and Coffee: Deliver APIs in Real Time with API ManagementNGINX, Inc.
 
The Future of Cloud Native Apps - Chicago Intro
The Future of Cloud Native Apps - Chicago IntroThe Future of Cloud Native Apps - Chicago Intro
The Future of Cloud Native Apps - Chicago IntroJudy Breedlove
 
"The Cloud Native Enterprise is Coming"
"The Cloud Native Enterprise is Coming" "The Cloud Native Enterprise is Coming"
"The Cloud Native Enterprise is Coming" James Watters
 
Monitoring NGINX Deployments with Sumo Logic
Monitoring NGINX Deployments with Sumo LogicMonitoring NGINX Deployments with Sumo Logic
Monitoring NGINX Deployments with Sumo LogicNGINX, Inc.
 
Red Hat OpenShift - a foundation for successful digital transformation
Red Hat OpenShift - a foundation for successful digital transformationRed Hat OpenShift - a foundation for successful digital transformation
Red Hat OpenShift - a foundation for successful digital transformationEric D. Schabell
 
LIVE DEMO: Pivotal Cloud Foundry
LIVE DEMO: Pivotal Cloud FoundryLIVE DEMO: Pivotal Cloud Foundry
LIVE DEMO: Pivotal Cloud FoundryVMware Tanzu
 
The good, the bad, and the ugly of migrating hundreds of legacy applications ...
The good, the bad, and the ugly of migrating hundreds of legacy applications ...The good, the bad, and the ugly of migrating hundreds of legacy applications ...
The good, the bad, and the ugly of migrating hundreds of legacy applications ...Josef Adersberger
 
Reimagining Customer Experiences Utilizing Pivotal Cloud Foundry
Reimagining Customer Experiences Utilizing Pivotal Cloud FoundryReimagining Customer Experiences Utilizing Pivotal Cloud Foundry
Reimagining Customer Experiences Utilizing Pivotal Cloud FoundryVMware Tanzu
 
Mastinder singh visualcv_resume
Mastinder singh visualcv_resumeMastinder singh visualcv_resume
Mastinder singh visualcv_resumeMastinder Singh
 
App Mod 01: Moving existing apps to the cloud
App Mod 01: Moving existing apps to the cloudApp Mod 01: Moving existing apps to the cloud
App Mod 01: Moving existing apps to the cloudJudy Breedlove
 
Application Security with NGINX | APAC
Application Security with NGINX | APACApplication Security with NGINX | APAC
Application Security with NGINX | APACNGINX, Inc.
 
OpenStack Trends for the Enterprise
OpenStack Trends for the EnterpriseOpenStack Trends for the Enterprise
OpenStack Trends for the EnterpriseTesora
 
Deep Dive: Automating the Application and Security Pipeline with NGINX and An...
Deep Dive: Automating the Application and Security Pipeline with NGINX and An...Deep Dive: Automating the Application and Security Pipeline with NGINX and An...
Deep Dive: Automating the Application and Security Pipeline with NGINX and An...NGINX, Inc.
 
Getting Security in the Loop: Building Balanced Teams
Getting Security in the Loop: Building Balanced TeamsGetting Security in the Loop: Building Balanced Teams
Getting Security in the Loop: Building Balanced TeamsVMware Tanzu
 
Red Hat OpenShift - a foundation for successful digital transformation
Red Hat OpenShift - a foundation for successful digital transformationRed Hat OpenShift - a foundation for successful digital transformation
Red Hat OpenShift - a foundation for successful digital transformationEric D. Schabell
 
DevOps in the Real World: Know What it Takes to Make it Work
DevOps in the Real World: Know What it Takes to Make it WorkDevOps in the Real World: Know What it Takes to Make it Work
DevOps in the Real World: Know What it Takes to Make it WorkVMware Tanzu
 
Secure, Strengthen, Automate, and Scale Modern Workloads with Red Hat & NGINX
Secure, Strengthen, Automate, and Scale Modern Workloads with Red Hat & NGINXSecure, Strengthen, Automate, and Scale Modern Workloads with Red Hat & NGINX
Secure, Strengthen, Automate, and Scale Modern Workloads with Red Hat & NGINXNGINX, Inc.
 

What's hot (20)

Focusing on What Matters
Focusing on What MattersFocusing on What Matters
Focusing on What Matters
 
Controller and Coffee: Deliver APIs in Real Time with API Management
Controller and Coffee: Deliver APIs in Real Time with API ManagementController and Coffee: Deliver APIs in Real Time with API Management
Controller and Coffee: Deliver APIs in Real Time with API Management
 
The Future of Cloud Native Apps - Chicago Intro
The Future of Cloud Native Apps - Chicago IntroThe Future of Cloud Native Apps - Chicago Intro
The Future of Cloud Native Apps - Chicago Intro
 
"The Cloud Native Enterprise is Coming"
"The Cloud Native Enterprise is Coming" "The Cloud Native Enterprise is Coming"
"The Cloud Native Enterprise is Coming"
 
Monitoring NGINX Deployments with Sumo Logic
Monitoring NGINX Deployments with Sumo LogicMonitoring NGINX Deployments with Sumo Logic
Monitoring NGINX Deployments with Sumo Logic
 
Red Hat OpenShift - a foundation for successful digital transformation
Red Hat OpenShift - a foundation for successful digital transformationRed Hat OpenShift - a foundation for successful digital transformation
Red Hat OpenShift - a foundation for successful digital transformation
 
Corlina
CorlinaCorlina
Corlina
 
LIVE DEMO: Pivotal Cloud Foundry
LIVE DEMO: Pivotal Cloud FoundryLIVE DEMO: Pivotal Cloud Foundry
LIVE DEMO: Pivotal Cloud Foundry
 
The good, the bad, and the ugly of migrating hundreds of legacy applications ...
The good, the bad, and the ugly of migrating hundreds of legacy applications ...The good, the bad, and the ugly of migrating hundreds of legacy applications ...
The good, the bad, and the ugly of migrating hundreds of legacy applications ...
 
Reimagining Customer Experiences Utilizing Pivotal Cloud Foundry
Reimagining Customer Experiences Utilizing Pivotal Cloud FoundryReimagining Customer Experiences Utilizing Pivotal Cloud Foundry
Reimagining Customer Experiences Utilizing Pivotal Cloud Foundry
 
Mastinder singh visualcv_resume
Mastinder singh visualcv_resumeMastinder singh visualcv_resume
Mastinder singh visualcv_resume
 
Latest dev ops trends in 2021 you should know
Latest dev ops trends in 2021 you should knowLatest dev ops trends in 2021 you should know
Latest dev ops trends in 2021 you should know
 
App Mod 01: Moving existing apps to the cloud
App Mod 01: Moving existing apps to the cloudApp Mod 01: Moving existing apps to the cloud
App Mod 01: Moving existing apps to the cloud
 
Application Security with NGINX | APAC
Application Security with NGINX | APACApplication Security with NGINX | APAC
Application Security with NGINX | APAC
 
OpenStack Trends for the Enterprise
OpenStack Trends for the EnterpriseOpenStack Trends for the Enterprise
OpenStack Trends for the Enterprise
 
Deep Dive: Automating the Application and Security Pipeline with NGINX and An...
Deep Dive: Automating the Application and Security Pipeline with NGINX and An...Deep Dive: Automating the Application and Security Pipeline with NGINX and An...
Deep Dive: Automating the Application and Security Pipeline with NGINX and An...
 
Getting Security in the Loop: Building Balanced Teams
Getting Security in the Loop: Building Balanced TeamsGetting Security in the Loop: Building Balanced Teams
Getting Security in the Loop: Building Balanced Teams
 
Red Hat OpenShift - a foundation for successful digital transformation
Red Hat OpenShift - a foundation for successful digital transformationRed Hat OpenShift - a foundation for successful digital transformation
Red Hat OpenShift - a foundation for successful digital transformation
 
DevOps in the Real World: Know What it Takes to Make it Work
DevOps in the Real World: Know What it Takes to Make it WorkDevOps in the Real World: Know What it Takes to Make it Work
DevOps in the Real World: Know What it Takes to Make it Work
 
Secure, Strengthen, Automate, and Scale Modern Workloads with Red Hat & NGINX
Secure, Strengthen, Automate, and Scale Modern Workloads with Red Hat & NGINXSecure, Strengthen, Automate, and Scale Modern Workloads with Red Hat & NGINX
Secure, Strengthen, Automate, and Scale Modern Workloads with Red Hat & NGINX
 

Similar to Senacor Technologies AG: Microservice Architecture - Changeability, Elasticity and Fault Tolerance

Cisco Connect 2018 Thailand - Next generation hyperconverged infrastructure-s...
Cisco Connect 2018 Thailand - Next generation hyperconverged infrastructure-s...Cisco Connect 2018 Thailand - Next generation hyperconverged infrastructure-s...
Cisco Connect 2018 Thailand - Next generation hyperconverged infrastructure-s...NetworkCollaborators
 
Building 12-factor Cloud Native Microservices
Building 12-factor Cloud Native MicroservicesBuilding 12-factor Cloud Native Microservices
Building 12-factor Cloud Native MicroservicesJakarta_EE
 
Production-Ready Environments for Kubernetes (CON307-S) - AWS re:Invent 2018
Production-Ready Environments for Kubernetes (CON307-S) - AWS re:Invent 2018Production-Ready Environments for Kubernetes (CON307-S) - AWS re:Invent 2018
Production-Ready Environments for Kubernetes (CON307-S) - AWS re:Invent 2018Amazon Web Services
 
Faster, more Secure Application Modernization and Replatforming with PKS - Ku...
Faster, more Secure Application Modernization and Replatforming with PKS - Ku...Faster, more Secure Application Modernization and Replatforming with PKS - Ku...
Faster, more Secure Application Modernization and Replatforming with PKS - Ku...VMware Tanzu
 
What’s Next For AppDynamics and Cisco? AppD Global Tour London
What’s Next For AppDynamics and Cisco? AppD Global Tour LondonWhat’s Next For AppDynamics and Cisco? AppD Global Tour London
What’s Next For AppDynamics and Cisco? AppD Global Tour LondonAppDynamics
 
Pivotal Container Service (PKS) at SF Cloud Foundry Meetup
Pivotal Container Service (PKS) at SF Cloud Foundry MeetupPivotal Container Service (PKS) at SF Cloud Foundry Meetup
Pivotal Container Service (PKS) at SF Cloud Foundry Meetupcornelia davis
 
Application Modernisation with PKS
Application Modernisation with PKSApplication Modernisation with PKS
Application Modernisation with PKSPhil Reay
 
Application Modernisation with PKS
Application Modernisation with PKSApplication Modernisation with PKS
Application Modernisation with PKSPhil Reay
 
Pivotal Container Service : la nuova soluzione per gestire Kubernetes in azienda
Pivotal Container Service : la nuova soluzione per gestire Kubernetes in aziendaPivotal Container Service : la nuova soluzione per gestire Kubernetes in azienda
Pivotal Container Service : la nuova soluzione per gestire Kubernetes in aziendaVMware Tanzu
 
Live Coding 12 Factor App
Live Coding 12 Factor AppLive Coding 12 Factor App
Live Coding 12 Factor AppEmily Jiang
 
Overview of Sponsor Sessions in Berlin
Overview of Sponsor Sessions in BerlinOverview of Sponsor Sessions in Berlin
Overview of Sponsor Sessions in BerlinNetApp Insight
 
Continuous Everything in a Multi-cloud and Multi-platform Environment
Continuous Everything in a Multi-cloud and Multi-platform EnvironmentContinuous Everything in a Multi-cloud and Multi-platform Environment
Continuous Everything in a Multi-cloud and Multi-platform EnvironmentVMware Tanzu
 
Application Modernization with PKS / Kubernetes
Application Modernization with PKS / KubernetesApplication Modernization with PKS / Kubernetes
Application Modernization with PKS / KubernetesPaul Czarkowski
 
RedisConf18 - Redis in Dev, Test, and Prod with the OpenShift Service Catalog
RedisConf18 - Redis in Dev, Test, and Prod with the OpenShift Service CatalogRedisConf18 - Redis in Dev, Test, and Prod with the OpenShift Service Catalog
RedisConf18 - Redis in Dev, Test, and Prod with the OpenShift Service CatalogRedis Labs
 
CA Microgateway: Deploying, Configuring, and Extending CA Microgateway
CA Microgateway: Deploying, Configuring, and Extending CA MicrogatewayCA Microgateway: Deploying, Configuring, and Extending CA Microgateway
CA Microgateway: Deploying, Configuring, and Extending CA MicrogatewayCA Technologies
 
Cisco connect montreal 2018 vision mondiale analyse locale
Cisco connect montreal 2018 vision mondiale analyse localeCisco connect montreal 2018 vision mondiale analyse locale
Cisco connect montreal 2018 vision mondiale analyse localeCisco Canada
 
FactoryTalk® AssetCentre: Overview
FactoryTalk® AssetCentre: OverviewFactoryTalk® AssetCentre: Overview
FactoryTalk® AssetCentre: OverviewRockwell Automation
 
Cisco Connect 2018 Singapore - Next generation hyperconverged infrastructure
Cisco Connect 2018 Singapore - Next generation hyperconverged infrastructureCisco Connect 2018 Singapore - Next generation hyperconverged infrastructure
Cisco Connect 2018 Singapore - Next generation hyperconverged infrastructureNetworkCollaborators
 
The Reconstitution of Middleware with APIs V2
The Reconstitution of Middleware with APIs V2The Reconstitution of Middleware with APIs V2
The Reconstitution of Middleware with APIs V2Asanka Abeysinghe
 
apidays LIVE New York 2021 - The reconstitution of middleware with APIs by As...
apidays LIVE New York 2021 - The reconstitution of middleware with APIs by As...apidays LIVE New York 2021 - The reconstitution of middleware with APIs by As...
apidays LIVE New York 2021 - The reconstitution of middleware with APIs by As...apidays
 

Similar to Senacor Technologies AG: Microservice Architecture - Changeability, Elasticity and Fault Tolerance (20)

Cisco Connect 2018 Thailand - Next generation hyperconverged infrastructure-s...
Cisco Connect 2018 Thailand - Next generation hyperconverged infrastructure-s...Cisco Connect 2018 Thailand - Next generation hyperconverged infrastructure-s...
Cisco Connect 2018 Thailand - Next generation hyperconverged infrastructure-s...
 
Building 12-factor Cloud Native Microservices
Building 12-factor Cloud Native MicroservicesBuilding 12-factor Cloud Native Microservices
Building 12-factor Cloud Native Microservices
 
Production-Ready Environments for Kubernetes (CON307-S) - AWS re:Invent 2018
Production-Ready Environments for Kubernetes (CON307-S) - AWS re:Invent 2018Production-Ready Environments for Kubernetes (CON307-S) - AWS re:Invent 2018
Production-Ready Environments for Kubernetes (CON307-S) - AWS re:Invent 2018
 
Faster, more Secure Application Modernization and Replatforming with PKS - Ku...
Faster, more Secure Application Modernization and Replatforming with PKS - Ku...Faster, more Secure Application Modernization and Replatforming with PKS - Ku...
Faster, more Secure Application Modernization and Replatforming with PKS - Ku...
 
What’s Next For AppDynamics and Cisco? AppD Global Tour London
What’s Next For AppDynamics and Cisco? AppD Global Tour LondonWhat’s Next For AppDynamics and Cisco? AppD Global Tour London
What’s Next For AppDynamics and Cisco? AppD Global Tour London
 
Pivotal Container Service (PKS) at SF Cloud Foundry Meetup
Pivotal Container Service (PKS) at SF Cloud Foundry MeetupPivotal Container Service (PKS) at SF Cloud Foundry Meetup
Pivotal Container Service (PKS) at SF Cloud Foundry Meetup
 
Application Modernisation with PKS
Application Modernisation with PKSApplication Modernisation with PKS
Application Modernisation with PKS
 
Application Modernisation with PKS
Application Modernisation with PKSApplication Modernisation with PKS
Application Modernisation with PKS
 
Pivotal Container Service : la nuova soluzione per gestire Kubernetes in azienda
Pivotal Container Service : la nuova soluzione per gestire Kubernetes in aziendaPivotal Container Service : la nuova soluzione per gestire Kubernetes in azienda
Pivotal Container Service : la nuova soluzione per gestire Kubernetes in azienda
 
Live Coding 12 Factor App
Live Coding 12 Factor AppLive Coding 12 Factor App
Live Coding 12 Factor App
 
Overview of Sponsor Sessions in Berlin
Overview of Sponsor Sessions in BerlinOverview of Sponsor Sessions in Berlin
Overview of Sponsor Sessions in Berlin
 
Continuous Everything in a Multi-cloud and Multi-platform Environment
Continuous Everything in a Multi-cloud and Multi-platform EnvironmentContinuous Everything in a Multi-cloud and Multi-platform Environment
Continuous Everything in a Multi-cloud and Multi-platform Environment
 
Application Modernization with PKS / Kubernetes
Application Modernization with PKS / KubernetesApplication Modernization with PKS / Kubernetes
Application Modernization with PKS / Kubernetes
 
RedisConf18 - Redis in Dev, Test, and Prod with the OpenShift Service Catalog
RedisConf18 - Redis in Dev, Test, and Prod with the OpenShift Service CatalogRedisConf18 - Redis in Dev, Test, and Prod with the OpenShift Service Catalog
RedisConf18 - Redis in Dev, Test, and Prod with the OpenShift Service Catalog
 
CA Microgateway: Deploying, Configuring, and Extending CA Microgateway
CA Microgateway: Deploying, Configuring, and Extending CA MicrogatewayCA Microgateway: Deploying, Configuring, and Extending CA Microgateway
CA Microgateway: Deploying, Configuring, and Extending CA Microgateway
 
Cisco connect montreal 2018 vision mondiale analyse locale
Cisco connect montreal 2018 vision mondiale analyse localeCisco connect montreal 2018 vision mondiale analyse locale
Cisco connect montreal 2018 vision mondiale analyse locale
 
FactoryTalk® AssetCentre: Overview
FactoryTalk® AssetCentre: OverviewFactoryTalk® AssetCentre: Overview
FactoryTalk® AssetCentre: Overview
 
Cisco Connect 2018 Singapore - Next generation hyperconverged infrastructure
Cisco Connect 2018 Singapore - Next generation hyperconverged infrastructureCisco Connect 2018 Singapore - Next generation hyperconverged infrastructure
Cisco Connect 2018 Singapore - Next generation hyperconverged infrastructure
 
The Reconstitution of Middleware with APIs V2
The Reconstitution of Middleware with APIs V2The Reconstitution of Middleware with APIs V2
The Reconstitution of Middleware with APIs V2
 
apidays LIVE New York 2021 - The reconstitution of middleware with APIs by As...
apidays LIVE New York 2021 - The reconstitution of middleware with APIs by As...apidays LIVE New York 2021 - The reconstitution of middleware with APIs by As...
apidays LIVE New York 2021 - The reconstitution of middleware with APIs by As...
 

Recently uploaded

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

Senacor Technologies AG: Microservice Architecture - Changeability, Elasticity and Fault Tolerance

  • 1. Senacor Technologies AG Fehlertolerante und skalierbare Systeme mit dem Netflix OSS Dr. Michael Menzel, Senacor Technologies AG FrOSCon 2017, 19.08.2017
  • 3. Senacor Technologies AG DIGITALIZATION 3FrOSCon 2017 Change in customer expectations 19.08.2017
  • 4. Senacor Technologies AG DIGITALIZATION Change in customer expectations 4FrOSCon 201719.08.2017
  • 5. Senacor Technologies AG DIGITALIZATION Change in customer expectations 5FrOSCon 201719.08.2017
  • 6. Senacor Technologies AG DIGITALIZATION Change in customer expectations 6FrOSCon 201719.08.2017
  • 7. Senacor Technologies AG DIGITALIZATION The “Digital Ready Architecture” is based on a set of key assumptions/guidelines 19.08.2017 2. Elasticity and Scalability Cloud native applications Digital Ready Architecture 1. Embrace Change Fast delivery of ideas into production 3. Embrace Failure Cope with failures; high availability 4. Responsiveness and Reactivity Excellent user experience from end-to-end Elasticity Resilience Responsive Changeability FrOSCon 2017
  • 8. Senacor Technologies AG 19.08.2017 FrOSCon 2017 How to build it? 8
  • 9. Senacor Technologies AG MICROSERVICE ARCHITECTURE Vertical decomposition of monolithic applications in independent services decouples releases of independent functionality 19.08.2017 FrOSCon 2017 Loan Service Account Service Partner Service Loan Frontend Account Frontend Partner Frontend Self- Contained System Self- Contained System Self- Contained System Loan DB Account DB Partner DB Micro Services Frontend Integration FrontendServicesDatabase Loan UI Account UI Partner UI Loan Service Account Service Trading Service Loan Schema Account Schema Partner Schema Release monthly Release quarterly Release 2-weekly Release half a year Monolithic Applications
  • 10. Senacor Technologies AG MICROSERVICE ARCHITECTURE 19.08.2017 FrOSCon 2017
  • 11. Senacor Technologies AG This is not how it works! (Well, maybe it is, if it was a good one) But most likely not MICROSERVICE ARCHITECTURE 19.08.2017 FrOSCon 2017 A Microservice is not … … your monolith cut into pieces
  • 12. Senacor Technologies AG MICROSERVICE ARCHITECTURE 19.08.2017 FrOSCon 2017
  • 13. Senacor Technologies AG MICROSERVICE ARCHITECTURE 19.08.2017 FrOSCon 2017
  • 14. Senacor Technologies AG MICROSERVICE ARCHITECTURE 19.08.2017 FrOSCon 2017
  • 15. Senacor Technologies AG MICROSERVICE ARCHITECTURE 19.08.2017 FrOSCon 2017
  • 16. Senacor Technologies AG MICROSERVICE ARCHITECTURE Microservices with Spring Cloud and Netflix OSS 19.08.2017 FrOSCon 2017 SpringBoot Creation of stand-alone, Spring-based Applications SpringCloud Routing and Load-Balancing Service registration and discovery Messaging Circuit Breakers Service-to-service calls NetflixOSS Eureka Spring Framework Integration Parent/Dependency-POMs Maven-Plugins Ribbon Zuul RxJava Hystrix Feign Based on integrates Tool integration and pattern adaption for distributed systems Distributed/versioned configuration Archaius
  • 17. Senacor Technologies AG MICROSERVICE ARCHITECTURE Get started with a small application class and spring boot starter POMs 19.08.2017 FrOSCon 2017 package hello; import org.springframework.boot.*; import org.springframework.boot.autoconfigure.*; import org.springframework.stereotype.*; import org.springframework.web.bind.annotation.*; @Controller @EnableAutoConfiguration public class SampleController { @RequestMapping("/") @ResponseBody String home() { return "Hello World!"; } public static void main(String[] args) throws Exception { SpringApplication.run(SampleController.class, args); } } + Java Classes + Maven POMs + Configuration Fat JAR
  • 18. Senacor Technologies AG MICROSERVICE ARCHITECTURE How to implement to implement changeability, elasticity, resilience and responsiveness in a Microservice architecture? 19.08.2017 FrOSCon 2017 2. Elasticity and Scalability Cloud native applications Microservice Architecture 1. Embrace Change Fast delivery of ideas into production 3. Embrace Failure Cope with failures; high availability 4. Responsiveness and Reactivity Excellent user experience from end-to-end Elasticity Resilience Responsive Changeability
  • 19. Senacor Technologies AG MICROSERVICE ARCHITECTURE - CHANGEABILITY How to implement to implement changeability in a Microservice architecture? 19.08.2017 FrOSCon 2017 2. Elasticity and Scalability Cloud native applications 1. Embrace Change Fast delivery of ideas into production 3. Embrace Failure Cope with failures; high availability 4. Responsiveness and Reactivity Excellent user experience from end-to-end Elasticity Resilience Responsive Changeability Microservice Architecture
  • 20. Senacor Technologies AG MICROSERVICE ARCHITECTURE - CHANGEABILITY 19.08.2017 FrOSCon 2017 Web FrontendClients Services Layer Account Service Account Service … Account Service IP2:Port2IP1:Port1 http://<domain>/services/bank-accounts/ IP3:Port3 Routing and load balancing
  • 21. Senacor Technologies AG MICROSERVICE ARCHITECTURE - CHANGEABILITY 19.08.2017 FrOSCon 2017 Web FrontendClients Services Layer Account Service Account Service … Account Service ZUUL Reverse Proxy and Load Balancer Proxy IP2:Port2IP1:Port1 http://<domain>/services/bank-accounts/  Reverse proxy to route service requests to instances  Versioned APIs enable a decoupling of services and clients v2.0/ v1.0 v1.0 v2.0 IP3:Port3
  • 22. Senacor Technologies AG MICROSERVICE ARCHITECTURE - CHANGEABILITY ZUUL gateway can be biuld as Spring cloud application 19.08.2017 FrOSCon 2017 package example.zuul; import …; @SpringBootApplication @EnableZuulProxy public class ZuulApplication { public static void main(String[] args) throws Exception { SpringApplication.run(SampleController.class, args); } } + Java Classes + Maven POMs + Configuration Fat JAR ZUUL App <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zuul</artifactId> </dependency> zuul: routes: bankaccounts: path: /bank-accounts/v2.0/** url: http://IP3:Port3 Zuul Deployment
  • 23. Senacor Technologies AG Zuul: static route configuration MICROSERVICE ARCHITECTURE - CHANGEABILITY 19.08.2017 FrOSCon 2017 Web FrontendClients Services Layer Account Service Account Service … Account Service ZUUL Reverse Proxy and Load Balancer Proxy IP2:Port2IP1:Port1 http://<domain>/services/bank-accounts/ v2.0/ v1.0 v1.0 v2.0 IP3:Port3 zuul: routes: bankaccounts: path: /bank-accounts/v2.0/** url: http://IP3:Port3
  • 24. Senacor Technologies AG MICROSERVICE ARCHITECTURE - CHANGEABILITY Load balancing and fault tolerance in ZUUL 19.08.2017 FrOSCon 2017 Zuul integrates: zuul: routes: bankAccounts: path: /bank-accounts/v1.0/** serviceId: bankAccounts bankAccounts: ribbon: listOfServers: IP1:Port1, IP2:Port2  Ribbon: Client-side Load Balancer  Hystrix: Circuit Breaker Library to implement fault tolerance
  • 25. Senacor Technologies AG Build once, run everywhere Good java -jar service.jar -spring.profiles.active="production“ Bad mvn clean install spring-boot:repacke -P "production" MICROSERVICE ARCHITECTURE - CHANGEABILITY 19.08.2017 FrOSCon 2017 A microservice JAR file is built exactly once and then never touched again
  • 26. Senacor Technologies AG MICROSERVICE ARCHITECTURE - CHANGEABILITY A configuration server enables environment independent delivery artefacts 19.08.2017 FrOSCon 2017 Config Server Service Service Frontend Frontend Integration Service Layer Configuration Server offers a service interface to query profile-specific configuration values Configuration Client (Services) retrieve configuration after start-up PUSH Dynamic configuration update  Annotate dynamic properties with @RefreshScope  after triggering a refresh endpoint (/refresh)  on change using a message bus
  • 27. Senacor Technologies AG MICROSERVICE ARCHITECTURE - CHANGEABILITY A configuration server enables environment independent delivery artefacts 19.08.2017 FrOSCon 2017 Config Server Service Service Frontend Frontend Integration Service Layer PUSH Config-Server  Activation by Annotation: @EnableConfigServer  GIT-configuration: spring.cloud.configrepo.server.git.uri = <uri> Config-Client  Activation by configuration: cloud: config: enabled: true uri: <url>
  • 28. Senacor Technologies AG Archaius:  Framework to access properties  Based on Apache commons  Aggregates different sources: Properties-Files, URLs, database  Type safe access  On change callbacks MICROSERVICE ARCHITECTURE - CHANGEABILITY 19.08.2017 FrOSCon 2017
  • 29. Senacor Technologies AG MICROSERVICE ARCHITECTURE - ELASTICITY How to implement to implement elasticity and scalability in a Microservice architecture? 19.08.2017 FrOSCon 2017 2. Elasticity and Scalability Cloud native applications Microservice Architecture 1. Embrace Change Fast delivery of ideas into production 3. Embrace Failure Cope with failures; high availability 4. Responsiveness and Reactivity Excellent user experience from end-to-end Elasticity Resilience Responsive Changeability
  • 30. Senacor Technologies AG MICROSERVICE ARCHITECTURE - ELASTICITY 19.08.2017 FrOSCon 2017 Web FrontendClients Services Layer … ZUUL Reverse Proxy and Load Balancer Proxy http://<domain>/services/bank-accounts/v2.0/ Account Service Account Service Account Service Scale Out! Account ServiceHow to enable a transparent scale-out
  • 31. Senacor Technologies AG MICROSERVICE ARCHITECTURE - ELASTICITY 19.08.2017 FrOSCon 2017 Web FrontendClients Services Layer … Proxy Account Service Account Service Account Service Scale Out! Account Service ServiceRegistry  Service registration on start up  Heart beat guarantees services availability  Master/Slave operation mode for service registry http://<domain>/services/bank-accounts/v2.0/ ZUUL Reverse Proxy and Load Balancer
  • 32. Senacor Technologies AG Service Discovery in a Spring Cloud ZUUL application is enabled via configuration and annotation @EnableDiscoveryClient MICROSERVICE ARCHITECTURE - ELASTICITY 19.08.2017 FrOSCon 2017 zuul: routes: bankAccounts: path: /bank-accounts/v1.0/** serviceId: bankAccounts eureka: client: serviceUrl: defaultZone: <URL Registry> Zuul Applicatin Configuration
  • 33. Senacor Technologies AG Service invocations with Feign  Simple creation of REST clients with connection to Eureka  Definition via interfaces and annotations  Activation of feign clients: @EnableFeignClients @FeignClient("users-service") interface UserClient { @RequestMapping(method = RequestMethod.GET, value = "/user") User getUser(); } MICROSERVICE ARCHITECTURE - ELASTICITY 19.08.2017 FrOSCon 2017
  • 34. Senacor Technologies AG RESILIENCE How to implement to implement resilience in a Microservice architecture? 19.08.2017 FrOSCon 2017 2. Elasticity and Scalability Cloud native applications Microservice Architecture 1. Embrace Change Fast delivery of ideas into production 3. Embrace Failure Cope with failures; high availability 4. Responsiveness and Reactivity Excellent user experience from end-to-end Elasticity Resilience Responsive Changeability
  • 35. Senacor Technologies AG Resilience The system stays responsive in the face of failure with a graceful degradation of service if required MICROSERVICE ARCHITECTURE - RESILIENCE 19.08.2017 FrOSCon 2017 Isolate failures by Redundancy Insulation Loose coupling  Circuit Breaker Pattern  Fallback i.e. cached data  see Elasticity  own data store  asynchronous messaging  location transparency  eventual consistency
  • 36. Senacor Technologies AG MICROSERVICE ARCHITECTURE - RESILIENCE Unavailable services can affect the overall availability of synchronous, blocking systems 19.08.2017 FrOSCon 2017 Microservice Backend Requests Timeout
  • 37. Senacor Technologies AG MICROSERVICE ARCHITECTURE - RESILIENCE 19.08.2017 FrOSCon 2017 Circuit Breaker The circuit breaker breaks the circuit instead of the house burning down – since 1879 37
  • 38. Senacor Technologies AG MICROSERVICE ARCHITECTURE - RESILIENCE Circuit Breaker Pattern isolates backend access 19.08.2017 FrOSCon 2017 Microservice x x Backend TimeoutFailfast
  • 39. Senacor Technologies AG MICROSERVICE ARCHITECTURE - RESILIENCE Hystrix isolates invocations in Server-side service compositions 19.08.2017 FrOSCon 2017 Web FrontendClients Services Layer … ZUUL Reverse Proxy and Load Balancer Proxy Account Service Authorization Service Service Service ServiceRegistryhttp://<domain>/services/bank-accounts/v2.0/ Hystrix Hystrix Hystrix Hystrix-Integration
  • 40. Senacor Technologies AG MICROSERVICE ARCHITECTURE - RESPONSIVENESS How to implement to implement responsiveness in a Microservice architecture? 19.08.2017 FrOSCon 2017 2. Elasticity and Scalability Cloud native applications Microservice Architecture 1. Embrace Change Fast delivery of ideas into production 3. Embrace Failure Cope with failures; high availability 4. Responsiveness and Reactivity Excellent user experience from end-to-end Elasticity Resilience Responsive Changeability
  • 41. Senacor Technologies AG MICROSERVICE ARCHITECTURE - RESPONSIVENESS Client side service composition result in communication overhead 19.08.2017 FrOSCon 2017 100 ms Browser 200 ms 300 ms 400 ms 500 ms 600 ms Services Server Request Latency Network Latency Prefer server-side service compositions
  • 42. Senacor Technologies AG // load customer data customerService.findById( customerId, reply -> { // check on error if (reply.succeeded()) { // extract customer from reply Customer customer = (Customer) reply.result().body(); // update address customer.setAddress( "..." ); // update customer customerService.update(customer, updateReply -> { // ... // nested code for error checking and processing // ... }); } else { // process error }); MICROSERVICE ARCHITECTURE - RESPONSIVENESS Callbacks result in nested code 19.08.2017 FrOSCon 2017
  • 43. Senacor Technologies AG MICROSERVICE ARCHITECTURE - RESPONSIVENESS - RXJAVA How to design the API? 19.08.2017 FrOSCon 2017 single data set multiple data sets synchronous Object Iterable Stream asynchronous Callback Future CompletableFuture Observable
  • 44. Senacor Technologies AG MICROSERVICE ARCHITECTURE - RESPONSIVENESS - RXJAVA 19.08.2017 FrOSCon 2017 library for creating, transforming, composing and subscribing asynchronous and event-based streams using observable sequences ObservableObserver subscribe onNext(T) onError(Throwable t) onCompleted()
  • 45. Senacor Technologies AG MICROSERVICE ARCHITECTURE - RESPONSIVENESS - RXJAVA 19.08.2017 FrOSCon 2017 // asynchronous send method returns an observable customerService.findById", "123") //extract customer from response .map(asyncResult -> (Customer) asyncResult.body()) //update customer object .map(customer -> ... ) //save customer data .flatMap(customer -> customerService.update(customer)) //consume result and error .subscribe(customer -> ..., error -> ... );
  • 47. Senacor Technologies AG Spring cloud offers a seamless integration of Netflix OSS that provides infrastructure components for microservice systems CONCLUSION FrOSCon 2017 SpringCloud Routing and Load-Balancing Service registration and discovery Messaging Circuit Breakers Service-to-service calls NetflixOSS Eureka Ribbon Zuul RxJava Hystrix Feign integrates Tool integration and pattern adaption for distributed systems Distributed/versioned configuration Archaius 19.08.2017
  • 48. Senacor Technologies AG CONCLUSION Think before your act, … FrOSCon 201719.08.2017
  • 49. Senacor Technologies AG CONCLUSION …, so you do not build this! FrOSCon 201719.08.2017
  • 50. Senacor Technologies AG Fehlertolerante und skalierbare Systeme mit dem Netflix OSS Dr. Michael Menzel, Senacor Technologies AG Email: michael.menzel@senacor.com Twitter: @mwmenzel FrOSCon 2017, 19.08.2017
  • 51. Senacor Technologies AG Images links / Copyright belongs to resp. author  Rick Ligthelm ligthelm@flickr  Ben Babcock tachyondecay@flickr  PhotoArt Laatzen trombone65@flickr  Leslie Lamport wikipedia.org  Steve Watts quicksandala@morguefile.com  DAVINCI Haus 62694216@N05@flickr  Susanne Nilsson infomastern@flickr  Kurtis Garbutt kjgarbutt@flickr  Oliver Widder geek-and-poke.com  Angus MacRae gustaffo89@flickr  Lynne Cazaly lynnecazaly.com.au REFERENCES 5151  ctbto@flickr  Stefano Leotta mylife1@flicker  Osvaldo Gago fotografar@flickr  Moyan Brenn aigle_dore@flickr  Martin Fowler martinfowler.com  leafbug@flickr  Sonya Ong and Travis Hydzik SonyaandTravis.com  Tony Guyton tonzpalmer24@flickr  Timothy Pearce timpearcelosgatos@flickr  dany13@flickr  Will Arktek https://www.flickr.com/people/bongonian