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

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

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

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

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

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

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

EDIT (май 2016 года):

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

EDIT (апрель 2017 года):

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

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

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

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

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

Чтобы запустить приложение в GAE, вам просто нужно написать свой код и развернуть его в GAE, никакой другой головной боли. Поскольку GAE полностью масштабируется, он автоматически получит больше экземпляров, если трафик будет выше и уменьшит случаи, когда трафик будет снижаться. Вам будет взиматься плата за ресурсы, которые вы действительно используете , я имею в виду, вам будет выставлен счет за Instance-Hours , Transferred Data , Storage и т. Д. Ваше приложение действительно используется. Но ограничение в том, что вы можете создать свое приложение только на Python, PHP, Java, NodeJS, .NET, Ruby и ** Go .

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

Оба GAE и GCE являются частью облачной платформы Google .

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

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

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

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

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

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

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

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

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

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

Стандарт App Engine

Pros

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

Cons

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

Flex для App Engine

Pros

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

Cons

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

Google Kubernetes Engine

Pros

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

Cons

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

Вычислить двигатель

Pros

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

Cons

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

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, Cloud SQL и Cloud Datastore.

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

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

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

  • Как думать в хранилищах данных вместо баз данных?
  • java.lang.NoClassDefFoundError: com.google.firebase.FirebaseOptions
  • Eclipse Google Plug-In не запускает сервер для веб-приложения
  • Как удалить все хранилища данных в Google App Engine?
  • Как реализовать GCM Hello World для Android с помощью Android Studio
  • Interesting Posts

    C # получить тип нулевого объекта

    Насколько хорошо поддерживается Unicode в C ++ 11?

    Уникальный идентификатор Android-устройства

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

    Как обновить динамику ajax, включив контент в меню навигации? (JSF SPA)

    Жесткий диск недоступен. Возможная коррупция в MFT. Как я могу продолжить?

    Windows 7 x64: 3900mb для использования 4 ГБ ОЗУ, даже если (почти) ничего не работает

    Как удалить или изменить размер файла pagefile.sys?

    Macbook pro перезагружается во время первого процесса загрузки

    Как создать туннель SSH с помощью PuTTY в Windows?

    Переменные среды доступа в производственной структуре Угловые 4

    Как использовать два аудиоустройства одновременно с Windows 7?

    как очистить кеш в gwt?

    Создать файл с заданным размером в Java

    Что делает Мейвен, теоретически и на практике? Когда стоит использовать его?

    Давайте будем гением компьютера.