¿Qué es mejor para una aplicación web, AWS o Google App Engine?

App Engine también puede funcionar en Ruby, http://code.google.com/p/appengi…

La principal opción que tiene es entre infraestructura como servicio, iaas (como AWS) o plataforma como servicio, paas (App Engine, Heroku, Joyent, Azure).

iaas le dará flexibilidad total en la arquitectura, el lenguaje y los componentes técnicos que usa para su aplicación, pero aún tiene que ensamblar y administrar su infraestructura usted mismo.

Con paas, la plataforma impone restricciones a su código (idiomas específicos admitidos, límite de tiempo para ejecutar una solicitud, tipo de almacén de datos), pero si puede respetar estas restricciones, los beneficios son enormes: simplemente escriba su código, insértelo en la plataforma y No tiene que manejar nada.

Al trabajar para Google, soy parcial y recomendaría App Engine, que funciona para Python y Java, pero también para lenguajes que se ejecutan sobre Java VM, como Ruby, Closure, Scala, Groovy.

Pero hay otras excelentes ofertas de otros proveedores:
– si lo hace .NET, Azure
– javascript, Joyent, quien creó node.js
– Ruby o javascript: Heroku

Una de las restricciones que la plataforma a menudo impone es la elección de la base de datos. Para el motor de aplicaciones, debe usar BigTable, que es una base de datos no relacional. Sin embargo, si crea una aplicación empresarial para la intranet de una empresa, es posible que desee consultar App Engine for Business, con el que puede usar SQL. Por ahora, está en probadores de confianza, avíseme si está interesado en probarlo.

Una preocupación importante que aún no se ha mencionado es el bloqueo de proveedores. Yo personalmente iría con AWS porque quiero la libertad de migrar mis aplicaciones a otro lugar en el futuro (tal vez en una máquina alojada localmente u otra nube). App Engine se parece más al antiguo concepto de sistema operativo en el que está estrechamente vinculado a la plataforma, y ​​no puede cambiar su plataforma sin básicamente reescribir todo el sistema.

AppEngine es una excelente opción si está comenzando un nuevo proyecto y puede diseñar abrumadoramente para la infraestructura GAE de Google: almacén de datos, consultas, colas de tareas, solicitud y una gran cantidad de otros límites.

GAE actualmente solo es compatible con python y java con Python viendo las características más nuevas primero (generalmente).

AWS, por otro lado, permite un control completo, flexibilidad total y delega todas las responsabilidades al desarrollador menos fallas de hardware e infraestructura de red. Además, ofrecen una gran cantidad de servicios que son alucinantes. Relacional, DynamoDB (NOSQL), caché elástica, DNS, colas de mensajes, etc. que proporcionan lo mejor de ambos mundos en algunos aspectos. Control completo de la aplicación, pero delegue la infraestructura de servicio a Amazon. Esto es algo que creo que es su característica asesina, algo que la mayoría no se da cuenta al principio.

Desarrollé una aplicación bastante sofisticada en GAE en menos de 4 días ( http://www.nernay.com ) y actualmente encabezo un proyecto más grande para el que elegí AWS.

Al experimentar con ambas tecnologías, puedo decidir cómodamente cuándo usar qué dadas sus fortalezas / debilidades.

PD. No excluya otra experiencia de desarrollador y sartén antes de tomar la decisión. Y lo recomiendo a todos mis ingenieros: prototipo, prototipo, prototipo.

Buena suerte.

Vishal Shah

Yo diría que tampoco son una gran solución si el escalado no es una gran preocupación. Si está creando una aplicación ruby, ni siquiera consideraría App Engine. Estoy seguro de que el producto ha progresado bastante en los últimos 9 meses, pero en agosto pasado AppEngine tuvo problemas de compatibilidad bastante importantes (por ejemplo, compilando extensiones C). Además, lo que Paolo mencionó sobre el bloqueo de proveedores definitivamente vale la pena considerarlo.

AWS es una opción sólida, pero soy un gran admirador de linode para la configuración rápida, implementaciones pequeñas (blogs personales, aplicaciones de prueba, etc.). Linode es mucho más asequible que AWS (y casi cualquier otra solución en la nube) para lo que obtienes, y la configuración es más familiar en mi humilde opinión que la consola de administración de AWS, grupos de seguridad, IP elásticas, EBS y las otras capas de abstracción que vienen junto con AWS.

Depende mucho de lo que ya tiene y de lo que sabe. Si tiene código heredado en, por ejemplo, RoR, php o .net, no hay otra forma que AWS o Rackspace, por ejemplo).

Por otro lado, si comienzas desde cero y te sientes cómodo en Python o Java, elegiría GAE. Es más barato y mucho más fácil de mantener.

Estoy de acuerdo con la mayoría de los comentarios a continuación. La discusión aquí es lo que quiera elegir PaaS (GA) o IaaS (AWS). La respuesta intuitiva y lógica utilizará GA, ya que eliminará la molestia de mantener el medio ambiente. El otro lado de la historia es el bloqueo que desarrollará en la plataforma PaaS. Sugeriré que consulte más proveedores de PaaS (puede consultar mi publicación en el mercado de PaaS: http://www.iamondemand.com/post/ …) para poder tomar una buena decisión.

En lo que respecta a IaaS, como se mencionó anteriormente, el beneficio es que tendrá mucho más control sobre el medio ambiente y una mejor opción de portabilidad (menor nivel de bloqueo). La desventaja es la inversión que tendrá que hacer para mantener una operación de TI segura y escalable. Por lo tanto, depende en gran medida de los recursos que tenga y de la inversión que esté dispuesto a realizar para establecer su aplicación.

Esto realmente se reduce a una elección entre usar sql o bigtable y si administras el sistema y las habilidades de administración de la base de datos.

Las aplicaciones complejas son más fáciles de construir en sql. Sería mejor elegir AWS entonces.
Sin embargo, tiene los gastos de configuración y administración, como el ajuste de la base de datos.

Si puede reformular su aplicación para que funcione fácilmente en una base de datos de valores clave, el motor de la aplicación tiene una clara ventaja.

Yo iría con AWS. En mi opinión, las cosas que están en contra de Google App Engine son:
1) Bloquear los servicios de Google
2) Enfoque de BigTable, que es muy diferente si solo ha trabajado con bases de datos relacionales.
3) Muchas limitaciones, como la solicitud, se rescinden si no se entregan en algunos segundos.
4) Soporte diluido para marcos.

Yo elegiría digitalocean. Es barato, potente, confiable y muy fácil de usar. Puede comenzar con un crédito gratuito de $ 10 para verificarlo.

Esto ya se ha preguntado y respondido muchas, muchas, muchas veces:
http://www.quora.com/search?q=google+app+engine+or+aws

De hecho, Heroku (PaaS) se basa en AWS (IaaS). Esto tendría más sentido para que recojas a Heroku entonces.