SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Operational Excellence
with Hystrix
Billy Yuen
Principal Engineer
Intuit, Inc.
September 20, 2016
Lesson learned from Quickbooks Online (QBO)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Intuit Mission:
CONSUMERS
SMALL
BUSINESSES
ACCOUNTING
PROFESSIONALS
To improve our customers’ financial lives so profoundly…
they can’t imagine going back to the old way
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
A Premiere Innovative Growth Company
Employees
8,000+
Customers
45M
Global Offices
US, UK, India,
Canada, Australia
Revenue
4.2B
Founded
1983
Public 1993
INTU
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
What is resiliency?
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Resiliency: Act tough to your enemy even if you are hurting
NORMAL CUSTOMER
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
And fix the problem quickly before your customers notice!
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Why is resiliency hard to achieve?
 Micro-services allow teams to move and innovate faster.
 But failure now will also be distributed!
 New Architecture == New Set of Problems
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Even Google has faced this issue!
• On May 3, 2013 “From 6:26 PM to 7:58 PM PT, requests to most Google
APIs resulted in 500 error response messages.”
• “The combination of the bug and configuration error quickly caused all of the serving
threads to be consumed. Traffic was permanently queued waiting for a serving
thread to become available.”
• http://googledevelopers.blogspot.com/2013/05/google-api-infrastructure-
outage_3.html
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Challenges we face
• Cascade failures from dependent systems.
• Very few instrumentation and monitoring for the dependent services.
• Decomposition from Monolith to micro-services.
– Design consideration for auto recovery from latency and dependency failure.
– Testing for latency and dependency failure.
• Impossible to achieve 99.9% uptime
– If there are N dependencies and each has 99.9% uptime, best uptime would be 99.9%
^ N (99.9% ^ 10 = 99%).
– If dependency is down for X minutes, our recovery time will be X + Y minutes
(detection and server restart).
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
How does Hystrix help?
• Also known as “Circuit Breaker”
– Automatic Fail Fast
– Automatic Fail Over (fallback)
– Protocol Agnostics
• Created by an engineer to make his life better during production support!
• Defend against your dependencies (Trust but verify)!
• Battle tested with billions of request per days.
• Metrics Generation
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Hystrix at work (fail fast)
Health Check
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Overcome Organization Challenge – feature, feature,
feature…
• Growing Pain and Opportunity – QBO experienced big growth and uptime
became a bigger issue.
– Dependency network issue making QBO unresponsive.
– Cascade failure from Disk Failure in one component causing QBO clusters
unresponsive.
• Action over Plan – Implemented Hystrix and monitoring in Payment API to
demonstrate the vision.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Our Journey to implement Hystrix
• Apply Hystrix to legacy code
• Prevent Drift Detection
• Failure Testing
• Real time monitoring
• Production troubleshooting with historical data
• Production support process
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Apply Hystrix to Legacy Code
• Challenges
– We don’t know all the network calls. Many calls are also buried in client libraries.
– New Relics can provide the URL for the remote service, but not the stack trace.
• Solution - Hystrix Agent
– Java Agent to detect any “naked” network call.
– Work for both socket and NIO calls.
– https://github.com/Netflix/Hystrix/tree/master/hystrix-contrib/hystrix-network-
auditor-agent
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Learning from applying Hystrix Agent in QBO
• Remove Network calls to system that are no longer use.
– Analogous to “Reduce Attack surface” in security.
– Remove unnecessary network calls to “Reduce Dependency Vulnerability”.
• Remove Heart Beat to dependent systems.
• Remove Custom fallback logic.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Prevent Drift detection
• Integrated Hystrix audit agent with regression build.
• Report all unprotected calls in self-service dashboard.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Failure testing
• Mindset changes
– Developer - Coding for resiliency
– Quality - Testing for dependency failure
• Failure testing tools
– Hystrix’s ForceCircuitOpen property
– Unit Test and Integration with Wiremock - Http only
– Custom Proxy (Man in the middle) - Any protocol
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Real time monitoring - architecture
• Instance - publish Hystrix Metrics stream (provided by Hystrix).
• Turbine – aggregate all streams in one cluster.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Real time monitoring - dashboard
• Hystrix Dashboard - Rolling window of last ten seconds of dependency
health
• https://github.com/Netflix/Hystrix/tree/master/hystrix-dashboard
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Real time monitoring - metrics
• Circuit Breaker Status
• Success, Failure and Timeout Count
• Response time
• Fallback status
• Thread pool status
• https://github.com/Netflix/Hystrix/wiki/Metrics-and-Monitoring
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Production troubleshooting with historical data
• Netflix Atlas - https://github.com/Netflix/atlas/wiki/Overview
• Intuit – export the Hystrix Metrics to Splunk
– Pinpoint production issue root cause.
– Measurement for actual latency (Network + Service).
– Troubleshoot random “blip”. What is “blip”?
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Splunk Hystrix Dashboard
• Aggregate data by any timeframe
• Drill down to specific Hystrix command for detail.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Production support process
• Configure Alerts around critical Hystrix Commands in Splunk
• Integrate Alerts with PagerDuty.
• Use Hystrix Dashboard to review real time system health.
• Use Splunk to debug production issues
Alert Page Revie
w
Debu
g
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Other Considerations
• Is the call necessary?
• Can you create fallback for read?
• Client does not need to know it is from fallback (except fragment caching)
• Can you handle offline write?
• Idempotence for write (or verify before calling again)
• Limit blast radius with thread pool or semaphore.
• Adjust the Hystrix default parameter to your use case.
• Fallback needs to be fast and highly available.
• Timeout vs Failure
• Not applicable to stream or batch.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Thread pool vs Semaphore
• Thread pool
– Guaranteed timeout by using thread interrupt.
– More memory required.
– Support Concurrent programming (Future is non-blocking).
• Semaphore
– No timeout guarantee (your code will assume the timeout responsibility).
– Set Hystrix Timeout to be greater than your timeout to avoid false timeout.
– Should throw HystrixTimeoutException if client code throws timeout exception.
– Scale better for large pool.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
E2E experience including UI
• Focus on critical workflows!
• QBO
– Provide degraded experience if not available.
• Payroll is down
• Invoice without attachment service.
– Allow Login if subscription service is temporary not available.
• Payments Service
– Limit dependency calls to only applicable use case.
– Cache read-only data with last known good value.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Demo
• HystrixCommand
– Synchronous
– Asynchronous
– Reactive
– Thread pool vs Semaphore
• HystrixObservableCommand for NIO
• Callable Wrapper for TLS
• Logging Metrics
• https://github.com/billyy/Hystrix-Tutorial
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Implementation Best Practices
• Don’t implement fallback if you don’t have a fallback.
• Don’t call another Hystrix Command from catch.
• Good and Bad use of fallback.
• Throw Hystrix TimeoutException if your code is doing timeout.
• Update your catch block once you have implemented Hystrix.
• Avoid the use of thread local.
• Retry only if necessary.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Don’t implement fallback if you don’t have a fallback
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Don’t call another Hystrix Command from catch
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Good use of fallback
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Bad use of fallback
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Throw Hystrix TimeoutException if your code is doing
timeout
• Hystrix will report all exceptions as failure.
• Timeout will indicate a potential issue with dependency instead of coding
issue.
• Need to configure Hystrix timeout > your timeout.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Update your catch block once you have implemented Hystrix
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Retry only if necessary
• Hystrix does NOT support retry.
• Retry code inside Hystrix Command will skew your metrics.
• Bad things can happen
– Good chance that the immediate retry could also timeout.
– Overload the dependency.
– Exceed your SLA.
• If you have to retry, implement the retry outside of Hystrix.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Minimize the use of thread local
• Not explicit to the caller.
• TLS needs to be copied to the Hystrix worker thread and reset afterward
(Prone for error).
• Implement callable wrapper if TLS is required.
• https://github.com/Netflix/Hystrix/issues/92
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Important differences in Hystrix version
• 1.2.x
– Initial public release.
• 1.3.x
– Add support for RxJava.
– Semaphore based execution cannot be interrupted but would throw exception if SLA
is exceeded (even if the call is successful!).
• 1.4.x
– Add HystrixObservableCommand for NIO.
– Semaphore based execution can be interrupted by a separate background thread.
– HystrixTimeoutException is public (1.4.18+).
• 1.5.x – Re-architecture of the Metrics to support metric streaming.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Different ways to implement Hystrix
• Client library - Hystrix jar
– http://www.slideshare.net/MattJacobs11/using-hystrix-to-build-resilient-distributed-
systems-58836753
• Existing application – Javanica
– https://github.com/Netflix/Hystrix/tree/master/hystrix-contrib/hystrix-javanica
• New application - Spring Cloud
– http://cloud.spring.io/spring-cloud-netflix/spring-cloud-netflix.html
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Thanks!!!
billy_yuen@intuit.com
Confidential – Oracle Internal/Restricted/Highly Restricted 40

Weitere ähnliche Inhalte

Was ist angesagt?

Modern Monitoring [ with Prometheus ]
Modern Monitoring [ with Prometheus ]Modern Monitoring [ with Prometheus ]
Modern Monitoring [ with Prometheus ]Haggai Philip Zagury
 
Microservices with Netflix OSS and Spring Cloud - Dev Day Orange
Microservices with Netflix OSS and Spring Cloud -  Dev Day OrangeMicroservices with Netflix OSS and Spring Cloud -  Dev Day Orange
Microservices with Netflix OSS and Spring Cloud - Dev Day Orangeacogoluegnes
 
All Things Open 2017: How to Treat a Network as a Container
All Things Open 2017: How to Treat a Network as a ContainerAll Things Open 2017: How to Treat a Network as a Container
All Things Open 2017: How to Treat a Network as a ContainerRosemary Wang
 
Open-source vs. public cloud in the Big Data landscape. Friends or Foes?
Open-source vs. public cloud in the Big Data landscape. Friends or Foes?Open-source vs. public cloud in the Big Data landscape. Friends or Foes?
Open-source vs. public cloud in the Big Data landscape. Friends or Foes?GetInData
 
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...DevSecCon
 
Securing Network Access with Open Source solutions
Securing Network Access with Open Source solutionsSecuring Network Access with Open Source solutions
Securing Network Access with Open Source solutionsNick Owen
 
