Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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, но также можно использовать и для других кластеров.

Есть несколько предстоящих PaaS на Docker, таких как

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

Ответ 4

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

Ответ 5

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

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

Ответ 6

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

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

https://www.heroku.com/about

Ответ 7

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

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

Собственные

AWS Lambda

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

Шаговые функции AWS дополняют AWS Lambda.

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

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

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

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

Функции Azure

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

Открыть

Serverless

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

IronFunctions

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


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

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

Ответ 8

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

Ответ 9

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

Ответ 10

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

Ответ 11

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

Ответ 12

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

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

Ответ 13

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

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

http://capedwarf.org/