В чем разница между Google App Engine и Google Compute Engine?

Мне было интересно, какая разница между App Engine и Compute Engine. Может ли кто-нибудь объяснить мне разницу?

Ответ 1

App Engine - это платформа как услуга. Это означает, что вы просто развертываете свой код, а платформа делает все остальное за вас. Например, если ваше приложение станет очень успешным, App Engine автоматически создаст больше экземпляров для обработки увеличенного объема.

Узнайте больше о App Engine

Compute Engine - это инфраструктура как услуга. Вы должны создать и настроить свои собственные экземпляры виртуальной машины. Это дает вам больше гибкости и, как правило, стоит намного дешевле, чем App Engine. Недостатком является то, что вы должны сами управлять своим приложением и виртуальными машинами.

Узнайте больше о Compute Engine

При необходимости вы можете смешивать как App Engine, так и Compute Engine. Они оба хорошо работают с другими частями облачной платформы Google.

РЕДАКТИРОВАТЬ (май 2016 г.):

Еще одно важное различие: проекты, работающие на App Engine, могут уменьшаться до нуля, если запросы не поступают. Это чрезвычайно полезно на этапе разработки, поскольку вы можете работать неделями, не выходя за щедрое количество бесплатных часов. Гибкое время выполнения (т.е. "Управляемые виртуальные машины") требует, чтобы хотя бы один экземпляр работал постоянно.

РЕДАКТИРОВАТЬ (апрель 2017 г.):

Облачные функции (в настоящее время в бета-версии) - это следующий уровень от App Engine с точки зрения абстракции - никаких примеров! Это позволяет разработчикам развертывать фрагменты кода размером с кусочек, которые выполняются в ответ на различные события, которые могут включать HTTP-запросы, изменения в облачном хранилище и т.д.

Самое большое отличие от App Engine состоит в том, что функции оцениваются за 100 миллисекунд, а экземпляры App Engine отключаются только после 15 минут бездействия. Другое преимущество состоит в том, что облачные функции выполняются немедленно, в то время как для вызова App Engine может потребоваться новый экземпляр, а холодный запуск нового экземпляра может занять несколько секунд или дольше (в зависимости от времени выполнения и вашего кода).

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

Узнайте больше о облачных функциях

Ответ 2

Основное отличие состоит в том, что Google App Engine (GAE) - это платформа как услуга (PaaS), а Google Compute Engine (GCE) - это инфраструктура как услуга (IaaS).

Чтобы запустить ваше приложение в GAE, вам просто нужно написать свой код и развернуть его в GAE, никакой другой головной боли. Поскольку GAE является полностью масштабируемым, оно автоматически получит больше экземпляров в случае увеличения трафика и уменьшит количество экземпляров при уменьшении трафика. Вы будете платить за ресурсы, которые вы действительно используете, я имею в виду, что вам будут выставлены счета за часы экземпляров, переданные данные, хранилище и т.д., Которые действительно использовало ваше приложение. Но есть ограничение: вы можете создавать свое приложение только на Python, PHP, Java, NodeJS,.NET, Ruby и ** Go.

С другой стороны, GCE предоставляет вам полную инфраструктуру в виде виртуальной машины. У вас есть полный контроль над средой и временем выполнения этих виртуальных машин, так как вы можете написать или установить любую программу там. На самом деле GCE - это способ виртуального использования ЦОД Google. В GCE вы должны вручную настроить свою инфраструктуру для поддержки масштабируемости с помощью Load Balancer.

И GAE, и GCE являются частью Google Cloud Platform.

Обновление: в марте 2014 года Google анонсировала новый сервис под управлением App Engine под названием Managed Virtual Machine. Управляемые виртуальные машины предоставляют приложениям приложений немного больше гибкости по сравнению с платформой приложений, процессором и памятью. Как и в случае с GCE, в этих виртуальных машинах можно создать настраиваемую среду выполнения для приложения ядра приложения. Фактически управляемые виртуальные машины App Engine в некоторой степени стирают границу между IAAS и PAAS.

Ответ 3

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

В приложении движок вы не управляете операционной системой какого-либо базового программного обеспечения. Вы только загружаете код (Java, PHP, Python или Go) и вуаля - он просто запускается...

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

Ответ 4

Или, чтобы сделать его еще проще (поскольку иногда мы не можем различить GAE Standard и GAE Flex):

