Русский
Русский
English
Статистика
Реклама

Cloud run

Перевод Мой восьмилетний квест по оцифровке 45 видеокассет. Часть 1

23.10.2020 12:08:13 | Автор: admin
За последние восемь лет я перевозил эту коробку с видеокассетами в четыре разные квартиры и один дом. Семейные видеозаписи из моего детства.



Спустя более 600 часов работы я, наконец, оцифровал и нормально их организовал, так что кассеты можно выбросить.

Вот как сейчас выглядит отснятый материал:




Все семейные видео оцифрованы и доступны для просмотра с приватного медиасервера

Получилось 513 отдельных видеоклипа. У каждого название, описание, дата записи, теги для всех участников с указанием возраста на момент записи. Всё лежит на приватном медиасервере, доступ к которому есть только у членов семьи, а хостинг стоит меньше 1 доллара в месяц.

Эта статья рассказывает обо всём, что я сделал, почему для этого понадобилось восемь лет и как добиться аналогичного результата гораздо проще и быстрее.

Первая наивная попытка


Примерно в 2010 году моя мама купила какой-то конвертер VHS в DVD и прогнала через него все наши домашние видео.


Оригинальные DVD, которые записала мама (не знаю, что случилось с пропавшими буквами)

Проблема в том, что мама сделала только один комплект DVD. Все родственники живут в разных штатах, так что было делало неудобно передавать диски по кругу.

В 2012 году сестра подарила мне эти DVD-диски. Я скопировал видеофайлы и выложил всё в облачное хранилище. Проблема решена!


DVD-рипы семейных видео в хранилище Google Cloud

Через несколько недель я спросил, смотрел ли кто эти записи. Оказалось, что никто не смотрел. Даже я не смотрел. В эпоху YouTube глупо скачивать трёхчасовые файлы неизвестного содержания в поисках интересных кадров.

Только моя мама обрадовалась: Отлично, сказала она, теперь можно, наконец, выбросить все эти кассеты?

Ой-ёй. Это страшный вопрос. А если мы пропустили какие-то записи? Что, если кассеты можно оцифровать с более высоким качеством? Что, если на этикетках важная информация?

Мне всегда было неудобно выбрасывать оригиналы, пока нет абсолютной уверенности, что видео скопировано с максимально возможным качеством. Таким образом, пришлось самому взяться за дело.

Я даже не подозревал, во что ввязываюсь.

Звучит не так уж и сложно


Если вы не понимаете, почему это заняло у меня восемь лет и сотни часов, я вас не виню. Я тоже думал, что всё будет легко.

Вот как выглядит процесс оцифровки от начала до конца:



Точнее, так он выглядит в теории. Вот как получилось на практике:



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

Чтобы сохранить рассудок читателя, я излагаю процесс так, будто он планомерно двигался вперед, чтобы не заставлять вас постоянно отпрыгивать назад и всё переделывать, как приходилось мне.

Шаг 1. Захват видео


Ладно, вернёмся в 2012 год. Маме очень хотелось выбросить кассеты, которые она хранила двадцать лет, поэтому при первой встрече она сразу вручила мне огромную картонную коробку. Так начался мой квест по оцифровке.

Очевидным решением было поручить работу профессионалам. Множество компаний занимаются оцифровкой, а некоторые специализируются именно на домашнем видео.

Но я довольно чувствительно отношусь к приватности и мне не хотелось, чтобы незнакомые люди рассматривали наше семейное видео с интимными моментами личной жизни, включая моё обучение горшку (в соответствующем возрасте; ничего странного!). И ещё я думал, что в оцифровке нет ничего сложного.

Спойлер: это оказалось действительно трудно.

Первая попытка захвата видео


У отца всё ещё хранился старый семейный видеомагнитофон, поэтому я попросил к следующему семейному ужину откопать его из подвала. Я купил дешёвый адаптер RCA-USB на Amazon и приступил к делу.


