Какая среда выполнения лучше всего соответствует потребностям вашего приложения в Google Cloud Platform

Google Cloud Platform предлагает широкий спектр возможностей для запуска вашего кода. В этой статье мы рассмотрим все функции службы, варианты использования и цены, а вы решите, какая из них соответствует потребностям вашего приложения и уровню контроля над инфраструктурой, которую вы хотите.

Сравним Облачные функции, Cloud Run, App Engine, Cloud Dataflow, Compute Engine и Kubernetes Engine (GKE), бок о бок.

TL;DR

  • Облачные функции: бессерверное, полностью управляемое, управляемое событиями, для легких приложений.
  • Cloud Run: бессерверное, полностью управляемое, управляемое событиями, для контейнеров без сохранения состояния.
  • App Engine: бессерверное, полностью управляемое, хорошо масштабируемое, для любых приложений.
  • Cloud Dataflow: бессерверная потоковая передача и пакетная обработка конвейеров обработки данных.
  • Compute Engine: настраиваемые параметры ЦП / ОЗУ / графического процессора для запуска чего-либо на виртуальной машине.
  • Kubernetes Engine: управляемая среда Kubernetes для контейнеров.

Облачные функции

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

Если ваш код - это веб-перехватчик, поток данных IoT, конечная точка HTTP или вам нужна интеграция со службой искусственного интеллекта, функции для вас. Установлена ​​цена за время работы вашего приложения и количество его запусков. Он поддерживает Node.JS, Go, Python и Java.

Cloud Run

Cloud Run - это полностью управляемая бессерверная платформа для контейнеров Docker без сохранения состояния, и, поскольку мы говорим о Docker, вы можете запускать в нем все, что захотите. Вызывается через HTTP-запросы и может быть интегрирован с Anthos.

У вас может быть все, что предлагает Docker, и с двумя командами ваше приложение готово. Установлена ​​цена за время работы вашего приложения и количество его запусков. Cloud Run позволяет вам открыть только один порт из вашего контейнера, так что имейте это в виду.

App Engine

Когда вам нужно несколько функциональных возможностей в одном месте и вы хотите развернуть все свое приложение. Вам просто нужно заполнить файл YAML, и Google сделает всю тяжелую работу за вас. Также легко настроить с другими сервисами GCP.

Для высокомасштабируемых бессерверных приложений. Поддерживает Node.js, Java, Ruby, C #, Go, Python, PHP или Docker. Цена зависит от использования вашего приложения. Отлично подходит для мобильных приложений, бесшовная интеграция с Firebase.

Если вам интересно, какой вариант без сервера вам больше подходит, посмотрите эту блок-схему, созданную Google, чтобы помочь вам:

Облачный поток данных

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

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

Он поддерживает Apache Beam SDK, поэтому это Java или Python. Если вы используете другой язык, рассмотрите другую услугу. Поскольку это бессерверная служба, вы не контролируете ее инфраструктуру и платите за использование.

Compute Engine

Это инфраструктура для Gmail, YouTube и поисковой системы Google. Запускает настраиваемые виртуальные машины и дает нам больший контроль над нашей инфраструктурой. Он поддерживает предопределенные или пользовательские типы компьютеров с параметрами ЦП и ОЗУ. Есть три типа предопределенных машин:

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

Вы также можете добавить графические блоки обработки для интенсивных вычислительных рабочих нагрузок, таких как машинное обучение и обработка данных. Вы можете запустить другую операционную систему, и она имеет поддержку контейнеров Docker. Цены на Compute Engine основаны на посекундном использовании типов машин, постоянных дисков и других ресурсов, которые вы выбираете для своих виртуальных машин.

Kubernetes Engine (GKE)

GKE предоставляет полностью управляемую среду для Kubernetes для развертывания, управления и масштабирования ваших контейнерных приложений. Среда GKE состоит из нескольких машин (экземпляров Compute Engine), объединенных в кластер.

Для GKE применим любой вариант использования Kubernetes, например микросервисы, организованные K8S. Взимается плата за управление кластером в размере 0,10 доллара США за кластер в час, рабочие узлы накапливают затраты на вычисления до тех пор, пока кластер не будет удален.

Вот и все! Надеюсь, этот обзор поможет вам решить, какая услуга соответствует потребностям вашего приложения. Не стесняйтесь подписываться на меня на GitHub и связываться со мной в LinkedIn!