Compute Engine аналогичен виртуальному ПК, на котором вы, например, развернете небольшой сайт + базу данных. Вы управляете всем, включая управление установленными дисками. Если вы развертываете веб-сайт, вы отвечаете за настройку DNS и т.д.

Google App Engine (Standard) похож на изолированную папку "только для чтения", куда вы загружаете код для выполнения и не беспокоитесь об остальном (да: только для чтения - для вас установлен фиксированный набор библиотек, и вы не можете его развернуть Сторонние библиотеки по желанию). DNS/субдомены и т.д. Намного проще сопоставить.

Google App Engine (гибкий) на самом деле похож на целую файловую систему (не просто заблокированную папку), где у вас больше мощности, чем у стандартного механизма, например, у вас есть права на чтение/запись (но меньше по сравнению с Compute Engine). В стандарте GAE у вас установлен фиксированный набор библиотек, и вы не можете развертывать сторонние библиотеки по своему желанию. В гибкой среде вы можете установить любую библиотеку, от которой зависит ваше приложение, включая пользовательские среды сборки (например, Python 3).

Хотя GAE Standard очень громоздок (хотя Google делает его звучащим просто), он очень хорошо масштабируется, когда на него оказывается давление. Это громоздко, потому что вам нужно протестировать и обеспечить совместимость с заблокированной средой и убедиться, что любая используемая вами сторонняя библиотека не использует никакую другую стороннюю библиотеку, о которой вы не знаете, которая может не работать по стандарту GAE. На практике это займет больше времени, но может оказаться более полезным в более длительной перспективе для простых развертываний.

Ответ 5

В дополнение к примечаниям App Engine и Compute Engine, приведенным выше, список также включает сравнение с Google Kubernete Engine и некоторые примечания, основанные на опыте работы с широким спектром приложений от маленьких до очень больших. Дополнительные сведения см. В высокоуровневом описании функций Google Cloud Platform в App Engine Standard и Flex на странице Выбор среды App Engine. Еще одно сравнение развертывания App Engine и Kubernetes смотрите в публикации Daz Wilkin App Engine Flex или Kubernetes Engine.

Стандарт App Engine

Pros

  • Очень экономичен для приложений с низким трафиком с точки зрения прямых затрат, а также затрат на обслуживание приложения.
  • Авто масштабирование быстро. Автоматическое масштабирование в App Engine основано на легких классах экземпляров F1-F4.
  • Управление версиями и разделение трафика быстрая и удобная. Эти функции изначально встроены в App Engine (как Standard, так и Flex).
  • Минимальное управление, разработчики должны сосредоточиться только на своем приложении. Разработчикам не нужно беспокоиться об управлении виртуальными машинами в надежной, как в GCE, или изучении кластеров, как в GKE.
  • Доступ к хранилищу данных быстрый. Когда App Engine был впервые выпущен, среда выполнения располагалась совместно с Datastore. Позже Datastore был выделен в качестве отдельного продукта Cloud Datastore, но совместное размещение App Engine Standard, обслуживающего Datastore, остается.
  • Доступ к Memcache поддерживается.
  • Песочница App Engine очень безопасна. По сравнению с разработкой на GCE или других виртуальных машинах, где вам нужно приложить все усилия, чтобы не допустить захвата виртуальной машины на уровне операционной системы, стандартная песочница App Engine по умолчанию относительно безопасна.

Cons

  • Как правило, более ограничены, чем в других средах. Экземпляры меньше. Хотя это полезно для быстрого автомасштабирования, многие приложения могут получить выгоду от более крупных экземпляров, таких как размеры экземпляров GCE до 96 ядер.
  • Сеть не интегрирована с GCE
  • Невозможно установить App Engine за Google Cloud Load Balancer. Ограничено поддерживаемыми средами исполнения: Python 2.7, Java 7 и 8, Go 1.6-1.9 и PHP 5.5. В Java есть некоторая поддержка сервлетов, но не полный стандарт J2EE.

App Engine Flex

Pros

  • Можно использовать пользовательскую среду выполнения
  • Встроенная интеграция с сетью GCE
  • Управление версиями и трафиком удобно, так же как и в Standard
  • Большие размеры экземпляров могут быть более подходящими для больших сложных приложений, особенно приложений Java, которые могут использовать много памяти

Cons

  • Сетевая интеграция не идеальна - нет интеграции с внутренними балансировщиками нагрузки или общими виртуальными частными облаками
  • Доступ к управляемой Memcache недоступен

