Sei sulla pagina 1di 25

Desarrollo y ampliacin de aplicaciones para Windows Azure con Visual Studio 2010 Notas del producto

Publicacin: febrero de 2011

Contenido
Introduccin .......................................................................................................... 1 Ventajas de las aplicaciones en la nube ...................................................................... 2 SaaS, IaaS y PaaS .............................................................................................. 3 Presentacin Windows Azure .................................................................................... 5 Hola nube!............................................................................................................ 6 Introduccin a la aplicacin de muestra Green Fee Broker ......................................... 6 Desarrollo de aplicaciones para Windows Azure con Visual Studio 2010 ...................... 7 Implementacin en Windows Azure...................................................................... 14 Conclusin ........................................................................................................... 19 Sobre el autor .................................................................................................. 20 Apndice ............................................................................................................. 21 Servicio Compute de Windows Azure.................................................................... 21 Almacenamiento de Windows Azure ..................................................................... 22 Seguridad en la nube ......................................................................................... 22

Desarrollo y ampliacin de aplicaciones para Windows Azure con Visual Studio 2010
Notas del producto
Publicado: febrero de 2011 (estilo = Publicado)
Para obtener la informacin ms reciente, consulte http://www.msdn.microsoft.com/vstudio

Introduccin
Independientemente de su tamao, todas las empresas se hallan bajo presin para obtener ms resultados con menos recursos. Proporcionar soluciones que satisfagan estas demandas al tiempo que se reducen los costos operativos y se maximiza la eficiencia no es solamente deseable, sino que se ha convertido en una necesidad. Ms an, a los proveedores de soluciones de tecnologa de la informacin se les exige que garanticen la entrega de servicio adaptndose dinmicamente a las necesidades de crecimiento del negocio al tiempo que minimizan costos. Este proceso es difcil. Las empresas deben ser muy cuidadosas a la hora de seleccionar una infraestructura y una plataforma que les ofrezca capacidad de desarrollo y productividad operativa. Estas decisiones deben tener en cuenta las necesidades presentes y futuras del negocio. Sin embargo, planificar inversiones sobre unos costos de infraestructura y plataforma imprevisibles puede resultar complicado. Como respuesta a estos retos aparece una innovadora tecnologa conocida como aplicaciones en la nube. Wikipedia define las aplicaciones en la nube como la evolucin natural de la adopcin generalizada de la virtualizacin, la arquitectura orientada a servicios y la informtica de utilidades. A los consumidores se les ahorran los detalles: ya no necesitan tener conocimientos ni el control sobre la infraestructura tecnolgica en la nube que les da soporte. Windows Azure constituye una oferta de aplicaciones en la nube de Plataforma como servicio (PaaS) que conforma la base de la plataforma de servicios Azure de Microsoft. Las ofertas PaaS estn pensadas para que los clientes puedan desarrollar, implementar y operar aplicaciones sin necesidad de la infraestructura subyacente, los servidores ni la administracin de las operaciones continuadas. Los desarrolladores escriben aplicaciones para Windows Azure mediante Microsoft .NET, un marco integral para la creacin de aplicaciones y servicios web, mviles, de escritorio y en la nube. Mientras que Windows Azure admite varios lenguajes de programacin de otros fabricantes, como PHP, Java y Ruby, Microsoft .NET ofrece a los desarrolladores una amplia variedad de lenguajes donde elegir, siendo Visual C# y Visual Basic los ms utilizados para escribir aplicaciones en .NET as como en ASP.NET, el marco de Microsoft para crear aplicaciones web por excelencia. Estas aplicaciones pueden escribirse mediante un sencillo editor de textos y herramientas de lnea de comandos para administrar la compilacin, sin embargo, Visual Studio

Desarrollo y ampliacin de aplicaciones para Windows Azure con Visual Studio 2010

2010 constituye el entorno de desarrollo integrado (IDE) idneo para escribir aplicaciones .NET para su implementacin local y en la nube.

Ventajas de las aplicaciones en la nube


Estimar y proporcionar infraestructura resulta costoso porque es difcil prever las diferentes necesidades de una aplicacin o servicio a lo largo del tiempo. Incluso cuando se cuenta con la ayuda de expertos para llevar a cabo una planificacin de la capacidad, las necesidades del negocio pueden aumentar y disminuir de forma imprevista, ya que la demanda de productos y servicios suelen ser variable. Por consiguiente, a menudo las empresas se ven obligadas a elegir entre adquirir una infraestructura a gran o pequea escala. Una infraestructura a pequea escala implica un riesgo real de que se produzca un error en la entrega de servicios, mientras que una gran infraestructura puede resultar extremadamente costosa. Como puede verse en la figura 1, la mayora de las empresas suelen optar por una solucin intermedia, lo cual supone un proceso de adquisiciones continuas y un incremento de los gastos debido a un relevo de servidores siempre insuficiente. Ello se traduce no solo en una sangra de los presupuestos operativos desde el punto de vista del hardware, sino tambin en un mayor costo en tiempo y dinero para adquirir e implementar servidores en lugar de dedicarlos a implementar recursos en actividades que generen ingresos ms tangibles.

Figura 1: el sempiterno desajuste entre la oferta y la demanda de capacidades de TI. Una empresa necesita realizar una gran inversin en plataforma e infraestructura para garantizar que podr adaptarse a los cambios en las necesidades del negocio? Cul es el costo de contar con un excedente de capacidad que no se utiliza durante un largo periodo de tiempo? O peor: con unos presupuestos cada vez ms ajustados, cules son las consecuencias para la identidad de marca y la experiencia del cliente con una inversin insuficiente y el riesgo de no satisfacer las necesidades operativas del negocio?

Desarrollo y ampliacin de aplicaciones para Windows Azure con Visual Studio 2010

