SlideShare a Scribd company logo
1 of 150
@DanLebrero#DevoxxPL
Platinum Sponsor:
Applying Stability Patterns:
a case study
Dan Lebrero
IG
@DanLebrero#DevoxxPL
* 17 years JVM
* Monolithic webapps, embedded systems,
low latency, micro-services, big data
* Technical Architect
* World leader CFD and Spread bet
* FTSE 250
* London, Krakow and Bangalore
@DanLebrero#DevoxxPL
Stability patterns
• Timeouts
• Circuit Breakers
• Bulkheads
• Steady State
• Fail Fast
• Handshaking
• Test Harness
• Decoupling Middleware
@DanLebrero#DevoxxPL
FAILURE IS
INEVITABLE
@DanLebrero#DevoxxPL
Stability patterns
• Timeouts
• Circuit Breakers
• Bulkheads
• Steady State
• Fail Fast
• Handshaking
• Test Harness
• Decoupling Middleware
@DanLebrero#DevoxxPL
Stability patterns
• Timeouts
• Circuit Breakers
• Bulkheads
• Steady State
• Fail Fast
• Handshaking
• Test Harness
• Decoupling Middleware
@DanLebrero#DevoxxPL
Stability patterns
@DanLebrero#DevoxxPL
Stability patterns
• Timeouts
• Circuit Breakers
• Bulkheads
• Steady State
• Fail Fast
• Handshaking
• Test Harness
• Decoupling Middleware
@DanLebrero#DevoxxPL
Market Analysis (MA)
@DanLebrero#DevoxxPL @DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL @DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL @DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL
Market Analysis Dependencies
@DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL
• Single Sign On
Market Analysis Dependencies
@DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL
• Single Sign On
• User Preferences
Market Analysis Dependencies
@DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL
• Single Sign On
• User Preferences
• CMS
Market Analysis Dependencies
@DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL
• Single Sign On
• User Preferences
• CMS
• Market Taxonomy
Market Analysis Dependencies
@DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL
• Single Sign On
• User Preferences
• CMS
• Market Taxonomy
• Client Information
Market Analysis Dependencies
@DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL
• Single Sign On
• User Preferences
• CMS
• Market Taxonomy
• Client Information
• Dealing API
Market Analysis Dependencies
@DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL
• Single Sign On
• User Preferences
• CMS
• Market Taxonomy
• Client Information
• Dealing API
• View Permissions + Market Pricing
• Chart Patterns
• News
• Client Sentiment
• Company Fundamentals
• Company Calendar
Market Analysis Dependencies
@DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL
• Single Sign On
• User Preferences
• CMS
• Market Taxonomy
• Client Information
• Dealing API
• View Permissions + Market Pricing
• Chart Patterns
• News
• Client Sentiment
• Company Fundamentals
• Company Calendar
Other services: Search, Correlations, Economic
Calendar, Videos, Market Screener
Market Analysis Dependencies
@DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL
“Integration points are the number-
one killer of systems” – Release It!,
Michael Nygard
Market Analysis Dependencies
@DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL
Key architecture principles:
• All data on load (SEO/UX)
Market Analysis Dependencies
@DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL
FAILURE IS
INEVITABLE
@DanLebrero#DevoxxPL
Key architecture principles:
• All data on load (SEO/UX)
• No service is essential
Market Analysis Dependencies
@DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL
• Single Sign On
• User Preferences
• CMS
• Market Taxonomy
• Client Information
• Dealing API
• View Permissions + Market Pricing
• Chart Patterns
• News
• Client Sentiment
• Company Fundamentals
• Company Calendar
Market Analysis Dependencies
@DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL
• Single Sign On
• User Preferences
• CMS
• Market Taxonomy
• Client Information
• Dealing API
• View Permissions + Market Pricing
• Chart Patterns
• News
• Client Sentiment
• Company Fundamentals
• Company Calendar
Market Analysis Dependencies
@DanLebrero#DevoxxPL
F5LB
F5LB
F5LB
F5Charts
F5News
F5Prices
F5MA
Market Analysis architecture
F5LB
F53rd Party
F53rd Party
@DanLebrero#DevoxxPL
Charts +
PermsCS + Perms + Prices
Fundamentals
Market Analysis request / response
News
response
collect
request
parallelise
@DanLebrero#DevoxxPL
TIMEOUTS
Never wait forever
@DanLebrero#DevoxxPL
FAILURE IS
INEVITABLE
(I)
@DanLebrero#DevoxxPL
FAILURE IS
INEVITABLE
(II)
@DanLebrero#DevoxxPL
Timeouts (I) - Parallelised work
collect
parallelise
@DanLebrero#DevoxxPL
parallelise
Timed wait
collect
Timeouts (I) - Parallelised work
@DanLebrero#DevoxxPL
Cancelunfinished
andcollect
parallelise
Timed wait
Timeouts (I) - Parallelised work
@DanLebrero#DevoxxPL
Timeouts (II) - Apache HTTP Client
Connection
pool timeout
Connection
timeout
Socket
timeout
@DanLebrero#DevoxxPL
Timeouts (II) - Apache HTTP Client
Connection
pool timeout
Connection
timeout
Socket
timeout
(1
sec.)
(1
sec.)
(1
sec.)
@DanLebrero#DevoxxPL
protected void doGet(HttpServletRequest req, HttpServletResp
byte[] response = "abcdefghijklmnopqrstuvwxyz".getBytes("UTF-8");
for (byte b : response) {
resp.getOutputStream().print(b);
resp.getOutputStream().flush();
Thread.sleep(500);
}
}
Timeouts (II) - Apache HTTP Client
@DanLebrero#DevoxxPL
Timeouts (II) - Apache HTTP Client
Connection
timeout
Socket
timeout
(1
sec.)
(1
sec.)
(1
sec.)
Socket
timeout
Socket
timeout
(1
sec.)
@DanLebrero#DevoxxPL
FAILURE IS
INEVITABLE
@DanLebrero#DevoxxPL
Timeouts (II) - Apache HTTP Client
Connection
timeout
Socket
timeout
(1
sec.)
(1
sec.)
(1
sec.)
Socket
timeout
Socket
timeout
(1
sec.)
@DanLebrero#DevoxxPL
Timeouts (III) - AsyncHttpClient
Connection
timeout
Socket
timeout
Connection
pool timeoutX
@DanLebrero#DevoxxPL
Timeouts (III) - AsyncHttpClient
Connection
timeout
Socket
timeout
(1
sec.)
(1
sec.)
@DanLebrero#DevoxxPL
Timeouts (III) - AsyncHttpClient
Connection
timeout
Socket
timeout
Socket
timeout
Socket
timeout
(1
sec.)
(1
sec.)
(1
sec.)
(1
sec.)
@DanLebrero#DevoxxPL
Timeouts (III) - AsyncHttpClient
Connection
timeout
Socket
timeout
Socket
timeout
Socket
timeout
Request
timeout
@DanLebrero#DevoxxPL
Timeouts (III) - AsyncHttpClient
Connection
timeout
Socket
timeout
Socket
timeout
Socket
timeout
Request
timeout
(3
sec.)
(1
sec.)
(1
sec.)
(1
sec.)
(1
sec.)
@DanLebrero#DevoxxPL
Timeouts (IV) - Very famous commercial DB
Connection
pool timeout
Connection
timeout
Socket
timeout
@DanLebrero#DevoxxPL
Timeouts (V) - Locks and queues
new Object().wait(10);
new ReentrantLock().tryLock(10, MILLISECONDS);
new Semaphore(1).tryAcquire(10, MILLISECONDS);
new CountDownLatch(1).await(10, MILLISECONDS);
new LinkedBlockingQueue(1).offer(o, 10, MILLISECONDS);
new LinkedBlockingQueue(1).poll(10, MILLISECONDS);
@DanLebrero#DevoxxPL
CIRCUIT BREAKERS
Don't do it if it hurts
@DanLebrero#DevoxxPL
FAILURE IS
INEVITABLE
@DanLebrero#DevoxxPL
Circuit Breakers
CLOSED
(pass though)
@DanLebrero#DevoxxPL
Circuit Breakers
CLOSED
(pass though)
OPEN
(don’t bother)
Too many
errors
@DanLebrero#DevoxxPL
Circuit Breakers
CLOSED
(pass though)
OPEN
(don’t bother)
HALF-OPEN
(give it a try)
Too many
errors
Every X
minutes
@DanLebrero#DevoxxPL
Circuit Breakers
CLOSED
(pass though)
OPEN
(don’t bother)
HALF-OPEN
(give it a try)
Too many
errors
Every X
minutes
@DanLebrero#DevoxxPL
Circuit Breakers
CLOSED
(pass though)
OPEN
(don’t bother)
HALF-OPEN
(give it a try)
Too many
errors
Every X
minutes
@DanLebrero#DevoxxPL
Circuit Breakers
• Around all HTTP calls.
• 1 circuit breaker per service: too coarse-grained or
services not micro enough.
• Raise alerts when circuit is open for more than 15 mins.
• Netflix Hystrix
@DanLebrero#DevoxxPL
BULKHEADS
Contain damage
@DanLebrero#DevoxxPL
FAILURE IS
INEVITABLE
@DanLebrero#DevoxxPL
BULKHEADS
Contain damage
@DanLebrero#DevoxxPL
Bulkheads - Mandatory image of a ship
@DanLebrero#DevoxxPL
Bulkheads (I) - In the small
Market Analysis
HTTP Client HTTP Client HTTP Client HTTP Client
News
Fundamentals
Charts
Prices
@DanLebrero#DevoxxPL
Bulkheads (I) - In the small
Market Analysis
HTTP Client HTTP Client HTTP Client HTTP Client
News
Fundamentals
Charts
Prices
@DanLebrero#DevoxxPL
Bulkheads (II) - In the large
Live DC Demo DC
@DanLebrero#DevoxxPL
Bulkheads (II) - In the large
Live DC Demo DC
@DanLebrero#DevoxxPL
Bulkheads (III) - In the medium
Linux
Tomcat
app1
Tomcat
app1
Tomcat
app1
app2
app3
app2 app2
app3app3
@DanLebrero#DevoxxPL
Bulkheads (III) - In the medium
Linux
Tomcat
app
Tomcat
app
Tomcat
app
@DanLebrero#DevoxxPL
Bulkheads (III) - In the medium
Linux
Tomcat
app
Tomcat
app
Tomcat
app
@DanLebrero#DevoxxPL
STEADY STATE
Nothing is infinite
@DanLebrero#DevoxxPL
Steady State
• Log rotation
• Cache size limit
• DB/HTTP connection pools
• Data archiving and purging
• Pagination in APIs
@DanLebrero#DevoxxPL
Steady State (I) - Thread pools
Thread Pool
@DanLebrero#DevoxxPL
Steady State (I) - Thread pools
Thread Pool
Work Queue
TaskTaskTaskTask
@DanLebrero#DevoxxPL
FAILURE IS
INEVITABLE
@DanLebrero#DevoxxPL
Steady State (I) - Thread pools
Thread Pool
Work Queue
TaskTaskTaskTask
Rejection Policy
@DanLebrero#DevoxxPL
Steady State (I) - Thread pools
Rejection Policy
• Abort
• Caller Runs
• Discard
• Discard Oldest
@DanLebrero#DevoxxPL
FAIL FAST
Don't waste your time
@DanLebrero#DevoxxPL
Fail Fast
• Check SLA before starting
• Check circuit breakers needed
• Reserve resources
• Validate user input
@DanLebrero#DevoxxPL
Fail Fast
• Check SLA before starting
• Check circuit breakers needed
• Reserve resources
• Validate user input
X
X
X
@DanLebrero#DevoxxPL
HANDSHAKING
Agree before doing
@DanLebrero#DevoxxPL
Handshaking
• DB connections pool (“select 1 from dual”)
• Heartbeats: Apache HTTPD -> Tomcat AJP
@DanLebrero#DevoxxPL
Market
Analysis
Varnish
Handshaking (I) - Varnish
Check
@DanLebrero#DevoxxPL
Client
Market
Analysis
Varnish
Handshaking (I) - Varnish
MA
Ready?
Check
@DanLebrero#DevoxxPL
Client
Market
Analysis
Varnish
Handshaking (I) - Varnish
MA
Ready?
Check
Yes
@DanLebrero#DevoxxPL
FAILURE IS
INEVITABLE
@DanLebrero#DevoxxPL
Client
Market
Analysis
Varnish
Handshaking (I) - Varnish
MA
Ready?
Check
Yes
No
Return cached
@DanLebrero#DevoxxPL
TEST HARNESS
Be evil
@DanLebrero#DevoxxPL
Test Harness
• Accept connection but never send data
• Refuse all connections
• Read request at 1 byte / second
• Write response at 1 byte / second
• Response is garbage
• Response is huge/infinite
• TCP packet loss
@DanLebrero#DevoxxPL
Test Harness (I) - Maven Cargo Plugin
Maven
Tomcat
Market
Analysis
@DanLebrero#DevoxxPL
Test Harness (I) - Maven Cargo Plugin
Maven
Tomcat
Market
Analysis
Test
Jetty
Evil Servlet
@DanLebrero#DevoxxPL
Test Harness (I) - Maven Cargo Plugin
Maven
Tomcat
Market
Analysis
Test
Jetty
Evil Servlet
@Test
HTTP
@DanLebrero#DevoxxPL
protected void doGet(HttpServletRequest req, HttpServletResp
byte[] response = "abcdefghijklmnopqrstuvwxyz".getBytes("UTF-8");
for (byte b : response) {
resp.getOutputStream().print(b);
resp.getOutputStream().flush();
Thread.sleep(500);
}
}
Test Harness (I) - Maven Cargo Plugin
@DanLebrero#DevoxxPL
Test Harness
• Accept connection but never send data
• Refuse all connections
• Read request at 1 byte / second
• Write response at 1 byte / second
• Response is garbage
• Response is huge/infinite
• TCP packet loss
X
X
X
@DanLebrero#DevoxxPL
Docker
Test Harness (II) - Docker
Maven
Test
@DanLebrero#DevoxxPL
Docker
Test Harness (II) - Docker
Fake
dependency
container
ToxiProxy
container
Market
Analysis
container
Maven
Test
1. Start
@DanLebrero#DevoxxPL
Docker
Test Harness (II) - Docker
Fake
dependency
container
ToxiProxy
container
Market
Analysis
container
Maven
Test
1. Start
2. Config fault
@DanLebrero#DevoxxPL
Docker
Test Harness (II) - Docker
Fake
dependency
container
ToxiProxy
container
Market
Analysis
container
Maven
Test
1. Start
2. Config fault
3. @Test
@DanLebrero#DevoxxPL
• Accept connection but never send data
• Refuse all connections
• Read request at 1 byte / second
• Write response at 1 byte / second
• Response is garbage
• Response is huge/infinite
• TCP packet loss
• Process crashing
• Slow disks
• Contented CPU
Test Harness (II) - Docker - Arquillian Cube Q
@DanLebrero#DevoxxPL
DECOUPLING
MIDDLEWARE
Avoid waiting
@DanLebrero#DevoxxPL
News 3rd
Party
MA
Decoupling Middleware (I) - Read through cache
@DanLebrero#DevoxxPL
News 3rd
Party
MA
Decoupling Middleware (I) - Read through cache
@DanLebrero#DevoxxPL
News 3rd
Party
Cache
with
TTL
MA
Decoupling Middleware (I) - Read through cache
@DanLebrero#DevoxxPL
News 3rd
Party
Cache
with
TTL
MA
Decoupling Middleware (I) - Read through cache
@DanLebrero#DevoxxPL
News 3rd
Party
Cache
with
TTL
MA
Decoupling Middleware (I) - Read through cache
@DanLebrero#DevoxxPL
3rd
Party
NewsMA
Decoupling Middleware (II) - Background fetch
Local
Storage
@DanLebrero#DevoxxPL
3rd
Party
NewsMA
Decoupling Middleware (II) - Background fetch
Local
Storage
@DanLebrero#DevoxxPL
3rd
Party
NewsMA
Decoupling Middleware (II) - Background fetch
Local
Storage
@DanLebrero#DevoxxPL
DB
CMSMA
Decoupling Middleware (II) - Background fetch
Reference Data
Local Copy
MT
@DanLebrero#DevoxxPL
FAILURE IS
INEVITABLE
@DanLebrero#DevoxxPL
DB
CMSMA
Decoupling Middleware (II) - Background fetch
Reference Data
Local Copy
MT
@DanLebrero#DevoxxPL
3rd
Party
ChartsMA
Decoupling Middleware (III) - Come back latter
Cache
@DanLebrero#DevoxxPL
3rd
Party
ChartsMA
Decoupling Middleware (III) - Come back latter
Cache
@DanLebrero#DevoxxPL
3rd
Party
ChartsMA
Decoupling Middleware (III) - Come back latter
Cache
@DanLebrero#DevoxxPL
3rd
Party
ChartsMA
Decoupling Middleware (III) - Come back latter
Cache
COME BACK!
@DanLebrero#DevoxxPL
3rd
Party
ChartsMA
Decoupling Middleware (III) - Come back latter
Cache
COME BACK!
@DanLebrero#DevoxxPL
3rd
Party
ChartsMA
Decoupling Middleware (III) - Come back latter
Cache
DATA
COME BACK!
@DanLebrero#DevoxxPL
Searc
h
Market Analysis
Decoupling Middleware (IV) - Async IO
Tomcat Pool
@DanLebrero#DevoxxPL
Searc
h
Market Analysis
Decoupling Middleware (IV) - Async IO
Tomcat Pool
@DanLebrero#DevoxxPL
Searc
h
Market Analysis
Decoupling Middleware (IV) - Async IO
Tomcat Pool
@DanLebrero#DevoxxPL
Searc
h
Market Analysis
Decoupling Middleware (IV) - Async IO
Tomcat Pool
@DanLebrero#DevoxxPL
Searc
h
Market Analysis
Decoupling Middleware (IV) - Async IO
Tomcat Pool
AsyncHttp Pool
@DanLebrero#DevoxxPL
Searc
h
Market Analysis
Decoupling Middleware (IV) - Async IO
Tomcat Pool
AsyncHttp Pool
@DanLebrero#DevoxxPL
Searc
h
Market Analysis
Decoupling Middleware (IV) - Async IO
Tomcat Pool
AsyncHttp Pool
@DanLebrero#DevoxxPL
FAILURE IS
INEVITABLE
@DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL
FAILURE IS
INEVITABLE
@DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL
Linux
Tomcat
MA
Tomcat
News
Tomcat
xxx
@DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL
Linux
Tomcat
MA
Tomcat
News
Tomcat
xxx
@DanLebrero#DevoxxPL
Linux
Tomcat
MA
Tomcat
News
Tomcat
xxx
@DanLebrero#DevoxxPL
Linux
Tomcat
MA
Tomcat
News
Tomcat
xxx
@DanLebrero#DevoxxPL
Linux
Tomcat
MA
Tomcat
News
Tomcat
xxx
@DanLebrero#DevoxxPL
Linux
Tomcat
MA
Tomcat
News
Tomcat
xxx
@DanLebrero#DevoxxPL
F5LB
F5LB
F5LB
F5Charts
F5News
F5Prices
F5MAF5LB
F53rd Party
F53rd Party
@DanLebrero#DevoxxPL
F5LB
F5LB
F5LB
F5Charts
F5News
F5Prices
F5MAF5LB
F53rd Party
F53rd Party
@DanLebrero#DevoxxPL
MA LB
CS
CS
CS
@DanLebrero#DevoxxPL
MA LB
CS
CS
CS
@DanLebrero#DevoxxPL
MA LB
CS
CS
CS
A
B
A
B
@DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL
@DanLebrero#DevoxxPL
FAILURE IS
INEVITABLE
References
https://pragprog.com/book/mnee2/release-it-second-editionRelease It!
by Michael T. Nygard
https://github.com/Netflix/Hystrix
http://wiremock.org
https://github.com/arquillian/arquillian-cube-q
https://m.youtube.com/watch?v=vt5p1qflM3U
Hystrix
WireMock
Arquillian
Cube Q
Automating resilience testing with Docker and Property Based Tests
by Daniel Lebrero
https://hc.apache.org/httpcomponents-client-4.5.x/tutorial/html/advanced.html
FutureRequestExecutionService
https://github.com/AsyncHttpClient/async-http-clientAsyncHttpClient
@DanLebrero#DevoxxPL
FAILURE IS
INEVITABLE
Summary
@DanLebrero#DevoxxPL
Summary
Timeouts - Never wait for ever
Circuit breakers - Don’t do it if it hurts
Bulkheads - Contain damage
Steady state - Nothing is infinite
Fail fast - Don’t waste your time
Handshake - Agree before doing
Decoupling middleware - Avoid waiting
Test harness - Be evil
@DanLebrero#DevoxxPL
@DanLebrero
dlebrero@gmail.com
danlebrero.com
@IGLabs @LifeAtIG
labs.ig.com/blog
www.iggroup.com/careers/teams/technology
???

