Visit the post for more.
Overview
The article discusses the development and open-sourcing of FBNet Command Runner (FCR), a tool designed to automate command execution on network devices at Facebook's scale. It highlights the challenges of network automation and how FCR addresses these issues through a scalable architecture and a Thrift API.
What You'll Learn
1
How to automate command execution across multiple network devices using FCR
2
Why using Thrift APIs can simplify interactions with diverse network devices
3
When to implement FCR for efficient network monitoring and provisioning
Prerequisites & Requirements
- Understanding of network device management and command-line interfaces
- Familiarity with Thrift and its API design(optional)
Key Questions Answered
What are the main challenges of automating network device management?
The main challenges include dealing with multiple vendors, managing a large number of devices, and handling a growing number of commands. Each vendor has different prompts and connection types, while the scale of devices complicates command execution and reliability.
How does FCR improve network device command execution?
FCR simplifies command execution by providing a Thrift API that abstracts vendor-specific details, allowing users to run commands on various devices without managing multiple connections. This architecture supports scalability and efficiency in network operations.
What is the purpose of the FCR service architecture?
The FCR service architecture is designed to enable applications to run commands on thousands of network devices seamlessly. It abstracts the complexities of connection management and allows engineers to focus on business logic rather than device-specific details.
What APIs are defined in the FCR service?
The FCR service defines several APIs, including 'run' for executing commands on a device, 'bulk_run' for running commands on multiple devices in parallel, and session management APIs like 'open_session' and 'close_session'. These APIs facilitate efficient command execution across devices.
Technologies & Tools
API Framework
Thrift
Used to define the APIs for FCR, enabling cross-language compatibility.
Key Actionable Insights
1Implementing FCR can significantly reduce the time spent on managing network devices by automating command execution.By leveraging FCR, network engineers can focus on higher-level tasks rather than the intricacies of device management, which is crucial for maintaining operational efficiency at scale.
2Utilizing Thrift APIs allows for consistent command execution across various programming languages.This flexibility can enhance collaboration among teams using different tech stacks, making it easier to integrate FCR into existing systems.
3Regularly updating the device database within FCR is essential for maintaining accurate command execution.As network devices change or are replaced, keeping the database in sync ensures that commands are executed correctly without delays or errors.
Common Pitfalls
1
Failing to account for the differences in vendor-specific command prompts can lead to automation failures.
This issue arises because each vendor may have unique requirements for command execution, which can cause scripts to break if not properly managed.
2
Overloading the FCR service with too many simultaneous commands can lead to performance degradation.
It's important to implement load balancing and monitor the service's performance to ensure that it can handle the scale of command execution without issues.
Related Concepts
Network Automation
Command-line Interface Management
Scalable Network Monitoring
Thrift API Design