Las aplicaciones en la nube son revolucionarias porque proporcionan el consumo de infraestructura, la plataforma y el software como utilidad o un servicio a las masas. Con las aplicaciones en la nube, las empresas especializadas en proporcionar infraestructura, plataformas y productos de software aprovechan las ventajas de las grandes inversiones en centros de datos e infraestructura para proporcionar estas capacidades como servicios que su compaa puede consumir a medida que los necesite. Al igual que con los electrodomsticos, su compaa ampla una aplicacin para poder sencillamente conectarse a la nube y disfrutar de las ventajas de una gran escalabilidad y redundancia por un precio prefijado, por contador o por usuario. Con ello se consigue adaptar mejor la capacidad de TI a las necesidades variables del negocio, tal y como se muestra en la figura 2.

Figura 2: adaptacin de la capacidad a las necesidades variables del negocio. En estas notas del producto, aprender a conectarse a Windows Azure con Visual Studio 2010 siguiendo los pasos del proceso de ampliar una aplicacin existente para la nube. Antes de empezar, es preciso tener presente las tres formas ms habituales en que los proveedores de servicios en la nube, incluido Microsoft, ofrecen sus productos de aplicaciones en la nube.

SaaS, IaaS y PaaS


Lo interesante de la nube es la variedad y existen una serie de compaas que proporcionan una amplia seleccin de servicios en la nube empaquetados, ya sea como Software como servicio (SaaS), Infraestructura como servicio (IaaS) o Plataforma como servicio (PaaS), tal y como se resume en la figura 3.

Desarrollo y ampliacin de aplicaciones para Windows Azure con Visual Studio 2010

Software como servicio (SaaS) es exactamente lo que su nombre indica. Las compaas crean productos de software comercial empaquetados que se hallan fcilmente disponibles en Internet. SaaS permite a las empresas que desean aprovechar las ventajas de las ofertas de productos empaquetados como los paquetes de software de administracin de relaciones con el cliente (CRM) ahorrar proporcionando una mayor capacidad de acceso a este software sin tener que preocuparse por los requisitos del sistema u otros requisitos previos. Infraestructura como servicio o IaaS es un tipo de servicio en la nube que ofrece administracin, hospedaje y aprovisionamiento de infraestructura de aplicaciones en la nube. En lugar de adquirir hardware fsico como servidores y equipos, instalar sistemas operativos, apilar servidores y conectarse a redes, los usuarios de IaaS simplemente consumen instancias de sistemas operativos fcilmente disponibles. Aunque SaaS e IaaS se utilizan en las aplicaciones en la nube, a la mayora de las empresas solo les sirven las soluciones muy personalizadas. Plataforma como servicio o PaaS constituye un nivel de abstraccin ms all de IaaS que proporciona una plataforma sobre la que se puede crear software personalizado, de modo que permite a las empresas desarrollar, implementar y operar aplicaciones sin necesidad de preocuparse por la infraestructura subyacente, los servidores ni la administracin continuada de operaciones. PaaS permite olvidarse por completo de la infraestructura. Las aplicaciones se escriben en una plataforma determinada como .NET y solo hay que implementar el software en un contenedor lgico. Con ello se evitan las pesadas tareas de implementacin y la aplicacin se halla disponible para utilizarla al nivel de escalabilidad y redundancia que necesite. Microsoft brinda a los negocios y los desarrolladores la ms amplia seleccin de servicios para aplicaciones en la nube porque es la nica compaa que cuenta con productos compatibles con SaaS, IaaS y PaaS. Asimismo, Microsoft se diferencia fundamentalmente de Amazon, Google y cualquier otro competidor porque proporciona a los clientes la flexibilidad de utilizar tecnologa local, en la nube o ambas como parte de la estrategia Software-plus-Services (S+S) de Microsoft. En estas notas del producto, me gustara centrar su atencin en Windows Azure que bsicamente proporciona la plataforma .NET como un servicio (PaaS) en el cual crear aplicaciones personalizadas y extremadamente dinmicas para Internet.

Figura 3: productos ms habituales que ofrecen los proveedores de servicios en la nube.

Desarrollo y ampliacin de aplicaciones para Windows Azure con Visual Studio 2010

Presentacin Windows Azure


Windows Azure es un sistema operativo de Microsoft para la nube, que constituye la base de la plataforma Windows Azure de Microsoft. Como oferta PaaS, Windows Azure abstrae la informacin sobre el hospedaje, la administracin y los componentes del tiempo de ejecucin, con lo que permite a su empresa dedicar el tiempo y los recursos a la creacin de software que ofrece valor empresarial. Adems de proporcionar un sistema operativo en la nube, la plataforma Windows Azure proporciona productos en la nube adicionales como AppFabric, SQL Azure, CDN y MarketPlace. Cada una de estas tecnologas enriquece la experiencia de desarrollo y el alcance de las aplicaciones implementadas en Windows Azure, en la compaa, localmente, en la nube o una combinacin de estas. AppFabric es un conjunto integrado de servicios para el hospedaje, la administracin, la conexin y la proteccin de las aplicaciones de su empresa y de otros proveedores que se implementan tanto localmente como en la nube. Permite conectarse y escalar las aplicaciones tanto si se ejecutan con tecnologa local, en la nube o en ambas. SQL Azure es un servicio de bases de datos relacionales basado en la nube (RDBMS) que se fundamenta en tecnologas SQL Server. Permite disfrutar de gran parte de las capacidades de SQL Server con la facilidad de estar hospedado en la nube de Microsoft. Con SQL Azure, solo debe apuntar la aplicacin a la base de datos y el servicio se ocupar del resto. CDN es una Red de entrega de contenido que distribuye geogrficamente copias de datos de uso frecuente como archivos, imgenes y vdeos para que estn tan cerca como sea posible de los usuarios de las aplicaciones de su empresa que consumen estos soportes. Ello permite garantizar el acceso al contenido que necesita su aplicacin tan rpidamente como sea posible. Marketplace proporciona un lugar para descubrir fuentes de datos y otras aplicaciones que pueden utilizarse para comercializar las aplicaciones de una forma ms rpida y sencilla. Por ejemplo, DataMarket proporciona fuentes de datos que puede integrar en su aplicacin, con lo que ahorrar tiempo y dinero a la hora de crear o buscar datos.

