No puedo darte ninguna respuesta sobre Heroku, sino solo sobre GAE.
En el último inicio en el que trabajé durante los últimos tres años, utilizamos Google App Engine ampliamente. Como servicio es genial.
- No tiene que preocuparse por escalar, todo es automático
- El almacén de datos es bastante potente y rápido para una base de datos noSQL (búsqueda por múltiples índices …)
- Puede utilizar una variedad de otros servicios de Google con un mínimo esfuerzo de integración (Big data, almacenamiento de archivos en la nube, envío de correos …)
- Implementar y cambiar a una nueva versión es fácil.
- Puede tener múltiples módulos con múltiples versiones ejecutándose si lo desea.
- Puede retroceder a versiones anteriores si algo salió mal (si implementa correctamente)
- Los registros están integrados en el panel de GAE y se pueden buscar
- Los servicios de cola y cron son parte de GAE
Pero GAE puede morderte:
- ¿Por qué las mujeres tienen más probabilidades de estudiar HCI que otros campos de CS?
- En términos de datos binarios, ¿aproximadamente cuánta información procesa el cerebro humano en un segundo?
- ¿Qué se enseña en B.Tech CCE en MIT, Manipal?
- ¿El aprendizaje por refuerzo se usa popularmente en la optimización de ejecución comercial?
- ¿Cuál es la diferencia entre un procesador dual core y un procesador core 2 duo?
- Los costos pueden aumentar, al principio cuando la carga es pequeña (pocas solicitudes por segundo), los costos están bien. Pero por encima de cierto límite pueden volverse bastante significativos.
- Paga por almacenamiento, carga, número de solicitudes, instancias en ejecución … Todo suma y hay poco que pueda hacer al respecto.
- Debe vigilar la cantidad de máquinas que se ejecutan en una instancia. Un código incorrecto o una configuración agresiva pueden hacer girar varias máquinas o cientos si no tiene cuidado.
- Una vez que se haya conformado con GAE, es difícil cambiar a otra arquitectura sin cambios importantes en el código.
- Con el tiempo, aprenderá los entresijos de GAE y qué se puede hacer y qué no. Pero lleva tiempo, como con cualquier marco. Por ejemplo, las tareas de la cola no pueden ejecutarse más de 10 minutos … por lo que debe dividir las tareas más largas en fragmentos, etc. Hay un montón de conocimientos para aprender a utilizar GAE al máximo.
- GAE no era compatible con todas las librerías de Java … oye, no era compatible con Java8 (no sé si sigue siendo el caso), y esto significa que debe solucionarlo o escribir sus propias bibliotecas.
- Sin embargo, Google introdujo sus motores de cómputo que son máquinas independientes. Ahí tienes un poco más de manos abiertas. Sin embargo, cuando lo probamos, no funcionaron a la par con GAE (esto fue hace 2 años … así que las cosas podrían haber cambiado)
Por lo tanto, GAE es excelente si tiene un proyecto más pequeño o un negocio realmente lucrativo.
GAE no es adecuado para startups que pueden generar mucho tráfico, pero no pueden monetizarlo.
Actualmente trabajo en una nueva startup con un par de colegas y hemos excluido a GAE.
Compruébalo en: devscore.co
GAE es justo en cuanto a costos impredecibles. Pero esto significaba que teníamos que:
- Cree nuestro propio entorno y debemos cuidar nuestros servidores
- La implementación se realiza actualmente a mano (pero esto puede cambiar cuando nos ponemos al día: Kubernetes, Docker …)
- Necesitábamos implementar / integrar nuestro propio visor de registros, servicio de cola, cron y servicios de correo
- Pero nuestros costos son montos fijos cada mes, y calcular costos es fácil y predecible