Сосредоточьтесь на своем коде, а не на инфраструктуре!
Многие рассказы хвалят Kubernetes как отличный инструмент для автоматизации развертывания, масштабирования и управления контейнерными приложениями. И я поддерживаю это; Kubernetes делает многое, чтобы облегчить проблемы и решить проблемы архитектур микросервисов.
Однако локальная разработка на Kubernetes может стать проблемой. Типичный рабочий процесс состоит из нескольких шагов; протестируйте свое приложение локально, создайте и пометьте образ докера, создайте конфигурацию развертывания и, наконец, запустите свое приложение в Kubernetes. Если есть ошибка или необходимо интегрировать новую функцию, разработчик должен выполнить ту же процедуру с нуля. В своей презентации для Next ’19 инженеры Google назвали эту бесконечную петлю боли и страданий.
В предыдущем рассказе мы представили Skaffold, легкий проект с открытым исходным кодом от Google, который упрощает локальную разработку Kubernetes. Вы можете прочитать об этом здесь:
Но есть ли более естественный способ решить проблемы локальной разработки Kubernetes? Можем ли мы просто сосредоточиться на нашем коде и исключить инфраструктуру из нашей логики? Итак, введите Cloud Code!
Cloud Code - это набор инструментов разработки для Google Cloud Platform, который включает расширения IDE для Visual Studio Code и нескольких продуктов JetBrains. Он упрощает разработку, развертывание и отладку в локальных или удаленных кластерах Kubernetes. Ниже он использует Skaffold, поэтому давайте углубимся в то, почему и как его использовать!
Learning Rate - это информационный бюллетень для тех, кто интересуется миром AI и MLOps. Каждую пятницу вы будете получать от меня обновления и мысли о последних новостях и статьях об искусственном интеллекте. Подпишитесь здесь!
Все, что вам может понадобиться
Cloud Code - это расширение IDE, которое обеспечивает итеративную разработку и упрощает отладку как на локальных, так и на удаленных кластерах. Инструмент предоставляет несколько функций, которые позволяют сосредоточиться на интересной части вашей работы.
- Помогает с файлами конфигурации Kubernetes; Cloud Code предлагает варианты завершения, линтинг, встроенную документацию и фрагменты кода. Написание файлов конфигурации Kubernetes никогда не было таким простым.
- Автоматизирует процесс развертывания; Cloud Code автоматизирует шаги рабочего процесса, которые мы видели в прологе. С помощью одной команды мы можем создать, отправить и развернуть наше приложение, а также автоматически повторно развернуть его при любом изменении. Более того, отладка на удаленных кластерах похожа на отладку кода на вашем ноутбуке.
- Предлагает мир коммунальных услуг; Cloud Code настраивает переадресацию портов и точки входа для отладки и предоставляет графический пользовательский интерфейс для взаимодействия с развертываниями.
Установка
Чтобы установить Cloud Code, просто добавьте его как расширение в свою любимую IDE. Например, я предпочитаю использовать Visual Studio Code. Таким образом, чтобы добавить его в VS Code, найдите его на панели расширений и нажмите «Установить». Он добавит один или несколько новых значков на вашу боковую панель.
Простой пример
В этом разделе мы будем использовать простое приложение Flask, которое просто выводит на экран «Hello World». Мы будем использовать шаблоны, доступные через Cloud Code. Выбранная среда IDE - VS Code, поэтому в нижней части экрана выберите Cloud Code
, а затем New Application
. Затем выберите Kubernetes Application
, шаблон Python (Flask): Hello World
и путь, по которому вы хотите инициализировать свой проект.
В шаблоне уже есть src
папка с логикой нашего приложения, kubernetes-manifests
папка с файлами конфигурации YAML развертывания и обслуживания и skaffold.yaml
файл, устанавливающий конфигурацию Skaffold.
Затем мы можем выбрать пункт меню Cloud Code
в меню внизу и выбрать Run on Kubernetes
. Затем вам следует выбрать кластер, в котором вы развертываете, и реестр, чтобы отправить образ контейнера. Я развертываю приложение на локальном кластере докеров; Таким образом, нет необходимости выбирать реестр. Cloud Code создаст ваши изображения, пометит их и отправит в реестр. Затем он развернет его в выбранном вами кластере. Если вы выполняете цикл впервые, это может занять некоторое время!
Если процесс завершится успешно, вам будет предоставлена ссылка для просмотра результата. Затем, если вы что-то измените, смотрите, как оно обновляется вживую - пока вы сохраняете файл!
Наконец, вы можете легко отлаживать свой код. В окне отладки VS Code выберите Debug on Kubernetes
и нажмите кнопку ▶! Затем установите точку останова, обновите приложение в браузере и наблюдайте, как отладчик делает свое волшебство.
Чтобы глубже погрузиться в Cloud Code, ознакомьтесь с его документацией и особенно с руководствами по быстрому запуску для выбранной вами IDE. Например, здесь - руководство по VS Code.
Заключение
В этой истории мы увидели, как разорвать бесконечный цикл боли и страданий, с которым сталкивается каждый разработчик, пытающийся разработать локально на Kubernetes. Мы представили Cloud Code, мощное расширение IDE, доступное для Visual Studio Code и нескольких продуктов JetBrains.
Cloud Code оптимизирует рабочий процесс разработки, предлагая широкий набор функций, которые автоматизируют процесс создания, добавления тегов и развертывания образов. Кроме того, он обеспечивает отладку на локальных и удаленных кластерах Kubernetes, а также полную поддержку создания файлов конфигурации Kubernetes.
Learning Rate - это информационный бюллетень для тех, кто интересуется миром AI и MLOps. Каждую пятницу вы будете получать от меня обновления и мысли о последних новостях и статьях об искусственном интеллекте. Подпишитесь здесь!
об авторе
Меня зовут Димитрис Поулопулос, я инженер по машинному обучению, работающий в Arrikto. Я разработал и внедрил AI и программные решения для крупных клиентов, таких как Европейская комиссия, Евростат, МВФ, Европейский центральный банк, ОЭСР и IKEA.
Если вы хотите прочитать больше сообщений о машинном обучении, глубоком обучении, науке о данных и DataOps, подпишитесь на меня в Medium, LinkedIn или @ james2pl в Twitter. Кроме того, посетите страницу Ресурсы на моем веб-сайте, где можно найти отличные книги и курсы с самым высоким рейтингом, чтобы начать создавать свой собственный учебный план по науке о данных!