Aunque la plataforma Windows Azure cuenta con un sinfn de caractersticas interesantes y tiles, el objeto de estas notas del producto es proporcionar una mejor comprensin de Windows Azure y las facilidades que ofrece a la hora de crear ampliaciones nuevas y ampliar las existentes para Windows Azure con Visual Studio 2010. Descubrir cmo en combinacin proporcionan un entorno de desarrollo, tiempo de ejecucin y administracin que la capacidad de desarrollar, implementar y ejecutar las aplicaciones en Internet. Para obtener ms informacin acerca del servicio Compute de Windows Azure, el almacenamiento de Windows Azure y Seguridad en la nube, consulte el apndice de este documento.

Desarrollo y ampliacin de aplicaciones para Windows Azure con Visual Studio 2010

Hola nube!
Introduccin a la aplicacin de muestra Green Fee Broker
Para empezar, analizaremos una compaa emergente que empieza a tener problemas de crecimiento. Green Fee Broker ofrece a los golfistas la posibilidad de jugar en sus campos preferidos al precio ms econmico posible. Los golfistas instalan la aplicacin My Green Fee Broker en su smartphone, eligen el campo de una lista de campos de golf que participan en la oferta y se suscriben a las alertas cuando un campo registrado publica un tee time disponible. Si el golfista est interesado en enviar una propuesta de reserva, puede hacerlo directamente desde su smartphone o conectarse a My Green Fee Broker Online, un sitio web que tambin proporciona la capacidad de enviar una peticin de reserva al servicio Green Fee Broker desde un equipo. A continuacin, el servicio Green Fee Broker se pone manos a la obra para buscar la tarifa ms econmica publicada disponible, reserva el campo y notifica al golfista su tee time a travs de una alerta en smartphone y/o una notificacin por correo electrnico. Lo fantstico del servicio Green Fee Broker es que siempre est disponible. Presenta una API de servicios web que pueden consumir tanto la aplicacin smartphone My Green Fee Broker como Green Fee Broker Online (as como propiedades web de otras marcas para campos de golf especficos) que permiten a los golfistas utilizar la API del servicio Green Fee Broker para enviar una solicitud de reserva a peticin o en respuesta a una alerta de smartphone. Sin embargo, la principal baza de este producto se est convirtiendo rpidamente en su mayor punto dbil. El xito de las campaas de marketing y el boca a boca ha puesto en jaque la capacidad de la compaa para garantizar la disponibilidad del motor central que presenta la API para administrar las peticiones de los clientes existentes y registrar a los nuevos, puesto que el volumen de trfico a la API del servicio Green Fee Broker simplemente ha sobrepasado las capacidades de la infraestructura actual y los ocasionales errores de la aplicacin amenazan la imagen de marca que la empresa tanto ha trabajado para conseguir. Al darse cuenta de que la solucin no pasa por agregar servidores y enfrentarse a las complejidades derivadas de configurar granjas web y clsteres, la compaa se plantea estudiar las aplicaciones en la nube. Una opcin posible sera portar el servicio Green Fee Broker de las instalaciones locales a un proveedor IaaS. Sin embargo, aunque se trata de una opcin sin duda ms atractiva que la situacin actual, instalar todos los componentes de plataforma necesarios e implementar el servidor en varias instancias alojadas no tendra en cuenta el objetivo principal, es decir, que Green Fee Broker est siempre disponible. Asimismo, el tiempo y dinero necesarios para administrar cada una de las instancias de forma independiente estaran mejor invertidos en actividades que perfeccionaran el producto directamente.

Desarrollo y ampliacin de aplicaciones para Windows Azure con Visual Studio 2010

Tras ponderar las opciones, el equipo directivo de desarrollo decidi que la API del servicio Green Fee Broker es perfecta para su implementacin en Windows Azure. Se basa en un motor de intermediacin que se presenta como un servicio web a travs de HTTP para un nmero ilimitado de consumidores que aprovechan las ventajas de la API, y el servicio Broker no solo debe estar siempre disponible, sino que debe poder adaptarse a las crecientes demandas de esta empresa con xito. En lugar de caer en la trampa que se ilustra en la figura 1, Windows Azure proporciona a Green Fee Broker las herramientas que le permiten ajustar la capacidad a las necesidades de los clientes tal y como se muestra en la figura 2. Puesto que el equipo ya ha empezado a escribir aplicaciones en .NET Framework, la curva de aprendizaje es mnima y aprovechan los conocimientos y las herramientas que poseen sin prcticamente necesidad de realizar cambio alguno en el cdigo. Adems, Windows Azure no precisa una gran inversin por adelantado, de modo que los gastos de capital pueden convertirse en gastos operativos. Habida cuenta de que la empresa solo debe pagar por lo que utiliza, ganar en flexibilidad y en capacidad de probar nuevas ideas sin tener que realizar grandes inversiones en infraestructura por adelantado, lo cual repercutir en una mayor innovacin. Todas estas ventajas de Windows Azure permiten a la compaa centrarse en crear e innovar en el producto en la misma plataforma y con las mismas herramientas con las que crearan cualquier otra aplicacin para .NET.

Desarrollo de aplicaciones para Windows Azure con Visual Studio 2010


Visual Studio es un entorno de desarrollo integrado (IDE) que permite desarrollar aplicaciones en .NET Framework de Microsoft. Visual Studio 2010 proporciona un excelente conjunto de herramientas para desarrollar, probar y realizar el mantenimiento de aplicaciones para su implementacin local o en la nube. A continuacin, voy a explicar cmo ampliar una aplicacin existente para implementarla en Windows Azure con Visual Studio agregando un proyecto de Windows Azure y asocindolo a un Web Role. Les demostrar lo sencillo que resulta con Visual Studio 2010 probar localmente una aplicacin en la nube y empaquetarla para implementarla en Windows Azure. Introduccin al servicio Green Fee Broker Green Fee Broker es un servicio web escrito mediante Windows Communication Foundation (WCF). WCF es un marco de mensajera que forma parte de .NET Framework que permite compartir unidades modulares de funcionalidad, denominadas clases, con otras aplicaciones presentando dichas clases con funciones especiales, denominadas operaciones. Estas operaciones pueden ejecutarse mediante aplicaciones en la misma mquina, mediante diferentes mquinas en la misma red o en mquinas de redes totalmente diferentes. El servicio Green Fee Broker presenta funcionalidades clave a travs de HTTP, como las operaciones para registrar un nuevo campo de golf, recuperar una lista de campos de golf que participan en la oferta y permitir a los campos de golf publicar los tee times disponibles.

Desarrollo y ampliacin de aplicaciones para Windows Azure con Visual Studio 2010

Visual Studio organiza las clases en contenedores especiales llamados proyectos, que a su vez se agrupan en un contenedor especial llamado solucin. Una solucin puede constar de uno o ms proyectos, que a su vez contienen una o ms clases. Una vez que se ha escrito el cdigo en las clases, se crea una solucin que conduce a una serie de verificaciones para comprobar que el cdigo escrito es vlido y sigue las reglas del lenguaje. Si todo es correcto, cada proyecto se empaquetar en un ensamblado distinto que forma parte de un proyecto (en el caso de un servicio web, un cliente enva mensajes al ensamblado a travs de un canal de comunicacin para que lo ejecute). La solucin GreenFeeBroker contiene un proyecto de Visual Studio 2010 que se llama BookingService. En este caso, el proyecto BookingService utiliza la plantilla para aplicaciones web WCF que proporciona los archivos bsicos para crear un servicio web WCF. En su forma ms sencilla, el proyecto aplicacin web WCF consta de dos archivos, tal y como ilustra la figura Figure 4: BrokerService.svc contiene la implementacin de las operaciones arriba comentadas. Web.config contiene la configuracin bsica para alojar el servicio web.

Figura 4: el proyecto Broker Service en el Explorador de soluciones Visual Studio 2010. El servicio Green Fee Broker presenta su funcionalidad mediante SOAP a travs del protocolo HTTP. SOAP permite utilizar las tcnicas orientadas a objetos ms conocidas para desarrollar el servicio y automatiza los medios por los que el servicio intercambia y procesa mensajes XML a travs de Internet.

Desarrollo y ampliacin de aplicaciones para Windows Azure con Visual Studio 2010

Aunque sera tentador escribir el cdigo que implementa las operaciones BrokerService directamente en el archivo BrokerService.svc, la aplicacin Green Fee Broker se ha desarrollado teniendo en cuenta el principio de separacin de incumbencias, de modo que cada unidad de funcionalidad es independiente de la otra pero trabajan conjuntamente para realizar las tareas. As pues, el proyecto contiene clases adicionales que definen un campo de golf (la clase Course), aslan las reglas empresariales para trabajar con los campos en una clase llamada CourseManager y agrupan todas las operaciones de datos en una clase comn llamada DataServiceAgent. La separacin de incumbencias es un importante principio de diseo que hay que tener en cuenta al desarrollar aplicaciones locales y en la nube, puesto que permite concentrarse en sectores de funcionalidad y crear software fcil de comprender y de mantener. Asimismo, al desarrollar aplicaciones que se ejecutarn tanto localmente como en la nube, la capacidad de administrar el estado y tomar decisiones de implementacin se simplifica en gran medida asignando niveles lgicos a niveles fsicos al igual que con los roles web, los roles de trabajador y los servicios de almacenamiento. Ampliacin del servicio Green Fee Broker para la nube La creacin de nuevos servicios y aplicaciones para Windows Azure con Visual Studio 2010 es muy sencilla. Aunque cueste creerlo, dado que el servicio se escribi en .NET con Visual Studio para alojarse localmente, basta con un mnimo de configuracin y ya est preparado para alojarse en Windows Azure. Para demostrarlo, vamos a habilitar la aplicacin Green Fee Broker para Windows Azure1. Creacin de un proyecto de Windows Azure Lo primero que debe hacer al desarrollar o ampliar una aplicacin para Windows Azure es agregar un proyecto de Windows Azure a su solucin Visual Studio 2010. Al igual que la plantilla para aplicaciones de servicios WCF proporciona todo lo que necesita para crear un servicio web WCF, la plantilla para proyectos de Windows Azure proporciona el contenedor y la configuracin necesarios para empaquetar una solucin Visual Studio 2010 para Windows Azure. Para empezar, solo hay que agregar un nuevo proyecto de Windows Azure a la solucin GreenFeeBroker, indicar el nombre del proyecto y hacer clic en Aceptar (figura 5).

Adems de Visual Studio 2010, hay que instalar las herramientas de Windows Azure para Microsoft Visual Studio versin 1.3, incluido el Kit de desarrollo de software (SDK), que se halla disponible en esta pgina web: http://msdn.microsoft.com/en-us/windowsazure/cc974146.aspx. Si ejecuta una versin de 32 bits de Windows 7, o utiliza Windows Vista o Windows Server 2008, hay algunas revisiones que tambin deber instalar.

Desarrollo y ampliacin de aplicaciones para Windows Azure con Visual Studio 2010

Figura 5: agregar un proyecto de Windows Azure en Visual Studio 2010 Visual Studio 2010 presenta una lista de roles que permiten personalizar la plantilla al tipo de aplicacin que est creando. En este caso, dado que deseamos habilitar BrokerService para Windows Azure, elegiremos el Web Role de servicio WCF, tal y como muestra la figura 6.

