Happy Holidays From Pensando Systems
Thank you to all our customers, partners, family and friends for continuing the journey with us in 2020. We can't wait to get started on... More
September 20, 2020—
There is no doubt in my mind that SmartNICs are needed components of any modern cloud-based architecture. The proof is in the pudding: all cloud providers run some form of SmartNIC. Some think it is so crucial that they have significant internal development efforts (e.g., AWS Nitro). The trend is toward designing Enterprise data centers using a cloud architecture and therefore to adopt many of the same solutions seen in public cloud.
By: Silvano Gai
This article was originally posted on Silvano Gai’s blog here.
I am copying the title from a post of Ivan Pepelnjak, who runs ipSpace.net, one of the most well-respected blogs on computer networks.
There is not much technical discussion on SmartNICs, I welcome Ivan’s post, and I want to provide my perspective.
There is no doubt in my mind that SmartNICs are needed components of any modern cloud-based architecture. The proof is in the pudding: all cloud providers run some form of SmartNIC. Some think it is so crucial that they have significant internal development efforts (e.g., AWS Nitro). The trend is toward designing Enterprise data centers using a cloud architecture and therefore to adopt many of the same solutions seen in public cloud.
The need does not arise only from performance, mainly discussed in Ivan’s post, but also from many other aspects discussed in the following.
I don’t doubt any of the performance discussion in Ivan’s post, but the question is: “what’s left of your server after it does any meaningful processing on 200 Gbps of traffic?” It is not just about receiving and sending (i.e., pushing) the traffic or even switching it from port to port. It is about applying useful services to it and doing that without incurring high latency and jitter.
To implement a Software Defined Networking solution capable of operating in a modern Clos environment, a virtual switch must be feature reach, including encapsulation to support underlay and overlay networking, like VXLAN, VTEP, Geneve, etc. The performance greatly benefits from a hardware implementation.
With the advent of NVMe over fabric the SmartNIC is perfectly positioned to act as a block storage adapter.
Let’s consider ACLs (Access Control Lists). It is easy to run a few of them in software, but let’s try to run an ACL with 100,000 ACE (Access Control Entry). It does not scale!
I have never seen anybody attempting to run all these features in SW on a server, but it is possible on a SmartNIC.
Nowadays, everyone wants to design an architecture that works for bare metal servers, virtual machines, and containers. A SmartNIC allows that since it is placed between the server and the network. A software solution running on the host is problematic in several of these environments. With virtual machines, do you implement the solution in the hypervisor or do you run over it? Can you modify the software of a bare-metal server running a database or an ERP application?
When considering all these factors, it is clear that it is not just about how many Gbps I can push in and out of the server. It is about what features I want to enable and what level of security do I want to achieve.
I think there must be a good reason why all the main cloud-providers deploy SmartNICs on all of their servers.
Thank you to all our customers, partners, family and friends for continuing the journey with us in 2020. We can't wait to get started on... More
Contact us—
Learn how Pensando’s revolutionary Distributed Service Platform can transform the way you build your IT infrastructure. If you’d like to know more about Pensando, partner with us, or work with us (Yes, we’re hiring!), please let us know.