Traditional NOS Architectures = Monoliths

Network Operating Systems have been designed for years as tightly coupled single binary images. At worst this is a single process monolithic code base, at best a multi-process system of integrated modules.

This approach to application development is popular because it is the easiest to construct and maintain. Initially, working with one code base can reduce the testing matrix and enable quality to be maintained by utilizing a typical QA cycle. However, as features and functionality increase, so does complexity – making it difficult to ensure quality longterm.  The ability to test and deploy modules independently is limited and performed in an all-or-nothing fashion. This slows down code development – with every code change or bug fix, the entire code base must be rebuilt and retested.

When this code gets delivered to an end-user it is supplied as a single monolithic image and is rarely touched after the initial deployment.  Bug fixes are not delivered as patches or package updates, but as single monolithic binaries.  Software updates require downloading, testing, “bug-scrubbing”, and praying that no new bugs have been introduced as a result of this new version.  Without the luxury of downtime to upgrade the monolithic image, most users are forced into making an undesirable decision: disable the feature, implement a kludgy workaround, or ask the business for downtime.

There is a better way…

At SnapRoute, we are building a NOS that doesn’t conform to the restrictions of a monolith. With a fully containerized platform, users can benefit from a NOS built natively utilizing the principles of microservices. Instead of a single binary monolithic image, SnapRoute’s NOS is a suite of small services – each running in its own container and communicating with lightweight mechanisms.

Deploying new features, pushing bug fixes, or upgrading control plane services no longer requires signing up for all of the caveats included in new monolithic versions. Services are deployed, upgraded, configured, and managed using Cloud Native tools – without the need for proprietary solutions.

Categories: Microservices