Java Microservices with Netflix OSS & Spring
Java Microservices with Netflix OSS & Spring Java Microservices with Netflix OSS & Spring
Java Microservices with Netflix OSS & Spring Conor Svensson
 
Microservices with Micronaut
Microservices with MicronautMicroservices with Micronaut
Microservices with MicronautQAware GmbH
 
Presentation security automation (Selenium Camp)
Presentation security automation (Selenium Camp)Presentation security automation (Selenium Camp)
Presentation security automation (Selenium Camp)Artyom Rozumenko
 
Reactive Extensions .NET
Reactive Extensions .NETReactive Extensions .NET
Reactive Extensions .NETGeorge Taskos
 
Moving to Cloud for Good: Alexander Tsirel, HiveTec
Moving to Cloud for Good: Alexander Tsirel, HiveTecMoving to Cloud for Good: Alexander Tsirel, HiveTec
Moving to Cloud for Good: Alexander Tsirel, HiveTecOpenStack
 
Summit openshift-on-openstack
Summit openshift-on-openstackSummit openshift-on-openstack
Summit openshift-on-openstackPippo620677
 
Akka testing
Akka testingAkka testing
Akka testingAvi Levi
 
Need for Async: Hot pursuit for scalable applications
Need for Async: Hot pursuit for scalable applicationsNeed for Async: Hot pursuit for scalable applications
Need for Async: Hot pursuit for scalable applicationsKonrad Malawski
 
Git ops & Continuous Infrastructure with terra*
Git ops  & Continuous Infrastructure with terra*Git ops  & Continuous Infrastructure with terra*
Git ops & Continuous Infrastructure with terra*Haggai Philip Zagury
 
Production Readiness Strategies in an Automated World
Production Readiness Strategies in an Automated WorldProduction Readiness Strategies in an Automated World
Production Readiness Strategies in an Automated WorldSean Chittenden
 
Cloud Native, Microservices and SRE/Chaos Engineering: The new Rules of The G...
Cloud Native, Microservices and SRE/Chaos Engineering: The new Rules of The G...Cloud Native, Microservices and SRE/Chaos Engineering: The new Rules of The G...
Cloud Native, Microservices and SRE/Chaos Engineering: The new Rules of The G...Diego Pacheco
 

Was ist angesagt? (20)

Modern Monitoring [ with Prometheus ]
Modern Monitoring [ with Prometheus ]Modern Monitoring [ with Prometheus ]
Modern Monitoring [ with Prometheus ]
 
Microservices with Netflix OSS and Spring Cloud - Dev Day Orange
Microservices with Netflix OSS and Spring Cloud -  Dev Day OrangeMicroservices with Netflix OSS and Spring Cloud -  Dev Day Orange
Microservices with Netflix OSS and Spring Cloud - Dev Day Orange
 
ruxc0n 2012
ruxc0n 2012ruxc0n 2012
ruxc0n 2012
 
