SlideShare a Scribd company logo
TECHNOLOGY SOLUTIONS DELIVERED
Developing  Resilient  Cloud  Native  
Apps  with  Spring  Cloud  
Dallas  Cloud  Foundry  Meetup
Sept  28,  2015
Dustin  Ruehle (@DustinRuehle)
What  are  we  covering  today?
•What  does  it  mean  to  be  resilient?
•Spring  Cloud  Origins
•Why  Spring  Cloud?
•A/B  Testing  using  Eureka  and  CF
•Using  Hystrix to  Fail  Gracefully
What  is  resilience?  
What  is  resilience?  
Spring  Cloud  Origins
Spring  Cloud  Origins
Why  Spring  Cloud?
Microservice architectures  are  complex!
• They  need  to  have  their  config stored  in  the  environment,  not  in  code
• Microservices are  loosely  coupled  – They  need  to  discover  and  be  discoverable
• They  are  not  necessarily  colocated – Inter-­service  communication  needs  to  be  fault-­tolerant
Netflix  is  a  microservice architecture  …  
“they  (probably)  didn't  build  all  this  just  because  they  were  bored”
@joshghiloni
The  “business”  problem
“Cool  new  
way”  service
Users of
“Old way”
Users of “cool
new way”
My  Landing  
Page
“Old  way”  
service
19% conversion
79% conversion
J
L
How  to  solve  the  “business”  problem?
“Cool  new  
way”  service
“Old  way”  
serviceEureka  Server  
Service  
Registry
My  Landing  
Page
1
1
2
2
3
3
Register
Discover
Connect
Go  
Routers
“Old  way”  
service
“Cool  new  
way”  service
1
2
3
1
Existing  app  -­
myservice.foo.com
2
New  app  -­
myservice-­B.foo.com
3
Map  route  -­
myservice.foo.com
How  to  solve  the  “business”  problem?
“Cool  new  
way”  service
“Old  way”  
serviceEureka  Server  
Service  
Registry
My  Landing  
Page
1
1
2
2
3
3
Register
Discover
Connect
Go  
Routers
“Old  way”  
service
“Cool  new  
way”  service
1
2
3
1
Existing  app  -­
myservice.foo.com
2
New  app  -­
myservice-­B.foo.com
3
Map  route  -­
myservice.foo.com
application.yml
Runtime  Service  Discovery  with  Eureka
•Register  and  discover  
services  at  runtime
•Registrations  stored  in  
memory
•Simple  dashboard  available
•Spring  Boot  autoconfiguration
for  self-­registration
•Can  be  used  to  look  up  
external  config servers  
automatically
@SpringBootApplication
@EnableEurekaServer
public  class  EurekaServerApplication {
public  static  void  main(String[]  args)  {            
SpringApplication.run(
EurekaServerApplication.class,  
args
);
}
}
A/B  Testing  Demo  – What  am  I  looking  at?
Pivotal  Web  Services:  cf-­dal-­meetup space
0
1
Eureka
Server
Circuit  Breaker
Config Server
cloud-­demo-­service-­a
cloud-­demo-­ui
A/B  Testing  Demo  – What  am  I  looking  at?
Pivotal  Web  Services:  cf-­dal-­meetup space
0
1
Eureka
Server
Circuit  Breaker
Config Server
cloud-­demo-­service-­a
cloud-­demo-­service-­b
cloud-­demo-­ui
cf push
cf map-route
Using  Hystrixto  Fail  Gracefully
source:  http://cloud.spring.io/spring-­cloud-­netflix/spring-­cloud-­netflix.html
Using  Hystrixto  Fail  Gracefully
source:  http://cloud.spring.io/spring-­cloud-­netflix/spring-­cloud-­netflix.html
Using  Hystrixto  Fail  Gracefully
source:  http://cloud.spring.io/spring-­cloud-­netflix/spring-­cloud-­netflix.html
CloudDemoUiApplication.java
Using  Hystrixto  Fail  Gracefully
source:  http://cloud.spring.io/spring-­cloud-­netflix/spring-­cloud-­netflix.html
CloudDemoUiApplication.java
UIController.java
Hystrix Demo  – What  am  I  looking  at?
Pivotal  Web  Services:  cf-­dal-­meetup space
0
1
Eureka
Server
Circuit  Breaker
Config Server
cloud-­demo-­service-­a
cloud-­demo-­service-­b
cloud-­demo-­ui
Hystrix Demo  – What  am  I  looking  at?
Pivotal  Web  Services:  cf-­dal-­meetup space
0
1
Eureka
Server
Circuit  Breaker
Config Server
cloud-­demo-­service-­a
cloud-­demo-­service-­b
cloud-­demo-­ui
cf delete -r
Hystrix Demo  – What  am  I  looking  at?
Pivotal  Web  Services:  cf-­dal-­meetup space
0
1
Eureka
Server
Circuit  Breaker
Config Server
cloud-­demo-­service-­a
cloud-­demo-­service-­b
cloud-­demo-­ui
cf delete -r
Questions?
References
Twelve  Factor  Apps:  http://12factor.net
Microservice Prereqs:  http://martinfowler.com/bliki/MicroservicePrerequisites.html
Spring  Boot:  http://projects.spring.io/spring-­boot/
Spring  Cloud:  http://projects.spring.io/spring-­cloud/
Netflix  OSS:  http://netflix.github.io/
Blog:  http://www.ecsteam.com/ab-­testing-­using-­spring-­clouds-­eureka-­and-­blue-­green-­
deployments-­in-­cloud-­foundry
Source  for  this  Demo:  https://github.com/ECSTeam/spring-­cloud-­demo
Ted  Talk:  http://www.lifehack.org/294043/the-­most-­funny-­ted-­talk-­ever-­teach-­you-­how-­
sound-­smart?n=1&ref=tp
Thank  You!
Special  Thanks  to  Josh  Ghiloni (@joshghiloni)  for  his  cool  demo  code

