По Рич Берроуз

Loft Labs рада приветствовать основного докладчика Kubecon North America 2022 Маурисио «Салабой» Салатино для эксклюзивного интервью, в котором мы погружаемся в трудности, с которыми сталкиваются разработчики платформ в экосистеме CNCF. Маурисио и его содокладчик Уитни Ли продемонстрируют демонстрацию своей основной презентации, посвященной подготовке виртуальных кластеров с помощью Crossplane, vcluster и Knative для разработки внутренней платформы разработки.

Богатый: Как вы узнали о vcluster?

Маурисио: Я слышал о vcluster в контексте мультитенантности. Во время обучения для УзнатьK8s и работая в разных компаниях, я неоднократно видел, как команды пытаются ответить на очень простой вопрос: один кластер или несколько кластеров? Я видел команды, которые начинали с простых пространств имен внутри одного кластера Kubernetes, а затем изо всех сил пытались перейти на использование нескольких кластеров, когда уровней изоляции пространств имен было недостаточно. И именно здесь я вижу vcluster как лучшую альтернативу, поскольку он с самого начала обеспечивает разделение на разные API-серверы Kubernetes. В современном мире, где каждая организация создает свою внутреннюю платформу разработки, я считаю такие инструменты, как vcluster, критически важными компонентами этих платформ.

Богатый: В демонстрации для основного доклада KubeCon вы подготовили виртуальные кластеры с помощью vcluster и Crossplane. Можете ли вы объяснить, как это работает? И каков ваш опыт использования этих двух инструментов вместе?

Маурисио: Демонстрация, представленная на основной сессии KubeCon, использует Crossplane, vcluster и Knative, все они работают вместе вокруг этой концепции создания внутренних платформ разработки. Crossplane используется для абстрагирования места создания облачных ресурсов. С помощью Crossplane мы можем декларативно создавать кластеры Kubernetes во всех основных облачных провайдерах, но создание этих кластеров стоит дорого и требует времени. Именно здесь использование vcluster может сэкономить ваше время и деньги. Потому что, к моему удивлению, создание виртуального кластера — это просто установка диаграммы Helm в ваш существующий кластер. Мы можем использовать Crossplane Helm Provider для создания виртуального кластера внутри Crossplane Composition, и это именно то, что делает моя демонстрация. Но vcluster на этом не останавливается, потому что с vcluster Plugins вы можете совместно использовать инструменты между хост-кластером и виртуальными кластерами. Демонстрация показывает, как вы можете активировать свои виртуальные кластеры с помощью таких инструментов, как Knative Serving (для динамического автоматического масштабирования и расширенного управления трафиком), не устанавливая Knative Serving в каждом кластере. В сценарии, где у вас есть 10 команд, работающих в разных виртуальных кластерах и использующих такие инструменты, как Knative Serving, вы экономите на установке и запуске 9 установок Knative Serving.

Богатый: Ваша демонстрация посвящена созданию среды для разработчиков. Как вы думаете, что делает vcluster отличным инструментом для сред разработки?

Маурисио: vclusters лучше, чем пространства имен, потому что они обеспечивают большую изоляцию и дешевле, чем полноценные кластеры. Предположим, у вас есть разработчики, работающие с ресурсами кластера, такими как CRD, и инструментами, которые необходимо установить для выполнения своей работы. В этом случае виртуальные кластеры дадут им свободу работать с выделенным API-сервером Kubernetes, где они будут иметь полную свободу делать то, что им нужно. Используя vcluster, вы можете предоставить своим командам разработчиков полный доступ к своим выделенным серверам API без необходимости создавать, поддерживать и оплачивать полноценные плоскости управления Kubernetes.

Богатый: В пространстве Kubernetes так много новых инструментов, и их количество постоянно увеличивается. Пейзаж CNCF продолжает расти. На что вы обращаете внимание при оценке новых облачных инструментов с открытым исходным кодом?

Маурисио: Я оцениваю их (проектное) сообщество, и в последние два года меня очень заинтересовали инструменты, которые вписываются в историю создания внутренних платформ для разработчиков, поскольку я давно работаю в этой сфере. Большая часть моей работы в пространстве с открытым исходным кодом связана с тем, чтобы помочь разработчикам повысить производительность при создании своего программного обеспечения.

Если вы оцениваете проекты с открытым исходным кодом / CNCF, проверьте уровень их зрелости, кто (какая компания или компании) спонсирует проект и насколько здорово их сообщество. Посмотрите, какие компании активны на своих форумах сообщества или в слабых каналах, — это отличная проверка, чтобы увидеть, пытаются ли другие компании в вашей отрасли решить те же проблемы, с которыми вы сталкиваетесь.

Богатый: В последние несколько лет большое внимание уделялось роли инженера платформы. Как вы думаете, какие большие проблемы стоят сегодня перед разработчиками платформ?

Маурисио: В последнее время я пишу об этих темах в своем блоге, вы можете прочитать об этом здесь -> Проблемы создания платформ на основе Kubernetes. Часть 1, Часть 2, Часть 3Часть 4

Но большая проблема в настоящее время состоит в том, чтобы идти в ногу со всем, что происходит в пространстве Cloud Native, поэтому вам нужно искать инструменты, которые:

  • Будьте готовы к развороту: ищите инструменты, которые предоставят вам правильные абстракции, чтобы иметь возможность развернуться, если что-то изменится. Crossplane — крупный игрок в этой области, но есть и другие проекты, на которые стоит обратить внимание. Если вы действительно занимаетесь созданием платформ, вам следует проверить проект, который, я надеюсь, будет передан в дар CNCF под названием Кратикс. Эти люди работают над предоставлением правильных абстракций для создания платформ, позволяющих командам платформ сосредоточиться на решении, какие проекты они хотят использовать и как эти проекты будут работать вместе.
  • Повторное использование вместо создания: постарайтесь разделить проблему, которую вы пытаетесь решить, на две разные группы: 1) общая проблема, с которой сталкивается каждая компания; 2) очень специфическая задача, специфичная для вашей компании. Если вы ищете инструменты для решения проблем в первой корзине, убедитесь, что вы не создаете собственное решение. Если вы ищете инструменты для решения проблем из второй корзины, вам нужно сосредоточить свой поиск на комбинации существующих инструментов, которые могут выполнить работу, чтобы убедиться, что вы не тратите время и усилия на изобретение велосипеда только потому, что доступные инструменты не соответствует вашим требованиям на 100%.
  • Интеграция с экосистемой: когда вы смотрите на конкретный инструмент, убедитесь, что он хорошо интегрируется с другими инструментами в экосистеме. Не обманывайтесь тем фактом, что все они являются проектами Kubernetes. В зависимости от того, как вы хотите, чтобы инструменты работали вместе, вашей команде разработчиков платформы может потребоваться значительное количество времени, чтобы заставить эти инструменты работать для вашего конкретного варианта использования.
  • Индивидуальный опыт разработчиков — лучший способ продвижения вашей платформы: вам нужно потратить много времени и усилий на создание потрясающих приложений для разработчиков, чтобы ваши команды имели правильные инструменты для выполнения своей работы. Эти возможности для разработчиков обеспечиваются инструментами, которые команда разработчиков платформы выбирает для использования, и постоянным улучшением того, как команды разработчиков приложений взаимодействуют с платформой.

Если вы занимаетесь созданием платформ, я сейчас пишу книгу под названием «Непрерывная доставка для Kubernetes», где я рассказываю о таких инструментах, как Tekton, Crossplane, vcluster, Keptn, Knative, ArgoCD, Helm и других, для создания платформ, ориентированных на более эффективную доставку большего количества программного обеспечения.

Рич: Спасибо за ваше время, Маурисио.

Если вы хотите узнать больше о vcluster, посетите наш vcluster.com ссылки на документы, репозиторий GitHub и Slack нашего сообщества. Вы можете найти Маурисио в Твиттере по адресу @салабойи Рич в @richburroughs.