Figura 6: eleccin del Web Role de servicio WCF. El proyecto de Windows Azure simplifica la configuracin del proyecto BrokerService para Windows Azure proporcionando una interfaz de usuario para asociar proyectos a un rol. Solo hay que hacer clic con el botn secundario en el icono Roles para seleccionar un proyecto existente o crear uno nuevo y el proyecto que agreg se asociar al rol como se muestra en la figura 7.

Desarrollo y ampliacin de aplicaciones para Windows Azure con Visual Studio 2010

10

Figura 7: el resultado de asociar un proyecto nuevo o existente al proyecto de Windows Azure. Para trabajar con la solucin lo ms cmodamente posible, haga clic con el botn secundario en el proyecto GreenFeeBroker.Cloud y seleccione Establecer como proyecto inicial. Ello garantiza que al probar la aplicacin localmente, el proyecto se iniciar correctamente en el Development Fabric (que se explica ms adelante). Para implementar la aplicacin o servicio en Windows Azure existen una serie de opciones de configuracin que pueden establecerse haciendo clic con el botn secundario en el rol asociado (en este caso, BrokerService que aparece en la figura 7) y seleccionando propiedades. En la configuracin ms habitual se indica el nmero de instancias que desea que le asigne Windows Azure al implementar la aplicacin, as como el tamao de la mquina virtual objeto de la implementacin. Estas opciones son muy importantes, ya que repercutirn directamente en el rendimiento, la disponibilidad, la escalabilidad y el costo de la aplicacin. La figura 8 muestra varias opciones de configuracin, como el tipo de mquina virtual que desea utilizar y el nmero de instancias que desea que Windows Azure asigne a su aplicacin. En este caso, he configurado 4 instancias pequeas. No se preocupe si al principio no est seguro de la configuracin que desea elegir. A medida que se familiarice con el producto, lo ms probable es que las necesidades cambien y lo bueno de Windows Azure es que le permite cambiar de opinin.

Desarrollo y ampliacin de aplicaciones para Windows Azure con Visual Studio 2010

11

Figura 8: opciones de configuracin de los Web Roles de Windows Azure. La ficha Configuracin permite establecer parejas de cadenas/valores de configuracin para conexiones de bases de datos, rutas de conexin, etc. Visual Studio 2010 constituye una excelente herramienta de desarrollo, puesto que permite establecer configuraciones para realizar pruebas locales y ejecuciones en la nube. Pruebas locales con el Development Fabric Visual Studio 2010 proporciona todas las capacidades de administracin del ciclo de vida de las aplicaciones para las aplicaciones diseadas para ejecutarse tanto localmente como en la nube. Cuando se desarrollan aplicaciones para Windows Azure, el ciclo de vida del desarrollo sigue los procedimientos recomendados para la Administracin del ciclo de vida de las aplicaciones (ALM). Tal y como muestra la figura 9, el desarrollo y las pruebas se realizan con Visual Studio 2010 y las herramientas de tiempo de ejecucin de desarrollo para emular tanto el proceso como el almacenamiento. A continuacin, la aplicacin o el servicio se implementa en un entorno de ensayo que Windows Azure proporciona en la nube, donde se pueden probar antes de enviarlos a produccin.

Figura 9: Administracin del ciclo de vida de las aplicaciones de Windows Azure.

Desarrollo y ampliacin de aplicaciones para Windows Azure con Visual Studio 2010

12

Visual Studio 2010, junto con SDK de Windows Azure, incluye un paquete para llevar a cabo localmente el desarrollo, las pruebas y la depuracin llamado el Development Fabric. El Development Fabric consta de dos componentes principales: el Emulador de proceso y el Emulador de almacenamiento. El Emulador de proceso permite crear, implementar y probar las aplicaciones para Windows Azure en su entorno de desarrollo local. Considere el Emulador de proceso como el equivalente de las capacidades de alojamiento web en Visual Studio que proporciona una experiencia en alojamiento y depuracin para Windows Azure que simula IIS. Visual Studio permite desarrollar, probar y depurar las aplicaciones sin problemas, ya que permite interactuar con su aplicacin que se ejecuta en el Emulador de proceso directamente desde IDE. Para simular el servicio de almacenamiento, SDK de Windows Azure cuenta con un emulador de servicios de almacenamiento diseado para el desarrollo y las pruebas locales llamado Emulador de almacenamiento. El Emulador de almacenamiento permite desarrollar aplicaciones como si se estuviera trabajando directamente con el almacenamiento Azure en la API. Cuando se trabaja de forma local, Visual Studio proporciona automticamente almacenamiento local para que pueda utilizarse una versin ms reciente de Microsoft SQL Server, incluida SQL Server Express Edition. Ello permite escribir cdigo que utilice las mismas API de almacenamiento, independientemente de si se ejecuta localmente o en la nube. Sin embargo, tenga presente que el Emulador de almacenamiento est pensado exclusivamente para fines de desarrollo y no debe utilizarse para la produccin. De hecho, con Visual Studio 2010, para interactuar con el Development Fabric basta con ejecutar la aplicacin desde IDE. Al iniciar la solucin con Visual Studio 2010, ver que en la esquina inferior izquierda de IDE se indica que Visual Studio est empaquetando e implementando la aplicacin en el Development Fabric, facilitando cdigo de la aplicacin al Emulador de proceso e instrucciones de tabla, blob o cola al Emulador de almacenamiento (por favor, consulte el apndice para obtener ms informacin sobre el servicio de almacenamiento de Windows Azure). Ahora la aplicacin ya est alojada y lista para probar. Visual Studio 2010 abrir automticamente una ventana de explorador con la direccin base de la aplicacin o servicio y la colocar en modo de depuracin, para que pueda interactuar con la aplicacin y solucionar los problemas del cdigo de forma interactiva. Asimismo, ejecutar las instrucciones para crear tablas, blobs o colas. Las instrucciones pueden colocarse en un fichero global para que el cdigo pueda ejecutarse en varias etapas del ciclo de vida de la aplicacin, incluido el inicio. Para ver el desarrollo activo, busque el icono de Windows Azure en la barra de tareas, haga clic con el botn secundario y seleccione Mostrar la UI del Emulador de proceso.