More Related Content

What's hot

Heroku
HerokuHeroku
ELK Stack
ELK StackELK Stack
ELK Stack
Eberhard Wolff
 
Continuous Delivery and Micro Services - A Symbiosis
Continuous Delivery and Micro Services - A SymbiosisContinuous Delivery and Micro Services - A Symbiosis
Continuous Delivery and Micro Services - A Symbiosis
Eberhard Wolff
 
Angular Owin Katana TypeScript
Angular Owin Katana TypeScriptAngular Owin Katana TypeScript
Angular Owin Katana TypeScript
Justin Wendlandt
 
Java Application Servers Are Dead!
Java Application Servers Are Dead!Java Application Servers Are Dead!
Java Application Servers Are Dead!
Eberhard Wolff
 
Micro Services - Neither Micro Nor Service
Micro Services - Neither Micro Nor ServiceMicro Services - Neither Micro Nor Service
Micro Services - Neither Micro Nor Service
Eberhard Wolff
 
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Surati Tech Talks 2022 / Build reliable Svelte applications using CypressSurati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Maurice De Beijer [MVP]
 
Micro Services - Smaller is Better?
Micro Services - Smaller is Better?Micro Services - Smaller is Better?
Micro Services - Smaller is Better?
Eberhard Wolff
 
Spring Boot
Spring BootSpring Boot
Spring Boot
gedoplan
 
Alfresco Transform Service DevCon 2019
Alfresco Transform Service DevCon 2019Alfresco Transform Service DevCon 2019
Alfresco Transform Service DevCon 2019
J V
 
Signal r azurepresentation
Signal r azurepresentationSignal r azurepresentation
Signal r azurepresentation
Justin Wendlandt
 
NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...
NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...
NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...
Frank van der Linden
 
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
Mike North
 
Reactive Micro Services with Java seminar
Reactive Micro Services with Java seminarReactive Micro Services with Java seminar
Reactive Micro Services with Java seminar
Gal Marder
 
NCUG 2019: Super charge your API’s with Reactive streams
NCUG 2019: Super charge your API’s with Reactive streamsNCUG 2019: Super charge your API’s with Reactive streams
NCUG 2019: Super charge your API’s with Reactive streams
Frank van der Linden
 