All Things Open 2017: How to Treat a Network as a Container
All Things Open 2017: How to Treat a Network as a ContainerAll Things Open 2017: How to Treat a Network as a Container
All Things Open 2017: How to Treat a Network as a Container
 
Open stack qa and tempest
Open stack qa and tempestOpen stack qa and tempest
Open stack qa and tempest
 
Testing at Stream-Scale
Testing at Stream-ScaleTesting at Stream-Scale
Testing at Stream-Scale
 
Open-source vs. public cloud in the Big Data landscape. Friends or Foes?
Open-source vs. public cloud in the Big Data landscape. Friends or Foes?Open-source vs. public cloud in the Big Data landscape. Friends or Foes?
Open-source vs. public cloud in the Big Data landscape. Friends or Foes?
 
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
 
Securing Network Access with Open Source solutions
Securing Network Access with Open Source solutionsSecuring Network Access with Open Source solutions
Securing Network Access with Open Source solutions
 
Java Microservices with Netflix OSS & Spring
Java Microservices with Netflix OSS & Spring Java Microservices with Netflix OSS & Spring
Java Microservices with Netflix OSS & Spring
 
Microservices with Micronaut
Microservices with MicronautMicroservices with Micronaut
Microservices with Micronaut
 
Presentation security automation (Selenium Camp)
Presentation security automation (Selenium Camp)Presentation security automation (Selenium Camp)
Presentation security automation (Selenium Camp)
 
Reactive Extensions .NET
Reactive Extensions .NETReactive Extensions .NET
Reactive Extensions .NET
 
Moving to Cloud for Good: Alexander Tsirel, HiveTec
Moving to Cloud for Good: Alexander Tsirel, HiveTecMoving to Cloud for Good: Alexander Tsirel, HiveTec
Moving to Cloud for Good: Alexander Tsirel, HiveTec
 
Summit openshift-on-openstack
Summit openshift-on-openstackSummit openshift-on-openstack
Summit openshift-on-openstack
 
Akka testing
Akka testingAkka testing
Akka testing
 
Need for Async: Hot pursuit for scalable applications
Need for Async: Hot pursuit for scalable applicationsNeed for Async: Hot pursuit for scalable applications
Need for Async: Hot pursuit for scalable applications
 
Git ops & Continuous Infrastructure with terra*
Git ops  & Continuous Infrastructure with terra*Git ops  & Continuous Infrastructure with terra*
Git ops & Continuous Infrastructure with terra*
 
Production Readiness Strategies in an Automated World
Production Readiness Strategies in an Automated WorldProduction Readiness Strategies in an Automated World
Production Readiness Strategies in an Automated World
 
Cloud Native, Microservices and SRE/Chaos Engineering: The new Rules of The G...
Cloud Native, Microservices and SRE/Chaos Engineering: The new Rules of The G...Cloud Native, Microservices and SRE/Chaos Engineering: The new Rules of The G...
Cloud Native, Microservices and SRE/Chaos Engineering: The new Rules of The G...
 

Ähnlich wie Javaone 2016 - Operational Excellence with Hystrix

Microservices at Scale with Istio
Microservices at Scale with IstioMicroservices at Scale with Istio
Microservices at Scale with IstioJesse Butler
 
CI/CD with AWS Code Services
CI/CD with AWS Code ServicesCI/CD with AWS Code Services
CI/CD with AWS Code ServicesPulkit Gupta
 
Emulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API ProvidersEmulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API ProvidersCisco DevNet
 
C4 optimizing your_application_infrastructure
C4 optimizing your_application_infrastructureC4 optimizing your_application_infrastructure
C4 optimizing your_application_infrastructureDr. Wilfred Lin (Ph.D.)
 
MySQL in oracle_public_cloud
MySQL in oracle_public_cloudMySQL in oracle_public_cloud
MySQL in oracle_public_cloudOracleMySQL
 
MySQL in oracle public cloud
MySQL in oracle public cloudMySQL in oracle public cloud
MySQL in oracle public cloudMandy Ang
 
Oracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native AppOracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native AppPaulo Alberto Simoes ∴
 
Shrinking the container_zurich_july_2018
Shrinking the container_zurich_july_2018Shrinking the container_zurich_july_2018
Shrinking the container_zurich_july_2018Ewan Slater
 
Architecting for Microservices Part 2
Architecting for Microservices Part 2Architecting for Microservices Part 2
Architecting for Microservices Part 2Elana Krasner
 