Устройство захвата видео TOTMC, первое из множества устройств A/V, которые я купил во время многолетнего квеста

Для обработки видео с устройства захвата USB я использовал программу VirtualDub, версия 2012 года немного устарела, но не критично.


Кадры в программе VirtualDub, как я в возрасте четырёх лет читаю книгу своему отцу

Напасть с искажением звука


Когда я начал процесс редактирования, то заметил небольшой рассинхрон аудио и видео. Ладно, без проблем. Я могу немного сдвинуть звук.

Через десять минут он снова рассинхронизировался. Разве я мало сдвинул его в первый раз?

До меня постепенно дошло, что аудио и видео не просто рассинхронизированы, они реально записываются с разной скоростью. На протяжении всей ленты они расходятся всё больше и больше. Для синхронизации приходилось вручную настраивать звук каждые несколько минут.


Если ваша установка захватывает звук и видео с разной скоростью, то единственным решением является коррекция звука вручную каждые несколько минут

Представляете, как трудно отличить звук на 10 миллисекунд раньше или на 10 миллисекунд позже? Это действительно трудно! Судить сами.

На этом видео я играю со своим бедным, терпеливым котёнком, которого звали Black Magic. Звук немного не синхронизирован. Определите, он опережает картинку или идёт с опозданием?


Пример видеоклипа с рассинхроном звука и картинки

В этом месте Black Magic прыгает, фрагмент с замедлением в пять раз:


Рассинхрон звука и картинки, замедление в пять раз

Ответ: звук идёт с опозданием в несколько миллисекунд.

Может, потратить лишнюю сотню долларов вместо сотен часов личного времени?


Одна только коррекция звука потребовала многих часов утомительной, сводящей с ума работы. В конце концов мне пришло в голову, что можно избежать рассинхрона, если использовать более качественное и дорогое устройство видеозахвата. После некоторого исследования я купил новое на Amazon:


Моя вторая попытка приобрести устройство для видеозахвата

Даже с новым устройством рассинхрон никуда не исчез.

Видеомагнитофон с приставкой супер


Может, проблема в видеомагнитофоне. На форумах по оцифровке говорили, что рассинхрона не будет на видеомагнитофоне с корректором времени (time-based corrector, TBC), эта функция есть на всех видеомагнитофонах Super VHS (S-VHS).

Ну конечно! Зачем я возился с дурацким обычным видеомагнитофоном, когда есть супер-VCR, который решает проблему?

Никто уже не производит видеомагнитофоны S-VHS, но они по-прежнему доступны на eBay. За 179 долларов я купил модель JVC SR-V10U, которая вроде хорошо подходит для оцифровки VHS:


Винтажный видеомагнитофон JVC SR-V10U, который я купил на eBay за 179 долларов

Супер-видеомагнитофон пришёл по почте. После нескольких месяцев борьбы с рассинхроном звука я был вне себя от радости, что появилось оборудование, которое решит все мои проблемы.

Я открыл коробку, всё подключил но звук по-прежнему записывался с другой скоростью. Эх.

Утомительный поиск, устранение неисправностей и многолетняя борьба


Я приступил к жалким попыткам устранить неполадки. На это было больно смотреть. Каждый раз я вытаскивал всё оборудование из шкафа, заползал на коленях за рабочий стол, чтобы всё подключить, пытался захватить видео и опять наблюдал, что ничего не получается.

Вот мне попался случайный пост на форуме от 2008 года, где говорится об установке какого-то странного китайского драйвера без подписи Это ужасная идея, но я в отчаянии. Впрочем, он не помог.

Я пробовал разные программы для оцифровки. Купил специальную кассету VHS, чтобы прочистить магнитные головки видеомагнитофона. Купил третье устройство видеозахвата. Ничего не помогло.

Я неизменно сдавался, всё отключал и прятал оборудование в шкаф ещё на несколько месяцев.

Сдаёмся и отдаём кассеты профессионалам


