Dominar el desarrollo de aplicaciones de Windows Azure - Calendae | Informática, Electrónica, CMS, Ciberseguridad

Dominar el desarrollo de aplicaciones de Windows Azure

Hola y mil gracias por leerme. Yo soy Simón Sánchez y esta vez vamos a hablar sobre Dominar el desarrollo de aplicaciones de Windows Azure

Paisaje de nubes

Antes de analizar el dominio del desarrollo de aplicaciones en la nube, es importante analizar el panorama de la nube existente. Hay cuatro plataformas principales de computación en la nube disponibles en el mercado hoy en día: Amazon EC2, Windows Azure, Google App Engine y Force.com. Cada una de estas plataformas es un intento más o menos exitoso de comercializar tecnología de virtualización interna. Si bien Amazon y Microsoft han logrado crear un entorno de nube genérico, Google y SalesForce siguen siendo jugadores de nicho gracias a los rudimentos de la tecnología desarrollada internamente y al uso de lenguajes de programación como Python y APEX.

En los próximos años, la computación en la nube tomará una parte sustancial del mercado de los modelos de implementación tradicionales. Esto implica una demanda creciente de aplicaciones capaces de ejecutarse en un entorno de nube y de ingenieros de software capacitados en tecnologías de computación en la nube. Dado que el desarrollo de software comercial está impulsado por empresas que prefieren las tecnologías tradicionales, es probable que Amazon EC2 y Windows Azure sean las dos plataformas elegidas por los desarrolladores de software. Teniendo en cuenta el hecho de que ambas plataformas pueden alojar aplicaciones escritas en diferentes lenguajes de programación, Java y .NET deben designarse como plataformas de desarrollo primarias para Amazon EC2 y Windows Azure respectivamente.

En este artículo, nos centraremos en dominar el desarrollo de aplicaciones para Windows Azure, que es una inversión valiosa para un programador de .NET.

Conocimiento requerido

Hablemos de las habilidades específicas requeridas para desarrollar aplicaciones de Windows Azure, cosas para comenzar y áreas para estudiar.

Habilidades obligatorias

Un programador que busque sumergirse en el desarrollo de aplicaciones de Windows Azure debe tener un conocimiento práctico de las tecnologías Microsoft .NET. Las habilidades especiales son:

Los desarrolladores deben estar familiarizados con los conceptos RDMS y MS SQL 2008. Además, una comprensión sólida del protocolo HTTP y el concepto REST es muy conveniente, ya que ayuda a evaluar las implicaciones de la topología de la red (equilibradores de carga, servidores proxy, CDN). en servicios web RESTful. El conocimiento de los principios de diseño de la Arquitectura Orientada a Servicios (SOA) es esencial ya que las aplicaciones en la nube dependen en gran medida de los servicios.

Conceptos de nube

  1. El primer paso lógico es familiarizarse con los conceptos relacionados con la nube y adoptar los principios del desarrollo de aplicaciones en la nube. Hay mucha información sobre la computación en nube en la web. Desde el punto de vista de un desarrollador de software, la nube puede verse como una forma de obtener acceso bajo demanda a dos tipos de recursos escalables: computación (CPU) y almacenamiento que están disponibles a través de los servicios proporcionados por la plataforma en la nube.

  1. El segundo paso es conocer en detalle cómo funciona el entorno de alojamiento de Windows Azure. Hay uno bueno presentación a Channel9, que describe la infraestructura de la plataforma y el ciclo de vida de la aplicación. Como resultado de este paso, un desarrollador debe reconocer y adoptar las siguientes ideas:

    • La aplicación en la nube se ejecuta en un sistema operativo Windows 2008 básico
      No asuma que el entorno de alojamiento de Windows Azure tiene software preinstalado; es un sistema operativo simple. Cualquier funcionalidad, generalmente compatible con software preinstalado, debe implementarse dentro de la aplicación alojada en Windows Azure.

    • La instancia de la aplicación se puede reciclar de la plataforma en cualquier momento
      Todo lo almacenado en la memoria de un disco duro local se eliminará una vez que se recicle la instancia. Para conservar sus datos y ponerlos a disposición de otras instancias, use los Servicios de almacenamiento de Windows Azure.

    • La aplicación en la nube se ejecuta en un entorno concurrente.
      Los servicios proporcionados por la plataforma Windows Azure están diseñados para operar en entornos concurrentes utilizando el modelo de «prueba y reparación». La aplicación debe seguir este patrón y manejar adecuadamente los casos en los que se deniega el acceso a un servicio repitiendo la operación en un momento posterior. Otra cosa a tener en cuenta es que una aplicación web en Windows Azure siempre se ejecuta detrás del equilibrio de carga.

Introducción al desarrollo de Windows Azure

Recomiendo comenzar leyendo un libro de Tejawsi Redkar «Windows Azure Platform» (segunda edición) que ofrece una buena introducción a Windows Azure para principiantes.

Configuración del entorno de desarrollo

Primero, debe configurar el entorno de desarrollo. El entorno de desarrollo de Windows Azure requiere el sistema operativo Windows Vista SP2, Windows 7 o Windows 2008. Se debe instalar el siguiente software:

En esta etapa, debería poder abrir Visual Studio y crear una solución de Windows Azure vacía. Como ejercicio, sugeriría implementar una sencilla aplicación de archivo de fotografías Online.

Roles web, de trabajador y de máquina virtual

Descubra tres tipos de roles de aplicación compatibles con Windows Azure:

Los dos primeros roles son análogos a la aplicación web tradicional y los servicios de Windows. El rol de la máquina virtual es algo especial y no debe usarse a menos que se requiera una versión personalizada de un sistema operativo invitado. El uso de roles de VM coloca la carga del soporte del sistema operativo en el administrador del sistema.

Tenga cuidado al acceder a la aplicación de Windows Azure. Recuerde que depurar una aplicación en la nube es bastante difícil si es posible. Por lo tanto, la aplicación debe generar y almacenar suficiente información de depuración para permitir la detección y seguimiento de problemas en el código.

Servicios de archivo

Hay tres tipos de almacenamiento compatibles con la plataforma Windows Azure:

  • Almacenamiento de blobs

  • Organizador de mesa

  • Almacenamiento en cola

Los servicios se exponen a través de la API REST y también están disponibles fuera del entorno de alojamiento de Windows Azure, por lo que puede crear una aplicación para un dispositivo móvil que interactúe directamente con el almacenamiento. El SDK de Windows Azure viene con una biblioteca administrada que brinda acceso a los servicios de almacenamiento a través de un modelo de objetos.

Hay varias cosas importantes que debe saber al trabajar con Azure Storage:

  • Los objetos de almacenamiento tienen direcciones URL, por lo que se aplican algunas restricciones al nombre del objeto.

  • Hay tres tipos de blobs: blob único, blob en bloque y blob en página. Cada uno de ellos tiene un tamaño mínimo y máximo.

  • El almacenamiento de tablas no es una base de datos relacional. No hay relaciones, índices ni restricciones. Es más como una hoja de cálculo de Excel altamente escalable en número de filas.

  • Una tabla siempre incluye dos propiedades (PartitionKey y RowKey) que forman una clave principal, la longitud total de la clave no puede exceder los 1024 símbolos. Solo se pueden usar 256 símbolos de clave primaria para direccionar el registro.

  • La tabla siempre incluye el campo de marca de tiempo utilizado para resolver conflictos

  • La tabla tiene límites de 1 millón por entidad (fila) y 64 mil por propiedad (campo)

  • La clasificación no es compatible con el almacenamiento de tablas, por lo que siempre se realiza en el lado del cliente.

  • El número máximo de registros devueltos por una consulta en la tabla está limitado a 1000 entidades por solicitud. Se debe utilizar un token de continuación para recuperar datos posteriores.

Los servicios de almacenamiento de Windows Azure deben estudiarse en detalle, con un enfoque en abordar un patrón, límites de tamaño y restricciones operativas. Este conocimiento evitará que tomes malas decisiones en el diseño de tu aplicación en la nube.

Entre otras cosas que vale la pena revisar, recomendaría un estudio completo del rendimiento del almacenamiento de Azure. http://azurescope.cloudapp.net/BenchmarkTestCases/ lo que da una buena idea del rendimiento del almacenamiento en diferentes escenarios.

Azure SQL

Azure SQL es una versión en la nube de la base de datos normal de MS SQL. Parece un reemplazo completo de la base de datos MS SQL normal con pocas restricciones en la sintaxis T-SQL. Sin embargo, la restricción principal de Azure SQL es el límite de tamaño de 50 GB por base de datos, por lo que no es completamente escalable. Reconocer este hecho es importante para la arquitectura de la aplicación. Solo los datos que no deberían crecer sustancialmente deben almacenarse en Azure SQL, como una lista de cuentas de usuario. Muy a menudo, los desarrolladores intentan usar Azure SQL para almacenar cosas como imágenes, documentos, registros, etc., por lo que el almacenamiento se agota muy pronto y el sistema falla.

Las bases de datos de Azure SQL están disponibles fuera del entorno de hospedaje de Windows Azure. Puede establecer restricciones de acceso basadas en una dirección IP.

AppFabric

Windows Azure AppFabric es un conjunto de servicios de middleware diseñado para facilitar el desarrollo de aplicaciones comerciales en Windows Azure. Actualmente, el SDK y los servicios están disponibles como versión CTP. El aprendizaje de AppFabric SDK no es necesario para desarrollar aplicaciones de Windows Azure, sin embargo, un servicio muy solicitado por los desarrolladores a tener en cuenta: el servicio de caché que proporciona acceso rápido al almacenamiento de datos en la memoria. Aquí me refiero al hecho de que Windows Azure no proporciona una forma de almacenar los datos de la sesión web, por lo que los desarrolladores deben implementar un proveedor de sesión de versión personalizada que dependa del almacenamiento de Windows Azure. El nuevo servicio de caché resuelve este problema.

Hay una buena lectura actualizada sobre AppFabric de Alan Smith disponible de forma gratuita en http://www.cloudcasts.net/devguide/

Distribución

Ha llegado a la etapa en la que se implementa y prueba su primera aplicación de Windows Azure en el entorno de desarrollo. Para implementar la aplicación en el entorno de Windows Azure, debe registrarse en el servicio. Está disponible una prueba gratuita de 90 días (se requiere una tarjeta de crédito válida).

Una vez configurada la cuenta, puede crear una cuenta de almacenamiento y un servicio alojado. Cada servicio alojado admite dos entornos: ensayo y producción. La implementación de la aplicación es bastante sencilla y requiere cargar un paquete y un archivo de configuración. La aplicación en el entorno de ensayo está disponible en una URL privada para fines de prueba. Una vez que haya probado su entorno de ensayo, puede pasar a producción con un solo clic. Ahora tiene su aplicación de Windows Azure en ejecución.

Recuerda compartir en tus redes sociales para que tus colegas lo sepan

??? ? ? ???

Comparte