KKBOX WWDC17 Security - Antony
KKBOX WWDC17 Security - AntonyKKBOX WWDC17 Security - Antony
KKBOX WWDC17 Security - Antony
Liyao Chen
 
Validating latest changes with XCI
Validating latest changes with XCIValidating latest changes with XCI
Validating latest changes with XCI
Victor Morales
 
Java Architectures - a New Hope
Java Architectures - a New HopeJava Architectures - a New Hope
Java Architectures - a New Hope
Eberhard Wolff
 
Accelerating DevOps Pipelines with AWS
Accelerating DevOps Pipelines with AWSAccelerating DevOps Pipelines with AWS
Accelerating DevOps Pipelines with AWS
Amazon Web Services
 
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalkContinuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
Thomas Shaw
 

What's hot (20)

Heroku
HerokuHeroku
Heroku
 
ELK Stack
ELK StackELK Stack
ELK Stack
 
Continuous Delivery and Micro Services - A Symbiosis
Continuous Delivery and Micro Services - A SymbiosisContinuous Delivery and Micro Services - A Symbiosis
Continuous Delivery and Micro Services - A Symbiosis
 
Angular Owin Katana TypeScript
Angular Owin Katana TypeScriptAngular Owin Katana TypeScript
Angular Owin Katana TypeScript
 
Java Application Servers Are Dead!
Java Application Servers Are Dead!Java Application Servers Are Dead!
Java Application Servers Are Dead!
 
Micro Services - Neither Micro Nor Service
Micro Services - Neither Micro Nor ServiceMicro Services - Neither Micro Nor Service
Micro Services - Neither Micro Nor Service
 
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Surati Tech Talks 2022 / Build reliable Svelte applications using CypressSurati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
 
Micro Services - Smaller is Better?
Micro Services - Smaller is Better?Micro Services - Smaller is Better?
Micro Services - Smaller is Better?
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Alfresco Transform Service DevCon 2019
Alfresco Transform Service DevCon 2019Alfresco Transform Service DevCon 2019
Alfresco Transform Service DevCon 2019
 
Signal r azurepresentation
Signal r azurepresentationSignal r azurepresentation
Signal r azurepresentation
 
NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...
NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...
NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...
 
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
 
Reactive Micro Services with Java seminar
Reactive Micro Services with Java seminarReactive Micro Services with Java seminar
Reactive Micro Services with Java seminar
 
NCUG 2019: Super charge your API’s with Reactive streams
NCUG 2019: Super charge your API’s with Reactive streamsNCUG 2019: Super charge your API’s with Reactive streams
NCUG 2019: Super charge your API’s with Reactive streams
 
KKBOX WWDC17 Security - Antony
KKBOX WWDC17 Security - AntonyKKBOX WWDC17 Security - Antony
KKBOX WWDC17 Security - Antony
 
Validating latest changes with XCI
Validating latest changes with XCIValidating latest changes with XCI
Validating latest changes with XCI
 
Java Architectures - a New Hope
Java Architectures - a New HopeJava Architectures - a New Hope
Java Architectures - a New Hope
 
Accelerating DevOps Pipelines with AWS
Accelerating DevOps Pipelines with AWSAccelerating DevOps Pipelines with AWS
Accelerating DevOps Pipelines with AWS
 
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalkContinuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
 

Viewers also liked

Cloud Foundry Foundation Keynote
Cloud Foundry Foundation KeynoteCloud Foundry Foundation Keynote
Cloud Foundry Foundation Keynote
Abby Kearns
 
Platform App Deployment : Structure and Opinions
Platform App Deployment : Structure and OpinionsPlatform App Deployment : Structure and Opinions
Platform App Deployment : Structure and Opinions
Andrew Ripka
 
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with ConcourseContinuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
VMware Tanzu
 
Cloud Foundry CF LOGS stack
Cloud Foundry CF LOGS stackCloud Foundry CF LOGS stack
Cloud Foundry CF LOGS stack
Gwenn Etourneau
 