Наступил 2018 год. Я перетаскал видеокассеты и тонны оборудования по четырём разных квартирам и собирался переехать из Нью-Йорка в Массачусетс. Я не мог найти силы снова их везти, потому что уже понял, что самостоятельно никогда не закончу этот проект.

Я спросил семью, можно ли отдать кассеты в фирму по оцифровке. К счастью, никто не возражал всем хотелось снова увидеть записи.

Я: Но это значит, что какая-то компания получит доступ ко всем нашим домашним видео. Тебя это устраивает?
Сестра: Да мне по барабану. Тебя одного это беспокоит. Погоди, так ты с самого начала мог просто заплатить кому-то?
Я: Э-э-э...

Оцифровка всех 45-ти кассет стоит $750. Кажется дорого, но к тому моменту я бы заплатил сколько угодно, лишь бы больше не разбираться с этим оборудованием.

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

Вот видео со сравнением профессиональной оцифровки и моих доморощенных попыток:


Сравнение профессиональной и самодельной оцифровки в видеоролике, где мама снимает мою первую попытку программирования

Шаг 2. Редактирование


В домашних съёмках около 90% материала скучны, 8% интересны, а 2% потрясающие. После оцифровки у вас ещё много работы.

Редактирование в Adobe Premiere


На кассете VHS длинный поток видеоклипов перемежается пустыми участками. Чтобы отредактировать ленту, вы должны определить, где начинается и заканчивается каждый клип.

Для редактирования я использовал Adobe Premiere Elements, которая стоит меньше $100 за пожизненную лицензию. Его важнейшая фича масштабируемая временная шкала. Она позволяет быстро найти границы сцены, а затем увеличить масштаб, чтобы найти точный видеокадр, где начинается или заканчивается клип.


Важнейшая временная шкала с масштабированием в Adobe Premiere Elements

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

  1. Открыть сырой файл, который содержит 30-120 минут видео.
  2. Отметить границы отдельного клипа.
  3. Экспортировать клип.
  4. Подождать 2-15 минут, пока завершится экспорт.
  5. Повторять шаги 2-4, пока не закончится лента.

Долгое ожидание означало, что я постоянно переключался между редактированием видео и какой-то другой задачей, переводя внимание туда-сюда в течение нескольких часов.

Другим недостатком была невоспроизводимость. Исправить небольшую ошибку было почти так же трудно, как сделать всё с нуля. Это сильно ударило по мне, когда дело дошло до публикации видео. Только тогда я понял, что для стриминга в интернете нужно было изначально экспортировать видео в формат, который нативно поддерживают веб-браузеры. Передо мной встал выбор: перезапустить утомительный процесс экспорта сотен клипов или перекодировать экспортированные видео в другой формат с ухудшением качества.

Автоматизация редактирования


После кучи времени, потраченного на ручную работу, я подумал, можно ли здесь как-то применить ИИ. Кажется, определение границ клипов подходящая задача для машинного обучения. Я знал, что точность будет не идеальной, но пусть он выполнит хотя бы 80% работы, а я исправлю последние 20%.

Я экспериментировал с инструментом под названием pyscenedetect, который анализирует видеофайлы и выдаёт временные метки, где происходят изменения сцены:

 $ docker run \    --volume "/videos:/opt" \    handflucht/pyscenedetect \    --input /opt/test.mp4 \    --output /opt \    detect-content --threshold 80 \    list-scenes[PySceneDetect] Output directory set:  /opt[PySceneDetect] Loaded 1 video, framerate: 29.97 FPS, resolution: 720 x 480[PySceneDetect] Downscale factor set to 3, effective resolution: 240 x 160[PySceneDetect] Scene list CSV file name format:  $VIDEO_NAME-Scenes.csv[PySceneDetect] Detecting scenes...[PySceneDetect] Processed 55135 frames in 117.6 seconds (average 468.96 FPS).[PySceneDetect] Detected 33 scenes, average shot length 55.7 seconds.[PySceneDetect] Writing scene list to CSV file:  /opt/test-Scenes.csv[PySceneDetect] Scene List:----------------------------------------------------------------------- | Scene # | Start Frame |  Start Time  |  End Frame  |   End Time   |----------------------------------------------------------------------- |      1  |           0 | 00:00:00.000 |        1011 | 00:00:33.734 | |      2  |        1011 | 00:00:33.734 |        1292 | 00:00:43.110 | |      3  |        1292 | 00:00:43.110 |        1878 | 00:01:02.663 | |      4  |        1878 | 00:01:02.663 |        2027 | 00:01:07.634 | ...

