Desarrollando Aplicaciones Web con PHP7.0 y Docker

Docker es un software de manejo de contenedores, mientras que PHP7.0 es la última versión de este lenguaje de programación que incluye mejoras que hacen que la velocidad de su funcionamiento sea 50% más veloz que su predecesor. En este tutorial crearemos un ambiente de desarrollo usando Docker con lo cual no tendremos que instalar ningún otro software ni librería para funcionar.

Origen: ctala/apache2_php7_awsebs – Docker Hub

Docker

Ya hace un tiempo que quería probar como funcionaba Docker para el desarrollo de aplicaciones para no tener que instalar todo nuevamente en mi máquina. Hace unos días ya llegó mi nueva laptop por lo que ya no tengo excusas para no trabajar y se me ocurrió la brillante idea de procastinar aprendiendo y creando imagenes de Docker en vez de iniciar directamente con lo que debía hacer. El resultado fue satisfactorio por lo que estoy muy contento, así que aprovecho de compartir no solo como desarrollar en PHP7.0 usando Docker, si no que además utilizaremos una imagen que creé para este cometido que incluye todo lo necesario para poder desarrollar sin problemas en PHP7.0, además de herramientas que hacen que el proceso sea más sencillo.

Prerequisitos :

  • Tener Docker ya instalado.
  • Los comandos que mostraré son en base a un HOST linux, lo que no quiere decir que la imagen que ocuparemos no funcione con otro HOST.

Leer más

HOWTO Custom AMI en Elastic Bean Stalk de AWS ( Amazon Web Services )

Elastic Bean Stalk se ha convertido en una de mis herramientas favoritas. El fácil deploy de mis aplicaciones utilizando git, la maquina con php5 y la conexión al RDS han hecho que me vuelva comodo en la forma como manejo las versiones y las máquinas para mi software. Además hay que tomar en cuenta que las instancias micro son libres de pago.

La AMI ( Amazon Machine Image ) en la que se lanzan todas las instancias de la aplicación subida por ElasticBeanStalk es una distribución propia de Amazon con un Vanilla Kernel. Esta versión utiliza yum para la instalación de paquetes.

La razón de utilizar una maquina CUSTOM / PROPIA es debido a que la maquina por defecto no tenga todo lo que necesitas. En mi caso particular necesitaba una librería de php-pear para mi aplicación escrita en php.

En mi caso, la idea es extender una imagen linux ( existen distintas versiones incluyendo windows ). Las AMIs en las que me puedo basar dependiendo de la arquitectura son las siguientes:

  1. 32: ami-15812b7c – amazon/PHPBeanstalk32-2012.08.09T20.48.38.0000
  2. 64: ami-ff812b96 – amazon/PHPBeanstalk64-2012.08.09T20.51.54.0000

Y los pasos a seguir son los siguientes:

  1. Crear una instancia en EC2 basada en una de estas imágenes.
  2. Modificar Nuestra nueva Imagen y crear una AMI a partir de ella.
  3. Establecer que nuestra aplicación en BeanStalk utilice nuestra nueva AMI ( Custom AMI )
OJO : Estoy asumiendo que ya tienen una aplicación andando en ElasticBeanStalk, si no la tienen es posible que necesiten una para corroborar este tutorial.

Yii Framework in Amazon Elastic Beanstalk << The application did not respond at the health check URL.>>

Amazon Elastic Beanstalk es una gran sistema en el cual puedes subir tu aplicación sin necesidad de preocupar de la configuración del servidor y el manejo de los recursos de este mismo.

Este sistema para funcionar posee un health check que se encarga de revisar que todo funcione como debe antes de mostrar la aplicación al público, si esta revisión no es aprobada la aplicación no responderá.

Al usar un framework, especialmente si desarrollamos una aplicación que requiera inicio de sesión, especialmente si este es MVC, debemos preocuparnos de pasar esta prueba de antemano.

En este caso es bastante sencillo, simplemente se debe crear un controlador con una vista que muestre el estado del servicio de manera dinámica o un mensaje de manera estática y asegurarnos que sea accesible por todo el mundo. En este caso si estamos manejando una aplicación basadao en roles y permisos, asegurarnos que todos ( ‘*’ ) tengan acceso a a esta página.

En mi caso usando Yii, cree un controlador llamado health que simplemente responde de manera estática que todo está bien.

  1. Crear Vista + Controlador.
  2. Asegurarnos que sea accesible por todos.
  3. Ingresar la nueva dirección a nuestro «health check url».