More Related Content

Similar to Stability patterns devoxx_pl_2017

TechSEO Boost 2018: Implementing Hreflang on Legacy Tech Stacks Using Service...
TechSEO Boost 2018: Implementing Hreflang on Legacy Tech Stacks Using Service...TechSEO Boost 2018: Implementing Hreflang on Legacy Tech Stacks Using Service...
TechSEO Boost 2018: Implementing Hreflang on Legacy Tech Stacks Using Service...Catalyst
 
Continuous integration testing 2019 08
Continuous integration testing 2019 08Continuous integration testing 2019 08
Continuous integration testing 2019 08David Stanke
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016Luigi Dell'Aquila
 
LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...
LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...
LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...Daniel Bryant
 
Micro Service Architecture
Micro Service ArchitectureMicro Service Architecture
Micro Service ArchitectureEduards Sizovs
 
MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"
MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"
MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"Daniel Bryant
 
Rich, Real-time Mobile User Experiences @Devoxx UK
Rich, Real-time Mobile User Experiences @Devoxx UKRich, Real-time Mobile User Experiences @Devoxx UK
Rich, Real-time Mobile User Experiences @Devoxx UKAndy Piper
 
Devopsdays State of the Union Amsterdam 2014
Devopsdays State of the Union Amsterdam 2014 Devopsdays State of the Union Amsterdam 2014
Devopsdays State of the Union Amsterdam 2014 John Willis
 
A Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native StackA Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native StackQAware GmbH
 
A Hitchhiker’s Guide to the Cloud Native Stack. #DevoxxPL
A Hitchhiker’s Guide to the Cloud Native Stack. #DevoxxPLA Hitchhiker’s Guide to the Cloud Native Stack. #DevoxxPL
A Hitchhiker’s Guide to the Cloud Native Stack. #DevoxxPLMario-Leander Reimer
 
CI/CD and Asset Serving for Single Page Apps
CI/CD and Asset Serving for Single Page AppsCI/CD and Asset Serving for Single Page Apps
CI/CD and Asset Serving for Single Page AppsMike North
 
JAX London 22: Debugging Microservices "Remocally" in Kubernetes with Telepre...
JAX London 22: Debugging Microservices "Remocally" in Kubernetes with Telepre...JAX London 22: Debugging Microservices "Remocally" in Kubernetes with Telepre...
JAX London 22: Debugging Microservices "Remocally" in Kubernetes with Telepre...Daniel Bryant
 
Design for Scale / Surge 2010
Design for Scale / Surge 2010Design for Scale / Surge 2010
Design for Scale / Surge 2010Christopher Brown
 
SQL in the Hybrid World
SQL in the Hybrid WorldSQL in the Hybrid World
SQL in the Hybrid WorldTanel Poder
 
