Apple Podcast (iTunes) | iVoox | Spotify | Suscríbete al podcast

Comparamos dos alternativas PaaS (Platform as a Service) con similitudes y diferencias para desplegar tus aplicaciones en la nube.

Primero felicitamos a todos los participantes del Hackathon de Programar es una mierda, especialmente a los ganadores que con su esfuerzo han conseguido una suscripción completa al contenido de pago de danielprimo.io.

Recuerda que al igual que ellos en la Zona Premium podrás aprender, practicar y encontrar inspiración para crear tus propias aplicaciones.

Ha sido mi primera experiencia como patrocinador en toda mi vida. ¡Repetiremos!

Despliega con un git push

Tanto Heroku como Dokku parten de la base de ponerlo fácil al developer. Tanto es así que el coste que hay que pagar por ello en el caso de Heroku no es precisamente pequeño.

El código pasa a ser el centro de todo y la infraestructura crece en torno a él. Crearemos contenedores con capacidades derivadas de nuestro código (lenguaje de programación, gestión de paquetes, servidor web) para disponer de ellas en la nube.

Además, un factor clave de todo esto, es la capacidad de escalar las capacidades o réplicas de lo que desplegamos.

Estos son las principales características comunes de ambas plataformas, veamos algunas diferencias.

Heroku, el estándar del deploy fácil

En el Desafío Python desplegamos la primera versión de la aplicación en Heroku. Finalmente la nube elegida fue en Python Anywhere y este fue el resultado del ranking de podcast.

El motivo de esto no fue que diera un mal resultado, en absoluto. Un deploy en Heroku es coser y cantar, está bien documentado y, por si fuera poco, el sistema adivina que necesidades específicas tiene tu aplicación para cargar las dependencias (buildpacks) en torno a ellas. Soporta Ruby, Java, Node.js, Scala, Clojure, Python, PHP y Go.

La dificultad estuvo en el elevado precio que hay que pagar si queires un servicio de producción real. El dyno gratuito es plenamente funcional para realizar demos y pequeñas aplicaciones, pero no es suficiente para tener persistencia, plena disponibilidad o workers en tareas programadas.

Heroku tiene una gran documentación, en el episodio hablamos de lo que explican en esta guía de introducción con una aplicación en PHP. También puedes echar un ojo a su marketplace de Add-ons, con todas las funcionalidades extra que puedas desear.

Dokku, un PaaS de código abierto y bajo coste

La contrapartida al asunto del precio la tenemos en Dokku. Es una implementación muy pequeña que atrapa el estilo de Heroku y basa su trabajo en Docker.

En este caso la inversión tenemos que hacerla para poner en marcha un servidor que permita la instalación de Dokku. Lo más sencillo es utilizar las instalaciones en "un click" que nos proveen DigitalOcean o Azure, aunque algunos se atreven con la Raspberry Pi.

Lo tendremos todo en marcha en cuestión de minutos. A partir de ahí el ecosistema de Dokku tiene algo más de trabajo que el de Heroku, principalmente porque todo lo haremos a través de línea de comandos. Si tienes una posibilidad de instalar un panel de control, pero en terminal todo funciona muy bien.

Dokku cuenta también con una potente comunidad de plugins, que nos proveen de servicios como la persistencia de datos. Lo mejor para empezar es seguir su guía de primeros pasos para comprender el funcionamiento global. Incluso podríamos instalar WordPress, así que no sólo es para "proyectitos" de demo.

Puedes ver una demo en directo de la WeCode o este artículo de introducción, ambos en castellano.

¿Qué opción elegir?

Ambas son perfectamente válidas y todo depende de dos factores clave:

  • Cuánto dinero estás dispuesto a invertir
  • Cuánta fiabilidad quieres tener en la nube

En ningún caso digo que Dokku no sea fiable, pero la infraestructura de Heroku no es algo a tomarse a broma. Eso sí, el coste de este segundo puede dejarlo fuera de la competición si estás trabajando en un side project o similar.

Lo mejor de todo: ¡probar ambos! Y luego contárnoslo en los comentarios, claro ;)

Muchas gracias por pasar tu tiempo con nosotros. Recuerda que puedes seguirnos en @webreactiva o en nuestro canal de telegram.

¡Hasta el próximo martes!

¿Quieres ser mejor desarrollador?

Escrito por Dani

Soy programador web freelance. Especialista en frameworks basados en PHP como Drupal, aunque también me gusta trabajar con microframeworks en varios lenguajes y, por supuesto, tengo a Javascript de gran aliado. aquí.
comments powered by Disqus