Structure and Opinions - Software Deployments with Cloud Foundry
Structure and Opinions - Software Deployments with Cloud FoundryStructure and Opinions - Software Deployments with Cloud Foundry
Structure and Opinions - Software Deployments with Cloud Foundry
Andrew Ripka
 
Navigating the Ecosystem of Pivotal Cloud Foundry Tiles
Navigating the Ecosystem of Pivotal Cloud Foundry TilesNavigating the Ecosystem of Pivotal Cloud Foundry Tiles
Navigating the Ecosystem of Pivotal Cloud Foundry Tiles
Altoros
 
Containers & Cloud Native Ops Cloud Foundry Approach
Containers & Cloud Native Ops Cloud Foundry ApproachContainers & Cloud Native Ops Cloud Foundry Approach
Containers & Cloud Native Ops Cloud Foundry Approach
CodeOps Technologies LLP
 
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
Carol Smith
 

Viewers also liked (8)

Cloud Foundry Foundation Keynote
Cloud Foundry Foundation KeynoteCloud Foundry Foundation Keynote
Cloud Foundry Foundation Keynote
 
Platform App Deployment : Structure and Opinions
Platform App Deployment : Structure and OpinionsPlatform App Deployment : Structure and Opinions
Platform App Deployment : Structure and Opinions
 
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with ConcourseContinuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
 
Cloud Foundry CF LOGS stack
Cloud Foundry CF LOGS stackCloud Foundry CF LOGS stack
Cloud Foundry CF LOGS stack
 
Structure and Opinions - Software Deployments with Cloud Foundry
Structure and Opinions - Software Deployments with Cloud FoundryStructure and Opinions - Software Deployments with Cloud Foundry
Structure and Opinions - Software Deployments with Cloud Foundry
 
Navigating the Ecosystem of Pivotal Cloud Foundry Tiles
Navigating the Ecosystem of Pivotal Cloud Foundry TilesNavigating the Ecosystem of Pivotal Cloud Foundry Tiles
Navigating the Ecosystem of Pivotal Cloud Foundry Tiles
 
Containers & Cloud Native Ops Cloud Foundry Approach
Containers & Cloud Native Ops Cloud Foundry ApproachContainers & Cloud Native Ops Cloud Foundry Approach
Containers & Cloud Native Ops Cloud Foundry Approach
 
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
 

Similar to Developing Resilient Cloud Native Apps with Spring Cloud

How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
Lightbend
 
Microservices with kubernetes @190316
Microservices with kubernetes @190316Microservices with kubernetes @190316
Microservices with kubernetes @190316
Jupil Hwang
 
SpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSASpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSA
Oracle Korea
 
Operating a High Velocity Large Organization with Spring Cloud Microservices
Operating a High Velocity Large Organization with Spring Cloud MicroservicesOperating a High Velocity Large Organization with Spring Cloud Microservices
Operating a High Velocity Large Organization with Spring Cloud Microservices
Noriaki Tatsumi
 
Cloud Foundry Introduction for CF Meetup Tokyo March 2016
Cloud Foundry Introduction for CF Meetup Tokyo March 2016Cloud Foundry Introduction for CF Meetup Tokyo March 2016
Cloud Foundry Introduction for CF Meetup Tokyo March 2016
Tomohiro Ichimura
 
JJUG CCC 2018 : Lessons Learned: Spring Cloud -> Docker -> Kubernetes
JJUG CCC 2018 : Lessons Learned: Spring Cloud ->  Docker -> KubernetesJJUG CCC 2018 : Lessons Learned: Spring Cloud ->  Docker -> Kubernetes
JJUG CCC 2018 : Lessons Learned: Spring Cloud -> Docker -> Kubernetes
Mauricio (Salaboy) Salatino
 
Resilient Microservices with Spring Cloud
Resilient Microservices with Spring CloudResilient Microservices with Spring Cloud
Resilient Microservices with Spring Cloud
VMware Tanzu
 
Intro to spring cloud &microservices by Eugene Hanikblum
Intro to spring cloud &microservices by Eugene HanikblumIntro to spring cloud &microservices by Eugene Hanikblum
Intro to spring cloud &microservices by Eugene Hanikblum
Eugene Hanikblum
 
