Wednesday, October 7, 2020

Network engineering continued ...

  This is a continuation of the earlier posts starting with this one: http://ravinote.blogspot.com/2020/09/best-practice-from-networking.html 

Memory configuration: In a cluster environment, most of the nodes are commodity. Typically, they have a reasonable memory. However, the data that can be processed by a node depends on fitting the corresponding data structures in memory. The larger the memory, the higher the capability of the server component in the control path. Therefore, there must be some choice of memory versus capability in the overall topology of the server so that it can improve the overall network.  

Cpu Configuration: Typically, VMs added as nodes to cluster come in T-shirt size configurations with the number of CPUs and the memory configuration defined for each T-shirt size. There is no restriction for the networking service to be deployed in a container or a single Virtual Machine. And since the virtualization of the computing makes it harder to tell the scale-up of the host, the general rule of thumb has been more the better. This does not need to be so and a certain configuration may provide the best advantage. Again, the choice and the recommendation must be appropriate to the demand. 

Serverless Computing: Many functions of a networking server/product are written in the form of microservices or perhaps as components within layers if they are not separable. However, the notion of modularity can be taken in the form of serverless computing so that the lease on named compute servers does not affect the functionality of the networking server. 

Expansion: Although some configurations may be optimal, the networking server must be flexible to what the end-user wants as configuration for the network. Availability of acceleration, chimney offloads, and external additions to the hardware can all be used to expand the capabilities of the network. 

Upgrade scenario: As with any other product, a networking server also has similar concerns for changes to data structures or requests/responses. While it is important for each feature to be backward compatible, it is also important to have a design that can introduce flexibility without encumbrance. 

No comments:

Post a Comment