28. OCI ‐ Mesh Topology in Oracle Cloud Infrastructure (OCI) - pavankumarchittajallu/OCI_DOC GitHub Wiki

Step-by-Step Guide to Mesh Topology in Oracle Cloud Infrastructure (OCI)

Mesh topology in OCI can refer to both network mesh topologies for connecting infrastructure and the OCI Service Mesh for managing microservices communication. Below are step-by-step instructions for both contexts.

1. Mesh Topology for OCI Networking

A mesh network topology provides high availability and redundancy by interconnecting multiple switches and network components. This is commonly used in data center uplinks and Oracle Private Cloud Appliance configurations.

Steps to Implement Mesh Topology in OCI Networking

  1. Assess Network Requirements

    • Determine required bandwidth, redundancy, and number of uplinks.
    • Identify the number of spine switches and data center switches.
  2. Physical Cabling

    • Connect each spine switch to two independent data center switches.
    • For four uplinks, connect the first two to one data center switch and the next two to the other switch.
    • For higher uplink counts.
  3. Configure Switch Ports

    • Set up all uplinks as LACP (Link Aggregation Control Protocol) active port channels.
    • Ensure ToR (Top-of-Rack) switch ports are in access mode.
    • Disable Spanning Tree Protocol on these ports to prevent loops.
  4. Subnet and Routing Configuration

    • Assign separate /30 (or /31, if supported) subnets for each uplink.
    • Establish eBGP (external Border Gateway Protocol) peering sessions between each spine and both ToR switches for dynamic routing.
    • Ensure proper static or dynamic routing configuration based on the topology and redundancy requirements.
  5. Validation

    • Test connectivity and failover by simulating link failures.
    • Monitor network performance and adjust configurations as needed.

2. Mesh Topology for OCI Service Mesh (Microservices)

OCI Service Mesh enables secure, observable, and manageable communication between microservices, typically in Kubernetes environments.

Steps to Deploy OCI Service Mesh

  1. Set Up Kubernetes Cluster

    • Deploy an Oracle Kubernetes Engine (OKE) cluster or another supported Kubernetes environment.
  2. Enable OCI Service Mesh

    • Register your cluster with OCI Service Mesh.
    • Create a mesh in the OCI Console and select the namespace(s) to be “meshified”—all pods in these namespaces will have sidecar proxies injected
  3. Deploy Application Services

    • Deploy your microservices as usual in the meshified namespace.
    • Each pod will automatically receive an Envoy proxy sidecar container for traffic management and security.
  4. Configure Mesh Resources

    • Define Virtual Services and Virtual Deployments to represent your microservices.
    • Set up Ingress Gateway for external traffic and routing rules for internal communication.
    • Apply policies for traffic management, security, and observability.
  5. Monitor and Manage

    • Use built-in metrics and logs to monitor traffic, latency, and failures.
    • Adjust routing, security, and deployment strategies using mesh policies.

Key Benefits of Mesh Topology in OCI

  • High Availability & Redundancy: Mesh networking ensures no single point of failure in connectivity.
  • Centralized Traffic Control: Service Mesh enables advanced routing, canary deployments, and A/B testing.
  • Enhanced Security: All microservice-to-microservice traffic is encrypted and authenticated by default.
  • Observability: Automatic collection of metrics and logs for all traffic within the mesh.

Example: Mesh Topology Uplink Diagram

Uplink Count Switch 1 Connections Switch 2 Connections
4 2 2
8 4 4
6 8 8

When increasing uplink count, redistribute connections evenly between the two data center switches.

Important Notes

  • Mesh topology is recommended for environments requiring high reliability and dynamic routing.
  • For OCI Service Mesh, no application code changes are needed; the mesh operates transparently via sidecar proxies.
  • Always validate network and service mesh configurations in a test environment before production deployment.