Spring boot microservice metrics monitoring
Spring boot   microservice metrics monitoringSpring boot   microservice metrics monitoring
Spring boot microservice metrics monitoring
Oracle Korea
 
Spring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics MonitoringSpring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics Monitoring
DonghuKIM2
 
Devoxx university - Kafka de haut en bas
Devoxx university - Kafka de haut en basDevoxx university - Kafka de haut en bas
Devoxx university - Kafka de haut en bas
Florent Ramiere
 
Monolithic to Microservices Migration Journey of iyzico with Spring Cloud
Monolithic to Microservices Migration Journey of iyzico with Spring CloudMonolithic to Microservices Migration Journey of iyzico with Spring Cloud
Monolithic to Microservices Migration Journey of iyzico with Spring Cloud
Mustafa Can Tekir
 
Serverless 101 in Montreal
Serverless 101 in MontrealServerless 101 in Montreal
Serverless 101 in Montreal
Aaron Williams
 
Monolithic to microservices migration journey with spring cloud
Monolithic to microservices migration journey with spring cloudMonolithic to microservices migration journey with spring cloud
Monolithic to microservices migration journey with spring cloud
zeynelkocak
 
Azure Spring Cloud Workshop - June 17, 2020
Azure Spring Cloud Workshop - June 17, 2020Azure Spring Cloud Workshop - June 17, 2020
Azure Spring Cloud Workshop - June 17, 2020
VMware Tanzu
 
Spring cloud
Spring cloudSpring cloud
Spring cloud
Milan Ashara
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Araf Karsh Hamid
 
Springboot Microservices
Springboot MicroservicesSpringboot Microservices
Springboot Microservices
NexThoughts Technologies
 
Barracuda, AWS & Securosis: Application Security for the Cloud
Barracuda, AWS & Securosis:  Application Security for the CloudBarracuda, AWS & Securosis:  Application Security for the Cloud
Barracuda, AWS & Securosis: Application Security for the Cloud
Amazon Web Services
 
WORKSHOP: Microservices as Containers on AWS
WORKSHOP: Microservices as Containers on AWSWORKSHOP: Microservices as Containers on AWS
WORKSHOP: Microservices as Containers on AWS
Casey Lee
 

Similar to Developing Resilient Cloud Native Apps with Spring Cloud (20)

How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
 
Microservices with kubernetes @190316
Microservices with kubernetes @190316Microservices with kubernetes @190316
Microservices with kubernetes @190316
 
SpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSASpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSA
 
Operating a High Velocity Large Organization with Spring Cloud Microservices
Operating a High Velocity Large Organization with Spring Cloud MicroservicesOperating a High Velocity Large Organization with Spring Cloud Microservices
Operating a High Velocity Large Organization with Spring Cloud Microservices
 
Cloud Foundry Introduction for CF Meetup Tokyo March 2016
Cloud Foundry Introduction for CF Meetup Tokyo March 2016Cloud Foundry Introduction for CF Meetup Tokyo March 2016
Cloud Foundry Introduction for CF Meetup Tokyo March 2016
 
JJUG CCC 2018 : Lessons Learned: Spring Cloud -> Docker -> Kubernetes
JJUG CCC 2018 : Lessons Learned: Spring Cloud ->  Docker -> KubernetesJJUG CCC 2018 : Lessons Learned: Spring Cloud ->  Docker -> Kubernetes
JJUG CCC 2018 : Lessons Learned: Spring Cloud -> Docker -> Kubernetes
 
Resilient Microservices with Spring Cloud
Resilient Microservices with Spring CloudResilient Microservices with Spring Cloud
Resilient Microservices with Spring Cloud
 
Intro to spring cloud &microservices by Eugene Hanikblum
Intro to spring cloud &microservices by Eugene HanikblumIntro to spring cloud &microservices by Eugene Hanikblum
Intro to spring cloud &microservices by Eugene Hanikblum
 