Big Data Day LA 2015 - Introduction to Apache Kafka - The Big Data Message Bu...
Big Data Day LA 2015 - Introduction to Apache Kafka - The Big Data Message Bu...Big Data Day LA 2015 - Introduction to Apache Kafka - The Big Data Message Bu...
Big Data Day LA 2015 - Introduction to Apache Kafka - The Big Data Message Bu...Data Con LA
 
MySQL for Software-as-a-Service (SaaS)
MySQL for Software-as-a-Service (SaaS)MySQL for Software-as-a-Service (SaaS)
MySQL for Software-as-a-Service (SaaS)Mario Beck
 
MySQL Enterprise Edition Portfolio
MySQL Enterprise Edition PortfolioMySQL Enterprise Edition Portfolio
MySQL Enterprise Edition PortfolioMySQL Brasil
 
Functions and DevOps
Functions and DevOpsFunctions and DevOps
Functions and DevOpsShaun Smith
 
Using Databases and Containers From Development to Deployment
Using Databases and Containers  From Development to DeploymentUsing Databases and Containers  From Development to Deployment
Using Databases and Containers From Development to DeploymentAerospike, Inc.
 
Continuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and DockerContinuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and DockerAmazon Web Services
 
Oracle Cloud Café hybrid Cloud 19 mai 2016
Oracle Cloud Café hybrid Cloud 19 mai 2016Oracle Cloud Café hybrid Cloud 19 mai 2016
Oracle Cloud Café hybrid Cloud 19 mai 2016Sorathaya Sirimanotham
 

Ähnlich wie Javaone 2016 - Operational Excellence with Hystrix (20)

Microservices at Scale with Istio
Microservices at Scale with IstioMicroservices at Scale with Istio
Microservices at Scale with Istio
 
CI/CD with AWS Code Services
CI/CD with AWS Code ServicesCI/CD with AWS Code Services
CI/CD with AWS Code Services
 
Emulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API ProvidersEmulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API Providers
 
C4 optimizing your_application_infrastructure
C4 optimizing your_application_infrastructureC4 optimizing your_application_infrastructure
C4 optimizing your_application_infrastructure
 
MySQL in oracle_public_cloud
MySQL in oracle_public_cloudMySQL in oracle_public_cloud
MySQL in oracle_public_cloud
 
Mini-Training: Netflix Simian Army
Mini-Training: Netflix Simian ArmyMini-Training: Netflix Simian Army
Mini-Training: Netflix Simian Army
 
MySQL in oracle public cloud
MySQL in oracle public cloudMySQL in oracle public cloud
MySQL in oracle public cloud
 
Oracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native AppOracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native App
 
Shrinking the container_zurich_july_2018
Shrinking the container_zurich_july_2018Shrinking the container_zurich_july_2018
Shrinking the container_zurich_july_2018
 
Oracle Ravello
Oracle Ravello Oracle Ravello
Oracle Ravello
 
My sql8 innodb_cluster
My sql8 innodb_clusterMy sql8 innodb_cluster
My sql8 innodb_cluster
 
Architecting for Microservices Part 2
Architecting for Microservices Part 2Architecting for Microservices Part 2
Architecting for Microservices Part 2
 
Big Data Day LA 2015 - Introduction to Apache Kafka - The Big Data Message Bu...
Big Data Day LA 2015 - Introduction to Apache Kafka - The Big Data Message Bu...Big Data Day LA 2015 - Introduction to Apache Kafka - The Big Data Message Bu...
Big Data Day LA 2015 - Introduction to Apache Kafka - The Big Data Message Bu...
 
MySQL for Software-as-a-Service (SaaS)
MySQL for Software-as-a-Service (SaaS)MySQL for Software-as-a-Service (SaaS)
MySQL for Software-as-a-Service (SaaS)
 
SD Times - Docker v2
SD Times - Docker v2SD Times - Docker v2
SD Times - Docker v2
 
MySQL Enterprise Edition Portfolio
MySQL Enterprise Edition PortfolioMySQL Enterprise Edition Portfolio
MySQL Enterprise Edition Portfolio
 
Functions and DevOps
Functions and DevOpsFunctions and DevOps
Functions and DevOps
 
Using Databases and Containers From Development to Deployment
Using Databases and Containers  From Development to DeploymentUsing Databases and Containers  From Development to Deployment
Using Databases and Containers From Development to Deployment
 
Continuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and DockerContinuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and Docker
 
Oracle Cloud Café hybrid Cloud 19 mai 2016
Oracle Cloud Café hybrid Cloud 19 mai 2016Oracle Cloud Café hybrid Cloud 19 mai 2016
Oracle Cloud Café hybrid Cloud 19 mai 2016
 

