-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Si en tu día a día te encuentras desarrollando apps, debes ser consciente que el impacto inicia cuando comienzas a tener usuarios, por esto es importante lanzar tu aplicación sin tener complicaciones de infraestructura, administrar servidores, tus bases de datos y la seguridad que estos deben de tener entre otras cosas.
En el mercado existen una serie de alternativas conocidas como PaaS (Platform as a Service) o “Plataformas como Servicios” que, además de ser la evolución de las IaaS (Infraestructura como Servicio), como EC2 de Amazon donde te dan un servidor y tu te encargas de provisionarlos y administrarlos con PaaS, te puedes olvida de todas estas cuestiones de administración, pues utilizas directamente una plataforma que lo hace por tí.
Si este tema te interesa a continuación te doy un taco de ojo de como puedes hacer un desplegué de tu aplicación creando tu propio PaaS utilizando Heroku.
Heroku es uno de los PaaS más utilizados en la actualidad en entornos empresariales por su fuerte enfoque en resolver el despliegue de una aplicación. Ademas te permite manejar los servidores y sus configuraciones, escalamiento y la administración. A Heroku solo le dices qué lenguaje de backend estás utilizando o qué base de datos vas a utilizar y te preocupas únicamente por el desarrollo de tu aplicación.
Heroku tiene su clientela bien definida: empresas que quieren dejar de preocuparse por cuestiones de infraestructura y sólo enfocarse en el desarrollo. Por lo general estas suelen ser empresas grandes o startups que prefieren no invertir en un equipo de operaciones cuando están en una etapa temprana, y su prioridad debe ser hacer un producto que las personas quieran.
Heroku tiene dos tiers, o niveles, para personas interesadas en aprender: una versión gratuita similar a la de now.sh, que entra en modo “sleep” cada 30 minutos sin tráfico, y otra de 7 USD que compite con el servicio básico de 5 USD al mes que ofrece Digital Ocean, pero agrega las ventajas de que nuestros servidores sean administrados por nosotros.
¿Te gustaría aprender más sobre Heroku? ¿Utilizas alguna otra opción para subir tus proyectos a la nube? ¿Cómo manejan la infraestructura de la aplicación donde trabajas? A continuación te detallo un poco las formas para trabajar con ello, ya sea por medio de Heroku CLI o por medio de la web.
Si vamos a trabajar por medio de Heroku CLI, lo primero qeu debemos realizar, es la descarga de la herramienta Heroku CLI.
Una vez descargada la herramienta habiendo seleccionado la conveniente para nuestro sistema operativo, procedemos a instalarla, en nuestro caso como utilizaremos Windows 10, se realiza la típica instalación NNF
NOTA: Previamente se tuvo que haber hecho un registro en la plataforma de Heroku por medio de la direccion "https://signup.heroku.com/login", la cual nos permite generar una cuenta de usuario, que posteriormente usaremos.
Luego de finalizar la instalación de la herramienta, procedemos a abrir la consola de comandos en nuestro caso la Terminal de Windows y tecleamos el siguiente comando:
heroku login
Luego de ejecutar el anterior comando, nos solicita la siguiente info:
heroku: Press any key to open up the browser to login or q to exit:
Si deseamos que se aperture el login en el navegador, presionamos cualquier tecla menos la tecla q, de lo contrario presionamos la tecla q.
Si nuestra respuesta fue presionar la tecla Enter, se abre una pestaña en el navegador establecido por defecto, ingresamos las credenciales de login, y en la parte inferior del formulario de login nos informa que debemos cerrar dicha pestaña para que se complete el proceso de logueo, teniendo en cuenta que la herramienta Heroku CLI tomara la sesión abierta por el navegador para solicitar autorización al servicio de Heroku y es en ese momento que en la consola se nos informa lo siguiente:
Logging in... done
Logged in as [email protected]
Para crear una nueva aplicación en Heroku desde Heroku CLI debemos usar el siguiente comando:
$ heroku create
Creating mighty-hamlet-1982... done, stack is cedar-14
http://mighty-hamlet-1982.herokuapp.com/ | [email protected]:mighty-hamlet-1982.git
Git remote heroku added
Como pudimos observar en la salida del comando, un nombre aleatorio es asignado a nuestra aplicación (en este caso, es este mighty-hamlet-1982).
En orden de aparición los mensajes indican lo siguiente:
- Creating mighty-hamlet-1982... done, stack is cedar-14; la aplicación fue creada con el nombre anterior y fue desplegada en el stack-server denominado cedar-14.
- http://mighty-hamlet-1982.herokuapp.com/ | [email protected]:mighty-hamlet-1982.git; El mensaje izquierdo a la barra vertical indica la URI que fue asignada a nuestra aplicación para ser servida desde internet, mientras que el derecho indica el URI del repositorio basado en la aplicación.
- Git remote heroku added; el repositorio local fue redirigido al repositorio remoto en Heroku, manera por la cual se hace el despliegue de la aplicación.
Ahora ya estamos mas que listos para hacer el deploy de la aplicación.
NOTA: Debemos asegurarnos que todos los cambios realizados al proyecto hayan sido agregados al repositorio con sus respectivos commit´s y poder asi realizar un despliegue de los últimos cambios.
Para poder desplegar nuestra aplicación en Heroku hacemos uso del siguiente comando:
git push heroku master
La ejecución de este comando nos devuelve la siguiente salida:
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 379 bytes | 0 bytes/s, done.
Total 4 (delta 3), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Fetching custom git buildpack... done
remote: -----> PHP app detected
remote: -----> Resolved 'composer.lock' requirement for PHP to version 5.6.14.
remote: -----> Installing system packages...
remote: - PHP 5.6.14
remote: - Apache 2.4.10
remote: - Nginx 1.6.0
remote: -----> Installing PHP extensions...
remote: - mbstring (composer.lock; bundled)
remote: - zend-opcache (automatic; bundled)
remote: -----> Installing dependencies...
remote: Composer version 1.0.0-alpha10 2015-04-14 21:18:51
remote: Loading composer repositories with package information
remote: Installing dependencies from lock file
...
remote: - Installing laravel/framework (v5.1.19)
remote: Downloading: 100%
remote:
remote: Generating optimized autoload files
remote: Generating optimized class loader
remote: Compiling common classes
remote: -----> Preparing runtime environment...
remote: -----> Discovering process types
remote: Procfile declares types -> web
remote:
remote: -----> Compressing... done, 74.5MB
remote: -----> Launching... done, v5
remote: https://mighty-hamlet-1982.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
To https://git.heroku.com/mighty-hamlet-1982.git
1eb2be6..1b70999 master -> master
Si todo salio bien y deseamos revisar si esta nuestra aplicación servida correctamente en internet hacemos uso del siguiente comando:
heroku open
Este comando abre el navegador predeterminado en el sistema y despliega una pestaña con la URL de nuestra aplicación alojada en Heroku
Pendiente esta sección...
echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
git add .
git commit -m "Procfile for Heroku"
[master 1eb2be6] Procfile for Heroku
1 file changed, 1 insertion(+)
create mode 100644 Procfile