Spring boot microservice metrics monitoring
Spring boot   microservice metrics monitoringSpring boot   microservice metrics monitoring
Spring boot microservice metrics monitoring
 
Spring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics MonitoringSpring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics Monitoring
 
Devoxx university - Kafka de haut en bas
Devoxx university - Kafka de haut en basDevoxx university - Kafka de haut en bas
Devoxx university - Kafka de haut en bas
 
Monolithic to Microservices Migration Journey of iyzico with Spring Cloud
Monolithic to Microservices Migration Journey of iyzico with Spring CloudMonolithic to Microservices Migration Journey of iyzico with Spring Cloud
Monolithic to Microservices Migration Journey of iyzico with Spring Cloud
 
Serverless 101 in Montreal
Serverless 101 in MontrealServerless 101 in Montreal
Serverless 101 in Montreal
 
Monolithic to microservices migration journey with spring cloud
Monolithic to microservices migration journey with spring cloudMonolithic to microservices migration journey with spring cloud
Monolithic to microservices migration journey with spring cloud
 
Azure Spring Cloud Workshop - June 17, 2020
Azure Spring Cloud Workshop - June 17, 2020Azure Spring Cloud Workshop - June 17, 2020
Azure Spring Cloud Workshop - June 17, 2020
 
Spring cloud
Spring cloudSpring cloud
Spring cloud
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SRE
 
Springboot Microservices
Springboot MicroservicesSpringboot Microservices
Springboot Microservices
 
Barracuda, AWS & Securosis: Application Security for the Cloud
Barracuda, AWS & Securosis:  Application Security for the CloudBarracuda, AWS & Securosis:  Application Security for the Cloud
Barracuda, AWS & Securosis: Application Security for the Cloud
 
WORKSHOP: Microservices as Containers on AWS
WORKSHOP: Microservices as Containers on AWSWORKSHOP: Microservices as Containers on AWS
WORKSHOP: Microservices as Containers on AWS
 

Recently uploaded

Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
Yara Milbes
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
What is Master Data Management by PiLog Group
What is Master Data Management by PiLog GroupWhat is Master Data Management by PiLog Group
What is Master Data Management by PiLog Group
aymanquadri279
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
lorraineandreiamcidl
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
pavan998932
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 

Recently uploaded (20)

Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
What is Master Data Management by PiLog Group
What is Master Data Management by PiLog GroupWhat is Master Data Management by PiLog Group
What is Master Data Management by PiLog Group
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 

