Ponentes : Angel Acha ( Microsoft Innovation Center – Cantabria ) - www.ciin.es Gisela Torres ( Renacimiento) - Roberto Gonzalez (Renacimento) - Luis Panzano (Microsoft Iberica) Organiza: Ethel García (Microsoft Iberica) Azure Camps 11 y 12 Mayo, Madrid
37
Embed
HoraSesión 9:00 – 10:15Moviendo apps a la Plataforma de Windows Azure 10:30 – 11:45Conectando con Aplicaciones Cloud 11:45 – 13:00Resumen y descripción.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Angel Acha Centro de Innovación en IntegraciónMicrosoft Innovation Center - Cantabria
Azure Camps
Día 2 – Programación de la jornadaHora Sesión
9:00 – 10:15
Moviendo apps a la Plataforma de Windows Azure
10:30 – 11:45
Conectando con Aplicaciones Cloud
11:45 – 13:00
Resumen y descripción el paso a paso de construir una aplicación en Azure para lab. de la tarde
13:00 – 14:00
Comida
14:00 – 16:30
Construye tu propia aplicación con Windows Azure Platform
16:30 – 17:30
App Show: Compartición de experiencias
17:30 – 18:00
Roadmap de Azure
¿Y ahora qué?
¿Y ahora qué?Utilizar «cloud storage» desde tus aplicaciones on-premises
Windows Azure StorageSQL Azure
Combinar «cloud computing» con tus aplicaciones on-premises (para extender su funcionalidad)
Para crear un online-marketplace para tu aplicación Para ejecutar tareas (cálculos) que requieran cargas de CPU intensas (repartiendo el trabajo entre varias instancias de worker role)Añadir nueva funcionalidad a una aplicación ya existente
¿Y ahora qué?Utilizar los servicios proporcionados por Azure AppFabric desde tus aplicaciones existentes
Access ControlService Bus
Crear una versión SaaS de tu aplicaciónEn vez de instalar SW en las máquinas de tus clientesMás escalable que una aplicación on-premises
Proporcionar servicios de soporte a plataforma cloud
Creando herramientasCreando componentes
Mover una aplicación a la nube
Mover una aplicación a la nubePrimer paso:
Lograr que la aplicación se ejecute en la nube sin perder ninguna funcionalidad
Segundo paso:Mejorar la aplicación haciendo uso de las funcionalidades disponibles en Azure
Primer paso: Llegar a la nube1) Plantear el diagrama con la estructura de la aplicación actual
Primer paso: Llegar a la nube1) Plantear el diagrama con la estructura de la aplicación actual – Frontal Web
Primer paso: Llegar a la nube2) Establecer los objetivos y requerimientos
Que acceda a los mismos datos que versión on-premisesQuitar dependencias con AD¿Que información de diagnostico deseamos que obtenga?¿Cómo realizar la autenticación y seguridad?……..
Primer paso: Llegar a la nube3) Plantear la arquitectura de a aplicación tras migrar a la nube
Primer paso: Llegar a la nube4) Analizar la aplicación existente para determinar que piezas necesitamos cambiar al migrar a la nubeOn Premises Azure
Código de la aplicación Trasladarlo a roles
SQL Server SQL Azure
Enterprise Library Application Blocks
Enterprise Library Applications Blocks
ASP.NET Profiles (Profile Provider que utiliza SQL Server)
Guardar información de Profile en:• SQL Azure• Windows Azure Table Storage
Autenticación y Autorización mediante Active Directory
Autenticación y Autorización basada en Claims
Primer paso: Llegar a la nube5) Empezar a migrar
Crear el «web role»Realizar modificaciones en web.config para utilizar nuevo sistema de autenticaciónCrear las nuevas BD’s o sistemas de almacenamiento
SQL AzureWindows Azure Storage
Migrar los datosModificar el código de la aplicación para que vaya a buscar los datos a la nueva ubicación
Modificar string de conexión para que apunte a BD en SQL AzureModificar código de acceso a datos para que utilice Azure Storage
Primer paso: Llegar a la nube6) Establecer los métodos de configuración y despliegue
Nº de instancias de role, Upgrade Domains, Fault DomainsCrear scripts de despliegueUtilizar «Mock» Issuer….
Primer paso: Llegar a la nube7) Analizar los costes de la aplicación actual y como podríamos mejorar
En menor costeEn base a que conceptos me van a cobrar y cuantoEstimar los costes
Mejorar rendimiento y escalabilidad
Segundo paso: Mejorar la aplic.Automatizar el despliegue
Crear Task de MSBuild que llamen a scripts de PowerShell
Usar Windows Azure Storage en vez de SQL AzureEvaluar la posibildad de utilizar Azure Storage en vez de SQL Azure (más barato)¿Qué cambios sería necesario realizar en el código de la aplicación
Segundo paso: Mejorar la aplic.Migrar los procesos de servicio en background que
tengamos on-premises a worker roles de Azure
On premises Cloud
Segundo paso: Mejorar la aplic.Abstraer el worker role para poder reutilizarlo
Segundo paso: Mejorar la aplic.Abstraer el worker role para poder reutilizarlo
Segundo paso: Mejorar la aplic.Abstraer el worker role para poder reutilizarlo
Segundo paso: Mejorar la aplic.Sacar el máximo partido del Worker Role
Dependiendo de sus necesidades de computaciónPeriodicidad con la que se ejecuta
Tips:Aplicaciones basadas en
BD’s
Tips: Aplicaciones basadas en BDRealizar la migración de la BD’s SQL Server a SQL
AzureCrear «script» DDL con esquema de la BD utilizando SQL Server Management Studio u otras herramientasRealizar el volcado de los datos de SQL Server a SQL Azure
Utilizar Bulk Copy (bcp), u otra herramientas para realizar el volcado
Modificar el string de conexión para que el código de la aplicación vaya a buscar los datos a la nueva ubicación
Tips: Aplic. basadas en
ASP.NET
StatelessnessLoad balancer round-robins requests in multi instance rolesFollow web farm best practices
Do not store state on individual instances Do not assume subsequent requests will hit the same instance
Don’t forget things like dynamically generated images loaded by a page
AJAX and Windows AzureClient side calls may not return to the same instance the original page came fromAJAX calls must be stateless
Don’t generate a page and leave state on the server to call via AJAX later
All instances require the same MachineKey for ViewState hashing
Fabric uses same machine key for all instances in a role
Windows Azure Session StateWindows Azure Load Balancer uses round-robin allocation. Session state must persist to client or storage on every request
SQL Azure Windows Azure Storage
LB
session[“foo”] = 1; session[“foo”] = 2;
What is the value of session[“foo”]?
Solving Session StatePersist to Storage via Session State Provider
Windows Azure AppFabric CachingSQL AzureWindows Azure StorageCustom
Persist to ClientUse cookies
Don’t forget ASP.NET MVC TempData relies on Session State provider by default
Windows Azure AppFabric CachingUsing Windows Azure AppFabric Caching as the session storeIn-memory, distributed cacheBased on Windows Server AppFabric CachingUsed the Microsoft.Web.DistributedCache assembly found in the SDKEnable ASP.NET 4 Session CompressionCurrently available in AppFabric LABS Portal as CTP
AppFabric Caching Session StateSession state stored using Windows Azure AppFabric Caching and an out-of-the-box session state provider
LB
session[“foo”] = 1; session[“foo”] = 2;
AppFabric Caching
What is the value of session[“foo”]?
SQL Server Session StateUse SQL Azure as backing store
SQL Azure Session StateSession state stored using SQL Server Session State Provider and session state partitioning
SQL Azure 3 x 1GB Databases
LB
session[“foo”] = 1;
resolve partition
session[“foo”] = 2;
What is the value of session[“foo”]?
Windows Azure Storage ProvidersSample ASP.NET Providers (Session, Membership, Role etc…)Sample Codehttp://code.msdn.microsoft.com/windowsazuresamplesUses Blob + Table StorageSeveral storage transactions per requestEnable ASP.NET 4 Session Compression
Sample Provider should be treated as a starting point only.
CookiesSerialize and Encrypt state into cookiePossible to implement as Session State ProviderCookies add significant performance overheadCookies sent with every request to domain
Use alternative host header to serve images etchttp://www.myweb.comhttp://images.myweb.com Use Windows Azure Storage for static content