SlideShare a Scribd company logo
1 of 26
Download to read offline
The Twitter Stack
Finagle, Ostrich, Zipkin,…
Dominik Gruber, @the_dom
Vienna Scala User Group – Aug. 27, 2014
Dominik Gruber • @the_domTwitter Stack
Agenda
• Introduction
• Prominent Adopters
• Finagle
• Ostrich
• Zipkin
• Iago
• Finatra
Dominik Gruber • @the_domTwitter Stack
Introduction
• Twitter started to move off Ruby on Rails in 2010
• Currently still on Scala 2.9
Dominik Gruber • @the_domTwitter Stack
Prominent Adopters
• Box
• eBay
• Etsy
• Foursquare
• Gigya
• Nest
• Pinterest
• Rdio
• SoundCloud
• Tumblr
Dominik Gruber • @the_domTwitter Stack
Dominik Gruber • @the_domTwitter Stack
Finagle
“Finagle is an extensible RPC system for the
JVM, used to construct high-concurrency
servers. Finagle implements uniform client
and server APIs for several protocols, and is
designed for high performance and
concurrency. Most of Finagle’s code is
protocol agnostic, simplifying the
implementation of new protocols.”
Dominik Gruber • @the_domTwitter Stack
Finagle provides…
• Connection pools
• Failure detection
• Failover strategies
• Load balancers
• Back-pressure techniques
Dominik Gruber • @the_domTwitter Stack
Finagle…
• publishes standard statistics, logs, and exception
reports
• supports distributed tracing across protocols
• optionally uses ZooKeeper for cluster management
• supports common sharding strategies
Dominik Gruber • @the_domTwitter Stack
Modules (Examples)
• finagle-http
• finagle-memcached
• finagle-mysql
• finagle-protobuf
• finagle-redis
• finagle-thrift
Dominik Gruber • @the_domTwitter Stack
Basic abstractions
• Future
• Service
• Filter
Dominik Gruber • @the_domTwitter Stack
Ostrich
Dominik Gruber • @the_domTwitter Stack
Ostrich
• A stats collector & reporter
• Collect runtime statistics (counters, gauges, metrics,
and labels)
• Report those statistics through a simple web
interface or into log files
• Similar to Metrics

https://github.com/dropwizard/metrics
Dominik Gruber • @the_domTwitter Stack
Dominik Gruber • @the_domTwitter Stack
Zipkin
“Zipkin is a distributed tracing system that
helps us gather timing data for all the
disparate services at Twitter. It manages both
the collection and lookup of this data through
a Collector and a Query service.”
Dominik Gruber • @the_domTwitter Stack
Zipkin
Dominik Gruber • @the_domTwitter Stack
Zipkin’s Architecture
Dominik Gruber • @the_domTwitter Stack
Zipkin
• “Scribe” to transport traces to Zipkin and Hadoop
• Data stored in either Cassandra, Redis, HBase,
MySQL, PostgreSQL, SQLite, or H2
Dominik Gruber • @the_domTwitter Stack
Iago
Dominik Gruber • @the_domTwitter Stack
Iago
• A load generator that replays production or synthetic
traffic
• Iago supports arbitrarily high rates of traffic via built-
in support for creating cluster
Dominik Gruber • @the_domTwitter Stack
Protocols
• HTTP
• Thrift
• Memcache
• Kestrel (A queueing system from Twitter)
• UDP
Dominik Gruber • @the_domTwitter Stack
Finatra
Dominik Gruber • @the_domTwitter Stack
Dominik Gruber • @the_domTwitter Stack
Features
• Fully Async using Futures
• Mustache Templates
• Detailed Metrics (p99,p999, etc)
• Profile/Debug over HTTP
• SSL/TLS Support
• Deploys with a single jar
Dominik Gruber • @the_domTwitter Stack
There’s more…
•
• Summingbird
• https://github.com/twitter
Dominik Gruber • @the_domTwitter Stack
Q & A
Dominik Gruber • @the_domTwitter Stack
Source
• http://blog.oskarsson.nu/post/40196324612/the-
twitter-stack

https://blog.twitter.com/2011/finagle-a-protocol-
agnostic-rpc-system
• https://www.youtube.com/watch?v=whuT_-cFb5I

https://www.youtube.com/watch?v=QdER-Zl_YCM
• https://github.com/twitter

https://github.com/finagle

More Related Content

Viewers also liked

Tracing Microservices with Zipkin
Tracing Microservices with ZipkinTracing Microservices with Zipkin
Tracing Microservices with Zipkin
takezoe
 
Technical Seminar PPT
Technical Seminar PPTTechnical Seminar PPT
Technical Seminar PPT
Kshitiz_Vj
 

Viewers also liked (12)

IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
 
Microservices architecture examples
Microservices architecture examplesMicroservices architecture examples
Microservices architecture examples
 
Distributed Tracing with OpenTracing, ZipKin and Kubernetes
Distributed Tracing with OpenTracing, ZipKin and KubernetesDistributed Tracing with OpenTracing, ZipKin and Kubernetes
Distributed Tracing with OpenTracing, ZipKin and Kubernetes
 
Microservices Tracing With Spring Cloud and Zipkin @CybercomDEV
Microservices Tracing With Spring Cloud and Zipkin @CybercomDEVMicroservices Tracing With Spring Cloud and Zipkin @CybercomDEV
Microservices Tracing With Spring Cloud and Zipkin @CybercomDEV
 
Tracing Microservices with Zipkin
Tracing Microservices with ZipkinTracing Microservices with Zipkin
Tracing Microservices with Zipkin
 
Microservices Tracing with Spring Cloud and Zipkin
Microservices Tracing with Spring Cloud and ZipkinMicroservices Tracing with Spring Cloud and Zipkin
Microservices Tracing with Spring Cloud and Zipkin
 