Developing Resilient Cloud Native Apps with Spring Cloud

  • 1. TECHNOLOGY SOLUTIONS DELIVERED Developing  Resilient  Cloud  Native   Apps  with  Spring  Cloud   Dallas  Cloud  Foundry  Meetup Sept  28,  2015 Dustin  Ruehle (@DustinRuehle)
  • 2. What  are  we  covering  today? •What  does  it  mean  to  be  resilient? •Spring  Cloud  Origins •Why  Spring  Cloud? •A/B  Testing  using  Eureka  and  CF •Using  Hystrix to  Fail  Gracefully
  • 7. Why  Spring  Cloud? Microservice architectures  are  complex! • They  need  to  have  their  config stored  in  the  environment,  not  in  code • Microservices are  loosely  coupled  – They  need  to  discover  and  be  discoverable • They  are  not  necessarily  colocated – Inter-­service  communication  needs  to  be  fault-­tolerant Netflix  is  a  microservice architecture  …   “they  (probably)  didn't  build  all  this  just  because  they  were  bored” @joshghiloni
  • 8. The  “business”  problem “Cool  new   way”  service Users of “Old way” Users of “cool new way” My  Landing   Page “Old  way”   service 19% conversion 79% conversion J L
  • 9. How  to  solve  the  “business”  problem? “Cool  new   way”  service “Old  way”   serviceEureka  Server   Service   Registry My  Landing   Page 1 1 2 2 3 3 Register Discover Connect Go   Routers “Old  way”   service “Cool  new   way”  service 1 2 3 1 Existing  app  -­ myservice.foo.com 2 New  app  -­ myservice-­B.foo.com 3 Map  route  -­ myservice.foo.com
  • 10. How  to  solve  the  “business”  problem? “Cool  new   way”  service “Old  way”   serviceEureka  Server   Service   Registry My  Landing   Page 1 1 2 2 3 3 Register Discover Connect Go   Routers “Old  way”   service “Cool  new   way”  service 1 2 3 1 Existing  app  -­ myservice.foo.com 2 New  app  -­ myservice-­B.foo.com 3 Map  route  -­ myservice.foo.com application.yml
  • 11. Runtime  Service  Discovery  with  Eureka •Register  and  discover   services  at  runtime •Registrations  stored  in   memory •Simple  dashboard  available •Spring  Boot  autoconfiguration for  self-­registration •Can  be  used  to  look  up   external  config servers   automatically @SpringBootApplication @EnableEurekaServer public  class  EurekaServerApplication { public  static  void  main(String[]  args)  {             SpringApplication.run( EurekaServerApplication.class,   args ); } }
  • 12. A/B  Testing  Demo  – What  am  I  looking  at? Pivotal  Web  Services:  cf-­dal-­meetup space 0 1 Eureka Server Circuit  Breaker Config Server cloud-­demo-­service-­a cloud-­demo-­ui
  • 13. A/B  Testing  Demo  – What  am  I  looking  at? Pivotal  Web  Services:  cf-­dal-­meetup space 0 1 Eureka Server Circuit  Breaker Config Server cloud-­demo-­service-­a cloud-­demo-­service-­b cloud-­demo-­ui cf push cf map-route
  • 14. Using  Hystrixto  Fail  Gracefully source:  http://cloud.spring.io/spring-­cloud-­netflix/spring-­cloud-­netflix.html
  • 15. Using  Hystrixto  Fail  Gracefully source:  http://cloud.spring.io/spring-­cloud-­netflix/spring-­cloud-­netflix.html
  • 16. Using  Hystrixto  Fail  Gracefully source:  http://cloud.spring.io/spring-­cloud-­netflix/spring-­cloud-­netflix.html CloudDemoUiApplication.java
  • 17. Using  Hystrixto  Fail  Gracefully source:  http://cloud.spring.io/spring-­cloud-­netflix/spring-­cloud-­netflix.html CloudDemoUiApplication.java UIController.java
  • 18. Hystrix Demo  – What  am  I  looking  at? Pivotal  Web  Services:  cf-­dal-­meetup space 0 1 Eureka Server Circuit  Breaker Config Server cloud-­demo-­service-­a cloud-­demo-­service-­b cloud-­demo-­ui
  • 19. Hystrix Demo  – What  am  I  looking  at? Pivotal  Web  Services:  cf-­dal-­meetup space 0 1 Eureka Server Circuit  Breaker Config Server cloud-­demo-­service-­a cloud-­demo-­service-­b cloud-­demo-­ui cf delete -r
  • 20. Hystrix Demo  – What  am  I  looking  at? Pivotal  Web  Services:  cf-­dal-­meetup space 0 1 Eureka Server Circuit  Breaker Config Server cloud-­demo-­service-­a cloud-­demo-­service-­b cloud-­demo-­ui cf delete -r
  • 22. References Twelve  Factor  Apps:  http://12factor.net Microservice Prereqs:  http://martinfowler.com/bliki/MicroservicePrerequisites.html Spring  Boot:  http://projects.spring.io/spring-­boot/ Spring  Cloud:  http://projects.spring.io/spring-­cloud/ Netflix  OSS:  http://netflix.github.io/ Blog:  http://www.ecsteam.com/ab-­testing-­using-­spring-­clouds-­eureka-­and-­blue-­green-­ deployments-­in-­cloud-­foundry Source  for  this  Demo:  https://github.com/ECSTeam/spring-­cloud-­demo Ted  Talk:  http://www.lifehack.org/294043/the-­most-­funny-­ted-­talk-­ever-­teach-­you-­how-­ sound-­smart?n=1&ref=tp
  • 23. Thank  You! Special  Thanks  to  Josh  Ghiloni (@joshghiloni)  for  his  cool  demo  code