Шесть лучших сетевых проектов с открытым исходным кодом для облачного мира

Опубликовано: 14 Марта, 2023
Шесть лучших сетевых проектов с открытым исходным кодом для облачного мира

С постоянно растущей популярностью и преимуществами облака и контейнеров организации все чаще используют облачные приложения и инфраструктуру на основе контейнеров для запуска своих бизнес-приложений. Для эффективного управления облачной инфраструктурой важную роль играют сетевые инструменты. Наличие правильного набора сетевых инструментов может помочь сетевому администратору управлять облачными приложениями и работать с ними. Вот некоторые сетевые проекты с открытым исходным кодом, которые сетевые администраторы могут использовать для своих облачных миров:

1. Проект Калико

Project Calico — это бесплатный проект с открытым исходным кодом, который можно использовать для управления масштабируемыми и безопасными сетевыми политиками для контейнеров, виртуальных машин и собственных рабочих нагрузок на основе хоста. Он поддерживает известные облачные платформы, такие как Kubernetes, Docker EE, OpenStack, OpenShift и сервисы без операционной системы.

Он использует стандартные сетевые инструменты Linux, предлагая две основные услуги для облачных приложений: сетевое подключение между рабочими нагрузками и применение политик безопасности между рабочими нагрузками. Он поддерживает широкий спектр вариантов развертывания с использованием модульных компонентов, включая подключаемые модули CNI для Kube, подключаемый модуль Neutron ML2, Felix, стек маршрутизации BGP и простой интерфейс командной строки calicoctl. Кроме того, он предлагает варианты сети без наложения и с наложением в общедоступном облаке или в локальной среде. Он предлагает прозрачность и устранение неполадок, безопасность с самообслуживанием, безопасность с нулевым доверием, облачную микросегментацию, обнаружение вторжений и мультиарендность. Он также предоставляет расширенные средства управления выходным доступом, расширенные брандмауэры для Kubernetes и дополнительные элементы управления безопасностью.

Этот проект имеет несколько плоскостей данных, поэтому пользователь может выбрать технологии, которые лучше всего соответствуют его потребностям, например, плоскость данных Linux Berkeley Packet Filter (eBPF), сетевая плоскость данных Linux и плоскость данных Windows HNS.

2. Ресница

Cilium — это инструмент с открытым исходным кодом, который обеспечивает прозрачное и безопасное сетевое подключение, а также балансировку нагрузки между рабочими нагрузками приложений. Он работает на уровне 3/4 для традиционных сетевых служб и служб безопасности и на уровне 7 для защиты использования новейших протоколов приложений, таких как gRPC, HTTP и Kafka.

Этот инструмент с открытым исходным кодом можно интегрировать в распространенные платформы оркестрации, такие как Kubernetes. В основе этого инструмента лежит технология ядра Linux, называемая eBPF. Он поддерживает динамическую вставку байт-кода eBPF в ядро Linux в многочисленных точках интеграции, таких как сокеты приложений, сетевой ввод-вывод и точки трассировки, для реализации логики безопасности, работы в сети и видимости.

Он доступен в двух версиях: Cilium Open Source и Cilium Enterprise. Cilium Open Source включает в себя часть кодовой базы сообщества Cilium с открытым исходным кодом, а версия Enterprise поддерживает распространение расширенных рабочих процессов наблюдения и безопасности.

3. Посланник

Envoy — это сетевой прокси-сервер с открытым исходным кодом, разработанный для граничного уровня 7 и используемый для облачных приложений. Он предлагает высокую производительность с небольшим преимуществом и работает в качестве сервисного прокси. Он основан на опыте программных и аппаратных балансировщиков нагрузки, таких как HAProxy/NGINX. Он основан на Lyft и имеет активную базу участников. Это также официальный проект с проектом Cloud Native Computing Foundation (CNCF).

Envoy — это распределенный прокси-сервер C++, созданный для отдельных приложений и сервисов. Он предлагает коммуникационную шину и универсальные плоскости данных, разработанные для крупных сервисно-сетчатых архитектур микросервисов. Когда служебный трафик в инфраструктуре течет с использованием сетки Envoy, это позволяет легко визуализировать проблемные области посредством регулярного наблюдения, общей настройки производительности, а также добавлять функции субстрата в одном месте.

Последняя версия Envoy — 1.17.1 (выпущена 25 февраля). Он поддерживает статическую конфигурацию с помощью файлов YAML. Для более сложной конфигурации у него есть набор API-интерфейсов на основе gRPC.