Google Kubernetes Engine

Pros

  • Встроенная интеграция с контейнерами позволяет настраивать время выполнения и лучше контролировать конфигурацию кластера.
  • Содержит множество рекомендаций по работе с виртуальными машинами, такими как неизменяемые среды выполнения и простая возможность отката к предыдущим версиям.
  • Обеспечивает согласованную и повторяемую структуру развертывания
  • На основе открытых стандартов, в частности Kubernetes, для переносимости между облаками и локальными системами.
  • Управление версиями может осуществляться с помощью контейнеров Docker и реестра контейнеров Google.

Cons

  • Разделение трафика и управление им самим, возможно, используя Istio и Envoy
  • Некоторые накладные расходы на управление
  • Некоторое время, чтобы освоить концепции Kubernetes, такие как pods, развертывания, сервисы, вход и пространства имен
  • Нужно выставить некоторые публичные IP-адреса, если только использование Private Clusters, теперь в бета-версии, не устраняет эту потребность, но вам все равно нужно предоставить доступ к местам, из которых будут запускаться команды kubectl.
  • Мониторинг интеграции не совершенен
  • В то время как внутренняя балансировка нагрузки L3 поддерживается изначально в Kubernetes Engine, внутренняя балансировка нагрузки L7 выполняется самостоятельно, возможно используя Envoy.

Compute Engine

Pros

  • Легко наращивать - не нужно наращивать Kubernetes или App Engine, просто используйте все, что вы знаете из предыдущего опыта. Это, вероятно, основная причина использования Compute Engine напрямую.
  • Полный контроль - вы можете напрямую использовать многие функции Compute Engine и устанавливать самые последние из ваших любимых вещей, чтобы оставаться на переднем крае.
  • Нет необходимости в публичных IP-адресах. Некоторое устаревшее программное обеспечение может быть слишком сложно заблокировать, если что-либо открыто для публичных IP-адресов.
  • Вы можете использовать Контейнер-оптимизированную ОС для запуска контейнеров Docker.

Cons

  • Главным образом сделай сам, что может быть сложно сделать адекватно для надежности и безопасности, хотя вы можете повторно использовать решения из разных мест, включая Cloud Launcher.
  • Больше накладных расходов на управление. Существует множество инструментов управления для Compute Engine, но они не обязательно поймут, как вы развернули свое приложение, как это делают инструменты мониторинга App Engine и Kubernetes Engine.
  • Автоматическое масштабирование основано на экземплярах GCE, которые могут быть медленнее, чем App Engine
  • Тенденция заключается в установке программного обеспечения на экземплярах GCE типа "снежинка", что может потребовать определенных усилий для поддержки

Ответ 6

App Engine предоставляет разработчикам возможность управлять ядрами Google Compute Engine, а также предоставляет интерфейс для обработки данных Google Compute Engine, ориентированный на веб-интерфейс.

С другой стороны, Compute Engine предлагает прямое и полное управление операционной системой ваших виртуальных машин. Чтобы представить свое приложение, вам понадобятся ресурсы, а облачное хранилище Google идеально подходит для хранения ваших активов и данных, независимо от того, для чего они используются. Вы получаете быстрый доступ к данным с хостингом по всему миру. Надежность гарантируется на 99,95% времени, а Google также обеспечивает резервное копирование и восстановление ваших данных, и, верьте или нет, хранилище не ограничено.

Вы можете управлять своими активами облачным хранилищем Google, хранить, извлекать, отображать и удалять их. Вы также можете быстро читать и писать в плоские таблицы данных, хранящиеся в облачном хранилище. Следующим в линейке Google Cloud является BigQuery. С BigQuery вы можете анализировать огромные объемы данных, мы говорим о миллионах записей за считанные секунды. Доступ обрабатывается с помощью простого пользовательского интерфейса или интерфейса представления состояния или интерфейса REST.

Хранилище данных, как вы могли подозревать, не проблема, и масштабируется до сотен ТБ. BigQuery доступен через множество клиентских библиотек, в том числе для Java,.NET, Python, Go, Ruby, PHP и Javascript. Доступен SQL-подобный синтаксис NoSQL, доступ к которому можно получить через эти клиентские библиотеки или через веб-интерфейс пользователя. Наконец, позвольте говорить о параметрах базы данных платформы Google Cloud, облачном SQL и облачном хранилище данных.