Desarrollo y ampliacin de aplicaciones para Windows Azure con Visual Studio 2010

13

La UI del Emulador de proceso de Windows Azure muestra el estado y el mantenimiento de la aplicacin. Podr iniciar y detener la aplicacin as como supervisarla visualmente. Observe que en la figura 10 aparecen cuatro instancias virtuales de la aplicacin, igual que lo que seleccionamos cuando configuramos el proyecto BrokerService para Windows Azure.

Figura 10: UI del Emulador de proceso de Windows Azure. Ahora, con BrokerService alojado, podr probarlo como lo hara normalmente y realizar las modificaciones necesarias antes de implementarla en Windows Azure.

Implementacin en Windows Azure


Una vez que desarrollado y probado la aplicacin localmente, ya puede implementar Windows Azure. Creacin del paquete de la aplicacin con Visual Studio 2010 El primer paso para implementar la aplicacin en Windows Azure consiste en crear un paquete de implementacin. Visual Studio 2010 simplifica este proceso automatizando la creacin del paquete al hacer clic con el botn secundario en el proyecto de Windows Azure y seleccionar Publicar. Tal y como muestra la figura 11, puede elegir entre dos enfoques: Crear nicamente un paquete de servicios. Este mtodo crea un fichero empaquetado que contiene su aplicacin y un fichero de configuracin con los valores que ha especificado para el aprovisionamiento, la implementacin y la ejecucin de la aplicacin. Ahora ya puede cargar el paquete a travs del Portal de administracin de Windows Azure.
Desarrollo y ampliacin de aplicaciones para Windows Azure con Visual Studio 2010 14

Implementacin del paquete de Windows en Windows Azure. Este mtodo automatiza el empaquetado y la implementacin de su aplicacin en un solo paso.

La segunda opcin requiere instalar un certificado X.509 en la mquina de desarrollo local y cargarlo en el Portal de administracin de Windows Azure para garantizar que solo se implementan los paquetes autorizados.

Figura 11: empaquetado e implementacin de Windows Azure en Visual Studio 2010. Le voy a mostrar cmo implementar la aplicacin que ha creado mediante el primer mtodo para que se familiarice con el Portal de administracin de Windows Azure. A medida que adquiera experiencia en la configuracin y la administracin de las implementaciones en Windows Azure, las ventajas de la implementacin totalmente integrada que proporciona la segunda opcin con Visual Studio le resultarn muy tiles, especialmente cuando vuelva a implementar aplicaciones o servicios existentes. Para empaquetar la solucin, haga clic en Aceptar y ver que el Explorador de Windows se abre de inmediato en la ubicacin del paquete que ha creado Visual Studio 2010. La figura 12 muestra los dos ficheros que se han creado.

Desarrollo y ampliacin de aplicaciones para Windows Azure con Visual Studio 2010

15

Figura 12: ficheros de configuracin y de paquete de servicios para la implementacin. Despliegue de la aplicacin a travs del Portal de administracin de Windows Azure El Portal de administracin de Windows Azure proporciona todo lo que necesita para administrar los servicios de la plataforma Windows Azure, incluidos roles de proceso, el almacenamiento, CDN, AppFabric y Marketplace. Al iniciar sesin en el portal (siempre que haya configurado una cuenta de Windows Azure), tendr la opcin de crear un nuevo servicio alojado y una nueva cuenta de almacenamiento alojado. Estas opciones permiten definir una implementacin de proceso y almacenamiento, lo cual deber hacerse antes de implementar la aplicacin y los requisitos de almacenamiento correspondientes en Windows Azure. El procedimiento para implementar una aplicacin o un servicio para prueba o produccin es idntico, y debe elegirse uno de los dos al principio de implementar la aplicacin en Windows Azure. Para implementar BrokerService, tras hacer clic en Nuevo servicio alojado como se muestra en la figura 13, aparece una ventana que hay que rellenar para preparar el entorno de alojamiento. Una vez que se ha seleccionado una cuenta de suscripcin, es preciso indicar el nombre del servicio que se utilizar para identificar fcilmente la aplicacin en el Portal de administracin de Windows Azure. Tambin deber especificarse un prefijo URL nico, ya que formar parte del nombre completo de la URL que se utilizar para obtener acceso a la aplicacin o servicio, en este caso el servicio web WCF BrokerService.

Desarrollo y ampliacin de aplicaciones para Windows Azure con Visual Studio 2010

16

Figura 13: aprovisionamiento del nuevo servicio alojado del Portal de administracin de Windows Azure. Tambin es importante tener en cuenta la capacidad de seleccionar grupos de afinidad, que permiten realizar peticiones explcitas para especificar la ubicacin de las aplicaciones de proceso y almacenamiento. Por ejemplo, dado que los centros de datos de Windows Azure estn geogrficamente distribuidos por todo el mundo, para optimizar el rendimiento es interesante asegurarse de que la aplicacin alojada en Proceso se halla tan cerca de los datos alojados en Almacenamiento como sea posible. Los grupos de afinidad son la herramienta para ello. Las opciones de implementacin tambin permiten especificar si desea implementar la aplicacin en el entorno de ensayo, el entorno de produccin o si no desea implementarlo. Recuerde que pagar lo mismo independientemente de si elige el entorno de ensayo o el de produccin. La principal ventaja de contar con dos entornos consiste en la capacidad de probar las versiones de una aplicacin antes de que est operativa en produccin, lo cual resulta particularmente til cuando se prueban dos versiones de una aplicacin en paralelo. El nombre de implementacin es libre, pero recomiendo adoptar un estndar sencillo para las versiones que pueda utilizarse como etiqueta. Ello facilita la identificacin, el seguimiento y el reconocimiento de las diferentes versiones de las aplicaciones y los servicios que cree cuando pasan del entorno de prueba al de produccin. Finalmente, al hacer clic en Explorar localmente y en Aceptar para indicar la ruta a los ficheros de configuracin y del paquete que ha creado Visual Studio iniciar el proceso de aprovisionamiento e implementacin. La experiencia de administracin que se crea en funcin de las opciones elegidas le mostrar que se estn asignando cuatro instancias de proceso (en este caso, 4 VM pequeas) para la v1 del BrokerService. El estado de cada una de las instancias pasar por el ciclo de espera, creacin e iniciacin de las instancias de proceso que alojarn la aplicacin. Aunque este proceso tarda unos minutos, si se

