Azure y el desarrollo en la Nube Parte 2

Posted on Posted in Servicios

En una entrada anterior a este blog, hemos hablado de algunos conceptos de Azure y la relevancia que tiene al momento de crear entornos de desarrollo. En esta ocasión, hablaremos acerca de las opciones que Azure nos ofrece al momento de desarrollar y publicar aplicaciones.

Virtual Machines (IaaS)

Comencemos con los sitios Web, Azure ofrece la posibilidad de crear máquinas virtuales a partir de plantillas con entornos de desarrollo prácticamente listos para crear una aplicación desde cero o migrar una ya existente. Estos entornos pueden ser generados con sistemas operativos tanto de Microsoft como de código abierto. La creación de máquinas virtuales a partir de plantillas, no sólo se limita a la generación de ambientes de desarrollo, sino que también ofrece una amplia gama de opciones que incluye soluciones y aplicaciones listas para utilizarse como puede ser el caso de plantillas de WordPress por mencionar una. Sin embargo un tema muy importante a tomar en cuenta será la responsabilidad de administrar las máquinas virtuales y sus sistemas operativos, lo cual representa una ventaja y desventaja al mismo, puesto que esencialmente requiere tener conocimiento para instalar y configurar IIS, versiones del frame work etc.

Web Roles (PaaS)

Los roles Web son la opción que ofrece Azure de ejecutar una aplicación de tipo Web sin tener que administrar el servidor. Esto es lo que se conoce como un entorno web administrado. De esta forma, Azure nos provee de un entorno configurado y administrado en su totalidad, donde podemos publicar nuestro sitio Web utilizando una vasta gama de tecnologías, C#, Java, PHP, Python por mencionar algunas.

Los Servicios Web, tienen la característica de poder contener, además de un Web Rol, un Worker Rol o rol de trabajo. Como ya se ha mencionado anteriormente, se trata de un servicio en la nube que ejecuta tareas en segundo plano.

Este tipo de servicio, tiene ventajas como la alta disponibilidad y escalabilidad, ya que es posible agregar o quitar instancias de forma dinámica para equilibrar las solicitudes de carga, pagando únicamente por los recursos que se ejecuten. Sin embargo, la en este escenario tenemos dos desventaja, la primera es que al no tener acceso a la administración servidor, no se podrá instalar ningún tipo de software o actualización a nivel de servidor; la segunda es que las instancias no son persistentes lo que implica guardar todos los datos fuera de la máquina donde se ejecuta.

Herramientas para desarrolladores

Ya que tenemos una idea básica de las opciones de servicios de Azure, podemos hablar sobre las herramientas que ofrece al momento de desarrollar una aplicación.

El punto de partida para la mayoría de desarrollos es Visual Studio y el Azure SDK, juntos proveen un entorno de desarrollo con una biblioteca especializada en Azure; Incluyendo un simulador de instancias, simulador de web y worker roles. Adicional, Visual Studio ofrece soporte para  una gran variedad de plataformas, integración continua y despliegue de soluciones tanto en IaaS como en PaaS. Con la ventaja de integrar tareas de mantenimiento a través de comandos de PowerShell.

Además de Visual Studio, Azure cuenta el servicio denominado Visual Studio Team Services, el cual provee un conjunto de herramientas capaces de interactuar con otros IDEs (entornos de desarrollo integrados) así como de herramientas para crear y gestionar las tareas del backlog; Ejecutando sets de prueba de carga, Visual Studio Team Services determinará automáticamente cuántos agentes o máquinas virtuales se necesitan para dar soporte a nuestra aplicación.

Finalmente, antes de hacer una elección sobre cualquiera de los modelos aquí mencionados, así como de las herramientas empleadas, es importante hacer un análisis de los requisitos de nuestra solución, con la finalidad de hacer la elección, tomando en cuenta elementos como el nivel de administración, la carga de usuarios, el tipo de solución web o el tipo de almacenamiento entre otros.

Adopta la nube con los expertos..

Si quieres conocer un poco mas o tienes algún proyecto de negocio en puerta

Contactanos: contacto@extend.com.mx

Mas acerca de Computo en la Nube

Imagen de perfil de Romeo Alvarez
Romeo es ingeniero de formacion, con una Maestria en Telecomunicaciones, cuenta con amplia experiencia en Soluciones desarrolladas en plataformas Microsoft. SharePoint y Azure como sus tecnologias predilectas. Actualmente Romeo es Lider de desarrollo dentro del equipo de Operaciones en Extend

Comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *