SlideShare uma empresa Scribd logo
1 de 22
SKEPTICAL
ZOOKEEPER
A HIGH-LEVEL GUIDE ON WHEN TO USE
ZOOKEEPER, AND WHEN TO RECONSIDER
CAMILLE FOURNIER, RENT THE RUNWAY
ZOOKEEPER PMC MEMBER
@SKAMILLE
ZOOKEEPER
IS
EVERYWHERE
WHO ISN’T
USING
ZOOKEEPER?
WHY NOT?
$$$
OPERATIONAL COMPLEXITY
AVAILABILITY
BUT ALSO…
3 AREAS FOR
EVALUATION
WHERE IS
IT
RUNNING?
“A DISTRIBUTED
SYSTEM IS ONE
IN WHICH THE
FAILURE OF A
COMPUTER YOU
DIDN’T KNOW
EXISTED CAN
RENDER YOUR
OWN COMPUTER
UNUSABLE”
Leslie Lamport
ENVIRONMENT
OPERATIONAL SUPPORT
RAPID GROWTH
DYNAMIC
WHAT IS IT
DOING?
USE CASE
DISTRIBUTED LOCKING
SERVICE MANAGEMENT
SERVICE MANAGEMENT
ALTERNATIVES
LOAD BALANCER
DNS
DATABASE
WHAT ARE
WE USING?
PRIMITIVES
CONSISTENCY
EPHEMERAL NODES
WATCHES
CHALLENGES
CLIENTS RUN AMOK
DON’T SHARE
CODE REVIEW
PROVIDE WRAPPERS
ZOOKEEPER
OWNS YOUR
AVAILABILITY
CONTACT &
REFERENCES
Twitter: @skamille
camille@apache.org
http://whilefalse.blogspot.com/2012/12/buil
ding-global-highly-available.html
http://labs.spotify.com/tag/zookeeper/

Mais conteúdo relacionado

Semelhante a When to Use Zookeeper

Introduction to Apache ZooKeeper | Big Data Hadoop Spark Tutorial | CloudxLab
Introduction to Apache ZooKeeper | Big Data Hadoop Spark Tutorial | CloudxLabIntroduction to Apache ZooKeeper | Big Data Hadoop Spark Tutorial | CloudxLab
Introduction to Apache ZooKeeper | Big Data Hadoop Spark Tutorial | CloudxLabCloudxLab
 
Netflix Development Patterns for Scale, Performance & Availability (DMG206) |...
Netflix Development Patterns for Scale, Performance & Availability (DMG206) |...Netflix Development Patterns for Scale, Performance & Availability (DMG206) |...
Netflix Development Patterns for Scale, Performance & Availability (DMG206) |...Amazon Web Services
 
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...confluent
 
Deep Dive: AWS X-Ray London Summit 2017
Deep Dive: AWS X-Ray London Summit 2017Deep Dive: AWS X-Ray London Summit 2017
Deep Dive: AWS X-Ray London Summit 2017Randall Hunt
 
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...confluent
 
Go Reactive: Building Responsive, Resilient, Elastic & Message-Driven Systems
Go Reactive: Building Responsive, Resilient, Elastic & Message-Driven SystemsGo Reactive: Building Responsive, Resilient, Elastic & Message-Driven Systems
Go Reactive: Building Responsive, Resilient, Elastic & Message-Driven SystemsJonas Bonér
 
Reactive applications and Akka intro used in the Madrid Scala Meetup
Reactive applications and Akka intro used in the Madrid Scala MeetupReactive applications and Akka intro used in the Madrid Scala Meetup
Reactive applications and Akka intro used in the Madrid Scala MeetupMiguel Pastor
 
Eventual Consistency @WalmartLabs with Kafka, Avro, SolrCloud and Hadoop
Eventual Consistency @WalmartLabs with Kafka, Avro, SolrCloud and HadoopEventual Consistency @WalmartLabs with Kafka, Avro, SolrCloud and Hadoop
Eventual Consistency @WalmartLabs with Kafka, Avro, SolrCloud and HadoopAyon Sinha
 
Inerview Quesion on Data Mining and Machine Learning
Inerview Quesion on Data Mining and Machine LearningInerview Quesion on Data Mining and Machine Learning
Inerview Quesion on Data Mining and Machine LearningYash Diwakar
 
Designing a reactive real-time data platform: Architecture and Infrastructure...
Designing a reactive real-time data platform: Architecture and Infrastructure...Designing a reactive real-time data platform: Architecture and Infrastructure...
Designing a reactive real-time data platform: Architecture and Infrastructure...Alex Silva
 
online lib system
online lib systemonline lib system
online lib systemRavi Anand
 
Circuit breakers - Using Spring-Boot + Hystrix + Dashboard + Retry
Circuit breakers - Using Spring-Boot + Hystrix + Dashboard + RetryCircuit breakers - Using Spring-Boot + Hystrix + Dashboard + Retry
Circuit breakers - Using Spring-Boot + Hystrix + Dashboard + RetryBruno Henrique Rother
 
Planning to Fail #phpne13
Planning to Fail #phpne13Planning to Fail #phpne13
Planning to Fail #phpne13Dave Gardner
 
Planning to Fail #phpuk13
Planning to Fail #phpuk13Planning to Fail #phpuk13
Planning to Fail #phpuk13Dave Gardner
 
Digital Transformation | AWS Webinar
Digital Transformation | AWS WebinarDigital Transformation | AWS Webinar
Digital Transformation | AWS WebinarAmazon Web Services
 
Architecting for failure - Why are distributed systems hard?
Architecting for failure - Why are distributed systems hard?Architecting for failure - Why are distributed systems hard?
Architecting for failure - Why are distributed systems hard?Markus Eisele
 

