Distributed Micro-Services System (DMSS) for Edge Networking: A Distributed System (DS) with each component or function of the DS is a light-weight Micro-Service (µ-service)
Instances (replica) of µ-services in the DMSS can be deployed in any number in Clouds, DCs, Network Edges, Home, Metro Networks
The DMSS has built-in µ-services for
Protocol-less routing and forwarding: Monolithic network functions are divided into fine-grained and light-weight Virtual Network Functions (VNF) or µ-VNFs
A set of Control Plane µ-VNF
A set of Data Plane µ-VNF: Forwarder µ-VNF
Forwarder µ-VNFs can run on low-cost hardware
Forwarder µ-VNFs can be integrated into Kubernetes (via CNI)
Extracting network transaction information from the overlay µ-VNF network via Deep Packet Inspection (DPI)
Storing network transaction information in Blockchain-like structure (DMSS Blockchain Tree)
Intelligently assigning Multi-core/NUMA/Multi-Cloud resources to µ-services
The Forwarder and servers/applications are automatically composed into a µ-Service Topology (Mesh or graph in general, akin to Service Mesh)
Users can compose µ-Service Topology via simple configuration or via (RPC/REST) API calls
Multiple µ-Service Topology instances can be composed each for an application or service
For example, a µ-Service Topology instance for distributed IoT application or distributed Machine Learning application or healthcare IT applications
Distributed Applications require high-availability (HA), fault-tolerance (FT), resource synchronization (RS) between multiple instances (or replica) and proper communication mechanism between instances or application components
While a cluster management system like the Kubernetes (K8s) provides some level of HA/FT, it does not provide distributed application level or aware HA/FT/RS/communication mechanism, whereas DMSS provides
Distributed application level or aware HA/FT/RS/communication mechanism and other capabilities
Application knowledge-based variation of Gossip Communication and fault-tolerance (for example, one instance sees another instance faulty or down, possibly unreachable via network path, another one sees it non-faulty or up)
Leaderless HA/FT
Resource synchronization based on configurable domain or application Knowlegebase
µ-services communicate with each other using typical distributed application communication framework (such as RPC)
When multiple instances of the same µ-service scaled down or taken offline to only one, it still offers same quality of service and resources
One of the major components of DMSS is a Service Knowledgebase Mapper (ServiceMapper) that keeps track of all µ-services, including other instances of ServiceMappers
A µ-service (including a newly launched ServiceMapper)
First discovers ServiceMappers (via discovery mechanism)
Discovers services it wants to interact with by hashing into the ServiceMappers Knowlegebase
Announces itself to all ServiceMappers
DMSS is Implemented in Go (using RPC and other concurrency capabilities), packaged in Docker Containers as micro-services and deployed using Kubernetes.
DMSS µ-VNF Demo: Kubernetes (µ-VNFs run as any other pod; in Minikube and a cluster with VM on Mac and Raspberry Pis over Wifi)
DMSS µ-VNF Demo: Single VM (shows most of the features)
DMSS µ-VNF Demo: Multi-VM and VXLAN (using Docker overlay or VXLAN support natively in DMSS µ-VNF system)
SM: ServiceMapper: Tracks all µ-services; for example, TopologyProcessor uses this service to update Topologies when Forwarders or Apps are up or down
TP: TopologyProcessor: Network Control Plane VNF (Virtual Network Function); Computes Global Topology when Forwarders report themselves with their Neighbor info; computes Min Weight Topology (MWT) & Shortest Path Tree with ECMP (SPT-ECMP) from the MWT for each Forwarder; Updates Global, MWT and SPT-ECMP Topologies when there are any changes in the Network
FD: Forwarder: Network Data Plane VNF performing just (Linux) Forwarding; Each FD maps SPT-ECMP to Linux Forwarding Table (there can be different µ-services to map SPT-ECMP to Linux or any hardware, such as merchant chip, FPGA, GPU based forwarding table)
App: Any application, including Distributed/Parallel/HPC/Machine Learning applications that may be deployed in large scale in on-premises, DCs, network edges or Clouds; Apps can be attached to Forwarders automatically or on-demand or based on policies