Windows Azure Óliver Centeno
Contenidos1.   Introducción a Windows Azure2.   Instalación3.   Primeros pasos con Azure4.   Servicios de Almacenamiento5....
1.   Introducción a Windows              Azure           Cloud Computing            Windows Azure              SQL Azure  ...
1.     Introducción a Windows Azure    Windows Azure    SQL Azure    Cloud Computing    Features    Roles
1.      Introducción a Windows Azure   Cloud Computing      Grandes   aplicaciones      Granjas de servidores      Alq...
1.      Introducción a Windows Azure   ¿Por qué usar Cloud?      Sacar servicios al mercado más rápido      Realizar te...
1.     Introducción a Windows Azure   ¿Por qué usar Cloud?
1.      Introducción a Windows Azure   ¿Me lo repites?      Pagas  por el consumo que haces      NO requiere una invers...
1.      Introducción a Windows Azure   Proveedores de Servicios (SaaS)      Aplicaciones   especializadas      Aplicaci...
1.      Introducción a Windows Azure   Arquitectura Orientada a Servicios (SOA)      Cada parte de la aplicación es un s...
1.      Introducción a Windows Azure   Cloud Computing      ArquitecturaSOA      Independiente de infraestructura     ...
1.         Introducción a Windows Azure   Everything as a Service        Servicios de almacenamiento (DaaS y FaaS)     ...
1.      Introducción a Windows Azure   Cloud Computing as a Service
1.     Introducción a Windows Azure   Windows Azure
1.      Introducción a Windows Azure   Windows Azure      Sistema  Operativo      En Nube      Ejecución escalable    ...
1.      Introducción a Windows Azure   Tipos de aplicaciones      Aplicaciones Web      Aplicaciones de cómputo
1.     Introducción a Windows Azure   Ejecutable en servidores paralelos
1.      Introducción a Windows Azure   Funcionamiento      Máquinas  virtuales      Separan la máquina física de los re...
1.         Introducción a Windows Azure   ¿Por qué virtualizar?        Optimizar el uso del servidor
1.         Introducción a Windows Azure   Tamaños de máquina virtual        Configurable para cada rol
1.     Introducción a Windows Azure   Otros componentes de la infraestructura
1.      Introducción a Windows Azure   Balanceador de carga      Redirige el tráfico entrante      Minimizar posibles a...
1.      Introducción a Windows Azure   Worker roles      Procesosejecutables en nube      Manejados por el Fabric Contr...
1.         Introducción a Windows Azure   Fabric        Granja de servidores        Manejable como un todo   Fabric Co...
1.      Introducción a Windows Azure   Servicios de Almacenamiento      Abstracción del almacén físico      Independien...
1.      Introducción a Windows Azure   Servicios de Almacenamiento      Cuenta de almacenamiento      Contenedores de f...
1.      Introducción a Windows Azure   Y, ¿todo esto es Azure?      Incluso más      Windows Azure Platform      SQL A...
1.      Introducción a Windows Azure   ¿Qué es SQL Azure?      Soporte  para BD relacionales      Similar a SQL Server ...
1.      Introducción a Windows Azure   ¿Qué es AppFabric?      .Net Services      Servicios de control de acceso (ACS) ...
1.      Introducción a Windows Azure   Y, ¿dónde están mis datos?      Centros   de datos      Dublín      Amsterdam
2.          Instalación     Descarga del SDK y suscripción      Plantillas para Visual Studio       Despliegue de Aplicaci...
2.                Instalación    Descarga del SDK y suscripción    Plantillas para Visual Studio    Despliegue de Aplic...
2.                      Instalación   Requisitos     Windows   7, Vista, 2008 Server o superior     Visual Studio 2008 ...
2.                     Instalación   Windows Azure SDK        http://www.windowsazure.com/es-es/develop/net/   Versiones...
2.              Instalación   Windows Azure SDK
2.                     Instalación   SDKbin     Ensamblados y herramientas     Development Fabric       csmonitor  par...
2.                    Instalación   Visual Studio Tools     Permite  crear proyectos de Azure     Instalable desde WPI ...
2.                  Instalación   Proyectos de roles     ASP.Net     ASP.Net MVC     WCF Service     Worker     Fast...
2.                     Instalación   Despliegue de aplicaciones     Windows      Azure Development Portal        https:...
2.   Instalación
2.                   Instalación   Ejecución de un proyecto     Establecer como proyecto de inicio     Se ejecuta en el...
2.                      Instalación   Posibles problemas     Instancia    de la BD local no accesible        Azure  Com...
3. Primeros pasos con Azure        Creación de una aplicación Azure      Migración de una aplicación existente
3.      Primeros pasos con Azure    Creación de una aplicación Azure    Conversión de una aplicación existente
3.       Primeros pasos con Azure   Antes de nada…     Para subir a la nube…     Hay que registrarse con un MS Passport...
3.       Primeros pasos con Azure   Módulos de gestión en la nube     Portal     Diagnostics     Analytics   y herrami...
3.         Primeros pasos con Azure   Desde el portal se administra todo       Crear un servicio       Establecer la UR...
3.   Primeros pasos con Azure
3.      Primeros pasos con Azure Por eso Por ahora… Vamos a trabajar con el emulador
3.       Primeros pasos con Azure   Tipos de desarrollo para Azure
3.       Primeros pasos con Azure   Creación de un servicio
3.       Primeros pasos con Azure   Creación de un servicio     Elegir   el/los roles (tipos de proyecto)
3.       Primeros pasos con Azure   Creación de un servicio     Librerías   de Azure
3.       Primeros pasos con Azure   Creación de un servicio     Listo   para ejecutar en local
3.            Primeros pasos con Azure   Configurar el modelo de servicios       ¿Qué proyectos desplegar? ¿Qué roles ju...
3.          Primeros pasos con Azure   Configurar el modelo de servicios     Ej:Añadir un servicio de almacenamiento    ...
3.        Primeros pasos con Azure Configurar      el modelo de servicios   Ej:Añadir configuración personalizada   Mod...
3.         Primeros pasos con Azure   Empaquetar y desplegar       cspack permite crear un script de despliegue       B...
3.   Primeros pasos con Azure
3.       Primeros pasos con Azure   Recomendaciones     Desplegar  siempre a staging     Indicar una etiqueta con fines...
3.   Primeros pasos con Azure
3.            Primeros pasos con Azure   Ejercicio 1: Añadir un modelo de datos       Clase Producto en un proyecto inde...
3.          Primeros pasos con Azure   Ejercicio 2: Añadir más configuración       Añadir un <Setting> a <ConfigurationS...
3.           Primeros pasos con Azure   Ejercicio 3: Obtener datos del servidor       Añadir la librería Microsoft.Visua...
3.         Primeros pasos con Azure   Ejercicio 4: Obtener la lista de procesos activos       Y mostrarla en una página ...
3.         Primeros pasos con Azure   WaIISHost     Alojaun IIS 7     Funciona aunque tires el IIS   MonAgentHost    ...
3.       Primeros pasos con Azure   Migración a Azure     Solo   Proyectos compatibles     Web        ASP.Net,   MVC 2...
3.      Primeros pasos con Azure   Migración a Azure
3.        Primeros pasos con Azure    Migración a Azure    1.   Pasos 1 y 2 del diagrama    2.   Cambiar la cadena de con...
3.       Primeros pasos con Azure   Migración a Azure     Cadena   de conexión tipo SQL Azure    Server=tcp:[servidor].d...
3.          Primeros pasos con Azure   Migración a Azure       Crear un archivo local al rol    LocalResource recurso = ...
4.     Servicios de     Almacenamiento       Windows Azure Storage           BLOB Storage         Servicio de Tablas     P...
4. Servicios de Almacenamiento   Windows Azure Storage   Securización y acceso a recursos   SQL Azure Database   Servi...
4. Servicios de Almacenamiento   Compartir ficheros entre máquinas es difícil       ¿Tienes suficiente espacio en disco?...
4. Servicios de Almacenamiento   Las soluciones que soportan todas estas    cuestiones son caras o ineficientes     Base...
4. Servicios de Almacenamiento   Windows Azure Storage     API basado en REST     Acceso a través de HTTP     Construi...
4. Servicios de Almacenamiento   Ventajas       Escalable al igual que los roles       Enormes centros de datos       ...
4. Servicios de Almacenamiento   Cuentas de almacenamiento     Subdominios      distintos para cada tipo       http://[...
4. Servicios de Almacenamiento   Acceso al Development BLOB Storage       Librería StorageClient.dll       Equivalente ...
4. Servicios de Almacenamiento1.   Crear un Contenedor (directorio)        No se admiten mayúsculas     CloudStorageAccou...
4. Servicios de Almacenamiento   Ejercicio: Crear contenedores     Página   que crea contenedores     Y los lista en un...
4. Servicios de Almacenamiento2.   Subir BLOBS        Se puede hacer por REST        O mediante el StorageClient        ...
4. Servicios de Almacenamiento   Detalles     Máximo  4MB de subida     Modificar <system.web>     Ejemplo para limita...
4. Servicios de Almacenamiento   Ejercicio: Crear una página que     Liste          los BLOB de un contenedor     Permi...
4. Servicios de Almacenamiento3.   Descargar un BLOB        Desde contenedor público            Basta indicar la URL    ...
4. Servicios de Almacenamiento   Detalles       Para descargarlo desde el navegador            Descargar a MemoryStream...
4. Servicios de Almacenamiento   Ejercicio: Descargar BLOBs     Desde  la página anterior     Configurar almacenamiento...
4. Servicios de Almacenamiento4.   Propiedades de los BLOB        blob.FetchAttributes();        blob.Properties y blob....
4. Servicios de Almacenamiento   Tipos de BLOB       PageBlob            Optimizados para lectura/escritura aleatoria  ...
4. Servicios de Almacenamiento5.   Copias de los BLOB        De contenedor a contenedor         blobDestino.CopyFromBlob(...
4. Servicios de Almacenamiento   Ejercicio: Modificar la descarga     Comprobando    la fecha local/remota     Comproba...
4. Servicios de Almacenamiento        Table Service
4. Servicios de Almacenamiento Tablas simples Acceso privado Almacenar entidades No relacional     No FK     No Join...
4. Servicios de Almacenamiento
4. Servicios de Almacenamiento   Entidades y tablas     Cada    entidad debe tener        Un Timestamp (fecha y hora de...
4. Servicios de Almacenamiento   Ejemplo: Entidad Producto    [DataServiceKey("PartitionKey", "RowKey")]    public class ...
4. Servicios de Almacenamiento   Ejemplo: Entidad Producto    var productos = new List<Producto>{       new Producto{    ...
4. Servicios de Almacenamiento   Columnas de una tabla
4. Servicios de Almacenamiento   Notas     Se admiten distintos tipos de entidad     Almacenando en el PropertyBag    ...
4. Servicios de Almacenamiento   A tener en cuenta:     Usar las entidades como contrato     Propiedades añadidas opcio...
4. Servicios de Almacenamiento   Más cosas     Lo más rápido: obtener una partición única     Una entidad en una partic...
4. Servicios de Almacenamiento   ¿Y cómo consumo los registros?       Crear un Rol       Crear una entidad (: TableServ...
4. Servicios de Almacenamiento    Clases de contexto        Permiten CRUD mediante ADO    1.   Extender TableServiceCont...
4. Servicios de Almacenamiento   Ejemplo: Clase de Contexto    // Constructor    public ContextoProductos(): base(cuenta....
4. Servicios de Almacenamiento   Ejemplo: Encontrar una entidad    var entidad = (       from item in contexto.Producto  ...
4. Servicios de Almacenamiento   Ejercicio: Tabla de colores     Crear una entidad Colores     Crear un contexto     C...
4. Servicios de Almacenamiento   Acceso mediante StorageClient     ClaseCloudTableClient     Métodos       GET:      L...
4. Servicios de Almacenamiento   Ejercicio: Manipular tablas     Mostrar las tablas de la cuenta     Crear tablas nueva...
4. Servicios de Almacenamiento        Queue Service
4. Servicios de Almacenamiento   Soporte para comunicaciones async   Modelo Productor-Consumidor   Número ilimitado de ...
4. Servicios de Almacenamiento   Uso de la cola     REST  y StorageClient … de nuevo     Clase CloudQueueClient       ...
4. Servicios de Almacenamiento   Uso de la cola     Clase   CloudQueueMessage       cola.AddMessage();       cola.Peek...
4. Servicios de Almacenamiento   Ejercicio: Crear una página     Que cree colas     Que permita añadir y consultar el m...
5.   Servicios de Computación        Escalado de Aplicaciones con Azure         Creación de Servicios para Azure       Com...
5.      Servicios de Computación    Compute    Creación de Aplicaciones con Azure    Creación de Servicios para Azure ...
5.       Servicios de Computación   ¿Qué pasa cuando el servidor se    sobrecarga?     ¿laspeticiones se encolan?     ¿...
5.           Servicios de Computación   Ejercicio: Simulación       Crear un WebForm con un UpdatePanel       Y un Time...
5.         Servicios de Computación   Ejercicio: Simulación       Para hacerlo más cómodo       Crear una aplicación de...
5.       Servicios de Computación   Por suerte en Azure puedo indicar el    número de instancias que se ejecutan    para ...
5.       Servicios de Computación ¿Y si no quiero hacerlo a mano? ¿Y si no quiero tener tantas instancias? ¿Y si quiero...
5.       Servicios de Computación ¿Y si no me sirve? ¿Y si no puedo escalar en horizontal? Porque no había pensado en e...
5.       Servicios de Computación   ¿Qué implica el escalado horizontal?     Balanceo  de carga     Varias instancias d...
5.       Servicios de Computación   Tipos de persistencia de datos     Session     ViewState     Cookies     Applicat...
5.       Servicios de Computación   Ejercicio: Crear una aplicación ASPX     Que muestre los datos de la sesión     Cad...
5.          Servicios de Computación   ¿Problemas?       Azure no garantiza que las peticiones vayan a la        misma i...
5.   Servicios de Computación         Worker roles
5.     Servicios de Computación Procesos de background Normalmente asíncronos Normalmente basados en mensajes Similar ...
5.       Servicios de Computación   Ejercicio: Crear un Worker Rol     Que  permita realizar operaciones aritméticas    ...
5.        Servicios de Computación    Tal cual lo hemos creado no hace nada    Hay que enviarle mensajes    a.   Consumo...
5.       Servicios de Computación   Consumo de mensajes de una cola    while (true){       var msg = queue.GetMessage(); ...
5.       Servicios de Computación   Reacción a peticiones     Externas:   WCF WebService     Internas
5.            Servicios de Computación   Habilitar peticiones       Definir un endpoint            Tipo, protocolo y pu...
5.     Servicios de Computación private void IniciarServicioCalculadora(){    this.host = new ServiceHost(typeof(MiCalcula...
5.          Servicios de Computación   Para acceso externo       Hay que habilitar también un servicio de metadatos    v...
5.         Servicios de Computación    Para acceso interno        Notificar a otras instancias/roles    1.   ChannelFact...
5.       Servicios de Computación   ¿Por qué Worker roles?     Liberar de carga el front-end     Habilitar multi-hilos ...
5.       Servicios de Computación   Ejercicio: Consumir el Worker rol     Desde  un cliente de Servicio Web WCF     Con...
6. Windows Azure AppFrabric             Service Bus          Control de Acceso
6.     Windows Azure AppFrabric    Service Bus    Control de Acceso    Caching    Integración
6.      Windows Azure AppFrabric   ¿Qué es AppFabric?     Plataforma    para aplicaciones híbridas       ¿?       Libr...
6.           Windows Azure AppFrabric    ¿Cómo uso AppFabric?    1.   Crear una solución .Net Services            http:/...
6.      Windows Azure AppFrabric   Enterprise Service Bus (ESB)        Permite conectar cualquier servicio de un SOA    ...
6.      Windows Azure AppFrabric   ¿Me lo repites?     Antes     Después
6.        Windows Azure AppFrabric   ESB     .Net   Service Bus
6.      Windows Azure AppFrabric   ¿Cómo se implementa en Azure?     WCF              sb://     Protocolo     Namespac...
6.       Windows Azure AppFrabric   Ejemplo Worker Rol    public override void Run(){      // Iniciar el servicio      Se...
6.       Windows Azure AppFrabric   Ejemplo consumidor    Microsoft.ServiceBus.ServiceBusEnvironment.      SystemConnecti...
6.        Windows Azure AppFrabric   ¿Así de simple?       No, Hay que configurar App.config    <client>      <endpoint ...
6.        Windows Azure AppFrabric   ¿Así de simple?       No, Hay que configurar App.config    <extensions>      <bindi...
6.   Windows Azure AppFrabric        Control de Acceso
6.         Windows Azure AppFrabric   Access Control Services (ACS)       Identidad, autenticación y autorización      ...
6.        Windows Azure AppFrabric   Configurar el servicio para seguridad    host.Authorization.ServiceAuthorizationMana...
6.       Windows Azure AppFrabricclass MiControlDeAcceso : ServiceAuthorizationManager{    override bool CheckAccessCore(O...
7.   Otros Servicios de Azure                 CDN           Azure Diagnostics              SQL Azure
7.       Otros Servicios de Azure    Servicios de contenido (CDN)    Windows Azure Virtual Machine Role    Windows Azur...
7.        Otros Servicios de Azure   Content Delivery Network (CDN)     Servidores   distribuidos por todo el mundo     ...
7.        Otros Servicios de Azure   Habilitable desde el portal
7.        Otros Servicios de Azure   API Diagnostics     Permite monitorizar el servidor     Método OnStart() del rol  ...
7.       Otros Servicios de Azure   SQL Azure
7.             Otros Servicios de Azure   Otras clases relevantes       DiagnosticMonitorConfiguration            Infra...
7.          Otros Servicios de Azure   SQL Azure       Configurable desde el portal       Y desde el manager de SQL Ser...
7.           Otros Servicios de Azure   SQL Azure       Accesible desde ADO.Net       Cuenta de usuario       [usuario...
7.         Otros Servicios de Azure   Algunas limitaciones:     No se admite el comando USE     No admite Transact-SQL ...
Muchas Gracias  Óliver Centeno
Upcoming SlideShare
Loading in...5
×

Azure

2,087

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,087
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • SaaS delivers a packaged or equivalent commercial software application to end users over the Internet with a subscription or usage-based pricing model. Microsoft Office Live
  • Transcript of "Azure"

    1. 1. Windows Azure Óliver Centeno
    2. 2. Contenidos1. Introducción a Windows Azure2. Instalación3. Primeros pasos con Azure4. Servicios de Almacenamiento5. Servicios de Computación6. Windows Azure AppFrabric7. Otros Servicios de Azure
    3. 3. 1. Introducción a Windows Azure Cloud Computing Windows Azure SQL Azure Features Roles
    4. 4. 1. Introducción a Windows Azure Windows Azure SQL Azure Cloud Computing Features Roles
    5. 5. 1. Introducción a Windows Azure Cloud Computing  Grandes aplicaciones  Granjas de servidores  Alquiler de servicios
    6. 6. 1. Introducción a Windows Azure ¿Por qué usar Cloud?  Sacar servicios al mercado más rápido  Realizar tests de mercado  Controlar las pérdidas del fracaso  Ajustar la inversión a picos productivos  Ahorro de costes por infraestructura  Total escalabilidad
    7. 7. 1. Introducción a Windows Azure ¿Por qué usar Cloud?
    8. 8. 1. Introducción a Windows Azure ¿Me lo repites?  Pagas por el consumo que haces  NO requiere una inversión inicial grande  Escalas cuando te hace falta  Puedes adaptarte al nivel de tráfico  Es tolerante a fallos de almacenamiento  NO requiere mantenimiento  Es distribuido
    9. 9. 1. Introducción a Windows Azure Proveedores de Servicios (SaaS)  Aplicaciones especializadas  Aplicaciones empresariales  Mercados verticales  Mercados locales
    10. 10. 1. Introducción a Windows Azure Arquitectura Orientada a Servicios (SOA)  Cada parte de la aplicación es un servicio  No importa dónde ni cómo  Máxima reutilización Cliente Seguridad Gestión Cliente BD Cliente Validación
    11. 11. 1. Introducción a Windows Azure Cloud Computing  ArquitecturaSOA  Independiente de infraestructura  Basada en consumo de recursos  Implementaciones:  GoogleApp Engine  Amazon Web Services
    12. 12. 1. Introducción a Windows Azure Everything as a Service  Servicios de almacenamiento (DaaS y FaaS)  Servicios de Software (SaaS)  Servicios de infraestructura (IaaS y PaaS)  Servicios de comunicación (CaaS)  Servicios de monitorización (MaaS)
    13. 13. 1. Introducción a Windows Azure Cloud Computing as a Service
    14. 14. 1. Introducción a Windows Azure Windows Azure
    15. 15. 1. Introducción a Windows Azure Windows Azure  Sistema Operativo  En Nube  Ejecución escalable de aplicaciones  Front-end  Back-end
    16. 16. 1. Introducción a Windows Azure Tipos de aplicaciones  Aplicaciones Web  Aplicaciones de cómputo
    17. 17. 1. Introducción a Windows Azure Ejecutable en servidores paralelos
    18. 18. 1. Introducción a Windows Azure Funcionamiento  Máquinas virtuales  Separan la máquina física de los recursos  Windows Server 2008 + IIS 7  Web role  Worker role  Agente
    19. 19. 1. Introducción a Windows Azure ¿Por qué virtualizar?  Optimizar el uso del servidor
    20. 20. 1. Introducción a Windows Azure Tamaños de máquina virtual  Configurable para cada rol
    21. 21. 1. Introducción a Windows Azure Otros componentes de la infraestructura
    22. 22. 1. Introducción a Windows Azure Balanceador de carga  Redirige el tráfico entrante  Minimizar posibles ataques  Tolerancia a fallos  Soporte para mantenimiento
    23. 23. 1. Introducción a Windows Azure Worker roles  Procesosejecutables en nube  Manejados por el Fabric Controller Web roles  Iguales a los Worker roles  Pero con un IIS interno  Aplicaciones Web
    24. 24. 1. Introducción a Windows Azure Fabric  Granja de servidores  Manejable como un todo Fabric Controller  Manejador/Kernel  Instala roles  Replica el estado  Matrix
    25. 25. 1. Introducción a Windows Azure Servicios de Almacenamiento  Abstracción del almacén físico  Independiente de máquina  Compartido  Endpoints de acceso (URIs)  Accesibles por REST  Tokens de autenticación
    26. 26. 1. Introducción a Windows Azure Servicios de Almacenamiento  Cuenta de almacenamiento  Contenedores de ficheros  BLOB  Colas de mensajes  Tablas
    27. 27. 1. Introducción a Windows Azure Y, ¿todo esto es Azure?  Incluso más  Windows Azure Platform  SQL Azure  AppFabric  CDN  Virtual Machine …
    28. 28. 1. Introducción a Windows Azure ¿Qué es SQL Azure?  Soporte para BD relacionales  Similar a SQL Server Express Edition  Accesible mediante protocolo TDS
    29. 29. 1. Introducción a Windows Azure ¿Qué es AppFabric?  .Net Services  Servicios de control de acceso (ACS)  Compatible con autenticación de terceros  Service BUS  Comunicación con otras aplicaciones
    30. 30. 1. Introducción a Windows Azure Y, ¿dónde están mis datos?  Centros de datos  Dublín  Amsterdam
    31. 31. 2. Instalación Descarga del SDK y suscripción Plantillas para Visual Studio Despliegue de Aplicaciones
    32. 32. 2. Instalación Descarga del SDK y suscripción Plantillas para Visual Studio Despliegue de Aplicaciones
    33. 33. 2. Instalación Requisitos  Windows 7, Vista, 2008 Server o superior  Visual Studio 2008 o superior  Web Express Edition también es compatible  SQL Server Express o superior  Ejecutar VS como administrador…
    34. 34. 2. Instalación Windows Azure SDK http://www.windowsazure.com/es-es/develop/net/ Versiones  Última 1.6  Cada versión cambia cosas… 
    35. 35. 2. Instalación Windows Azure SDK
    36. 36. 2. Instalación SDKbin  Ensamblados y herramientas  Development Fabric  csmonitor para emular Azure  cspack para desplegar en la nube  csrun para desplegar en local  dfui para manejar el emulador  dsinit para configurar el servicio de datos
    37. 37. 2. Instalación Visual Studio Tools  Permite crear proyectos de Azure  Instalable desde WPI 3  Descarga directa versión 1.5  http://www.microsoft.com/downloads/es-es/ details.aspx?FamilyID=517AD007-E736-45DF- 81DF-7CC9FC8BC192  Añade los proyectos de roles de Azure
    38. 38. 2. Instalación Proyectos de roles  ASP.Net  ASP.Net MVC  WCF Service  Worker  FastCGI
    39. 39. 2. Instalación Despliegue de aplicaciones  Windows Azure Development Portal  https://windows.azure.com/  Suscripción/Evaluación  Tarjeta de crédito o…  http://windowsazurepass.com/  JUANALVARADO
    40. 40. 2. Instalación
    41. 41. 2. Instalación Ejecución de un proyecto  Establecer como proyecto de inicio  Se ejecuta en el Development Fabric (DF)  Emulador de cómputo  Emulador de almacenamiento  csmonitor
    42. 42. 2. Instalación Posibles problemas  Instancia de la BD local no accesible  Azure Command Prompt  dsinit /sqlInstance:. /forceCreate  No se ejecuta el proyecto  Liberar los puertos 80 y siguientes del IIS  Comprobar la versión del SDK y del Tools  Comprobar el emulador de cómputo (dfui)
    43. 43. 3. Primeros pasos con Azure Creación de una aplicación Azure Migración de una aplicación existente
    44. 44. 3. Primeros pasos con Azure Creación de una aplicación Azure Conversión de una aplicación existente
    45. 45. 3. Primeros pasos con Azure Antes de nada…  Para subir a la nube…  Hay que registrarse con un MS Passport  Hay que indicar un medio de facturación  Incluso para una cuenta de prueba…  Recomendado tener 2 cuentas  Una para procesos de negocio  Otra para aspectos técnicos
    46. 46. 3. Primeros pasos con Azure Módulos de gestión en la nube  Portal  Diagnostics  Analytics y herramientas de facturación
    47. 47. 3. Primeros pasos con Azure Desde el portal se administra todo  Crear un servicio  Establecer la URL del servicio  Establecer grupos de afinidad  Subir un proyecto a staging  Testear el proyecto  Cambiarlo a producción  Activar y gestionar los logs  … y más
    48. 48. 3. Primeros pasos con Azure
    49. 49. 3. Primeros pasos con Azure Por eso Por ahora… Vamos a trabajar con el emulador
    50. 50. 3. Primeros pasos con Azure Tipos de desarrollo para Azure
    51. 51. 3. Primeros pasos con Azure Creación de un servicio
    52. 52. 3. Primeros pasos con Azure Creación de un servicio  Elegir el/los roles (tipos de proyecto)
    53. 53. 3. Primeros pasos con Azure Creación de un servicio  Librerías de Azure
    54. 54. 3. Primeros pasos con Azure Creación de un servicio  Listo para ejecutar en local
    55. 55. 3. Primeros pasos con Azure Configurar el modelo de servicios  ¿Qué proyectos desplegar? ¿Qué roles jugarán?  ServiceDefinition.csdef  Qué roles hay y cómo se comunican  Detalles de HTTP Y endpoints de acceso  No modificable en caliente  ServiceConfiguration.cscfg  Configuración e instancias de cada rol  Modificable en caliente  Accesible por código
    56. 56. 3. Primeros pasos con Azure Configurar el modelo de servicios  Ej:Añadir un servicio de almacenamiento  Modificar la configuración  ServiceConfiguration.cscfg  Indicar los datos de tu cuenta  <Setting name="Microsoft.WindowsAzure.Plugins. Diagnostics. ConnectionString" value=" DefaultEndpointsProtocol=https; AccountName=XXX; AccountKey=YYY" />
    57. 57. 3. Primeros pasos con Azure Configurar el modelo de servicios  Ej:Añadir configuración personalizada  Modificar la configuración  Añadir un nuevo <Setting>  <Setting name="Prueba" />  <Setting name="Prueba" value="Ejemplo" />  El valor sólo en el .cscfg
    58. 58. 3. Primeros pasos con Azure Empaquetar y desplegar  cspack permite crear un script de despliegue  Botón derecho en el proyecto > Publicar
    59. 59. 3. Primeros pasos con Azure
    60. 60. 3. Primeros pasos con Azure Recomendaciones  Desplegar siempre a staging  Indicar una etiqueta con fines históricos  En el portal fijarse el color de los cubos  Staging y producción  Azul indica que se está facturando  Parar el servicio si no se va a utilizar
    61. 61. 3. Primeros pasos con Azure
    62. 62. 3. Primeros pasos con Azure Ejercicio 1: Añadir un modelo de datos  Clase Producto en un proyecto independiente  Clase de gestión que genera productos  Listar  Añadir  Eliminar  Control ASP para mostrar los datos  Carga en el evento Page_load
    63. 63. 3. Primeros pasos con Azure Ejercicio 2: Añadir más configuración  Añadir un <Setting> a <ConfigurationSettings> en ambos ficheros de configuración  El valor se indica sólo en el .cscfg  Acceder al valor almacenado desde la clase RoleEnvironment  Crear una clase que centralice el acceso a los ficheros de configuración
    64. 64. 3. Primeros pasos con Azure Ejercicio 3: Obtener datos del servidor  Añadir la librería Microsoft.VisualBasic  Utilizar las clases Computer y Environment  Mostrar:  Nombre de la máquina  SO (nombre, versión,…)  Número de procesadores  Directorio actual  Nombre de usuario  ¿Otros?
    65. 65. 3. Primeros pasos con Azure Ejercicio 4: Obtener la lista de procesos activos  Y mostrarla en una página  Procesos WaIISHost y MonAgentHost var procesos = Process.GetProcesses(); from p in procesos orderby p.ProcessName select new { Nombre = p.ProcessName, Id = p.Id.ToString() };
    66. 66. 3. Primeros pasos con Azure WaIISHost  Alojaun IIS 7  Funciona aunque tires el IIS MonAgentHost  Monitoriza la salud del rol  Toma estadísticas  Rendimiento, memoria, capacidad de disco,…  Se comunica con el Fabric Controller
    67. 67. 3. Primeros pasos con Azure Migración a Azure  Solo Proyectos compatibles  Web  ASP.Net, MVC 2 y 3, Web de datos dinámicos  Silverlight  Normal, de negocios y de navegación  WCF  Servicio WCF y Flujo de trabajo WCF
    68. 68. 3. Primeros pasos con Azure Migración a Azure
    69. 69. 3. Primeros pasos con Azure Migración a Azure 1. Pasos 1 y 2 del diagrama 2. Cambiar la cadena de conexión a SQL Azure 3. Mover los ficheros locales al entorno del rol 4. Incluir ensamblados en el paquete del servicio (Copia local = true) 5. Publicar la aplicación en Windows Azure (Pasos 3 y 4 del diagrama)
    70. 70. 3. Primeros pasos con Azure Migración a Azure  Cadena de conexión tipo SQL Azure Server=tcp:[servidor].database.windows.net,1433; Database=[baseDeDatos]; UserID=[usuario]@[servidor]; Password=[password]; Trusted_Connection=False; Encrypt=True; MultipleActiveResultSets=True
    71. 71. 3. Primeros pasos con Azure Migración a Azure  Crear un archivo local al rol LocalResource recurso = RoleEnvironment. GetLocalResource("almacen"); string[] paths = { recurso.RootPath, "MiFicheroTest.txt" }; String fichero = Path.Combine(paths); using (FileStream flujo = File.Create(fichero)){ // código de acceso al flujo }
    72. 72. 4. Servicios de Almacenamiento Windows Azure Storage BLOB Storage Servicio de Tablas Procesamiento de Mensajes
    73. 73. 4. Servicios de Almacenamiento Windows Azure Storage Securización y acceso a recursos SQL Azure Database Servicios de BI con SQL Azure Reporting Sincronización con SQL Azure Data Sync
    74. 74. 4. Servicios de Almacenamiento Compartir ficheros entre máquinas es difícil  ¿Tienes suficiente espacio en disco?  ¿Cómo aumentas la capacidad?  ¿Qué pasa si un disco se estropea?  ¿Hay balanceo de carga?  ¿Qué pasa se pierde la conexión?  ¿Qué tope tiene respecto a lecturas y escrituras?  ¿Cómo distribuyes la carga equitativamente?
    75. 75. 4. Servicios de Almacenamiento Las soluciones que soportan todas estas cuestiones son caras o ineficientes  Base de Datos de BLOBs  Carpetas compartidas  Sistema de Ficheros distribuidos (DFS)  Almacenamiento en red (NAS)  Arrays de discos (DAS)  Discos virtuales (SAN)
    76. 76. 4. Servicios de Almacenamiento Windows Azure Storage  API basado en REST  Acceso a través de HTTP  Construido sobre infraestructura de Web Rol
    77. 77. 4. Servicios de Almacenamiento Ventajas  Escalable al igual que los roles  Enormes centros de datos  Mantiene la consistencia mediante replicación  Mínimo 3 veces para aceptar un commit  Las peticiones van a instancias actualizadas  Rendimiento aceptable (50-100 ms)  Mejorable mediante caché  Acceso público o privado a los datos
    78. 78. 4. Servicios de Almacenamiento Cuentas de almacenamiento  Subdominios distintos para cada tipo  http://[cuenta].[tipo].core.windows.net/  Colas de mensajes (queue)  Tablas (table)  BLOB  URL editable
    79. 79. 4. Servicios de Almacenamiento Acceso al Development BLOB Storage  Librería StorageClient.dll  Equivalente a REST  Cadena de conexión  UseDevelopmentStorage=true  http://127.0.0.1:10000/[cuenta]/[contenedor]/[BLOB]  DSService.exe.config  CloudStorageAccount.DevelopmentStorageAccount
    80. 80. 4. Servicios de Almacenamiento1. Crear un Contenedor (directorio)  No se admiten mayúsculas CloudStorageAccount cuenta; var cliente = cuenta.CreateCloudBlobClient(); CloudBlobContainer contenedor = cliente. GetContainerReference([nombre]); contenedor.CreateIfNotExist();
    81. 81. 4. Servicios de Almacenamiento Ejercicio: Crear contenedores  Página que crea contenedores  Y los lista en un desplegable  Permitir eliminar un contenedor seleccionado  Comprobar la configuración NO de desarrollo  DefaultEndpointsProtocol=http; AccountName=devstoreaccount1;AccountKey= Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6I FsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==
    82. 82. 4. Servicios de Almacenamiento2. Subir BLOBS  Se puede hacer por REST  O mediante el StorageClient contenedor.ListBlobs(); var blob = contenedor.GetBlobReference("remoto");  Subida blob.UploadByteArray(datos); blob.UploadFile("local"); blob.UploadFromStream(stream); blob.UploadText("Texto a subir");
    83. 83. 4. Servicios de Almacenamiento Detalles  Máximo 4MB de subida  Modificar <system.web>  Ejemplo para limitar a 50MB  <httpRuntime executionTimeout="300" maxRequestLength="51200"/>  En nube el BLOB se corta en bloques de 4MB contenedor.GetBlockBlobReference("remoto.txt");
    84. 84. 4. Servicios de Almacenamiento Ejercicio: Crear una página que  Liste los BLOB de un contenedor  Permita eliminar un BLOB seleccionado  Permita subir ficheros  Recomendado control FileUpload  PostedFile.FileName y FileBytes
    85. 85. 4. Servicios de Almacenamiento3. Descargar un BLOB  Desde contenedor público  Basta indicar la URL  http://127.0.0.1:10000/[cuenta]/[cont]/[BLOB]  Desde contenedor privado blob.DownloadByteArray(); blob.DownloadText(); blob.DownloadToFile("local.txt"); blob.DownloadToStream(stream);
    86. 86. 4. Servicios de Almacenamiento Detalles  Para descargarlo desde el navegador  Descargar a MemoryStream Response.ContentType = blob.Properties.ContentType; Response.AddHeader("Content-Disposition", "attachment;filename=" + blob.Name); Response.BinaryWrite(ms.ToArray());  Se puede usar una caché local de archivos  Carpeta en el disco remoto para guardar los ficheros File.WriteAllBytes(fichero, blob);  Privada para cada instancia
    87. 87. 4. Servicios de Almacenamiento Ejercicio: Descargar BLOBs  Desde la página anterior  Configurar almacenamiento local  Crear un método/clase de acceso a BLOBs  Primero busca en local var cache=RoleEnvironment.GetLocalResource("local"); String fichero = cache.RootPath + blob.Name;  Si no lo encuentra descarga de contenedor if(!File.Exists(fichero))
    88. 88. 4. Servicios de Almacenamiento4. Propiedades de los BLOB  blob.FetchAttributes();  blob.Properties y blob.Metadata  BlobType  ContentType  LastModifiedTimeUtc  Length  ContentEncoding  ContentLanguage  ContentMD5  …
    89. 89. 4. Servicios de Almacenamiento Tipos de BLOB  PageBlob  Optimizados para lectura/escritura aleatoria  Máximo 1TB de datos por página  Desplazamientos y rangos de 512 bytes  BlockBlob  Optimizados para streaming  Resuelven la limitación de 64MB por PUT  Cortan el BLOB en bloques de 4MB máximo  Máximo total de 200GB
    90. 90. 4. Servicios de Almacenamiento5. Copias de los BLOB  De contenedor a contenedor blobDestino.CopyFromBlob(blobOrigen);  Snapshots  Copias a fecha de hoy  No incrementa el coste blob.CreateSnapshot(); contenedor.GetBlobReference("[nombre]?snapshot =[datetime]");
    91. 91. 4. Servicios de Almacenamiento Ejercicio: Modificar la descarga  Comprobando la fecha local/remota  Comprobando un Metadata personalizado  Crear un contenedor nuevo  Permitir copiar un BLOB a éste  Permitir snapshots
    92. 92. 4. Servicios de Almacenamiento Table Service
    93. 93. 4. Servicios de Almacenamiento Tablas simples Acceso privado Almacenar entidades No relacional  No FK  No Joins  No índices Se puede particionar
    94. 94. 4. Servicios de Almacenamiento
    95. 95. 4. Servicios de Almacenamiento Entidades y tablas  Cada entidad debe tener  Un Timestamp (fecha y hora de inserción)  Una clave de partición (PartitionKey)  Una clave de registro (RowKey)  Anotación DataServiceKey  Especificar “partición” e “id” de cada objeto
    96. 96. 4. Servicios de Almacenamiento Ejemplo: Entidad Producto [DataServiceKey("PartitionKey", "RowKey")] public class Producto{ public string Timestamp{ get; set; } public string PartitionKey { get; set; } public string RowKey { get; set; } public string Nombre { get; set; } public string Descripcion { get; set; } }
    97. 97. 4. Servicios de Almacenamiento Ejemplo: Entidad Producto var productos = new List<Producto>{ new Producto{ PartitionKey = "Colores", RowKey= "1", Nombre = "Azul", Descripcion = "Color azul" }, new Producto{ PartitionKey = "Colores", RowKey = "2", Nombre = "Azul", Descripcion = "Color rojo" } };
    98. 98. 4. Servicios de Almacenamiento Columnas de una tabla
    99. 99. 4. Servicios de Almacenamiento Notas  Se admiten distintos tipos de entidad  Almacenando en el PropertyBag  No recomendado  Se pueden modificar las entidades  Cuidado de no corromper en modelo  La clave de partición garantiza la ubicación  Misma partición  Mismo disco físico
    100. 100. 4. Servicios de Almacenamiento A tener en cuenta:  Usar las entidades como contrato  Propiedades añadidas opcionales  Mantener propiedades antiguas y nuevas  O migrar los datos a la nueva definición  No usar la misma clave de registro en una misma partición
    101. 101. 4. Servicios de Almacenamiento Más cosas  Lo más rápido: obtener una partición única  Una entidad en una partición es rápido  Si no usamos clave de registro es lento  Compara por propiedades del bag  Si no usamos ninguna clave es muy lento  Debe recorrer todas las particiones  Seguramente en varios servidores
    102. 102. 4. Servicios de Almacenamiento ¿Y cómo consumo los registros?  Crear un Rol  Crear una entidad (: TableServiceEntity)  Crear una tabla var cliente = cuenta.CreateCloudTableClient(); cliente.CreateTableIfNotExist("miTabla");  Se puede usar el API de ADO.Net  System.Data.Services.dll  System.Data.Services.Client.dll
    103. 103. 4. Servicios de Almacenamiento Clases de contexto  Permiten CRUD mediante ADO 1. Extender TableServiceContext 2. Constructor basado en la cuenta 3. Propiedad de consulta LINQ  Miembros heredados  AddObject()  DeleteObject()  UpdateObject()  MergeOption
    104. 104. 4. Servicios de Almacenamiento Ejemplo: Clase de Contexto // Constructor public ContextoProductos(): base(cuenta. TableEndpoint.AbsoluteUri(), cuenta. Credentials){ } // Propiedad de consulta public DataServiceQuery<Producto> Producto{ get{return CreateQuery<Producto>("Productos");} }
    105. 105. 4. Servicios de Almacenamiento Ejemplo: Encontrar una entidad var entidad = ( from item in contexto.Producto where item.PartitionKey == "Coches" && item.RowKey == id select item ).First();
    106. 106. 4. Servicios de Almacenamiento Ejercicio: Tabla de colores  Crear una entidad Colores  Crear un contexto  Crear una página para hacer CRUD
    107. 107. 4. Servicios de Almacenamiento Acceso mediante StorageClient  ClaseCloudTableClient  Métodos  GET: ListTables()  DELETE: DeleteTable("nombre")  POST: CreateTableIfNotexist("nombre")
    108. 108. 4. Servicios de Almacenamiento Ejercicio: Manipular tablas  Mostrar las tablas de la cuenta  Crear tablas nuevas  Añadir entidades mediante el Contexto  Eliminar tablas
    109. 109. 4. Servicios de Almacenamiento Queue Service
    110. 110. 4. Servicios de Almacenamiento Soporte para comunicaciones async Modelo Productor-Consumidor Número ilimitado de mensajes Máximo 8KB/mensaje (modelo ticket) Mensajes tipo String codificados en base64 3 instancias de cada cola
    111. 111. 4. Servicios de Almacenamiento Uso de la cola  REST y StorageClient … de nuevo  Clase CloudQueueClient  ListQueues();  CreateIfNotExist();  Delete();  Clear();  SetMetadata();  GetQueueReference();
    112. 112. 4. Servicios de Almacenamiento Uso de la cola  Clase CloudQueueMessage  cola.AddMessage();  cola.PeekMessage();  cola.GetMessage();  cola.DeleteMessage();
    113. 113. 4. Servicios de Almacenamiento Ejercicio: Crear una página  Que cree colas  Que permita añadir y consultar el metadata  Que permita escribir y leer mensajes
    114. 114. 5. Servicios de Computación Escalado de Aplicaciones con Azure Creación de Servicios para Azure Comunicación de Servicios sobre Azure
    115. 115. 5. Servicios de Computación Compute Creación de Aplicaciones con Azure Creación de Servicios para Azure Múltiples Websites sobre Azure
    116. 116. 5. Servicios de Computación ¿Qué pasa cuando el servidor se sobrecarga?  ¿laspeticiones se encolan?  ¿de manera indefinida?  ¿hasta que el servidor se cae?  ¿hasta que se queja algún usuario?
    117. 117. 5. Servicios de Computación Ejercicio: Simulación  Crear un WebForm con un UpdatePanel  Y un Timer que se actualice cada 5 sg  Mostrar la hora actual de refresco  Crear otro WebForm  Que duerma el Thread durante 10 sg  Thread.Sleep(10000);  Durante el evento Load de la página  Tras suficientes peticiones tendremos la simulación
    118. 118. 5. Servicios de Computación Ejercicio: Simulación  Para hacerlo más cómodo  Crear una aplicación de consola  Que lance 100 hilos new Thread( () => { } ).Start();  Y cada uno haga 25 peticiones asíncronas var cliente = new WebClient(); cliente.DowloadStringAsync(url);
    119. 119. 5. Servicios de Computación Por suerte en Azure puedo indicar el número de instancias que se ejecutan para cada rol
    120. 120. 5. Servicios de Computación ¿Y si no quiero hacerlo a mano? ¿Y si no quiero tener tantas instancias? ¿Y si quiero que levanten por sí mismas? Windows Azure Management API  Exige un certificado digital de Azure  Modificar .cscfg en caliente
    121. 121. 5. Servicios de Computación ¿Y si no me sirve? ¿Y si no puedo escalar en horizontal? Porque no había pensado en ello… Puedes escalar en vertical  Indicar un nuevo tamaño de VM  NO RECOMENDADO
    122. 122. 5. Servicios de Computación ¿Qué implica el escalado horizontal?  Balanceo de carga  Varias instancias de WaIISHost  Replicar los datos de usuario ¿Qué implica el escalado vertical?  Actualizarla aplicación (cambiar .csdef)  OJO! Límite de tamaño de VM
    123. 123. 5. Servicios de Computación Tipos de persistencia de datos  Session  ViewState  Cookies  Application  Base de Datos
    124. 124. 5. Servicios de Computación Ejercicio: Crear una aplicación ASPX  Que muestre los datos de la sesión  Cada 5 segundos  Timer y UpdatePanel  Para una variable Session["variable"]  Crear otra página que la modifique  Desplegar 2 instancias del rol  Matar el proceso WaIISHost
    125. 125. 5. Servicios de Computación ¿Problemas?  Azure no garantiza que las peticiones vayan a la misma instancia del rol  Porque consume mucha memoria  OutOfMemoryException  Table-storage session state provider Soluciones  Almacenar la sesión en tablas  O en SQL Azure
    126. 126. 5. Servicios de Computación Worker roles
    127. 127. 5. Servicios de Computación Procesos de background Normalmente asíncronos Normalmente basados en mensajes Similar a la definición de un Thread Cuyos hilos son las instancias del rol Método Run
    128. 128. 5. Servicios de Computación Ejercicio: Crear un Worker Rol  Que permita realizar operaciones aritméticas  Sumar  Restar  Multiplicar  Dividir  Raíz Cuadrada
    129. 129. 5. Servicios de Computación Tal cual lo hemos creado no hace nada Hay que enviarle mensajes a. Consumo desde cola b. Peticiones desde un rol en Azure c. Peticiones desde fuera
    130. 130. 5. Servicios de Computación Consumo de mensajes de una cola while (true){ var msg = queue.GetMessage(); if (msg != null){ Procesar(msg); queue.DeleteMessage(msg); }else{ Thread.Sleep(5000); } }
    131. 131. 5. Servicios de Computación Reacción a peticiones  Externas: WCF WebService  Internas
    132. 132. 5. Servicios de Computación Habilitar peticiones  Definir un endpoint  Tipo, protocolo y puerto  Input para externas  Internal para internas  Escribir el código de servicio  Clase ServiceHost  Clase NetTcpBinding  RoleEnvironment.CurrentRoleInstance.InstanceEndpoints
    133. 133. 5. Servicios de Computación private void IniciarServicioCalculadora(){ this.host = new ServiceHost(typeof(MiCalculadora)); var bind = new NetTcpBinding(SecurityMode.None); var ep = RoleEnvironment.CurrentRoleInstance. InstanceEndpoints["miEndpointDeServicio"]; this.host.AddServiceEndpoint(typeof(ICalculadora), bind, String.Format("net.tcp://{0}/MiServicio", ep.IPEndpoint)); this.host.Open(); while (true){ Thread.Sleep(500000); } }
    134. 134. 5. Servicios de Computación Para acceso externo  Hay que habilitar también un servicio de metadatos var wsdl = this.host.Description.Behaviors . Find<ServiceMetadataBehavior>(); if (wsdl == null){ wsdl = new ServiceMetadataBehavior(); this.host.Description.Behaviors.Add(wsdl); } this.host.AddServiceEndpoint(ServiceMetadataBehavior. MexContractName, MetadataExchangeBindings. CreateMexTcpBinding(),String.Format( "net.tcp://{0} /MiServicio/wsdl", ep.IPEndpoint));
    135. 135. 5. Servicios de Computación Para acceso interno  Notificar a otras instancias/roles 1. ChannelFactory<IServicio> factory = new ChannelFactory<IServicio>(bind); 2. var instancias = RoleEnvironment. CurrentRoleInstance.Role.Instances 3. var rol = RoleEnvironment.Roles["nombre"]; 4. var iep = instancia.InstanceEndpoints ["MiEndpointInternoDeServicio"]; 5. var url = new EndpointAddress(string.Format ("net.tcp://{0}/MiServicio", iep.IPEndpoint)); 6. IServicio proxy = factory.CreateChannel(url);
    136. 136. 5. Servicios de Computación ¿Por qué Worker roles?  Liberar de carga el front-end  Habilitar multi-hilos  Trabajar por estados/fases
    137. 137. 5. Servicios de Computación Ejercicio: Consumir el Worker rol  Desde un cliente de Servicio Web WCF  Configurar el endpoint externo  Crear el método de servicio  Lanzar el método de servicio desde Run
    138. 138. 6. Windows Azure AppFrabric Service Bus Control de Acceso
    139. 139. 6. Windows Azure AppFrabric Service Bus Control de Acceso Caching Integración
    140. 140. 6. Windows Azure AppFrabric ¿Qué es AppFabric?  Plataforma para aplicaciones híbridas  ¿?  Librería de servicios de apoyo  Heredera de BizTalk  Funciones básicas  Securizar servicios (ACS)  Comunicar servicios (ESB)
    141. 141. 6. Windows Azure AppFrabric ¿Cómo uso AppFabric? 1. Crear una solución .Net Services  http://portal.ex.azure.microsoft.com/ 2. Instalar el SDK de .Net Services  http://www.microsoft.com/download/en/details.aspx?id=27421 3. Instalar herramientas opcionales  Azure Management Tools  http://wapmmc.codeplex.com/  Azure Services Training Kit  http://www.microsoft.com/download/en/details.aspx?id=8396
    142. 142. 6. Windows Azure AppFrabric Enterprise Service Bus (ESB)  Permite conectar cualquier servicio de un SOA  Ya que los WS se crearon para desacoplar  Pero se utilizan acoplados…  Proporciona:  Un registro de servicios (UDDI)  Una jerarquía de namespaces  Infraestructura para la seguridad  Un bus de mensajes  Posibilidades de orquestación
    143. 143. 6. Windows Azure AppFrabric ¿Me lo repites?  Antes  Después
    144. 144. 6. Windows Azure AppFrabric ESB  .Net Service Bus
    145. 145. 6. Windows Azure AppFrabric ¿Cómo se implementa en Azure?  WCF sb://  Protocolo  Namespace  Microsoft.ServiceBus.dll
    146. 146. 6. Windows Azure AppFrabric Ejemplo Worker Rol public override void Run(){ // Iniciar el servicio ServiceBusEnvironment.SystemConnectivity.Mode = ConnectivityMode.AutoDetect; using (host = new ServiceHost(typeof(MiServicio))){ this.host.Open(); while (true){ Thread.Sleep(30000); } } }
    147. 147. 6. Windows Azure AppFrabric Ejemplo consumidor Microsoft.ServiceBus.ServiceBusEnvironment. SystemConnectivity.Mode = Microsoft.ServiceBus. ConnectivityMode.AutoDetect; // Clase Proxy del servicio public class Proxy : ClientBase<IServicio>, IServicio, IDisposable{ public void Metodo(int parametro){ this.Channel.Metodo(parametro); } }
    148. 148. 6. Windows Azure AppFrabric ¿Así de simple?  No, Hay que configurar App.config <client> <endpoint address="sb://[MI-NAMESPACE].servicebus. windows.net/ MiServicio" binding="miBinding" contract=" IServicio" behaviorConfiguration="miBehavior"/> </client> <behavior><endpointBehaviors> <behavior name="miBehavior">…</behavior> </endpointBehaviors></behavior>
    149. 149. 6. Windows Azure AppFrabric ¿Así de simple?  No, Hay que configurar App.config <extensions> <bindingExtensions> <add name="miBinding" type="Microsoft.ServiceBus. Configuration.NetTcpRelayBindingCollectionElement, Microsoft. ServiceBus, Version=1.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> </bindingExtensions> </extensions>
    150. 150. 6. Windows Azure AppFrabric Control de Acceso
    151. 151. 6. Windows Azure AppFrabric Access Control Services (ACS)  Identidad, autenticación y autorización  Es fácil de mantener en una red local  Pero difícil en cloud  Tokens de seguridad
    152. 152. 6. Windows Azure AppFrabric Configurar el servicio para seguridad host.Authorization.ServiceAuthorizationManager = new ServiceAuthorizationManager(); Obtener los tokens de la cabecera  Clase WebOperationContext  HttpRequestHeader.Authorization WebOperationContext.Current.IncomingRequest. Headers[HttpRequestHeader.Authorization];
    153. 153. 6. Windows Azure AppFrabricclass MiControlDeAcceso : ServiceAuthorizationManager{ override bool CheckAccessCore(OperationContext ctx){ string authorizationHeader = WebOperationContext . Current.IncomingRequest.Headers[HttpRequestHeader . Authorization]; if (!Valido) Denegar(); return true; } private static void Denegar(){ WebOperationContext.Current.OutgoingResponse . StatusCode = HttpStatusCode.Unauthorized; }}
    154. 154. 7. Otros Servicios de Azure CDN Azure Diagnostics SQL Azure
    155. 155. 7. Otros Servicios de Azure Servicios de contenido (CDN) Windows Azure Virtual Machine Role Windows Azure Virtual Network Windows Azure Marketplace
    156. 156. 7. Otros Servicios de Azure Content Delivery Network (CDN)  Servidores distribuidos por todo el mundo  Servidores frontera  Servidores origen  Permiten distribuir contenidos
    157. 157. 7. Otros Servicios de Azure Habilitable desde el portal
    158. 158. 7. Otros Servicios de Azure API Diagnostics  Permite monitorizar el servidor  Método OnStart() del rol  Eventos del RoleEnvironment  Ejemplo: DiagnosticMonitor.Start("Microsoft.Windows Azure.Plugins.Diagnostics.ConnectionString"); RoleEnvironment.Changing += [Delegado];
    159. 159. 7. Otros Servicios de Azure SQL Azure
    160. 160. 7. Otros Servicios de Azure Otras clases relevantes  DiagnosticMonitorConfiguration  Infraestructura de logs  Desvío de logs  WindowsEventLog  PerformanceCounterConfiguration  Monitor de rendimiento  Tasa de muestreo configurable  Buffer de datos configurable  Ejemplo: @"Processor(_Total)% Processor Time"
    161. 161. 7. Otros Servicios de Azure SQL Azure  Configurable desde el portal  Y desde el manager de SQL Server  Cuenta de admin asociada a un centro de datos  [servidor].database.windows.net
    162. 162. 7. Otros Servicios de Azure SQL Azure  Accesible desde ADO.Net  Cuenta de usuario  [usuario]@[servidor]  Dispone de un firewall para restringir el acceso
    163. 163. 7. Otros Servicios de Azure Algunas limitaciones:  No se admite el comando USE  No admite Transact-SQL  Sólo se puede conectar a través de 1433  No admite transacciones distribuidas  Todas las tablas tienen un índice  No se admiten consultas enormes (>30min)
    164. 164. Muchas Gracias Óliver Centeno

    ×