At the core of Arista cloud networking solutions is EOS, which is purpose-built to be fully programmable and highly modular. Arista EOS provides a rich set of APIs that use standard and well-known management protocols. It is programmable at all layers-- Linux kernel, hardware forwarding tables, switch configuration and CLI, switch control plane as well as management layer. This programmability of EOS enables rapid integration with a wide range of third-party applications for virtualization, management, automation, orchestration and network services.
Standard, unmodified Linux is the underlying operating system of EOS, providing customers with access to all Linux operating system facilities. EOS can be extended with off-the-shelf Linux applications and a growing number of open source management tools to meet the needs of network engineering and operations.
Extensibility and Programmability
EOS offers the ability to write scripts and load applications directly onto the Linux operating system and to run these applications as guest VMs. Features of EOS extensibility include:
- Installation without modification of third-party software for Linux
- Scripting and Linux shell-level access for automation
- Programmable at all layers: Linux kernel, hardware forwarding tables, switch configuration and CLI, switch control plane as well as management layer
- Support for running Docker containers directly on the switch
EOS provides a rich set of standards-based, well known programmable interfaces including:
- EOS extensible APIs (eAPIs) using JSON
- Open source Go, Python and Ruby based object models
- Native Go and Python on box scripting
- Advanced Event Manager
- SQLite Databases
- OpenFlow & DirectFlow
- EOS SDK
Arista EOS supports OpenFlow 1.0 controlled by OpenFlow controllers for filtering and redirecting traffic. Arista EOS also supports a controller-less mode relying on Arista DirectFlow to direct traffic to the SDN applications (for example, TAP aggregators).
- DirectFlow combines the flexibility of a programmable data plane with the reliability of proven routing and bridging technology.
- The matches and actions available for flows include those available in the OpenFlow 1.0 specifications, providing a standard match and action policy familiar to the SDN community is familiar with.
- Arista DirectFlow is intended to complement OpenFlow for greater flexibility and broader ecosystem integration.
With EOS Software Development Kit (SDK), customers can develop their own customized EOS applications in C++, Python, Ruby or Go – applications that are first-class citizens of EOS along with other EOS agents. The SDK provides programming language bindings to software abstractions available in Arista EOS, so 3rd Party agents can access switch state and react to network events. These applications can, for example, manage interfaces, IP and MPLS routes, Access Control Lists (ACLs), as well as use a range of APIs to communicate between the switch and monitoring or network controllers.