Существует большая разница. Cloud SQL предназначен для реляционных баз данных, прежде всего MySQL, тогда как Cloud Datastore предназначен для нереляционных баз данных с использованием noSQL. С Cloud SQL у вас есть выбор либо хостинга в США, Европе или Азии, с объемом памяти 100 ГБ и 16 ГБ оперативной памяти на каждый экземпляр базы данных.

Cloud Datastore доступен бесплатно для инструкций чтения/записи до 50 К в месяц и 1 ГБ данных, хранящихся также в месяц. Однако, если вы превысите эти квоты, взимается комиссия. App Engine также может работать с другими менее известными, более целевыми членами платформы Google Cloud, включая облачные конечные точки для создания бэкэндов API, API Google Prediction для анализа данных и прогнозирования тенденций или API Google Translate для многоязычного вывода.

В то время как вы можете сделать справедливую сумму с помощью App Engine самостоятельно, это потенциально ускорит рост, когда вы учитываете его способность работать легко и эффективно с помощью своих сервисов платформы Google Cloud.

Ответ 7

Как уже объяснялось, Google Compute Engine (GCE) - это инфраструктура как услуга (IaaS), а Google App Engine (GAE) - это платформа как услуга (PaaS). Вы можете проверить следующую диаграмму, чтобы лучше понять разницу (взято и объяснено здесь) -

Cloud Computing Types

Google Compute Engine
GCE является важной службой, предоставляемой Google Cloud Platform (GCP), поскольку большинство служб GCP используют экземпляры GCE (ВМ) под уровнем управления (не уверен, какой из них этого не делает). Это включает в себя App Engine, облачные функции, Kubernetes Engine (более ранний контейнерный движок), Cloud SQL и т.д. Экземпляры GCE являются наиболее настраиваемым модулем, поэтому их следует использовать только в том случае, если ваше приложение не может работать в каких-либо других службах GCP. В большинстве случаев люди используют GCE для передачи своих приложений On-Prem в GCP, поскольку это требует минимальных изменений. Позже они могут использовать другие службы GCP для отдельных компонентов своих приложений.

Google App Engine
GAE - первая услуга, предлагаемая GCP (задолго до того, как Google пришел в облачный бизнес). Он автоматически масштабируется от 0 до неограниченного количества экземпляров (внизу используется GCE). Это идет с 2 ароматами Стандартная Среда и Гибкая Среда.

Стандартная среда действительно быстрая, она масштабируется до 0 экземпляров, когда никто не использует ваше приложение, масштабируется за секунды и имеет специальные сервисы и библиотеки Google для кэширования, аутентификации и т.д. Предостережение со стандартной средой заключается в том, что оно очень ограничено. так как он работает в песочнице. Вы должны использовать управляемые среды выполнения только для определенных языков программирования. Недавние добавления - Node.js(8.x) и Python 3.x. Старые версии доступны для Go, PHP, Python 2.7, Java и т.д.

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

Не путайте GAE Flexible с Kubernetes Engine, так как последний использует настоящий Kubernetes и предоставляет гораздо больше возможностей для настройки и функций. GAE Flex полезен, когда вам нужны контейнеры без сохранения состояния, а ваше приложение использует только протоколы HTTP или HTTPS. Для других протоколов Kubernetes Engine (GKE) или GCE - ваш единственный выбор. Проверьте мой другой ответ для лучшего объяснения.

Ответ 8

Я объясню это так, чтобы это имело смысл для меня:

  • Compute Engine: если вы работаете самостоятельно или у вас есть команда ИТ-специалистов, и вы просто хотите арендовать компьютер в облаке с конкретной ОС (например, linux), вы выбираете Compute Engine. Вы должны сделать все самостоятельно.

  • App Engine: если вы (например) являетесь программистом на python и хотите арендовать предварительно сконфигурированный компьютер в облаке с Linux с работающим веб-сервером и последним Python 3 с необходимыми модулями и некоторыми плагинами для интеграции с другие внешние сервисы, вы идете за App Engine.

  • Безсерверный контейнер (Cloud Run): если вы хотите развернуть точный образ вашей локальной среды установки (например: python 3.7 + flask + sklearn), но вы не хотите иметь дело с сервером, масштабированием и т.д. Вы создаете контейнер на вашем локальном компьютере (через докер), а затем разверните его в Google Run.

  • Безсерверный микросервис (облачные функции): если вы хотите написать кучу API (функций), которые выполняют определенную работу, обратитесь к облачным функциям Google. Вы просто сосредотачиваетесь на этих конкретных функциях, остальная часть работы (сервер, обслуживание, масштабирование и т.д.) Выполняется для вас, чтобы представить ваши функции как микросервисы.