Monitoring Microservices
Monitoring MicroservicesMonitoring Microservices
Monitoring Microservices
 
Technical Seminar PPT
Technical Seminar PPTTechnical Seminar PPT
Technical Seminar PPT
 
Dockercon State of the Art in Microservices
Dockercon State of the Art in MicroservicesDockercon State of the Art in Microservices
Dockercon State of the Art in Microservices
 
Advantages and Disadvantages of Technology
Advantages and Disadvantages of TechnologyAdvantages and Disadvantages of Technology
Advantages and Disadvantages of Technology
 
Implementing microservices tracing with spring cloud and zipkin (spring one)
Implementing microservices tracing with spring cloud and zipkin (spring one)Implementing microservices tracing with spring cloud and zipkin (spring one)
Implementing microservices tracing with spring cloud and zipkin (spring one)
 
Technology powerpoint presentations
Technology powerpoint presentationsTechnology powerpoint presentations
Technology powerpoint presentations
 

Recently uploaded

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 

Recently uploaded (20)

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
THE BEST IPTV in GERMANY for 2024: IPTVreel
THE BEST IPTV in  GERMANY for 2024: IPTVreelTHE BEST IPTV in  GERMANY for 2024: IPTVreel
THE BEST IPTV in GERMANY for 2024: IPTVreel
 
Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 

2014-08-27 | The Twitter Stack (Vienna Scala User Group)

  • 1. The Twitter Stack Finagle, Ostrich, Zipkin,… Dominik Gruber, @the_dom Vienna Scala User Group – Aug. 27, 2014
  • 2. Dominik Gruber • @the_domTwitter Stack Agenda • Introduction • Prominent Adopters • Finagle • Ostrich • Zipkin • Iago • Finatra
  • 3. Dominik Gruber • @the_domTwitter Stack Introduction • Twitter started to move off Ruby on Rails in 2010 • Currently still on Scala 2.9
  • 4. Dominik Gruber • @the_domTwitter Stack Prominent Adopters • Box • eBay • Etsy • Foursquare • Gigya • Nest • Pinterest • Rdio • SoundCloud • Tumblr
  • 5. Dominik Gruber • @the_domTwitter Stack
  • 6. Dominik Gruber • @the_domTwitter Stack Finagle “Finagle is an extensible RPC system for the JVM, used to construct high-concurrency servers. Finagle implements uniform client and server APIs for several protocols, and is designed for high performance and concurrency. Most of Finagle’s code is protocol agnostic, simplifying the implementation of new protocols.”
  • 7. Dominik Gruber • @the_domTwitter Stack Finagle provides… • Connection pools • Failure detection • Failover strategies • Load balancers • Back-pressure techniques
  • 8. Dominik Gruber • @the_domTwitter Stack Finagle… • publishes standard statistics, logs, and exception reports • supports distributed tracing across protocols • optionally uses ZooKeeper for cluster management • supports common sharding strategies
  • 9. Dominik Gruber • @the_domTwitter Stack Modules (Examples) • finagle-http • finagle-memcached • finagle-mysql • finagle-protobuf • finagle-redis • finagle-thrift
  • 10. Dominik Gruber • @the_domTwitter Stack Basic abstractions • Future • Service • Filter
  • 11. Dominik Gruber • @the_domTwitter Stack Ostrich
  • 12. Dominik Gruber • @the_domTwitter Stack Ostrich • A stats collector & reporter • Collect runtime statistics (counters, gauges, metrics, and labels) • Report those statistics through a simple web interface or into log files • Similar to Metrics
 https://github.com/dropwizard/metrics
  • 13. Dominik Gruber • @the_domTwitter Stack
  • 14. Dominik Gruber • @the_domTwitter Stack Zipkin “Zipkin is a distributed tracing system that helps us gather timing data for all the disparate services at Twitter. It manages both the collection and lookup of this data through a Collector and a Query service.”
  • 15. Dominik Gruber • @the_domTwitter Stack Zipkin
  • 16. Dominik Gruber • @the_domTwitter Stack Zipkin’s Architecture
  • 17. Dominik Gruber • @the_domTwitter Stack Zipkin • “Scribe” to transport traces to Zipkin and Hadoop • Data stored in either Cassandra, Redis, HBase, MySQL, PostgreSQL, SQLite, or H2
  • 18. Dominik Gruber • @the_domTwitter Stack Iago
  • 19. Dominik Gruber • @the_domTwitter Stack Iago • A load generator that replays production or synthetic traffic • Iago supports arbitrarily high rates of traffic via built- in support for creating cluster
  • 20. Dominik Gruber • @the_domTwitter Stack Protocols • HTTP • Thrift • Memcache • Kestrel (A queueing system from Twitter) • UDP
  • 21. Dominik Gruber • @the_domTwitter Stack Finatra
  • 22. Dominik Gruber • @the_domTwitter Stack
  • 23. Dominik Gruber • @the_domTwitter Stack Features • Fully Async using Futures • Mustache Templates • Detailed Metrics (p99,p999, etc) • Profile/Debug over HTTP • SSL/TLS Support • Deploys with a single jar
  • 24. Dominik Gruber • @the_domTwitter Stack There’s more… • • Summingbird • https://github.com/twitter
  • 25. Dominik Gruber • @the_domTwitter Stack Q & A
  • 26. Dominik Gruber • @the_domTwitter Stack Source • http://blog.oskarsson.nu/post/40196324612/the- twitter-stack
 https://blog.twitter.com/2011/finagle-a-protocol- agnostic-rpc-system • https://www.youtube.com/watch?v=whuT_-cFb5I
 https://www.youtube.com/watch?v=QdER-Zl_YCM • https://github.com/twitter
 https://github.com/finagle