Posts

Showing posts from April, 2020

Free webinar - automating networks with intent, AI, and machine learning

Image
Join this webinar to learn about the techniques and architectures behind intent-driven networks as well as use cases for their deployment. https://bit.ly/2xeNZS2 Automation is essential to enable very large-scale and agile networks that can be dynamically reconfigured to meet the ever-changing workload demands stemming from the IoT, autonomous vehicles, and enhanced edge applications providing immersive experiences. In this webinar FRINX will take you through existing challenges, new solution approaches and real life case studies detailing how we solve automation at global scale. Who Should Attend Network service providers, Telco, carriers, Cable/MSO operators, metro Ethernet operators, ISPs, mobile operators, technical decision makers and influencers in network planning, operations, design and architecture. Financial analysts and the media are also encouraged to attend. Key Topics for Discussion The emerging network automation market Challenges driv

Second time´s a charm

Image
Conventional wisdom says that it is not a good use of time to rewrite existing code with new technologies. Nevertheless, we had an opportunity to do some of that and in our case it offered us the opportunity to reflect on our existing design choices and technology stack. Here are our initial thoughts and experiences during the process.  What we’ve realized early on was that this provides an opportunity for improving on our original design. Some issues we’ve identified manifest themselves as never-to-be-addressed TODOs and FIXMEs sprinkled throughout the codebase. Some were not evident to us as authors of the code looking through the lenses of technologies choices, frameworks and our general assumptions. That’s why a set of new technologies can be helpful in providing a fresh perspective. The other major thing that helped identify some problems was adding new members to the team. There’s nothing like a well aimed “Why?” question to make you revisit and rethink your design

Getting IO right

Image
We recently embarked on a new project in a subject that we were familiar with (network configuration at scale) and that we have implemented previously in a different context in Java. Our new project challenged us to take a new look at the subject and to come up with an implementation that further improves performance, has a smaller footprint and adds new functionality. We finally implemented the project in C++. In the following posts we will share our experiences on that journey. We would love to hear from you. You can follow the progress of our journey here:  https://github.com/facebookincubator/magma/tree/master/devmand/gateway Getting IO right The project that we are working on reads data from many different networking devices. We establish an SSH session with each device and crawl its configuration and stats by issuing a multitude of commands. We also provide the capability to translate the information we collect and send to standards based data models (O

Getting started with C++ futures

Image
We are currently writing an async framework for managing remote network devices over SSH.  This is part of the Magma project led by Facebook. By the end of 2019 we at FRINX have contributed the CLI stack which provides various functions on top of the basic SSH client like keep alive, reconnect, caching etc. This post describes the the evolution of how we are using async functionality provided by the Folly library to meet our scalability requirements. Architecture The following text describes the high level architecture accompanied with pseudo code. We started with a simple abstract class describing the CLI client: class CLI {     string executeRead(ReadCommand c);     string executeWrite(WriteCommand c); } For the purpose of this text it is not important how those two methods differ. The basic idea is to create one CLI object per device, run one or more commands and collect output. This design allows us to introduce nesting: we define several classes w