Desarrollo y ampliacin de aplicaciones para Windows Azure con Visual Studio 2010

17

tiene en cuenta lo que se tardara en tener cuatro servidores tradicionales o mquinas virtuales ejecutndose en un entorno con equilibrio de carga y totalmente implementado con la aplicacin, la rapidez y facilidad con la que se lleva a cabo con tan solo unos clics es impresionante. Tal y como se muestra en la figura 14, cuando todas las instancias estn listas, el servicio lgico mostrar el estado Preparado. Al hacer clic en la etiqueta, se proporcionan los metadatos de la implementacin, incluidos la fecha de creacin y el nmero de instancias asignadas, junto con el nombre DNS para el URI disponible pblicamente que proporciona un nico extremo con equilibrio de carga para BrokerService.

Figura 14: BrokerService preparado para el consumo. Pruebas en Windows Azure Llegados a este punto, podr probar el servicio como lo hara en un entorno de ensayo local convencional. Para seleccionar el servicio, basta con hacer clic en el nombre DNS que aparece en la Figura 14 que iniciar el explorador. Agregue el nombre del fichero BrokerService.svc al final del URL de la barra de direcciones y aparecer una pgina de alojamiento que indica que el servicio est preparado para su consumo. Yo siempre recomiendo efectuar una comprobacin una vez implementado o "prueba de humo" para asegurarse de que el servicio se ha alojado correctamente y puede realizar las funciones habituales de rutina. Puede utilizar el cliente de prueba WCF que se suministra con Visual Studio 2010 para probar el servicio en un entorno de ensayo o de produccin en Windows Azure, del mismo modo que lo hara de forma local con el Emulador de almacenamiento.

Desarrollo y ampliacin de aplicaciones para Windows Azure con Visual Studio 2010

18

Ascenso a produccin en Windows Azure Una vez implementada la aplicacin en Windows Azure, podr implementarla al instante en produccin seleccionando la opcin Intercambiar VIP en el Portal de administracin de Windows Azure Management. Si no cuenta con una implementacin de produccin activa, la implementacin de prueba se ascender a produccin. Entonces podr utilizar el URL de produccin, que en este caso es: http://brokerservice.cloudapp.net. Administracin de la aplicacin en Windows Azure El Portal de administracin de Windows Azure se utiliza no solo para la implementacin de aplicaciones y servicio de Windows Azure, sino tambin para administrarlos. Una vez que est preparado para implementar una nueva versin de la aplicacin, siga los pasos arriba descritos para obtener una versin diferente implementada en nodos fsicamente separados en el entorno de ensayo. Tambin puede actualizar una aplicacin en ejecucin cargando una nueva versin del paquete o de la configuracin, as como tambin puede decidir sencillamente actualizar el archivo de configuracin, sin modificar el cdigo de la aplicacin ni del paquete. Adems, puede proporcionar servicios de almacenamiento como servicios de tabla, blob y cola desde el propio portal de administracin. De hecho, mientras que en estas notas del producto no nos podemos detener en una descripcin ms amplia de los servicios de almacenamiento, la aplicacin de muestra BrokerService utiliza muchos de los aspectos del almacenamiento de tabla a la hora de almacenar nuevas descripciones de campos de golf y mostrar una lista de los campos de golf disponibles. Se ha creado una cuenta de almacenamiento para la aplicacin BrokerService llamada GreenFeeBrokerTable y los extremos REST para obtener acceso a los servicios de almacenamiento de tablas, colas y blobs se proporcionan igual que con el Emulador de almacenamiento local.

Conclusin
Independientemente de su tamao, todas las empresas pueden beneficiarse de las ventajas de las aplicaciones en la nube. Windows Azure proporciona capacidades de Plataforma como servicio que permiten a los desarrolladores aprovechar la facilidad y productividad de Microsoft .NET, y Visual Studio 2010 ofrece un entorno de desarrollo excelente para desarrollar aplicaciones localmente y en la nube. Juntos, Windows Azure y Visual Studio 2010 presentan una excelente propuesta de valor al tiempo que amplan las aplicaciones existentes para aprovechar las ventajas de la nube y permiten implementar, probar y administrar las aplicaciones hbridas sin problemas.

Desarrollo y ampliacin de aplicaciones para Windows Azure con Visual Studio 2010

19

Sobre el autor
Rick G. Garibay es el director general de Prctica de desarrollo de sistemas conectados de Neudesic. Rick es un MVP de Microsoft, ponente y autor de artculos relacionados con las tecnologas conectadas como SOA y soluciones hbridas compuestas. Estas notas del producto se basan en un artculo inicialmente publicado en CODE Magazine y se ha utilizado previo consentimiento de la editorial, EPS Software Corporation. Estas notas del producto se han redactado en colaboracin con A23 Consulting. Para obtener ms informacin, visite: http://www.microsoft.com/visualstudio

Desarrollo y ampliacin de aplicaciones para Windows Azure con Visual Studio 2010

