¿Cómo se compara Google App Engine con Heroku?

La computación en la nube ya no es la próxima gran cosa. Como lo demuestra toda la infraestructura de la nube y los centros de datos que ahora están creando jugadores establecidos como Google con su AppEngine y Amazon con AWS, es la gran novedad actual. En esta mezcla hay algunos pioneros más pequeños como Heroku, que comenzaron en 2007, en la computación en la nube, que es el período Jurásico tardío. Comparemos dos ofertas de PaaS, Heroku y AppEngine de Google, y veamos qué hace que cada una funcione.

Heroku y AppEngine son filosóficamente similares en que ambas son soluciones PaaS. Ambos le proporcionan un entorno listo para usar en el que puede implementar su código y aplicaciones, aunque ese entorno solo alberga una gama limitada de SO, idiomas, bases de datos y otras plataformas base disponibles. Esto significa que puede comenzar a funcionar con bastante rapidez, pero también implica que si su aplicación no se ejecuta o no está alojada o desarrollada por los elementos de la lista preaprobada, entonces se queda alto y seco. Esto está en marcado contraste con las plataformas IaaS, como AWS de Amazon, que le proporcionan una máquina virtual en la que puede instalar y personalizar su entorno de software como lo desee.

Lo que ellos son

AppEngine de Google le presenta una vista abstracta de una instancia de máquina que ejecuta su código y es compatible con Python, el nuevo lenguaje Go de Google y Java y otros lenguajes JVM como Clojure, JRuby y PHP. Una advertencia es que solo se admite Python puro, por lo que no puede ejecutar módulos que contengan, por ejemplo, código C.

Con tales restricciones de idioma, es claro ver que Google está presentando a los desarrolladores un entorno codiciado, consciente del idioma y protegido en el que ejecutar código. De hecho, el sandboxing sencillo y sencillo es uno de los principales puntos fuertes de AppEngine, junto con la capacidad de escalar horizontal y rápida y fácilmente para equilibrar la carga. Aún así, muchos se han quejado de que la naturaleza patentada de solo lectura de AppEngine resulta en una refactorización de código tediosa e innecesaria; las aplicaciones deben escribirse específicamente con AppEngine en mente, las API deben escribirse específicamente para AppEngine, incluso el código estándar de Java debe modificarse ampliamente para adaptarse al entorno de AppEngine. Otro punto doloroso es que Google insiste en que los clientes de AppEngine solo usen su base de datos no relacional BigTable, aunque recientemente también han agregado algún soporte para CloudSQL.

Por lo tanto, asigne una cantidad significativa de tiempo para la ‘refactorización de la base de datos’ para la base de datos de sus aplicaciones cuando mueva aplicaciones ya desarrolladas a AppEngine. Esta transferencia de aplicaciones fuera de AppEngine a otras plataformas es un dolor tan grande que ha llevado a muchos a insinuar oscuramente una siniestra trama de Google para encerrar a los clientes en su marco. Heroku, ahora propiedad de Salesforce, originalmente solo admitía Ruby, pero ahora también incluye soporte para Java, Node.js, Scala, Clojure, Python y PHP. Todavía se reconoce como un excelente host para plataformas y marcos de Ruby como Ruby on Rails. En términos de bases de datos, tiene opciones tanto relacionales como no relacionales en PostgreSQL, MongoDB, Cloudant y Redis.

Esto destaca la enorme ventaja de Heroku sobre AppEngine: las opciones de plataforma de base de datos de Heroku reflejan una colección que ya se usa ampliamente en todo el mundo. Es relativamente fácil portar su base de datos de Oracle a PostgreSQL porque ambos son relacionales, por ejemplo, pero buena suerte tratando de mover su base de datos relacional a la BigTable no relacional. Se puede hacer, pero es un ejercicio costoso (en términos de tiempo) y doloroso. La infraestructura de Heroku está alojada en los servidores de Amazon EC2.

Soporte y precios

El apoyo y la ayuda para ambos es excelente. Heroku es más pequeño que Google pero ha existido por más tiempo (2007 vs. 2011). La comunidad de usuarios de Heroku es particularmente activa y útil. Y Goliath-ness de Google significa que no hay escasez de soporte interno para AppEngine. Comparar los precios de los productos PaaS es un ejercicio de frustración.

Se podría pensar que productos similares en el mismo mercado ofrecerían las mismas características que se podrían comparar fácilmente. La serie 5 de BMW, por ejemplo, compite con la Clase E de Mercedes y el Audi A6 en el mercado de los sedán medianos de lujo, por lo que puede calcular el costo de elegirlos con la misma especificación y luego comparar fácilmente los costos.

