
С момента своего появления контейнеризация стала штурмом отрасли. Даже такие гиганты, как Google, признают, что продукты от Gmail до YouTube и поиска * (1) теперь работают в контейнерах. Контейнеризация упрощает распределенные приложения, устраняет проблемы перекрестного развертывания и позволяет командам разработчиков быстро двигаться и работать в беспрецедентном масштабе.
В Trueface мы с первого дня рассматривали контейнеры как способ распространения автономного безопасного программного обеспечения среди наших клиентов с минимальными накладными расходами на развертывание. Ниже я описываю, как развернуть общие контейнеры ИИ и компьютерного зрения (включая контейнеры Trueface Visionbox) в Google Cloud Run.
Что такое Google Cloud Run и зачем его использовать?
Cloud Run позволяет запускать рабочие нагрузки без отслеживания состояния, управляемые запросами или событиями, не беспокоясь о серверах. Он позволяет вам перейти от контейнера к производству за секунды и предлагает поддержку нулевого масштабирования, что означает, что вы ничего не платите, когда контейнер не используется, при этом вы можете автоматически масштабировать и балансировать нагрузку до 1000 контейнеров в часы пик.
Как развернуть контейнерный API в Google Cloud Run:
Шаг 1. Установите GCloud SDK и настройте Docker
Установите GCloud SDK и войдите в систему:
Https://cloud.google.com/sdk/install
Для входа: gcloud auth login
После аутентификации установки GCloud настройте Docker для работы с GCR и GCloud: gcloud auth configure-docker

Шаг 2. Загрузите Trueface Agebox и отметьте его
Если вы планируете использовать Trueface Visionbox, не забудьте запросить тестовый токен у команды Trueface, прежде чем продолжить. В противном случае рекомендуется продолжить изучение руководства, используя любой контейнерный Rest API, который вы можете развернуть.
sudo docker pull trueface/agebox:latest
Добавьте к изображению метку с названием вашего проекта Google Cloud, чтобы его можно было отправить в GCR (Google Container Registry):
sudo docker tag trueface/agebox gcr.io/$project_name/agebox
Шаг 3. Нажмите на изображение
sudo docker push gcr.io/$project_name/agebox

Шаг 4. Создайте службу Cloud Run
- Перейдите в Google Cloud Console.
- Перейдите к Cloud Run в своем проекте Google Cloud и нажмите Создать службу.
- URL-адрес изображения входного контейнера
(gcr.io/$project/agebox) - Выберите регион и тип аутентификации (разрешить аутентификацию для этой демонстрации)
- Установите токен в качестве переменной среды
Поскольку вы будете работать с моделями глубокого обучения, требующими интенсивных вычислений, я рекомендую использовать 2 ГБ ОЗУ для каждого развертывания. Установите максимальное количество экземпляров; они представляют максимальное количество экземпляров / API, которые GCR будет вращать для обработки увеличения нагрузки. Google Cloud Run автоматически масштабируется с нуля до 1000 контейнеров, как упоминалось ранее, что делает его более гибким и эффективным решением по сравнению с традиционной арендой инстансов.

Нажмите "Создать".
Вот и все. После завершения инициализации службы вы получите URL-адрес API.
Протестируйте свой API:
curl https://api_url/predict?url=https://image_url
Живые демонстрации:
Демонстрация определения возраста
Обнаружение живых объектов на контейнерах без сохранения состояния с использованием SDK
Используйте интерфейс в возрастной демонстрации выше
Заключение
Развертывание API-интерфейсов искусственного интеллекта и компьютерного зрения с высоким TPS (в масштабе) продолжает становиться все проще с такими замечательными решениями, как GCR. Trueface Visionbox и другие контейнерные решения предлагают готовые API-интерфейсы, которые вы можете самостоятельно размещать и развертывать с минимальными затратами на исследования, разработку и обслуживание.
Незаре Чафни
Технический директор @ Trueface