No estamos lejos de que dentro de poco la gran mayoría de las aplicaciones de software empresarial estén trabajando desde alguna arquitectura de Cloud Computing , de ahí la importancia de conocer algunas de las principales plataformas de servicios en la nube. Ahora analizaremos la forma de crear una aplicación PHP en Heroku, utilizando la capa gratuita que este servicio nos brinda.
¿Qué es Heroku?
De acuerdo con Rojas L. (2011), Heroku se utiliza para desarrollar software y programación manteniendo un significativo grado de control sobre el software creado. Heroku es una PaaS, una plataforma a nivel infraestructura de desarrollo. Ofrece a los desarrolladores muchos elementos de Cloud Computing para construir las apps (ej. Servicios de mensajería, sincronización de apps en tiempo real, persistencia políglota, APIs REST a otros servicios en la nube, etc).
No se le considera un servicio económico, aunque sí cuenta con área sin cargo, lo que permite al desarrollador mostrar algo de la aplicación a su cliente aun sin haber pagado nada; tiene la ventaja de que el desarrollador no tiene que administrar el server y cuenta con buen desempeño. En forma sencilla el desarrollador puede subir o bajar la capacidad de la app o dimensionarla según los horarios de mayor carga.
El plan básico (y gratuito) es de un nodo, que incluiría unos 512 MB de RAM y 1 GB de swap, a partir de allí pueden empezar a cobrar. En esta modalidad Heroku requiere de 6 horas de inactividad por periodo de 24 horas (Heroku.com, 2015).
Ofrece soporte para Ruby, Node.js, Python, Java, Go y PHP. Otros servicios similares a Heroku serían: Google App Engine, Openshift, AppFog y DotCloud (Viera, 2015).
Creando la aplicación
Para realizar la presente actividad, necesitaremos crear una cuenta en Heroku (se muestran los pasos a continuación), tener PHP y Composer instalado.
- Accedemos a la web de Heroku en heroku.com
- Creamos una cuenta gratuita, proporcionando un correo válido que utilizaremos para confirmar la solicitud.
- Recibiremos un correo de confirmación, con un enlace que debemos abrir para recibir el servicio.
- Ahora podremos crear una contraseña.
- Una vez realizados estos primeros pasos, ya tendremos una cuenta creada, y un enlace para comenzar a trabajar.
- Lo primero que observaremos será el Dashboard de Heroku, y las opciones de lenguajes de programación que podemos utilizar. Seleccionaremos PHP, y pulsaremos el botón “I’m ready”.
- Descargamos el Heroku Toolbelt para el sistema operativo que utilicemos.
- Instalamos el Heroku Toolbelt.
- Ejecutamos el archivo escribiendo el comando “Heroku Login” en una ventana de comandos del S.O.
- En un momento determinado nos solicitará introducir el correo registrado y el password, tras lo cual nos dirá que nos hemos logueado.
- Preparamos una aplicación PHP para clonar. Utilizamos la que nos proporciona Heroku.
- Creamos una app.
El paso anterior creó un git remoto llamado heroku, asociado con un repositorio git local. Heroku genera un nombre aleatorio, en este caso cryptic-basin-1337.
- Desplegamos el código en Heroku (comando git push heroku master).
- Especificamos que por lo menos una instancia de la app esté corriendo.
- Abrimos el website con heroku open.
- Cargamos el website en el navegador (Aplicación PHP en Heroku corriendo en: https://cryptic-basin-1337.herokuapp.com/)
- En este momento podemos realizar los cambios que necesitemos a la app, reemplazar archivos, etc. Si realizamos cambios locales, debemos agregarlos al repositorio git local mediante el comando “Git add .” y subir los cambios mediante el comando “git commit –m “Demo”
Comentarios
- Nombre del proveedor: Heroku.com
- Capacidad de instancias del servicio: 1 dyno para 1 sola instancia
- Capacidad o límite de horas de uso:
Por default, la app está siendo desplegada en un dyno gratuito. Los dynos gratuitos se “duermen” después de media hora de inactividad y pueden recibir tráfico por no más de 18 horas en un día antes de irse a dormir. Si un dyno gratuito está durmiendo, y no ha excedido su cuota de 18 horas, cualquier petición web podrá ser contestada. Cuando es así, hay un retraso de unos pocos segundos en la primera petición. El resto de las petición no tendrán este retraso [2]).
4. Tipos de instancias permitidas:
En este caso, Heroku es una PaaS, por lo que nos permite desarrollar en diversas plataformas como son:
- Ruby
- PHP
- js
- Python
- Java
- Go
- Clojure
- Scala
5. Descripción de la(s) herramienta(s) de gestión:
Como pudimos observar en el desarrollo de este ejercicio, Heroku se maneja utilizando comandos, entre los que podemos mencionar:
- Heroku create (para crear la aplicación en Heroku, el git remoto y el git local)
- Git push heroku master (para desplegar el código en Heroku)
- Heroku ps: scale web=1 (para especificar que queremos correr una instancia)
- Heroku open (para abrir el website)
- Git add . (para agregar archivos modificados al git local)
- Git commit –m “Demo” (para agregar archivos del git local al master)
La herramienta gráfica solo está disponible para las versiones de pago. Además, cuenta con una herramienta de gestión como es “Activity”, para ver la actividad de la aplicación en Heroku.
6. Consumo de recursos
Para ver información acerca de la app que está ejecutándose, usamos el comando heroku logs que entre otras cosas nos permite ver el consumo de recursos de la instancia.
En esta capa gratuita Heroku no se permite un Panel de Control gráfico, solo podemos acceder a esta información a través de este comando.
Referencias
- Heroku.com (2015). Pricing. Disponible en [www.heroku.com/pricing]
- Heroku.com (2015). Scale the app. Disponible en [https://devcenter.heroku.com/articles/getting-started-with-php#scale-the-app]
- Heroku.com (2015). Dynos and the Dyno Manager. Disponible en [https://devcenter.heroku.com/articles/dynos]
- Rojas L. (2011). Cloud mobile social. Disponible en [http://leopoldorojas.com/2011/11/25/force-com-y-heroku-hermanas-con-distinta-personalidad/]
- Viera J. (2015). ¿Cuál es el mejor servicio en la nube para desarrolladores? Disponible en [http://www.bbvaopen4u.com/es/actualidad/cual-es-el-mejor-servicio-en-la-nube-para-desarrolladores-amazon-web-services-heroku-y]
Tu comentario
opiniones