По мере углубления вы теряете некоторую гибкость, но вас не беспокоят ненужные технические аспекты. Вы также платите немного больше, но экономите время и средства (часть ИТ): кто-то другой (Google) делает это за вас.

Для меня Google Cloud - это мой отдел информационных технологий и DevOp. Я занимаюсь разработкой на своей машине, создаю контейнер через Docker, развертываю его в Cloud Run и не беспокоюсь о масштабировании и обслуживании. Я перепробовал все остальные варианты, и каждый из них хорош для разных целей.

Ответ 9

GOOGLE APP ENGINE

  • Создавайте хорошо масштабируемые приложения на полностью управляемой серверной платформе
  • Полностью управляемая серверная платформа приложений

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

  • Открытые и знакомые языки и инструменты

Быстро создавайте и развертывайте приложения, используя многие популярные языки, такие как Java, PHP, Node.js, Python, С#,.Net, Ruby и Go, или предоставьте свои собственные языковые среды выполнения и платформы, если вы выберете. Начните быстро с нуля развертывания конфигурации в App Engine. Управляйте ресурсами из командной строки, отлаживайте исходный код в производственной среде и легко запускайте API-интерфейсы с помощью ведущих в отрасли инструментов, таких как Cloud SDK, Cloud Source Repositories, IntelliJ IDEA, Visual Studio и PowerShell.

  • Просто добавьте код

Сосредоточьтесь только на написании кода, не беспокоясь об управлении базовой инфраструктурой. Благодаря таким возможностям, как автоматическое масштабирование и масштабирование приложения между масштабами от нуля до планеты, полностью управляемые исправления и управление серверами, вы можете перенести все свои проблемы инфраструктуры в Google. Защитите свои приложения от угроз безопасности, используя возможности брандмауэра App Engine, правила Identity and Access Management (IAM) и управляемые сертификаты SSL/TLS.

  • Платите только за то, что вы используете

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

ВЫЧИСЛИТЕЛЬНЫЙ ДВИГАТЕЛЬ

  • Масштабируемые, высокопроизводительные виртуальные машины

  • Высокопроизводительные масштабируемые виртуальные машины

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

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

  • Лучшая в отрасли цена и производительность

Виртуальные машины Compute Engine загружаются быстро и имеют неизменно высокую производительность. Compute Engine также предлагает лучшую в отрасли производительность локальных твердотельных накопителей. Сравните пропускную способность с эквивалентными предложениями IaaS и посмотрите, как наши виртуальные серверы могут помочь вашей рабочей нагрузке. Для повышения производительности обучения и запуска моделей машинного обучения используйте Cloud TPU или GPU.

  • Низкая стоимость, автоматические скидки

Google выставляет счета с шагом второго уровня, поэтому вы платите только за время, которое вы используете. Со скидками на постоянное использование мы автоматически предоставляем вам скидки для длительных рабочих нагрузок без предварительной оплаты.

  • Быстрая и эффективная сеть

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

  • Экологически чистая глобальная сеть

Наша инфраструктура полностью нейтральна к выбросам углерода. Наша глобальная сеть центров обработки данных потребляет на 50% меньше энергии, чем обычный центр обработки данных, и мы закупаем достаточно возобновляемой энергии, чтобы соответствовать 100% энергии, потребляемой нашими глобальными операциями. Мы расширяем нашу глобальную площадь центра обработки данных, чтобы ваши приложения могли работать ближе к вашим клиентам и географически распределяться для обеспечения отказоустойчивости.

  • Гибкость для каждой рабочей нагрузки

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

//СОЗДАНИЕ ИНСТАНЦИИ С 4 vCPU и 5 ГБ ПАМЯТЬ Вычислительные экземпляры gcloud создают my-vm --custom-cpu 4 --custom-memory 5

//ВКЛЮЧИТЬ ПАРАМЕТР ПРЕДВАРИТЕЛЬНОГО ВЫПОЛНЕНИЯ gcloud compute instance create my-vm --zone us-central1-b --preemptible