Page Experience Update TMC June 2021 Patrick Stox
Page Experience Update TMC June 2021 Patrick StoxPage Experience Update TMC June 2021 Patrick Stox
Page Experience Update TMC June 2021 Patrick Stoxpatrickstox
 
Infrastructure for Decision Makers
Infrastructure for Decision MakersInfrastructure for Decision Makers
Infrastructure for Decision MakersEric Lubow
 
The Art of Decomposing Monoliths - Kfir Bloch, Wix
The Art of Decomposing Monoliths - Kfir Bloch, WixThe Art of Decomposing Monoliths - Kfir Bloch, Wix
The Art of Decomposing Monoliths - Kfir Bloch, WixCodemotion Tel Aviv
 
Le big data à l'épreuve des projets d'entreprise
Le big data à l'épreuve des projets d'entrepriseLe big data à l'épreuve des projets d'entreprise
Le big data à l'épreuve des projets d'entrepriseRubedo, a WebTales solution
 
Scaling Your Architecture for the Long Term
Scaling Your Architecture for the Long TermScaling Your Architecture for the Long Term
Scaling Your Architecture for the Long TermRandy Shoup
 

Similar to Stability patterns devoxx_pl_2017 (20)

TechSEO Boost 2018: Implementing Hreflang on Legacy Tech Stacks Using Service...
TechSEO Boost 2018: Implementing Hreflang on Legacy Tech Stacks Using Service...TechSEO Boost 2018: Implementing Hreflang on Legacy Tech Stacks Using Service...
TechSEO Boost 2018: Implementing Hreflang on Legacy Tech Stacks Using Service...
 
