驴En qu茅 consiste Beanstalk?
Beanstalk es la forma mas r谩pida de tener una aplicaci贸n montada y ejecut谩ndose en AWS. Los desarrolladores pueden de manera simple enviar el c贸digo, y el servicio manejara autom谩ticamente los detalles como el provisionamiento, el balanceo de carga, auto scaling y el monitoreo.
La application (application)
Una application es la colecci贸n l贸gica de componentes de Beanstalk, los cuales incluyen ambientes, versiones y configuraciones de ambientes. En Beanstalk una aplicaci贸n es conceptualmente similar a un directorio.
La application version (versi贸n de la aplicaci贸n)
La application version (versi贸n de la aplicaci贸n) se refiere a una versi贸n, con un nombre de despliegue para una aplicaci贸n web. Dicha versi贸n apunta a un objeto de S3 que contiene el c贸digo a desplegar. Las aplicaciones pueden tener muchas versiones y cada versi贸n de la aplicaci贸n es 煤nica. En un ambiente de ejecuci贸n, las organizaciones pueden desplegar cualquier versi贸n de aplicaci贸n que ya hayan subido, o pueden enviar un deploy inmediatamente de una nueva versi贸n. Las organizaciones pueden tambi茅n subir m煤ltiples versiones de las aplicaciones.
El environment (entorno)
El environment (ambiente) es la versi贸n de una aplicaci贸n que es desplegada en los recursos de AWS. Cada environment se ejecuta 煤nicamente en una versi贸n de una aplicaci贸n; sin embargo la misma versi贸n o diferentes versiones pueden ejecutar cuantos environments se requieran.
El environment configuration (la configuraci贸n del entorno)
Un environment configuration (configuraci贸n de ambiente) es una colecci贸n de par谩metros y configuraciones que definen como un ambiente y sus recursos asociados se comportan. Cuando la configuraci贸n de un ambiente es actualizada, Beanstalk aplica autom谩ticamente los cambios a los recursos existentes o borra y despliega nuevos recursos dependiendo del tipo de cambio.
Cuando un environment es disparado, el nivel del environment, la plataforma, y el tipo de environment son especificados. El nivel del ambiente que es elegido determina si Beanstalk provisiona recursos para soportar una aplicaci贸n web que maneje peticiones HTTPS o aplicaciones que manejen proceso de tareas en segundo plano. El nivel del environment en el cual la aplicaci贸n procesa las peticiones web es conocido como web server tier (nivel del servidor web). Un nivel de environment en el cual la aplicaci贸n ejecuta trabajos en segundo plano es conocida como worker tier.
Beanstalk provee soporte para las plataformas de programaci贸n Java, Node.js, PHP, Python, Ruby y Go con soporte para contenedores web Tomcat, Passenger, Puma y Docker.
驴Cu谩les son las caracter铆sticas de Beanstalk?
Beanstalk provee varias caracter铆sticas de administraci贸n que hacen sencillo los deployments y el manejo de las aplicaciones en AWS. Las organizaciones tienen acceso a crear m茅tricas de monitoreo en CloudWatch como uso promedio del CPU, numero de peticiones y promedio de latencia. Recibir notificaciones por correo electr贸nico mediante SNS cuando una aplicaci贸n cambia o los servidores son agregados o removidos. Los logs de los servidores de aplicaciones pueden ser accedidos sin necesitar de un login.
De manera adicional los desarrolladores tienen control total de los recursos de AWS empoderando su aplicaci贸n y pueden realizar una variedad de funciones simplemente ajustando las caracter铆sticas de configuraci贸n como:
- El tipo de instancia de EC2.
- El tipo de base de datos.
- Habilitando acceso a las instancias de EC2.
- Mejorando la seguridad de la aplicaci贸n habilitando HTTPS en el ELB.
- Ajustando las configuraciones del servidor y variables de entorno.
- Ajustando las caracter铆sticas de Auto Scaling para controlar las m茅tricas y umbrales utilizadas para agregar o remover instancias.