Para los productos PaaS esto es difícil de hacer. Por ejemplo, obtienes un nivel gratuito con ambos, pero tienen capacidades diferentes. La unidad PaaS de Heroku se llama dinamómetro, y ofrece 512 MB, potencia de CPU desconocida y 100 MB de espacio de intercambio de forma gratuita. A partir de ahí, si necesita más dinamómetros para escalar, cuesta $ 0.05 por hora. El equivalente de dinamómetro en AppEngine se llama una instancia de FrontEnd y cuesta $ 0.08 por hora. Después de eso, debe pagar la base de datos, que en AppEngine cuesta $ 0.24 por GB por mes, y en Heroku es un plan escalonado de $ 9 a $ 100 por 1TB. Luego, AppEngine le cobra $ 0.07 por cada 100k lecturas y $ 0.10 por cada 100k escrituras en el almacén de datos, lo cual es un ultraje: no hay una buena razón para que las plataformas de computación en la nube cobren a los usuarios por leer y escribir sus propios datos. Heroku no cobra por las operaciones de lectura / escritura. Ah, entonces, después de esto, debes tener en cuenta los cargos por el almacenamiento de archivos … De todos modos, al final del día, Heroku parece ser significativamente más barato que AppEngine.

Para un excelente análisis en profundidad y comparación de precios de Heroku vs. AppEngine, vaya a esta página: http://kmilo0.blogspot.com/2013/….

Resumen

Heroku y AppEngine son competidores muy cercanos. Ambos tienen sus puntos buenos y malos. Sin embargo, en general, el sentimiento en la comunidad de desarrolladores (esa es la multitud que usa principalmente PaaS) es que AppEngine es una oportunidad perdida por Google debido a su naturaleza propietaria cerrada y la falta de opciones de plataforma. Heroku ofrece pocas restricciones sobre lo que se puede y no se puede hacer en su aplicación alojada, y también tiene un acceso poderoso al espacio de usuario en el que se ejecuta su aplicación. Pero la base de AWS de Heroku significa que las interrupciones de servicio perjudiciales de alto perfil de Amazon también afectan a Heroku clientes. Al final, hasta que Google mejore y deje de ver AppEngine como una forma de vincular a los clientes con el universo de Google, tenemos que darle ventaja a Heroku como la mejor plataforma. También vea la tabla de pros-contras a continuación para una comparación adicional:

Copiado de Heroku vs AppEngine

En pocas palabras, Heroku es increíblemente fácil de usar. Como señala Anon, la implementación de pequeñas aplicaciones en Heroku es mucho más fácil que en GAE. Dicho esto, GAE funciona con la infraestructura de Google, que es conocida por su extraordinaria escalabilidad. Esto se manifiesta en que GAE no le permite usar una base de datos SQL convencional, entre otras cosas. Sin embargo, la desventaja de esto es que si desarrolla aplicaciones específicamente para GAE, probablemente tendrá que cambiar su código significativamente si alguna vez decide cambiar a otra plataforma.

En resumen, GAE solo es bueno si realmente sabes lo que estás haciendo. Si usted es un desarrollador experimentado que espera implementar una aplicación que se espera que tenga millones de usuarios, entonces GAE probablemente será una mejor opción. Pero si solo quiere perder el tiempo y probar sus aplicaciones, es posible que desee usar Heroku en su lugar.

Esta es una pregunta bastante limitada ya que hay muchas más opciones de PaaS
Las plataformas de desarrollo incluyen:

  • Entorno de desarrollo integrado en la nube (IDE) : coloque todo el desarrollo en un entorno de desarrollo basado en navegador
  • PaaS para expertos empresariales : entorno de desarrollo basado en navegador sin codificación

Las plataformas de implementación incluyen :

  • Tiempo de ejecución en la nube neutral para IDE: sin herramientas de desarrollo, solo plataforma para gestionar la implementación
  • (IDE) con implementación en la nube : los desarrolladores que trabajan en Eclipse o Visual Studio pueden trabajar como de costumbre, proporcionar información adicional al implementar

El cuadro a continuación resume los proveedores de PaaS según Forrester.

Algunas compañías caen en más de una categoría.

La categoría de Desarrollo incluye compañías de inicio más pequeñas como Cordys, WorkXpress y Zoho
– Todos (excepto CRM y Cloud Computing para hacer crecer su negocio – Salesforce.com) son proveedores especializados de PaaS
– Las empresas se están diferenciando para destacarse en el mercado
– Crear entornos con menos codificación, haciendo que las ofertas sean más adaptables
– La mayoría está débilmente acoplada, y pueden ejecutarse en cualquier infraestructura

• Ventajas
Limitación o no se requiere codificación
basado en navegador (de fácil acceso)
incluye herramientas de negocios
desarrollo rápido
gastar menos en contratar programadores para escribir aplicaciones
Libertad para elegir infraestructura
Más ágil para cambiar

• Desventajas
Menos personalización a las aplicaciones
Dificultad para encontrar un proveedor que satisfaga sus necesidades específicas de programación

