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
- ¿Se puede crear una aplicación web progresiva en una instalación de WordPress, por ejemplo, para tener Pokedex PWA en domain.com/database?
- ¿Por qué es popular SoundCloud?
- ¿Cuáles son sus herramientas favoritas para el desarrollo de JavaScript front-end?
- ¿Qué es una buena aplicación para construir para practicar?
- ¿Cuáles son las aplicaciones más comunes (y útiles) de Javascript en el front-end en el diseño web moderno?
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