Как запустить Google Cloud Code локально
Разработка облачных приложений с помощью Google Cloud Code может значительно улучшить ваш рабочий процесс. Как человек, глубоко вовлеченный в стратегии "cloud-first", я наблюдал общие проблемы, с которыми сталкиваются разработчики при переходе между локальными средами и облачными развертываниями. Стремление к эффективности и бесшовной интеграции часто побуждает нас искать инструменты, способные устранить этот разрыв. Google Cloud Code выделяется как мощное решение, разработанное для переноса опыта облачной разработки непосредственно в вашу интегрированную среду разработки (IDE).
Cloud Code — это комплексное расширение, которое интегрирует сервисы Google Cloud, такие как Google Kubernetes Engine (GKE) и Cloud Run, непосредственно в вашу IDE. Эта интеграция позволяет вам создавать, запускать и отлаживать облачные приложения в вашей привычной среде разработки, эффективно устраняя необходимость постоянного переключения контекста. Он поддерживает весь жизненный цикл разработки, от первоначального создания до постоянного мониторинга, предоставляя непрерывную обратную связь на каждом этапе. Cloud Code доступен для VS Code, IntelliJ и по умолчанию интегрирован в Редактор Cloud Shell. .
Краткое резюме: Что предлагает Cloud Code
- Интеграция с IDE: Работает с VS Code, IntelliJ и Редактором Cloud Shell.
- Полный жизненный цикл разработки: Поддерживает создание, запуск, отладку и мониторинг облачных приложений.
- Поддержка GKE и Cloud Run: Легко интегрируется с Google Kubernetes Engine и сервисами Cloud Run.
- Локальная эмуляция: Разрабатывайте и отлаживайте сервисы Cloud Run локально с помощью встроенного эмулятора.
- Помощь ИИ: Интегрируется с Gemini Code Assist для генерации кода и решения проблем.
- Управление секретами: Встроенная поддержка Google Secret Manager.
- Кастомизация: Позволяет использовать пользовательские образы контейнеров Cloud Shell и настраивать среду.
Функциональность Cloud Code
Cloud Code предоставляет широкий спектр функций, предназначенных для ускорения разработки облачных приложений. Он интегрируется с Google Cloud SDK для упрощенной аутентификации и включает исполняемые примеры и предварительно настроенные сниппеты, которые помогут вам быстро начать проекты. . Хотя он в первую очередь оптимизирован для Google Cloud, он достаточно гибок, чтобы работать с любой облачной платформой.
Расширение упрощает создание кластеров Google Cloud и улучшает интеграцию основных инструментов, таких как Cloud Source Repositories, Cloud Build и Cloud Client Libraries. Для разработчиков, работающих с Kubernetes, Cloud Code поддерживает стандартные контейнерные инструменты командной строки, такие как Minikube и kubectl. . Он позволяет создавать и выполнять новые приложения GKE, а также изменять существующие файлы YAML. Более того, поддержка модулей Skaffold позволяет независимо разрабатывать и отлаживать отдельные компоненты приложений GKE.
Cloud Code также оптимизирует рабочий процесс разработки для сервисов Cloud Run, упрощая их создание, развертывание и мониторинг. Значительным преимуществом является возможность локальной сборки и отладки этих сервисов с использованием встроенного эмулятора Cloud Run, что может сэкономить значительное время развертывания. Расширение дополнительно помогает в миграции приложений Linux в контейнеры с помощью встроенной функции container-diff и поддерживает сборку готовых к производству образов контейнеров непосредственно из исходного кода с использованием Google Cloud Buildpacks — и все это без необходимости использования Dockerfile.
Управление конфиденциальными данными становится простым благодаря встроенной поддержке Secret Manager в Cloud Code. Через специальный вид Secret Manager вы можете безопасно создавать, просматривать и обновлять конфиденциальную информацию, такую как ключи API и пароли. Расширение также включает браузер библиотеки API для обнаружения и активации различных Cloud API, а также встроенные инструменты для управления виртуальными машинами Compute Engine и разработки прокси-серверов Apigee API.

Источник: sethvargo.com
Интерфейс Secret Manager в Cloud Code обеспечивает безопасное, централизованное управление конфиденциальными данными, такими как ключи API и учетные данные, непосредственно в вашей IDE.
Помощь на основе ИИ
Cloud Code интегрирует расширенные возможности программирования на основе ИИ через Gemini Code Assist Standard и Enterprise. Эти интеллектуальные инструменты разработаны, чтобы помочь вам генерировать код и более эффективно решать проблемы, значительно оптимизируя процесс разработки. Важно отметить, что Gemini Code Assist является отдельным плагином от Cloud Code и для правильной работы требует подключения к Google Cloud, а также активации определенных разрешений IAM.

Источник: datacamp.com
Gemini Code Assist предоставляет возможности генерации кода и решения проблем на основе ИИ непосредственно в вашей среде разработки, повышая производительность.
Cloud Code в Редакторе Cloud Shell
Редактор Cloud Shell, онлайн-среда разработки и эксплуатации, доступная непосредственно через ваш браузер, предлагает предварительно настроенную среду, специально оптимизированную для Cloud Code. Эта среда поставляется с предварительно установленными утилитами, такими как инструмент командной строки gcloud и kubectl, что делает ее идеальной для разработки, сборки, отладки и развертывания облачных приложений без дополнительной настройки.
Терминал Cloud Shell
Cloud Shell предоставляет два основных инструмента: Терминал Cloud Shell и Редактор Cloud Shell. Терминал предлагает полнофункциональную облачную оболочку, работающую на Linux-машине на базе Debian для конкретной сессии. Он включает Google Cloud SDK и основные инструменты разработчика, такие как git, kubectl, kubectx, curl, python3 и
tmux.
Ваш каталог $HOME в Cloud Shell сохраняется между сессиями, поскольку он хранится в Cloud Storage. Вы можете удобно запустить Cloud Shell через console.cloud.google.com, где автоматически определяется ваш идентификатор проекта GCP. Cloud Shell поддерживает несколько вкладок и окон, а его интегрированный tmux обеспечивает сохранение сессий. Кроме того, автоматическая переадресация портов доступна через функцию Web Preview, упрощая доступ к запущенным приложениям.
Редактор Cloud Shell
Редактор Cloud Shell построен на основе открытого исходного кода
Eclipse Theia project,
предлагая пользовательский опыт, схожий с VS Code. Вы можете получить к нему доступ через командную строку (cloudshell edit), через меню Cloud Shell или напрямую, перейдя по URL-адресу ide.cloud.google.com. Редактор имеет интегрированный терминал и позволяет широко настраивать его параметры. Для более продвинутых случаев использования вы можете создавать пользовательские образы контейнеров Cloud Shell для предоставления полностью специфичного для сессии экземпляра с дополнительными пакетами, определяя эти образы с помощью
Dockerfile.
Эти пользовательские образы могут быть собраны локально, протестированы, а затем отправлены в Cloud Source Repository и Container Registry. Для еще большей гибкости возможен удаленный доступ SSH к Cloud Shell с вашей локальной машины, а ваш базовый каталог может быть смонтирован локально.
Разработка с помощью Cloud Code локально
Cloud Code разработан для поддержки различных локальных сред разработки. Он позволяет интегрировать кластеры от других облачных провайдеров в ваш KubeConfig и без проблем работает с Docker Desktop для локальных кластеров. Для правильной работы ваш стандартный файл ~/.kube/config должен включать локальный кластер, который также должен быть установлен как текущий контекст.
Создание и развертывание локальных приложений
При создании приложения из шаблона в Cloud Code вы выберете тип приложения (например, приложение Kubernetes) и предпочитаемый язык программирования. Примеры приложений обычно имеют схожую структуру, с конфигурациями, хранящимися в .vscode, и спецификациями Pod в kubernetes-manifests. Крайне важно использовать кластер, не предназначенный для production, в целях разработки и тестирования. Перед выполнением убедитесь, что контекст Kubernetes установлен правильно. Конфигурация выполнения Cloud Code: Develop on Kubernetes предлагает опции для настройки вашего развертывания.
Интеграция с Minikube
Cloud Code обеспечивает надежную интеграцию с Minikube. Вы можете легко запускать кластеры Minikube, запускать на них свои приложения и просматривать детали развертывания в рамках сеансов разработки. URL-адреса переадресации портов обеспечивают удобный доступ к вашему запущенному приложению через браузер. Для интерактивной отладки интерактивный терминал можно открыть непосредственно внутри контейнера через обозреватель сеансов разработки. Кластеры Minikube также можно приостанавливать или останавливать по мере необходимости.
Отладка и логирование
Отладка является основной функцией Cloud Code, позволяющей устанавливать точки останова в вашем коде для эффективного управления сеансами отладки. Доступно логирование в реальном времени из запущенных Pod, отображаемое либо в выводе терминала, либо через Kubernetes Explorer, предоставляя немедленное понимание поведения вашего приложения. Чтобы избежать ненужных затрат, не забывайте удалять ресурсы в Google Cloud Console после завершения разработки или тестирования.
Разработка Cloud Functions
Для разработки Cloud Functions можно установить и запустить Functions Framework локально. Вы можете загрузить исходный код развернутой функции из Google Cloud и установить локальные зависимости в локальной папке функции. Functions Framework запускается с использованием команд, таких как npx functions-framework --target=entryPoint для Node.js или functions-framework --target=entryPoint для Python. entryPoint для вашей функции можно найти в файле launch.json.
Локальное тестирование сервисов Cloud Run
Сервисы Cloud Run также могут быть протестированы локально с использованием Docker или Docker с доступом к Google Cloud. Переменная окружения PORT используется для указания порта, через который ваше приложение принимает HTTP/HTTPS запросы. При локальном запуске с Docker необходима учетная запись сервиса с парой ключей, поскольку учетная запись сервиса по умолчанию недоступна в этом контексте. Google Cloud Client Libraries могут быть настроены для аутентификации с сервисами Google Cloud внутри вашего локального контейнера. Инструмент командной строки gcloud beta code dev предоставляет удобный способ эмуляции Cloud Run, сборки контейнеров из исходного кода и их автоматической пересборки при изменениях.
Часто задаваемые вопросы о локальной разработке с Cloud Code
Вот некоторые распространенные вопросы и ответы относительно локальной разработки с Google Cloud Code:
- Какие IDE поддерживает Cloud Code?
Cloud Code доступен для VS Code, IntelliJ и по умолчанию интегрирован в Редактор Cloud Shell.
- Могу ли я использовать Cloud Code с другими облачными провайдерами?
Хотя Cloud Code оптимизирован для Google Cloud, он может работать с любой облачной платформой. Он поддерживает добавление кластеров от других провайдеров в ваш KubeConfig.
- Нужен ли мне Docker для локальной разработки Cloud Run?
Да, сервисы Cloud Run можно тестировать локально с Docker или Docker с доступом к Google Cloud. Вам может потребоваться учетная запись сервиса с парой ключей для аутентификации.
- Как отлаживать приложения, запущенные в Kubernetes, с помощью Cloud Code?
Cloud Code позволяет устанавливать точки останова в вашем коде и просматривать логи в реальном времени из запущенных Pod непосредственно в вашей IDE или через Kubernetes Explorer.
- Автоматически ли включен Gemini Code Assist с Cloud Code?
Нет, Gemini Code Assist — это отдельный плагин, который требует подключения к Google Cloud и активации разрешений IAM для работы.
Заключение
Google Cloud Code значительно упрощает процесс разработки облачных приложений в IDE. Благодаря бесшовной интеграции сервисов Google Cloud, предоставлению помощи на основе ИИ и надежным возможностям локальной разработки и отладки, он направлен на повышение производительности разработчиков и уменьшение сложностей, часто связанных с облачными развертываниями. Использование Cloud Code может привести к более эффективному и приятному опыту разработки, позволяя вам больше сосредоточиться на инновациях и меньше на сложностях окружающей среды.
Источник: YouTube