4. Джагер

Jaeger — это распределенная платформа отслеживания, разработанная Uber Technologies и переданная в дар CNCF. Эта платформа может использоваться для мониторинга систем на основе микросервисов. Его можно использовать для таких задач, как мониторинг транзакций, анализ зависимостей служб, анализ первопричин, распространение распределенного контекста и оптимизация производительности или задержки.

Эта платформа вдохновлена Dapper и OpenZipkin. Он предлагает такие функции, как серверная часть Jaeger, которые не имеют единых точек отказа и масштабируются в соответствии с потребностями бизнеса. Например, любая установка Jaeger обычно обрабатывает несколько миллиардов спанов каждый день. Он поддерживает строго типизированные теги span и структурированные журналы, а также общий распределенный механизм распространения контекста через багаж. Кроме того, он представляет трассировки в виде направленных ациклических графов (DAG) через ссылки на интервалы. Веб-интерфейс, серверная часть Jaeger и инструментальные библиотеки были созданы с нуля для поддержки стандарта OpenTracing.

Jaeger может быть установлен по умолчанию как часть Red Hat OpenShift Service Mesh, которая включает реализацию Istio. Он включает в себя различные компоненты (клиент, агент, сборщик, запрос и консоль), которые работают вместе для хранения, сбора и визуализации интервалов и трассировок.
Изображение 4177

5. Фланель

Flannel — это оверлейная сеть, которую можно использовать для соединения контейнеров на разных хостах. Его можно использовать для настройки сетевой структуры уровня 3, созданной для Kubernetes. Он запускает на каждом хосте небольшой единственный бинарный агент (называемый flanneld). Он использует API Kubernetes или etcd напрямую для хранения конфигурации сети.

Этот инструмент представляет собой базовую оверлейную сеть, которая хорошо работает с назначенным диапазоном адресов подсети. Проще говоря, оверлейная сеть строится поверх другой сети. Хотя фланель в основном создавалась для Kubernetes, это простая оверлейная сеть, которую можно использовать в качестве базовой альтернативы существующим программно-определяемым сетевым решениям. Чтобы быть более конкретным, этот сетевой инструмент предоставляет каждому хосту IP-подсеть, из которой демон Docker может выделять IP-адреса отдельным контейнерам. Каждый адрес связан с контейнером, поэтому все контейнеры в системе могут существовать на разных хостах.

Используя инструменты развертывания и дистрибутивы, фланель можно легко развернуть с помощью Kubernetes. Например, CoreOS Tectonic может настроить фланель в кластерах Kubernetes с помощью установщика Tectonic с открытым исходным кодом. Однако его также можно установить вручную в любой существующий кластер Kubernetes.

6. И

Kuma — это современная сервисная сетка, созданная Kong, компанией, разработавшей популярный шлюз Kong API. Kuma отличается от старых сервисных сеток тем, что поддерживает не только контейнеры, но и виртуальные машины. Таким образом, он хорошо подходит как для новых (современных), так и для старых (устаревших) приложений.

Kuma построен на основе Envoy, ведущего сетевого прокси-сервиса (он также указан выше). На сегодняшний день Kuma — единственная сервисная сетка CNCF, работающая на Envoy. Kuma позволяет выполнять очень сложные развертывания. Есть два режима — автономный и мультизональный. Standalone состоит из одной плоскости управления и множества плоскостей данных, а multizone состоит из более чем одной плоскости управления и нескольких плоскостей данных. Kuma имеет встроенную интеграцию API с любым поставщиком API. Это удобно и помогает создать надежную сетевую инфраструктуру, объединяющую лучшее из обоих миров — шлюз API и сервисную сетку.

Kuma все еще находится на ранней стадии своего развития, но ее результаты по сравнению с действующими Istio и Linkerd еще предстоит выяснить. Если вы чувствуете, что Istio слишком сложен для ваших нужд, вам следует взглянуть на Kuma.

Сети с открытым исходным кодом: упрощение перехода к облаку

Используя правильные сетевые инструменты, разработчики приложений могут лучше управлять своими облачными приложениями или более эффективно и быстро перемещать существующие приложения в облако. Это может помочь устранить проблемы с производительностью сети, а также обеспечить высокую доступность размещенных приложений. Эти проекты с открытым исходным кодом являются экономически эффективными, а также обеспечивают гибкость и маневренность. Выбор правильных сетевых инструментов может помочь разработчикам приложений на пути к облаку.