Какие есть альтернативы Google App Engine?

Какие есть альтернативы GAE, учитывая, что у меня уже есть хороший рабочий код, который я хотел бы сохранить. Другими словами, я копаю питон. Однако мой вариант использования - это скорее небольшое количество запросов, вариант использования с более высоким типом использования ЦП, и я беспокоюсь, что, возможно, не смогу оставаться с App Engine навсегда. Я слышал, как много людей говорят об Amazon Web Services и других типах облачных провайдеров, но мне трудно понять, где большинство из этих предложений предоставляют спектр услуг (запрос данных, аутентификация пользователя, автоматическое масштабирование), которые приложение Двигатель обеспечивает. Какие у меня здесь варианты?


person Chris Marasti-Georg    schedule 30.09.2008    source источник
comment
Старый вопрос. Но служба приложений Azure предоставляет аналогичный стек PaaS для разработки: azure.microsoft.com/en -us / services / app-service   -  person Saqib Ali    schedule 20.02.2018


Ответы (13)


Я не думаю, что сейчас есть другая альтернатива (в отношении переносимости кода) GAE, поскольку GAE находится в отдельном классе. Конечно, GAE - это облачные вычисления, но я рассматриваю GAE как подмножество облачных вычислений. EC2 от Amazon - это тоже облачные вычисления (а также ускорители Joyent и слайсы Slicehost), но, очевидно, это тоже два разных зверя. Итак, прямо сейчас вы находитесь в ситуации, которая требует переосмысления вашей архитектуры в зависимости от ваших потребностей.

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

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

Однако один из способов решить эту проблему - создать индивидуальное решение, включающее GAE в качестве интерфейса и Amazon AWS (EC2, S3 и SQS) в качестве серверной части. Некоторые скажут, что с таким же успехом можно построить весь свой стек на AWS, но это также может потребовать переписывания большого количества существующего кода. Кроме того, в качестве временного решения предыдущая статья о stackoverflow описывает метод имитации фоновых задач в GAE. Кроме того, вы можете заглянуть в HTTP Map / Reduce для распределения рабочей нагрузки.

person fuentesjr    schedule 01.10.2008

AppScale

AppScale - это платформа, которая позволяет пользователям развертывать и размещать свои собственные приложения Google App Engine. Он выполняется автоматически через Amazon EC2 и Eucalyptus, а также через Xen и KVM. Он был разработан и поддерживается AppScale Systems. Он поддерживает платформы Python, Go, PHP и Java Google App Engine.

http://github.com/AppScale/appscale

В это время...

... это почти 2015 год, и кажется, что контейнеры - это путь вперед. Появляются альтернативы GAE:

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

В Docker есть несколько PaaS, например

Интересные вещи, за которыми стоит следить.

person wires    schedule 04.06.2010

С 2016 года, если вы хотите объединить PaaS (платформу как услугу) и FaaS (функционирует как служба) в том же бессерверные вычисления, то у вас есть несколько вариантов FaaS.

Проприетарный

AWS Lambda

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

AWS Step Functions дополняет AWS Lambda.

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

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

По состоянию на 2016 год он находится в альфа-версии.

Google Cloud Functions - это легкое, основанное на событиях, асинхронное вычислительное решение, которое позволяет создавать небольшие одноцелевые функции, реагирующие на облачные события, без необходимости управлять сервером или средой выполнения. События из Google Cloud Storage и Google Cloud Pub / Sub могут запускать облачные функции асинхронно, или вы можете использовать HTTP-вызов для синхронного выполнения.

Функции Azure

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

Открытым

без сервера

Бессерверная платформа позволяет развертывать функции автоматического масштабирования, с оплатой за выполнение и событиями в любом облаке. В настоящее время мы поддерживаем Lambda Amazon Web Service и расширяемся для поддержки других облачных провайдеров.

IronFunctions

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


Остается посмотреть, насколько хорошо FaaS конкурирует с CaaS (контейнер как услуга). Первый кажется более легким. Оба кажутся подходящими для архитектур микросервисов.

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

person Acumenus    schedule 21.11.2016

Альтернативы: 1. AppScale 2. Heroku.

Ссылка: Альтернатива для Google AppEngine?

person avngr    schedule 15.06.2014

Amazon Elastic Compute Cloud или EC2 - хороший вариант. В основном вы запускаете виртуальные машины Linux на своих серверах, которыми вы можете управлять через веб-интерфейс (для включения и выключения) и, конечно же, получить доступ через SSH или что-то еще, что вы обычно настраиваете ... И поскольку это установка Linux, которую вы контролируете, вы можете конечно, запустите python, если хотите.

person Adam Haile    schedule 30.09.2008
comment
Значит, в этом случае я буду нести ответственность за запуск собственного http-хоста, базы данных и т. Д.? Гибкость, конечно, кажется желательной, но я не системный администратор Linux, и было бы лучше, если бы кто-то более умный, чем я, мог позаботиться об этих вещах ... - person Chris Marasti-Georg; 30.09.2008

Возможно, стоит подумать о Microsoft Windows Azure. Боюсь, я не использовал его, поэтому не могу сказать, насколько он хорош, и вы должны иметь в виду, что на данный момент это CTP.

Проверьте это здесь.

person Community    schedule 06.01.2009

Немного поздно, но я бы попробовал Heroku:

Heroku - это платформа облачных приложений для полиглотов. С Heroku вам вообще не нужно думать о серверах. Вы можете писать приложения, используя современные методы разработки, на любом языке программирования, подкрепляя его дополнительными ресурсами, такими как базы данных SQL и NoSQL, Memcached и многие другие. Вы управляете своим приложением с помощью инструмента командной строки Heroku и развертываете код с помощью системы контроля версий Git, и все это работает в инфраструктуре Heroku.

https://www.heroku.com/about

person phocks    schedule 11.08.2014

Вы также можете взглянуть на AWS Elastic Beanstalk - он более близок к функциональности GAE. , поскольку он разработан как PaaS, а не как IaaS (например, EC2).

person Lynn Langit    schedule 11.07.2012

Если вас интересует облако и, возможно, вы хотите создать свое собственное для производства и / или тестирования, вам нужно посмотреть Eucalyptus. Якобы это код, совместимый с EC2, но с открытым исходным кодом.

person MrTelly    schedule 16.07.2009
comment
нужна ссылка на code.google.com/p/appscale - person Chii; 07.01.2010

Мне было бы больше интересно узнать, как App Engine можно легко связать с другим сервером, используемым для запросов, интенсивно использующих ЦП.

person jamtoday    schedule 30.09.2008
comment
Согласовано - с данными, хранящимися в BigTable, может ли другой сервер задействовать простую веб-службу, которая будет возвращать небольшие фрагменты данных, выполнять тяжелую работу и возвращать готовый отчет? Я действительно подумал о том, чтобы перенести некоторые из таких вещей во вспышку, используя тот же подход. - person Chris Marasti-Georg; 01.10.2008

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

person Steve Armstrong    schedule 08.06.2010

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

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

person Daria    schedule 15.04.2013

Вы также можете использовать проект Red Hat Cape Dwarf для запуска приложений GAE поверх сервера приложений Wildfly (ранее JBoss) без изменений.

Вы можете проверить это здесь:

http://capedwarf.org/

person user2012519    schedule 16.04.2014