Инструмент действительно показал точность около 80%, но проверка его работы заняла больше времени, чем он сэкономил. Тем не менее, pyscenedetect сделал одно из самых важных открытий для всего проекта: определение границ сцены и экспорт клипов это отдельные задачи.

Я вспомнил, что я программист


До этого момента я считал редактированием всё, что делал в Adobe Premiere. Вырезание клипов из необработанных кадров казалось неразрывно связанным с поиском границ клипа, потому что именно так Premiere представлял эту задачу. Когда pyscenedetect распечатал таблицу метаданных, это заставило меня понять, что я могу отделить поиск сцен от экспорта видео. Это был прорыв.

Причина, по которой редактирование было таким утомительным и трудоёмким, заключалась в том, что мне приходилось ждать, пока Premiere экспортирует каждый клип. Если бы я записал метаданные в электронную таблицу и написал скрипт, который автоматически экспортирует видео, процесс редактирования пролетел бы незаметно.

Более того, электронные таблицы значительно расширили объём метаданных. Изначально я впихивал метаданные в название файла, но это их ограничивает. Наличие целой электронной таблицы позволило каталогизировать гораздо больше сведений о клипе, например, кто в нём присутствует, когда он записан и любые другие данные, которые я хочу показать во время демонстрации видео.


Гигантская электронная таблица с метаданными о моих домашних видео

Позже я смог использовать эти метаданные, чтобы добавить информацию к клипам, например, сколько нам всем было лет и подробное описание того, что происходит в клипе.


Функциональность электронных таблиц позволяет записывать метаданные, которые дают больше информации о клипах и облегчают их просмотр

Успех автоматизированного решения


Имея электронные таблицы, я написал скрипт, который нарезал сырое видео на клипы на основе данных в CSV.

Вот запись как это выглядит в действии:



К этому моменту я потратил сотни часов, нудно выбирая границы клипа в Premiere, нажимая экспорт, ожидая несколько минут, чтобы он закончился, а затем всё сначала. Мало того, процесс повторялся несколько раз на одних и тех же клипах, когда позже обнаруживались проблемы с качеством.

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

Часть 2


Оцифровка и редактирование видеоматериалов только половина дела. Нам ещё нужно найти удобный вариант публикации в интернете, чтобы все родственники смотрели семейное видео в удобном формате со стримингом как на YouTube.

Во второй части статьи я подробно расскажу, как поднять опенсорсный медиасервер со всеми видеоклипами, который стоит мне всего 77 центов в месяц.

P.S. От переводчика: Вторая часть выйдет сегодня во второй половине дня.



Подробнее..

Перевод Google признала сложность Kubernetes, поэтому разработала режим Автопилот

26.02.2021 18:20:16 | Автор: admin

Новый режим GKE более дорогой и менее гибкий, но зато проще и безопаснее



Автопилот в GKE управляет подами за вас

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

Чтобы упростить развёртывание и управление кластерами, компания представила всем клиентам GKE доступ к сервису Автопилот, который Google уже давно использует в собственных кластерах Borg. Это автоматическая конфигурация ресурсов на основе машинного обучения.

Несмотря на 6 лет прогресса, Kubernetes по-прежнему невероятно сложен, сказал Дрю Брэдсток (Drew Bradstock), руководитель продукта Google Kubernetes Engine (GKE), в интервью The Register. В последние годы мы видели, что многие компании принимают Kubernetes, но затем сталкиваются с трудностями.