(R)evolutionize APM
(R)evolutionize APM(R)evolutionize APM
(R)evolutionize APM
 
Continuous integration testing 2019 08
Continuous integration testing 2019 08Continuous integration testing 2019 08
Continuous integration testing 2019 08
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016
 
LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...
LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...
LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...
 
Micro Service Architecture
Micro Service ArchitectureMicro Service Architecture
Micro Service Architecture
 
MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"
MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"
MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"
 
Rich, Real-time Mobile User Experiences @Devoxx UK
Rich, Real-time Mobile User Experiences @Devoxx UKRich, Real-time Mobile User Experiences @Devoxx UK
Rich, Real-time Mobile User Experiences @Devoxx UK
 
Devopsdays State of the Union Amsterdam 2014
Devopsdays State of the Union Amsterdam 2014 Devopsdays State of the Union Amsterdam 2014
Devopsdays State of the Union Amsterdam 2014
 
A Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native StackA Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native Stack
 
A Hitchhiker’s Guide to the Cloud Native Stack. #DevoxxPL
A Hitchhiker’s Guide to the Cloud Native Stack. #DevoxxPLA Hitchhiker’s Guide to the Cloud Native Stack. #DevoxxPL
A Hitchhiker’s Guide to the Cloud Native Stack. #DevoxxPL
 
