August 3, 2021—
Don’t Call My DSC Just A SmartNIC!
Pensando’s very own poet, Alex Seibulescu, really doesn’t want you to call our DSC a SmartNIC. In this blog he explains why. Unfortunately he didn’t include a poem but he did manage to work in an Einstein joke.
Everybody wants to give you more ARMs but if you want to run fast, what you need is (P4) legs!
Every once in while I run into a friend who is familiar with the cloud/datacenter infrastructure field and would like to know exactly what Pensando is doing. So I joyfully start talking about our marvelous DSC (Distributed Services Card) but about the third sentence in, I get interrupted with a variant of “Oh, you’re building a SmartNIC”. That’s the point I know that this is going to be a much longer conversation than I was shooting for. And yeah, the reason I am writing this blog.
So let’s start with the basics, what is a SmartNIC?
Obviously it is a NIC (Network Interface Card for those who do not float in the same clouds as us) and obviously it must be doing something smarter than your run of the mill NIC. Now, to me, calling our DSC a SmartNIC is like calling Einstein a SmartGuy. Sure he was a guy, and he was most definitely smart but wouldn’t you agree that calling him a smart guy would be the understatement of the century? So I may be pushing this analogy but I truly believe that the way Einstein stands out among the SmartGuys, that’s the way our DSC stands out among the SmartNICs. Let me try to back this up a little.
Sometime in the last 10 years or so, a few things happened that made the advent of the SmartNIC inevitable. First, the wise people who build and run datacenters demanded more flexibility to manage and upgrade the rapidly increasing number of hardware components that formed the foundation of their datacenters. This meant that an assortment of servers with their traditional NICs, networking switches and routers, storage devices, and specialized devices like firewalls and load balancers all had to become members in an orchestra who’s director was the IT department running the datacenter.
But alas, whenever the orchestra director decided to play a different tune, the members of the orchestra could only slightly deviate from the songs they were pre-programmed to play and a disheartening cacophony ensued. If the director wanted to play a different tune, they had to swap out half of the orchestra and replace it with new musicians. As it turned out, the string section was way more malleable and could be taught new songs. These were the servers who were running software that could be easily changed to serve new purposes. From there, the idea was born to have all the other members of the orchestra, ugh datacenter hardware behave more like the servers, i.e. have the ability to be programmed by software. And thus SDN and the subsequent SmartNIC revolution began. Switches and routers became more flexible in part due to a new standardized methodology to program their datapath with a new language called P4. On their side, servers were easily adaptable to the new requirements placed on them, you just needed to change the networking stack that was implemented in software.
Now right around this time, a second important thing happened
CPUs, the hearts of the servers became increasingly more expensive. People running the datacenters noticed that a significant fraction of their CPU capacity was lost to providing networking and security related chores rather than running the workloads they were meant for. Enter the SmartNIC. With their cheaper ARM cores, they could take over all that groundwork of keeping the network flexible and secure by offloading the work from their host CPU masters.
Ah, but a third important development creeped in the meantime: virtualization. Different workloads wanted to share the same server pretending the other workloads did not exist. Again software came to the rescue and made it all possible but that put a lot more strain on the ARM cores that could no longer keep up with the scale of server workloads on one hand and the ever increasing networking speeds on the other. That’s when our DSC came to the rescue, to help push scale and performance in the datacenter to the next level without sacrificing the flexibility provided by software.
The DSC can run software written in C on its ARMs just like the other SmartNICs but more impressively, it can run software written in P4 on its hardware datapath which allows it to run any combination of networking functions, load balancing, firewalling, compression, encryption, and storage functions, all at the same time and at wire speed.
And remember the director and her orchestra that we were talking about earlier? Well, we actually provide both, and if you tell the director, we call her PSM (Policy and Services Manager) to play a different tune, no problem, the orchestra, our DSCs will swiftly fall in line by providing them a different score written in P4. What you will hear in your datacenter is a magnificent symphony playing your tune at the speed of your network.