GKE это платформа Kubernetes, которая работает в основном на Google Cloud Platform (GCP). Она также доступна и на других облаках или локально как часть Anthos.

Автопилот новый режим работы GKE, он более автоматизирован и предварительно настроен для сокращения операционных затрат на управление кластерами, оптимизации кластеров для продакшна и высокой доступности.


Использование Автопилота в собственной инфраструктуре Google, источник

В Kubernetes есть понятия кластеров (набор физических или виртуальных серверов), узлов (отдельные серверы), подов (блок управления, представляющий один или несколько контейнеров на узле) и самих контейнеров. GKE полностью управляется на уровне кластера. Автопилот распространяет это на узлы и поды.

Проще всего понять особенности и ограничения Автопилота из описания системы. Обратите внимание на предварительно настроенные параметры (pre-configured), которые нельзя изменить.

Сравнение режимов Autopilot и Standard

По сути, это ещё один способ резервирования и управления ресурсами GKE, который жертвует гибкостью ради удобства. Поскольку Google управляет большей частью конфигурации, то для подов Автопилота с распределением по многим зонам она гарантирует более высокий аптайм 99,9% (см. SLA).

В облаке Google регионы состоят из трёх или более зон. Размещение всех ресурсов в одной зоне менее надёжно, чем по нескольким зонам, а максимальную отказоустойчивость даёт расширение на несколько регионов. Кластеры на Автопилоте всегда распределены по регионам, а не зонам: это надёжнее, но дороже.

Другое ограничение Автопилота предустановленная операционная система Linux с Containerd, оптимизированная для контейнеров. Нет возможности использовать Linux с Docker или Windows Server. Максимальное количество подов на узел 32, а не 110, как на стандартном GKE.

SSH-доступ к узлам отсутствует, узлы Автопилота заблокированы. Поддержка GPU и TPU (Tensor Processing Unit) недоступна, хотя и запланирована на будущее. Отказ от SSH был сложным решением, говорит Брэдсток. Конечно, это ограничивает возможности управления. Но Брэдсток сказал, что такое решение было принято по результатам исследований, показавших большой уровень критических ошибок в конфигурировании кластеров.

Деньги


Модель ценообразования здесь тоже отличается. Плату берут не за вычислительные инстансы (виртуальные машины), а за реальное использование CPU, памяти и хранилища всеми подами. Плюс $0,10 в час за каждый кластер на Автопилоте, как в стандартном GKE.

Очевидный вопрос: что будет дороже, стандартный кластер или Автопилот. Ответить непросто. Поскольку это в каком-то смысле премиальный сервис, Автопилот обойдётся дороже, чем тщательно оптимизированное стандартное развертывание GKE. Существует премия по сравнению с обычным GKE, сказал Брэдсток, потому что мы обеспечиваем не только функциональность, но полную поддержку SRE (Site Reliability Engineering) и гарантии SLA.

Тем не менее, Автопилот может обойтись дешевле, чем некорректно сконфигурированный деплой GKE, который не полностью загружен, потому что трудно оценить правильную спецификацию для вычислительных инстансов.


Интегральная функция распределения (CDF) неиспользуемой памяти и занятых машин для 5000 задач после включения Автопилота в собственной инфраструктуре Google, источник


Снижение ошибок памяти (OOM) и доли неиспользуемой памяти для 500 задач после включения Автопилота в инфраструктуре Google, источник

Почему просто не использовать Cloud Run, который запускает рабочие нагрузки контейнеров без какой-либо конфигурации кластеров, узлов и подов, даже на GKE? Cloud Run отличная среда для разработчиков, одно приложение может раскрутиться с нуля до 1000 инстансов и обратно опуститься до нуля, для того и созданы облака, объясняет Брэдсток. Автопилот облегчает жизнь людям, которые хотят использовать именно Kubernetes, хотят всё видеть и держать под контролем, хотят использовать сторонние скрипты, хотят построить свою собственную платформу.

