This is part 4 of our series on Netflix open source tools.
Netflix Infrastructure Services
Edda is a polling service of AWS resources that records results via AWS APIs to help recognize changes in resources over time. Its main features include:
- Dynamic Querying using Edda’s REST APIs to quickly query and analyze AWS resources.
- History/Changes to store versioned documents recalled via REST APIs and to help analyze causes and outages.
- High Level Architecture supports single and multi-instances of Edda’s Scala applications.
- Configuration options for AWS and multiple AWS account polling, cache refresh rates and crawl frequency.
Suro is a distributed data pipeline that eases multiple data source configuration and operation. It provides services to:
- Move data
- Aggregate data
- Route data
- Store data
Its features include:
- The ability to allow clients to send any type of Java object to remote servers using customizable SerDe.
- The ability to dynamically configure message routing and sinking behaviors.
- Three sinks: local file, S3 file and Kafka.
It is similar to other data pipelines like Apache Flume and integrates with the Netflix OSS ecosystem.
Eureka is the Netflix tool for performing service discovery in the AWS cloud. Other than allowing load-balancing of middle-tier servers it enables advanced functionality in other Netflix tools. E.g., It is used by Asgard to enable rolling updates and to provide rollbacks in case of failure.
It is similar to Route53 in that it provides a naming service however it is more analogous to an internal DNS server and does not connect with the other DNS servers in the world.
Zuul acts as a front door to route all incoming requests from devices and websites to Netflix’s backend streaming application. It provides:
- Dynamic Routing
Zuul offers numerous filters that aid and ease its functionalities. Filters include:
- Authentication and Security that identifies and checks authentication requirements of each resource.
- Insights and Monitoring that tracks meaningful data for improving production.
- Dynamic Routing that aids routing to backend clusters.
- Stress Testing that increases traffic in clusters in order to benchmark performance.
- Load Shedding that limits the capacity of each request type..
- Static Response Handling that manages requests at the edge instead of forwarding them to internal clusters.
- Multi-region Resiliency that aids even distribution of requests across AWS regions.
Netflix Developer Productivity
Gcviz is a garbage collector visualization tool or framework that provides a program set that help generate visualizations from the gc.log file (a file written by HotSpot, a Java Virtual Machine).
Pytheas is a Guice-Jersey based web application framework that allows prototyping and development of web-based tools in order to explore large data sources. The framework also provides a bundle of UI components that allow creation of dynamic data exploration and visualization applications.
RxJava is a Java implementation of Reactive Extensions and is a library that aids composition of event-based programs by using observable sequence. It abstracts concerns that include:
- Low-level threading
- Thread safety
- Concurrent data structures
- Non-blocking IO
RxJava extends the observable sequence that supports data and events.
Netflix Miscellaneous Tools:
Brutal is a multi-network, asynchronous, chat-bot framework written using the twisted framework.