Сеть как код

Тема дорожной карты · Компьютерные сети

Сеть как код представляет собой методологию управления и развертывания сетевых конфигураций с помощью кода, что позволяет использовать систему контроля версий, автоматизацию и обеспечивать согласованность. Это позволяет использовать инструменты, такие как Ansible, Terraform и Network Configuration Protocol (NETCONF), для автоматизации настройки и изменений сетей.

Как это работает

Сеть как код использует программно-определенную сеть (SDN), где control plane отделен от data plane, что позволяет программировать сети с использованием протоколов, таких как OpenFlow, Cisco ACI и AWS VPC. Для контейнерных сетей используются плагины CNI (Calico, Cilium, Flannel), которые предоставляют pod networking в Kubernetes. Варианты мостов и overlay (VXLAN, Geneve) также используются для обеспечения сетевого соединения. Сервисная сеть (Service Mesh) включает sidecar прокси, которые обрабатывают трафик между сервисами с использованием mTLS, повторных попыток, перенаправления трафика и мониторинга. Инструменты, такие как Terraform и Crossplane, используются для декларативного управления сетевой инфраструктурой. Протокол маршрутизации BGP используется для управления трафиком между автономными системами (AS) в Интернете.

Когда применять

Сети как код полезны для автоматизации настройки и изменения сетей, особенно при работе с Kubernetes, где CNI плагины, такие как Cilium, обеспечивают современные и масштабируемые решения. Service mesh, такие как Istio и Linkerd, следует использовать только при наличии сложных многомикросервисных систем, где требуется управление трафиком и мониторинг. Terraform позволяет автоматизировать управление VPC, подсетями и правилами брандмауэра, что помогает предотвратить дрейф конфигураций. Протокол BGP следует применять, если вы являетесь провайдером услуг или управляете автономной системой.

Типичные ошибки

Типичные ошибки при использовании сети как код включают использование Istio для управления небольшим количеством микросервисов, что приводит к избыточной сложности операций. Также ошибкой может быть выбор CNI без учета масштаба, например, использование Flannel вместо Cilium, которое не обеспечивает масштабируемости. Дрейф конфигураций VPC также может привести к проблемам, если не управлять им должным образом. Наконец, избыточное использование сервисной сети (over-meshing) может привести к накоплению задержек на каждом хопе.

Связанные понятия

Полезные ресурсы