Kürzlich hochgeladen

Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduitsrknatarajan
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdfankushspencer015
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Christo Ananth
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).pptssuser5c9d4b1
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college projectTonystark477637
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSISrknatarajan
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 

Kürzlich hochgeladen (20)

Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduits
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSIS
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
 

Javaone 2016 - Operational Excellence with Hystrix

  • 1.
  • 2. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Operational Excellence with Hystrix Billy Yuen Principal Engineer Intuit, Inc. September 20, 2016 Lesson learned from Quickbooks Online (QBO)
  • 3. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Intuit Mission: CONSUMERS SMALL BUSINESSES ACCOUNTING PROFESSIONALS To improve our customers’ financial lives so profoundly… they can’t imagine going back to the old way
  • 4. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | A Premiere Innovative Growth Company Employees 8,000+ Customers 45M Global Offices US, UK, India, Canada, Australia Revenue 4.2B Founded 1983 Public 1993 INTU
  • 5. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | What is resiliency?
  • 6. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Resiliency: Act tough to your enemy even if you are hurting NORMAL CUSTOMER
  • 7. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | And fix the problem quickly before your customers notice!
  • 8. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Why is resiliency hard to achieve?  Micro-services allow teams to move and innovate faster.  But failure now will also be distributed!  New Architecture == New Set of Problems
  • 9. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Even Google has faced this issue! • On May 3, 2013 “From 6:26 PM to 7:58 PM PT, requests to most Google APIs resulted in 500 error response messages.” • “The combination of the bug and configuration error quickly caused all of the serving threads to be consumed. Traffic was permanently queued waiting for a serving thread to become available.” • http://googledevelopers.blogspot.com/2013/05/google-api-infrastructure- outage_3.html
  • 10. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Challenges we face • Cascade failures from dependent systems. • Very few instrumentation and monitoring for the dependent services. • Decomposition from Monolith to micro-services. – Design consideration for auto recovery from latency and dependency failure. – Testing for latency and dependency failure. • Impossible to achieve 99.9% uptime – If there are N dependencies and each has 99.9% uptime, best uptime would be 99.9% ^ N (99.9% ^ 10 = 99%). – If dependency is down for X minutes, our recovery time will be X + Y minutes (detection and server restart).
  • 11. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | How does Hystrix help? • Also known as “Circuit Breaker” – Automatic Fail Fast – Automatic Fail Over (fallback) – Protocol Agnostics • Created by an engineer to make his life better during production support! • Defend against your dependencies (Trust but verify)! • Battle tested with billions of request per days. • Metrics Generation
  • 12. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Hystrix at work (fail fast) Health Check
  • 13. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Overcome Organization Challenge – feature, feature, feature… • Growing Pain and Opportunity – QBO experienced big growth and uptime became a bigger issue. – Dependency network issue making QBO unresponsive. – Cascade failure from Disk Failure in one component causing QBO clusters unresponsive. • Action over Plan – Implemented Hystrix and monitoring in Payment API to demonstrate the vision.
  • 14. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Our Journey to implement Hystrix • Apply Hystrix to legacy code • Prevent Drift Detection • Failure Testing • Real time monitoring • Production troubleshooting with historical data • Production support process
  • 15. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Apply Hystrix to Legacy Code • Challenges – We don’t know all the network calls. Many calls are also buried in client libraries. – New Relics can provide the URL for the remote service, but not the stack trace. • Solution - Hystrix Agent – Java Agent to detect any “naked” network call. – Work for both socket and NIO calls. – https://github.com/Netflix/Hystrix/tree/master/hystrix-contrib/hystrix-network- auditor-agent
  • 16. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Learning from applying Hystrix Agent in QBO • Remove Network calls to system that are no longer use. – Analogous to “Reduce Attack surface” in security. – Remove unnecessary network calls to “Reduce Dependency Vulnerability”. • Remove Heart Beat to dependent systems. • Remove Custom fallback logic.
  • 17. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Prevent Drift detection • Integrated Hystrix audit agent with regression build. • Report all unprotected calls in self-service dashboard.
  • 18. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Failure testing • Mindset changes – Developer - Coding for resiliency – Quality - Testing for dependency failure • Failure testing tools – Hystrix’s ForceCircuitOpen property – Unit Test and Integration with Wiremock - Http only – Custom Proxy (Man in the middle) - Any protocol
  • 19. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Real time monitoring - architecture • Instance - publish Hystrix Metrics stream (provided by Hystrix). • Turbine – aggregate all streams in one cluster.
  • 20. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Real time monitoring - dashboard • Hystrix Dashboard - Rolling window of last ten seconds of dependency health • https://github.com/Netflix/Hystrix/tree/master/hystrix-dashboard
  • 21. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Real time monitoring - metrics • Circuit Breaker Status • Success, Failure and Timeout Count • Response time • Fallback status • Thread pool status • https://github.com/Netflix/Hystrix/wiki/Metrics-and-Monitoring
  • 22. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Production troubleshooting with historical data • Netflix Atlas - https://github.com/Netflix/atlas/wiki/Overview • Intuit – export the Hystrix Metrics to Splunk – Pinpoint production issue root cause. – Measurement for actual latency (Network + Service). – Troubleshoot random “blip”. What is “blip”?
  • 23. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Splunk Hystrix Dashboard • Aggregate data by any timeframe • Drill down to specific Hystrix command for detail.
  • 24. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Production support process • Configure Alerts around critical Hystrix Commands in Splunk • Integrate Alerts with PagerDuty. • Use Hystrix Dashboard to review real time system health. • Use Splunk to debug production issues Alert Page Revie w Debu g
  • 25. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Other Considerations • Is the call necessary? • Can you create fallback for read? • Client does not need to know it is from fallback (except fragment caching) • Can you handle offline write? • Idempotence for write (or verify before calling again) • Limit blast radius with thread pool or semaphore. • Adjust the Hystrix default parameter to your use case. • Fallback needs to be fast and highly available. • Timeout vs Failure • Not applicable to stream or batch.
  • 26. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Thread pool vs Semaphore • Thread pool – Guaranteed timeout by using thread interrupt. – More memory required. – Support Concurrent programming (Future is non-blocking). • Semaphore – No timeout guarantee (your code will assume the timeout responsibility). – Set Hystrix Timeout to be greater than your timeout to avoid false timeout. – Should throw HystrixTimeoutException if client code throws timeout exception. – Scale better for large pool.
  • 27. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | E2E experience including UI • Focus on critical workflows! • QBO – Provide degraded experience if not available. • Payroll is down • Invoice without attachment service. – Allow Login if subscription service is temporary not available. • Payments Service – Limit dependency calls to only applicable use case. – Cache read-only data with last known good value.
  • 28. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Demo • HystrixCommand – Synchronous – Asynchronous – Reactive – Thread pool vs Semaphore • HystrixObservableCommand for NIO • Callable Wrapper for TLS • Logging Metrics • https://github.com/billyy/Hystrix-Tutorial
  • 29. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Implementation Best Practices • Don’t implement fallback if you don’t have a fallback. • Don’t call another Hystrix Command from catch. • Good and Bad use of fallback. • Throw Hystrix TimeoutException if your code is doing timeout. • Update your catch block once you have implemented Hystrix. • Avoid the use of thread local. • Retry only if necessary.
  • 30. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Don’t implement fallback if you don’t have a fallback
  • 31. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Don’t call another Hystrix Command from catch
  • 32. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Good use of fallback
  • 33. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Bad use of fallback
  • 34. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Throw Hystrix TimeoutException if your code is doing timeout • Hystrix will report all exceptions as failure. • Timeout will indicate a potential issue with dependency instead of coding issue. • Need to configure Hystrix timeout > your timeout.
  • 35. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Update your catch block once you have implemented Hystrix
  • 36. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Retry only if necessary • Hystrix does NOT support retry. • Retry code inside Hystrix Command will skew your metrics. • Bad things can happen – Good chance that the immediate retry could also timeout. – Overload the dependency. – Exceed your SLA. • If you have to retry, implement the retry outside of Hystrix.
  • 37. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Minimize the use of thread local • Not explicit to the caller. • TLS needs to be copied to the Hystrix worker thread and reset afterward (Prone for error). • Implement callable wrapper if TLS is required. • https://github.com/Netflix/Hystrix/issues/92
  • 38. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Important differences in Hystrix version • 1.2.x – Initial public release. • 1.3.x – Add support for RxJava. – Semaphore based execution cannot be interrupted but would throw exception if SLA is exceeded (even if the call is successful!). • 1.4.x – Add HystrixObservableCommand for NIO. – Semaphore based execution can be interrupted by a separate background thread. – HystrixTimeoutException is public (1.4.18+). • 1.5.x – Re-architecture of the Metrics to support metric streaming.
  • 39. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Different ways to implement Hystrix • Client library - Hystrix jar – http://www.slideshare.net/MattJacobs11/using-hystrix-to-build-resilient-distributed- systems-58836753 • Existing application – Javanica – https://github.com/Netflix/Hystrix/tree/master/hystrix-contrib/hystrix-javanica • New application - Spring Cloud – http://cloud.spring.io/spring-cloud-netflix/spring-cloud-netflix.html
  • 40. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Thanks!!! billy_yuen@intuit.com Confidential – Oracle Internal/Restricted/Highly Restricted 40