Определённой проблемой является совместимость с существующими надстройками сторонними инструментами для Kubernetes. Некоторые из них пока не совместимы с Автопилотом, но другие уже работают, такие как мониторинг Datadog. Также поддерживается DaemonSets эту функцию для запуска демонов на всех узлах используют многие инструменты.

Конфигурация хранилища, вычислений и сети вынудила отказаться от некоторого уровня гибкости и некоторых интеграций: Но мы определённо хотим, чтобы на нём [Автопилоте] работала сторонняя экосистема, говорит Брэдсток.

С запуском Автопилота расширяется диапазон вариантов, как запускать Kubernetes в облаке Google. Компромисс не только в более высокой стоимости и меньшей гибкости, но и в потенциальной дезориентации девопсов на предприятиях. Однако главная логика в том, что предприятиям лучше сосредоточиться на своём основном бизнесе, а не на услугах, которые выполняются подрядчиком.

У инженерной службы Google репутация гораздо лучше, чем службы поддержки клиентов. Разработчик Кевин Лин (Kevin Lin) недавно описал, как выглядит схема зачисления бонусов для стартапов в AWS и Google.

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

Это ещё одно доказательство, что хорошие инженеры не единственный важный фактор при выборе облака.
Подробнее..

Перевод Ускоряем разработку для Cloud Run с помощью Cloud Code

13.10.2020 10:19:44 | Автор: admin

При разработке сервисов для полностью управляемой контейнерной платформы Cloud Run, вы, скорее всего, быстро устанете постоянно переключаться между редактором кода, терминалом и Google Cloud Console. Мало того, вам ещё придется по много раз, при каждом развертывании, выполнять одни и те же команды. Cloud Code это набор инструментов, включающий все необходимое для написания, отладки и развертывания облачных приложений. Он повышает эффективность разработки в Google Cloud за счет использования плагинов для популярных сред разработки, таких как VS Code и IntelliJ. С его помощью вы сможете легко заниматься разработкой в Cloud Run. Подробнее под катом.


Интеграция Cloud Run и Cloud Code упрощает создание новых сервисов Cloud Run в привычной для вас среде разработки. Вы сможете запустить сервисы на локальном компьютере, быстро выполнить их итерацию и отладку, а затем развернуть в Cloud Run, легко управлять ими и обновлять их.


Примечание от автора. На виртуальной конференции Google Cloud Next 2020 OnAir мы анонсировали несколько новых функций и сервисов, призванных ускорить процесс доставки и разработки приложений, а также платформу Cloud для модернизации приложений (Cloud Application Modernization Platform или CAMP).

Создание новых сервисов Cloud Run


На первый взгляд контейнеризация и бессерверные сервисы могут казаться чересчур сложными. Если вы только начинаете знакомиться с Cloud Run, обратите внимание на обновленный список примеров Cloud Run в Cloud Code. Примеры доступны на языках Java, NodeJS, Python, Go и .NET. Опираясь на них, вы сможете сразу приступить к написанию собственного кода с учетом всех рекомендаций.
Все примеры включают файл Dockerfile, чтобы вам не пришлось тратить время, разбираясь в конфигурациях контейнеров. Если вы переносите в Cloud Run существующий сервис, то, возможно, вы ещё не работали с файлами Dockerfile. Ничего страшного! В сервисе Cloud Code есть поддержка объектов Google Cloud Buildpack, позволяющих контейнеризовать сервис прямо в коде. Файл Dockerfile при этом не требуется. Cloud Code содержит все необходимое для развертывания вашего сервиса в Cloud Run.



Разработка и отладка сервисов Cloud Run в локальной среде


Прежде чем развернуть сервис в Google Cloud, вы, скорее всего, захотите попробовать его на своем компьютере, чтобы посмотреть, как он работает, внести необходимые правки и отладить ошибки. При разработке сервисы Cloud Run необходимо постоянно собирать и развертывать в облаке, чтобы тестировать изменения в репрезентативной среде Cloud Run. Отладить код можно и локально, подключив отладчик, однако, поскольку это осуществляется не на уровне всего контейнера, вам придется устанавливать инструменты локально. Запустить контейнер в локальной среде можно с помощью Docker, но команда, необходимая для этого, слишком длинна и не отражает особенности производственной среды.