La categoría de implementación contiene compañías importantes como Google, Microsoft, CRM y Cloud Computing para hacer crecer su negocio: Salesforce.com, Amazon, Red Hat y VMware
– Tener valor de marca en el mercado debido a productos anteriores
– Brinde más servicios que PaaS, tenga una mayor base de clientes
– Estrechamente acoplados, porque son proveedores de infraestructura bien conocidos.
– Tener la capacidad de adquirir empresas más pequeñas e innovadoras en el mercado para proporcionar PaaS (Salesforce compró Heroku,
Vmware compró Cloud Foundry)

• Ventajas
Más personalización a las aplicaciones.
Más flexibilidad para elegir las herramientas necesarias para crear una aplicación específica
Más específico para las necesidades comerciales especializadas.
Proveedores confiables y conocidos

• Desventajas
Necesita experiencia en programación para escribir aplicaciones
Costo de contratar programador
Proceso de desarrollo más largo
Menos control sobre el proceso de solicitud
Menos opciones y control sobre la infraestructura.

Heroku y AppEngine son competidores muy cercanos. Ambos tienen sus puntos buenos y malos. Sin embargo, en general, el sentimiento en la comunidad de desarrolladores (esa es la multitud que usa principalmente PaaS) es que AppEngine es una oportunidad perdida por Google debido a su naturaleza propietaria cerrada y la falta de opciones de plataforma. Heroku ofrece pocas restricciones sobre lo que se puede y no se puede hacer en su aplicación alojada, y también tiene un acceso poderoso al espacio de usuario en el que se ejecuta su aplicación. Pero la base de AWS de Heroku significa que las interrupciones de servicio perjudiciales de alto perfil de Amazon también afectan a Heroku clientes.

Al final, hasta que Google mejore y deje de ver AppEngine como una forma de vincular a los clientes con el universo de Google, tenemos que darle ventaja a Heroku como la mejor plataforma.

Los pros y contras para una mayor comparación:

Pros y contras de Heroku
Ofrece SQL estándar. Despliegue relativamente indoloro. Modelo de precios más simple. No tan grande como Google. Alojado en AWS que sufre interrupciones importantes.

Pros y contras de AppEngine

Acceso al resto de servicios de Google. Ejecutar tareas asincrónicas es mucho más fácil que Heroku. Se ejecuta en la propia infraestructura de nube de Google. Plataforma de amarre, falta de flexibilidad. No hay SQL DB estándar.

¡Gracias!

Desde mi experiencia, Google App Engine (GAE) es significativamente más barato que Heroku. He creado aplicaciones para ambas plataformas. Actualmente estoy ejecutando una aplicación web GAE que opera en dos mercados (dos países) y gastamos menos de un dólar (sí, 1 dólar) por mes para los costos de GAE. Una razón importante para esto es una cuota gratuita muy generosa que ofrece Google.

Cuando tenía otra aplicación ejecutándose en Heroku, tenía que pagar más de $ 50 por mes desde el principio, incluso antes de tener tráfico real. Bueno, puede tener un costo de 0 si ejecuta solo un dinamómetro (que duerme después de una hora de inactividad y tarda una eternidad en despertarse) y tiene una base de datos de desarrollo con un número limitado de entradas (10,000 si recuerdo correctamente).

Para mí, la diferencia entre Heroku y GAE es como la noche y el día. GAE requiere menos configuración, servicios como tareas en segundo plano son mucho más fáciles de implementar, tiene una gran cuota gratuita, una potente consola de desarrollador, etc.

Si le preocupa el “bloqueo de proveedores”, simplemente envuelva los servicios de GAE de una manera que facilite la migración de la aplicación.

Portabilidad. Pero AppEngine no fue diseñado para competir con Heroku. Google Compute es el motor de Google Compute. Solo puedo hablar en AppEngine con Java y la implementación no es mala, una vez que haya configurado su único comando. AppEngine es excesivo para aplicaciones pequeñas, aunque hay una curva de aprendizaje para construir en BigTable, que es el almacén de datos predeterminado. Siempre puede usar un servicio web, pero eso tiene que tener sentido para su aplicación

Aunque Heroku es fácil de usar, su producto es propietario y lo encierran en una infraestructura costosa. Echa un vistazo al garaje digital. También súper fácil de usar y sin bloqueo / sin bloqueo. http://www.thedigitalgarage.io

El apoyo de Google es terrible. Tienen buenos productos y uno de los peores soportes. No eres muy flexible cuando eliges tu stack tecnológico. Usé google y cambié a Heroku y finalmente me instalé en EngineYard y solo pude decir: ¡mantente alejado de Google App Engine!

Acabo de experimentar con GAE y Heroku usando python y frasco. Parece que he avanzado más en 30 minutos con Heroku que en horas de lucha con la configuración de un entorno de desarrollo GAE. Aún así, solo soy un aficionado, y estos son los primeros días.