Hinweis der Redaktion

  1. This is a JavaOne SF 2016 event branded Title slide ideal for including the Java Theme with a brief title, subtitle and presenter information. Do not customize this slide with your own picture. To reuse this branded background in another presentation on PC Locate and open the presentation where you will be placing this artwork. Click New Slide from the Home tab's Slides group and select Reuse Slides. Click Browse in the Reuse Slides panel and select Browse Files. Double-click the PowerPoint presentation that contains the background you wish to copy. Check Keep Source Formatting and click the slide that contains the background you want. Click the left-hand slide preview to which you wish to apply the new master layout. Apply New Layout (Important): Right-click any selected slide, point to Layout, and click the slide containing the desired layout from the layout gallery. Delete any unwanted slides or duplicates. To reuse this branded background in another presentation on Mac Locate and open the presentation where you will be placing this artwork. Click New Slide from the Home tab's Slides group and select Insert Slides from Other Presentation… Navigate to the PowerPoint presentation file that contains the background you wish to copy. Double-click or press Insert. This prompts the Slide Finder dialogue box. Make sure Keep design of original slides is unchecked and click the slide(s) that contains the background you want. Hold Shift key to select multiple slides. Click the left-hand slide preview to which you wish to apply the new master layout. Apply New Layout (Important): Click Layout from the Home tab's Slides group, and click the slide containing the desired layout from the layout gallery. Delete any unwanted slides or duplicates.
  2. 300 engineers team dealing with build breakage, jar hell, big bang deployment.
  3. 99.9^10 = 99
  4. Most failures are related to dependency or network failure and Hystrix is the simplest way to monitor your dependency. App Dynamics or New relics can provide the same level of monitoring IF you know where to look. Typically devs and ops don’t communicate!
  5. Before I dive into detail of our Hystrix journey, I like to share how I overcame mindset barrier, which is a much harder problem. As a small business, the #1 QBO feature is the ability to generate invoice! 1. Payroll system having network issue and hung all QBO threads. 2. One system with 99.95% (20 min per month) up and resulted in 60 min downtime (99.85%).
  6. Netflix is mostly read only with internal micro services. QBO also has to deal with transactional write and external integrations. List the Hystrix Default: Timeout: 1 second. Circuit Breaker: 20 requests in 10 seconds with 50% failure with 5 seconds retry after circuit is open. Bulkhead: Thread pool or semaphore limit
  7. This is a Section Header with Picture slide ideal for including a picture with a brief title and optional subtitle. This slide can also be used as a Q and A slide. To customize this slide with your own picture: Right-click the slide area and choose Format Background from the pop-up menu. From the Fill menu, click Picture and texture fill. Under Insert from: click File. Locate your new picture and click Insert. To copy the Customized Background from Another Presentation on PC Click New Slide from the Home tab's Slides group and select Reuse Slides. Click Browse in the Reuse Slides panel and select Browse Files. Double-click the PowerPoint presentation that contains the background you wish to copy. Check Keep Source Formatting and click the slide that contains the background you want. Click the left-hand slide preview to which you wish to apply the new master layout. Apply New Layout (Important): Right-click any selected slide, point to Layout, and click the slide containing the desired layout from the layout gallery. Delete any unwanted slides or duplicates. To copy the Customized Background from Another Presentation on Mac Click New Slide from the Home tab's Slides group and select Insert Slides from Other Presentation… Navigate to the PowerPoint presentation file that contains the background you wish to copy. Double-click or press Insert. This prompts the Slide Finder dialogue box. Make sure Keep design of original slides is unchecked and click the slide(s) that contains the background you want. Hold Shift key to select multiple slides. Click the left-hand slide preview to which you wish to apply the new master layout. Apply New Layout (Important): Click Layout from the Home tab's Slides group, and click the slide containing the desired layout from the layout gallery. Delete any unwanted slides or duplicates.