В Cloud Code имеется эмулятор Cloud Run, позволяющий разрабатывать и отлаживать сервисы Cloud Run локально. Согласно исследованию, проведенному DevOps Research and Assessment (DORA), у команд, показавших высокую эффективность поставки ПО, сбои при внесении изменений случались в 7 раз реже, чем у менее эффективных команд. Благодаря возможности быстро выполнять итерацию кода локально и отлаживать его в репрезентативной среде, вы можете оперативно находить ошибки на ранних этапах разработки, а не во время непрерывной интеграции или, того хуже, в продакшене.


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


Первый запуск Cloud Run Emulator:

Отладка сервисов Cloud Run с помощью Cloud Code осуществляется так же, как в привычной вам среде разработки. Выполните команду "Debug on Cloud Run Emulator" в среде VS Code (или выберите конфигурацию "Cloud Run: Run Locally" и выполните команду "Debug" в среде IntelliJ) и просто установите точки останова кода. Как только точка останова будет активирована в вашем контейнере, вы сможете переключаться между командами, наводить курсор на свойства переменных и проверять журналы из контейнера.


Отладка сервиса Cloud Run с помощью Cloud Code в VS Code и IntelliJ idea:


Развертывание сервиса в Cloud Run


После того как вы протестируете в локальной среде все изменения, внесенные в код для сервиса Cloud Run, останется создать контейнер и развернуть его в Cloud Run.


Развернуть сервис из среды разработки не составит никакого труда. Мы добавили все параметры, необходимые для настройки сервиса перед развертыванием. Когда вы нажмете "Развернуть", Cloud Code выполнит все требуемые команды, чтобы создать образ контейнера, развернуть его в Cloud Run и передать URL-адрес сервису.


Развертывание сервиса в Cloud Run:

Управление сервисами Cloud Run


Благодаря Cloud Code в VS Code можно просматривать журналы версий и сервисов одним нажатием. Эта функция была перенесена из Cloud Console в среду разработки, чтобы вам не приходилось постоянно переключаться. На странице просмотра отображаются именно те журналы, которые имеют отношение к версиям и сервисам, выбранным в проводнике Cloud Run.



Кроме того, в проводнике Cloud Run можно быстро найти и просмотреть сведения обо всех управляемых сервисах Cloud Run и сервисах Cloud Run для Anthos в нужном проекте. Там же можно легко узнать, какой процент трафика перенаправляется и сколько выделено ресурсов ЦП.


Cloud Run explorer в VS Code и IntelliJ


Нажав на версию правой кнопкой мыши, можно посмотреть URL-адрес сервиса. В Cloud Console можно проверить трафик или настроить его перенаправление между сервисами.


Начало работы


Приглашаем вас поработать с Cloud Code в Cloud Run, чтобы оптимизировать процессы развертывания сервисов и ведения журналов. Дополнительные сведения можно найти в документации по Cloud Run для сред разработки Visual Studio Code и JetBrains. Если вы ещё не работали с этими средами, для начала установите Visual Studio Code или IntelliJ.


Присоединяйтесь к Google Cloud Next OnAir


Также хотелось бы напомнить нашим читателям, что прямо сейчас проходит онлайн конференция Google Cloud Next OnAir EMEA для которой мы подготовили контент как для разработчиков, так и для архитекторов решений и руководителей.


Более подробно узнать о сессиях, спикерах и получить доступ к контенту можно бесплатно зарегистрировавшись на странице Next OnAir EMEA. Вместе с уникальным контентом, который будет представлен для Next OnAir EMEA вы также получите полный доступ к более чем 250 сессиям с глобальной части Google Cloud Next 20: OnAir.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru