Представляем пакеты сборки Google Cloud - упрощенные образы контейнеров

Как разработчик, создающий новое приложение, вы хотите сосредоточиться на написании кода, а не на его контейнеризации. И если вы уже используете контейнеры, вы знаете, что создание хорошего и безопасного образа контейнера может быть сложным и трудоемким. Сегодня мы запускаем широкую поддержку пакетов сборки в Google Cloud — технологии с открытым исходным кодом, которая позволяет быстро и легко создавать безопасные, готовые к работе образы контейнеров из исходного кода и без файла Dockerfile.

В основе этого выпуска — набор сборочных пакетов и сборщиков с открытым исходным кодом. Основываясь на спецификации buildpacks v3 CNCF, эти buildpacks создают образы контейнеров, которые соответствуют передовым методам и подходят для работы на всех наших контейнерных платформах: Cloud Run (полностью управляемый), Anthos и Google Kubernetes Engine (GKE). Эти пакеты сборки усилены и протестированы в производственной среде; с марта они широко используются в большинстве сборок для App Engine и Cloud Functions.
buildpacks.io/

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

Вы можете опробовать пакеты сборки Google Cloud прямо сейчас. Чтобы выполнить полное развертывание с помощью проекта Go, пакетов сборки и Cloud Run, просто нажмите кнопку «Выполнить в Google Cloud».

Чтобы попробовать сборки пакетов локально с приложением, установите Docker и инструмент CLI 'pack', затем запустите:
cd my-app
pack build my-app --builder gcr.io/buildpacks/builder


(Поддерживаются Go, Java, Node, Python и .Net. Для правильной сборки им может потребоваться дополнительная настройка.)

Или, если вы не хотите ничего устанавливать, вы можете запустить сборку на основе buildpack в Cloud Build, а затем легко развернуть в Cloud Run:
gcloud alpha builds submit --pack image=gcr.io/[project-id]/my-app
gcloud run deploy --image=gcr.io/[project-id]/my-app --platform managed


Как работают сборочные пакеты?
Сборочные пакеты распространяются и выполняются в образах OCI, называемых сборщиками. У каждого строителя может быть один или несколько сборочных пакетов. Конструктор пакетов сборки Google Cloud, который мы выпускаем сегодня, доступен по адресу gcr.io/buildpacks/builder.

Строители имеют возможность автоматически определять язык вашего исходного кода. Это достигается с помощью исполняемого файла bin / detect в пакете сборки. Сценарии обнаружения вызываются в определенном порядке и останавливаются после того, как соответствующее количество пакетов сборки подключилось к сборке. Например, большинство сборочных пакетов Node.js проверяют наличие файла packages.json. Вы также можете вручную указать, какой пакет сборки использовать, тем самым пропуская этап автоопределения.

После выбора buildpack выполняется его bin / build. Этот сценарий преобразует ваш исходный код в исполняемый артефакт, обычно выполняя такие действия, как установка зависимостей или компиляция кода.

Результат этого шага сборки затем добавляется поверх «запущенного» базового образа OCI, создавая окончательный образ контейнера, который затем можно запускать на платформе по вашему выбору.

Пакеты сборки Google Cloud
Пакеты сборки Google Cloud оптимизированы для обеспечения безопасности, скорости и возможности повторного использования. Они позволяют встраивать приложения и функции в образы контейнеров. При создании функции они упаковывают ее с помощью платформы Google Cloud Functions Framework с открытым исходным кодом.

Пакеты сборки Google Cloud используют управляемый базовый образ Ubuntu 18.04, который регулярно сканируется на наличие уязвимостей; любые обнаруженные уязвимости автоматически исправляются. Это гарантирует, что при сборке исходного кода с помощью пакетов сборки он будет максимально безопасным.

Пакеты сборки Google Cloud также можно настроить с помощью дополнительных системных пакетов или в соответствии с конкретными потребностями вашей команды разработчиков.

Сами пакеты сборки написаны на Go. Вместо того, чтобы создавать один пакет сборки для каждого языка, вы можете комбинировать меньшие модульные пакеты сборки вместе. Например, существует пакет сборки NPM, который (что неудивительно) устанавливает пакеты узлов. Это, конечно, используется для сборок Node.js, но его также можно использовать для других языков и фреймворков, которые используют пакеты NPM (например, Ruby on Rails).

Широкая поддержка в Google Cloud
В дополнение к пакетам сборки с открытым исходным кодом мы поддерживаем пакеты сборки для ряда наших продуктов:
  • Cloud Build теперь изначально поддерживает сборочные пакеты через инструмент командной строки gcloud: gcloud alpha builds submit --pack image = gcr.io / [project-id] / my-app. (см. документацию)
  • Cloud Run — непрерывное развертывание в Cloud Run (с помощью триггеров Cloud Build) можно настроить для использования пакетов сборки (см. Документацию).
  • App Engine. Пакеты сборки теперь являются механизмом по умолчанию для исходных развертываний в самых новых средах выполнения App Engine. Примечательно, что пакеты сборки позволяют развертывать Java на основе исходного кода (ранее поддерживались только развертывания на основе JAR). Все недавно выпущенные среды выполнения будут использовать пакеты сборки.
  • Облачные функции — как и App Engine, пакеты сборки являются механизмом по умолчанию для создания развернутых функций.
  • Облачный код — среды разработки облачного кода могут создавать исходный код с помощью пакетов сборки и развертывать полученные контейнеры непосредственно в GKE.
  • Skaffold поддерживает разработку в реальном времени с помощью пакетов сборки. По мере того как вы редактируете исходный код, пакеты сборки могут непрерывно перестраивать ваше приложение, позволяя вам предварительно просматривать изменения в локальном экземпляре вашего приложения.
  • Cloud Shell — инструмент CLI пакета теперь установлен в Cloud Shell по умолчанию. Это позволяет выполнять сборочные пакеты в Cloud Shell без установки дополнительных пакетов.

Начни сегодня
Узнайте больше о пакетах сборки Google Cloud в репозитории GitHub. Затем разверните образец приложения с помощью пакетов сборки одним нажатием кнопки.
github.com/GoogleCloudPlatform/buildpacks
github.com/GoogleCloudPlatform/buildpack-samples#buildpack-samples
Выделенные серверы OVH
Выделенные серверы Hetzner

0 комментариев

Оставить комментарий