CI/CD and Asset Serving for Single Page Apps
CI/CD and Asset Serving for Single Page AppsCI/CD and Asset Serving for Single Page Apps
CI/CD and Asset Serving for Single Page Apps
 
JAX London 22: Debugging Microservices "Remocally" in Kubernetes with Telepre...
JAX London 22: Debugging Microservices "Remocally" in Kubernetes with Telepre...JAX London 22: Debugging Microservices "Remocally" in Kubernetes with Telepre...
JAX London 22: Debugging Microservices "Remocally" in Kubernetes with Telepre...
 
Design for Scale / Surge 2010
Design for Scale / Surge 2010Design for Scale / Surge 2010
Design for Scale / Surge 2010
 
SQL in the Hybrid World
SQL in the Hybrid WorldSQL in the Hybrid World
SQL in the Hybrid World
 
Page Experience Update TMC June 2021 Patrick Stox
Page Experience Update TMC June 2021 Patrick StoxPage Experience Update TMC June 2021 Patrick Stox
Page Experience Update TMC June 2021 Patrick Stox
 
Infrastructure for Decision Makers
Infrastructure for Decision MakersInfrastructure for Decision Makers
Infrastructure for Decision Makers
 
The Art of Decomposing Monoliths - Kfir Bloch, Wix
The Art of Decomposing Monoliths - Kfir Bloch, WixThe Art of Decomposing Monoliths - Kfir Bloch, Wix
The Art of Decomposing Monoliths - Kfir Bloch, Wix
 
Le big data à l'épreuve des projets d'entreprise
Le big data à l'épreuve des projets d'entrepriseLe big data à l'épreuve des projets d'entreprise
Le big data à l'épreuve des projets d'entreprise
 
Scaling Your Architecture for the Long Term
Scaling Your Architecture for the Long TermScaling Your Architecture for the Long Term
Scaling Your Architecture for the Long Term
 

Recently uploaded

The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 

Recently uploaded (20)

The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 

Stability patterns devoxx_pl_2017