20

Apndice
Servicio Compute de Windows Azure
El Servicio Compute es un contenedor lgico para un nmero ilimitado de mquinas virtuales Windows Server que alojan su aplicacin. El Servicio Compute utiliza equilibradores de carga que garantizan que las peticiones para su aplicacin siempre se enrutarn hacia una instancia de mquina virtual disponible (siempre que se hayan configurado varias instancias). El Servicio Compute se divide en dos roles: Web Roles y rol de trabajador. Cada rol es afn a una mquina virtual, pero la aplicacin de cada rol nunca sabe en qu mquina fsica o mquina lgica virtual se ejecuta. Al disear una aplicacin para Windows Azure, la aplicacin debe establecer como destino el Web Role o el rol de trabajador, y tambin puede dividirse en particiones y distribuirse para disfrutar de las ventajas de ambos. Web Role Un Web Role puede entenderse como un contenedor para aplicaciones web que se implementa en un servidor web. En Windows Azure, una aplicacin diseada para el Web Role se ejecuta en el servidor web insignia de Microsoft, Internet Information Services (IIS), que proporciona un entorno de alojamiento excelente para aplicaciones y servicios .NET y otros. Las aplicaciones que se implementan en un Web Role pueden aceptar peticiones HTTP y HTTPS que no sean de la red de centros de datos de Microsoft (por ejemplo, del escritorio o del servidor de un cliente en su propio centro de datos). En este sentido, es parecido a una DMZ (o zona desmilitarizada) local. Rol de trabajador Un rol de trabajador solo puede aceptar informacin de otra aplicacin en Windows Azure y acepta peticiones a travs de una caracterstica de almacenamiento de Windows Azure denominada Almacenamiento de cola. Un rol de trabajador funciona de forma parecida a la de un servidor de aplicaciones en un centro de datos local tradicional, que puede ejecutar una serie de servicios de middleware que realizan tareas complicadas y de larga duracin en segundo plano, para garantizar que los usuarios de la aplicacin front-end no se vean afectados. Evidentemente, puede optar por disear la aplicacin lgica con un enfoque por niveles que incluya ambos roles, lo cual es una solucin excelente si desea proporcionar la mxima escalabilidad para tareas asncronas en segundo plano que no consumen recursos en la aplicacin de Web Role. Sin embargo, en estas notas del producto me centrar en desarrollar una aplicacin presentada como un servicio web implementado en un Web Role.

Desarrollo y ampliacin de aplicaciones para Windows Azure con Visual Studio 2010

21

Almacenamiento de Windows Azure


Al igual que las aplicaciones locales, para que el software sea til, debe poder guardar y recuperar informacin en una amplia variedad de soportes como texto, cadenas y objetos, y ficheros, como imgenes, documentos, msica o vdeo. El servicio de almacenamiento proporciona tres opciones bsicas para habilitar las aplicaciones, a fin de que puedan almacenar e interactuar con los datos de forma similar a los mecanismos de almacenamiento de datos que probablemente habr utilizado al escribir software local. El almacenamiento de tabla permite a los desarrolladores modelar su esquema conceptual mediante entidades .NET sin tener en cuenta la tecnologa de almacenamiento lgico subyacente. El servicio de almacenamiento de tabla se presenta mediante un estilo arquitectnico conocido como REST que proporciona la capacidad de insertar, actualizar, eliminar y leer registros de tablas implementadas en un almacenamiento de tabla. Aunque es distinto de los enfoques relacionales habituales de almacenamiento y manipulacin de datos, proporciona una sencilla alternativa a otras opciones como Microsoft SQL Azure. El almacenamiento de blobs permite almacenar datos de forma binaria, lo cual es ideal para algunos tipos de soporte como imgenes, ficheros o rboles. Vendra a ser un sistema de ficheros para Windows Azure.

El almacenamiento de cola proporciona mensajera basada en colas entre aplicaciones y roles. El uso de colas es muy habitual en el diseo de software distribuido, ya que permiten procesar los trabajos por orden de creacin, as como la duracin suficiente para garantizar que los trabajos o los mensajes no se pierden sin haberse procesado.

Seguridad en la nube
La seguridad es un tema muy amplio, pero extremadamente importante cuando se habla de aplicaciones en la nube. Microsoft vela por la seguridad de sus centros de datos y servidores, y le ofrece el control a la hora de implementar los requisitos de seguridad necesarios en sus aplicaciones. Puesto que el objeto es la misma plataforma (Windows y .NET) tanto localmente como en la nube, utilizar las mismas herramientas y tcnicas para identificar a los usuarios de su aplicacin (autenticacin) y decidir los privilegios de poseen (autorizacin). Tambin puede cifrar y firmar digitalmente los datos cuando sea necesario, al igual que hara localmente. Asimismo, Microsoft proporciona un servicio llamado Servicio de control de acceso (ACS) que permite aprovechar las ventajas de la seguridad basada en el control de acceso federado, que simplifica sobremanera el proceso de autenticacin y autorizacin de los usuarios a las aplicaciones, al tiempo que permite disfrutar de las ventajas que ofrecen varios proveedores de identidades como Windows Active Directory, Windows Live y FaceBook. Si desea ms informacin acerca de la seguridad en Windows Azure, consulte el sitio web de modelos y prcticas dedicado a la seguridad en Windows Azure: http://azuresecurity.codeplex.com/.

Desarrollo y ampliacin de aplicaciones para Windows Azure con Visual Studio 2010

22

Make sure the standard white paper copyright text from Legal is placed here. This boilerplate is updated periodically, so instead of putting it directly in this template, where it might get out-of-date, a link to the text is provided instead. File:\\lca\pdm\TMGUIDE\Copyright\copywhitepaper.doc

Desarrollo y ampliacin de aplicaciones para Windows Azure con Visual Studio 2010

23

Potrebbero piacerti anche