Semelhante a When to Use Zookeeper (20)

Azure reactive systems
Azure reactive systemsAzure reactive systems
Azure reactive systems
 
Introduction to Apache ZooKeeper | Big Data Hadoop Spark Tutorial | CloudxLab
Introduction to Apache ZooKeeper | Big Data Hadoop Spark Tutorial | CloudxLabIntroduction to Apache ZooKeeper | Big Data Hadoop Spark Tutorial | CloudxLab
Introduction to Apache ZooKeeper | Big Data Hadoop Spark Tutorial | CloudxLab
 
Netflix Development Patterns for Scale, Performance & Availability (DMG206) |...
Netflix Development Patterns for Scale, Performance & Availability (DMG206) |...Netflix Development Patterns for Scale, Performance & Availability (DMG206) |...
Netflix Development Patterns for Scale, Performance & Availability (DMG206) |...
 
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
 
Deep Dive: AWS X-Ray London Summit 2017
Deep Dive: AWS X-Ray London Summit 2017Deep Dive: AWS X-Ray London Summit 2017
Deep Dive: AWS X-Ray London Summit 2017
 
Mini-Training: Netflix Simian Army
Mini-Training: Netflix Simian ArmyMini-Training: Netflix Simian Army
Mini-Training: Netflix Simian Army
 
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
 
Go Reactive: Building Responsive, Resilient, Elastic & Message-Driven Systems
Go Reactive: Building Responsive, Resilient, Elastic & Message-Driven SystemsGo Reactive: Building Responsive, Resilient, Elastic & Message-Driven Systems
Go Reactive: Building Responsive, Resilient, Elastic & Message-Driven Systems
 
Effective SOA
Effective SOAEffective SOA
Effective SOA
 
Reactive applications and Akka intro used in the Madrid Scala Meetup
Reactive applications and Akka intro used in the Madrid Scala MeetupReactive applications and Akka intro used in the Madrid Scala Meetup
Reactive applications and Akka intro used in the Madrid Scala Meetup
 
Eventual Consistency @WalmartLabs with Kafka, Avro, SolrCloud and Hadoop
Eventual Consistency @WalmartLabs with Kafka, Avro, SolrCloud and HadoopEventual Consistency @WalmartLabs with Kafka, Avro, SolrCloud and Hadoop
Eventual Consistency @WalmartLabs with Kafka, Avro, SolrCloud and Hadoop
 
Inerview Quesion on Data Mining and Machine Learning
Inerview Quesion on Data Mining and Machine LearningInerview Quesion on Data Mining and Machine Learning
Inerview Quesion on Data Mining and Machine Learning
 
Designing a reactive real-time data platform: Architecture and Infrastructure...
Designing a reactive real-time data platform: Architecture and Infrastructure...Designing a reactive real-time data platform: Architecture and Infrastructure...
Designing a reactive real-time data platform: Architecture and Infrastructure...
 
online lib system
online lib systemonline lib system
online lib system
 
Circuit breakers - Using Spring-Boot + Hystrix + Dashboard + Retry
Circuit breakers - Using Spring-Boot + Hystrix + Dashboard + RetryCircuit breakers - Using Spring-Boot + Hystrix + Dashboard + Retry
Circuit breakers - Using Spring-Boot + Hystrix + Dashboard + Retry
 
Planning to Fail #phpne13
Planning to Fail #phpne13Planning to Fail #phpne13
Planning to Fail #phpne13
 
Planning to Fail #phpuk13
Planning to Fail #phpuk13Planning to Fail #phpuk13
Planning to Fail #phpuk13
 
Digital Transformation | AWS Webinar
Digital Transformation | AWS WebinarDigital Transformation | AWS Webinar
Digital Transformation | AWS Webinar
 
Architecting for failure - Why are distributed systems hard?
Architecting for failure - Why are distributed systems hard?Architecting for failure - Why are distributed systems hard?
Architecting for failure - Why are distributed systems hard?
 
Presentation 5.pptx
Presentation 5.pptxPresentation 5.pptx
Presentation 5.pptx
 

Notas do Editor

  1. The Hadoop EcosystemMany OS distributed systemsSolr, Kafka, StormRedisHA
  2. Internally at most companies with large tech deploymentsFoursquare, Facebook, NetflixBanks of all stripes
  3. In the guts of many cloud computing effortsNicira (Virtual Networking)Boundary (Network Monitoring)
  4. $$$ Simpler systems, low operational complexity No dependencies on third party software Don’t need every feature Better to embed a consensus system as a library that can be tuned to the needs of the software than run an external cluster for consensus Lack of consensus system availability may mean system should stop functioning, need to have higher availability than 2F+1
  5. More on this later
  6. Discovery, Registry, Configuration, Monitoring
  7. Simple load balancer that removes IPs when they are not available Great for the case when services are always in the same version Great for the case of connection-per-request Not great for load balancing of long-lived connectionsDNS Can also be used for minor config information TTL means that it has a fairly static view of the world Requires a deployment into the DNS server to update for new hardwareDatabase table Additional load on db resource No auto-detection of servers that die
  8. Atomicity Sequential Consistency ReliabilityEPHEMERAL NODES Session-awareWATCHES No polling!
  9. Writing correct code is hard and bad code can bring down your clusterA story…ZooKeeper has bugs, yes, particularly in new and rarely-used featuresBut most problems people face are due to their own misunderstanding or misuse of the clusterHow do you manage this?Don’t run ZK as a service for many different appsCode Review by a central group all ZK codeProvide a specialized client that wraps ZK functionality into larger chunks for specialized uses