SlideShare una empresa de Scribd logo
Windows Azure

 Óliver Centeno
Contenidos

1.   Introducción a Windows Azure
2.   Instalación
3.   Primeros pasos con Azure
4.   Servicios de Almacenamiento
5.   Servicios de Computación
6.   Windows Azure AppFrabric
7.   Otros Servicios de Azure
1.   Introducción a Windows
              Azure
           Cloud Computing
            Windows Azure
              SQL Azure
               Features
                Roles
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
      Alquiler de servicios
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
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 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
1.      Introducción a Windows Azure

   Proveedores de Servicios (SaaS)
      Aplicaciones   especializadas

      Aplicaciones   empresariales

      Mercados   verticales

      Mercados   locales
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
1.      Introducción a Windows Azure

   Cloud Computing
      ArquitecturaSOA
      Independiente de infraestructura
      Basada en consumo de recursos


      Implementaciones:
        GoogleApp Engine
        Amazon Web Services
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)
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
       de aplicaciones
        Front-end
        Back-end
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 recursos
      Windows Server 2008 + IIS 7
      Web role
      Worker role
      Agente
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 ataques
      Tolerancia a fallos
      Soporte para mantenimiento
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
1.         Introducción a Windows Azure

   Fabric
        Granja de servidores
        Manejable como un todo


   Fabric Controller
        Manejador/Kernel
        Instala roles
        Replica el estado
        Matrix
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
1.      Introducción a Windows Azure

   Servicios de Almacenamiento
      Cuenta de almacenamiento
      Contenedores de ficheros
      BLOB
      Colas de mensajes
      Tablas
1.      Introducción a Windows Azure

   Y, ¿todo esto es Azure?
      Incluso más
      Windows Azure Platform
      SQL Azure
      AppFabric
      CDN
      Virtual Machine
     …
1.      Introducción a Windows Azure

   ¿Qué es SQL Azure?
      Soporte  para BD relacionales
      Similar a SQL Server Express Edition
      Accesible mediante protocolo TDS
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
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 Aplicaciones
2.                Instalación

    Descarga del SDK y suscripción
    Plantillas para Visual Studio
    Despliegue de Aplicaciones
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…
2.                     Instalación
   Windows Azure SDK

        http://www.windowsazure.com/es-es/develop/net/


   Versiones
       Última 1.6
       Cada versión cambia cosas… 
2.              Instalación

   Windows Azure SDK
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
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
2.                  Instalación

   Proyectos de roles
     ASP.Net
     ASP.Net MVC
     WCF Service
     Worker
     FastCGI
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
2.   Instalación
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
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)
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
     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
3.       Primeros pasos con Azure

   Módulos de gestión en la nube
     Portal
     Diagnostics
     Analytics   y herramientas de facturación
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
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 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
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" />
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
3.         Primeros pasos con Azure
   Empaquetar y desplegar
       cspack permite crear un script de despliegue
       Botón derecho en el proyecto > Publicar
3.   Primeros pasos con Azure
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
3.   Primeros pasos con Azure
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
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
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?
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()
         };
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
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
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 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)
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
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
    }
4.     Servicios de
     Almacenamiento
       Windows Azure Storage
           BLOB Storage
         Servicio de Tablas
     Procesamiento de Mensajes
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
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?
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)
4. Servicios de Almacenamiento

   Windows Azure Storage
     API basado en REST
     Acceso a través de HTTP
     Construido sobre infraestructura de Web Rol
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
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
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
4. Servicios de Almacenamiento

1.   Crear un Contenedor (directorio)
        No se admiten mayúsculas

     CloudStorageAccount cuenta;
     var cliente = cuenta.CreateCloudBlobClient();
     CloudBlobContainer contenedor = cliente.
         GetContainerReference([nombre]);
     contenedor.CreateIfNotExist();
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==
4. Servicios de Almacenamiento
2.   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");
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");
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
4. Servicios de Almacenamiento

3.   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);
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
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))
4. Servicios de Almacenamiento
4.   Propiedades de los BLOB
        blob.FetchAttributes();
        blob.Properties y blob.Metadata
            BlobType
            ContentType
            LastModifiedTimeUtc
            Length
            ContentEncoding
            ContentLanguage
            ContentMD5
            …
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
4. Servicios de Almacenamiento

5.   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]");
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
4. Servicios de Almacenamiento




        Table Service
4. Servicios de Almacenamiento
 Tablas simples
 Acceso privado
 Almacenar entidades
 No relacional
     No FK
     No Joins
     No índices
   Se puede particionar
4. Servicios de Almacenamiento
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
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; }
    }
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"
       }
    };
4. Servicios de Almacenamiento

   Columnas de una tabla
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
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
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
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
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
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");}
    }
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();
4. Servicios de Almacenamiento

   Ejercicio: Tabla de colores
     Crear una entidad Colores
     Crear un contexto
     Crear una página para hacer CRUD
4. Servicios de Almacenamiento

   Acceso mediante StorageClient
     ClaseCloudTableClient
     Métodos
       GET:      ListTables()
       DELETE:   DeleteTable("nombre")
       POST:     CreateTableIfNotexist("nombre")
4. Servicios de Almacenamiento

   Ejercicio: Manipular tablas
     Mostrar las tablas de la cuenta
     Crear tablas nuevas
     Añadir entidades mediante el Contexto
     Eliminar tablas
4. Servicios de Almacenamiento




        Queue Service
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
4. Servicios de Almacenamiento

   Uso de la cola
     REST  y StorageClient … de nuevo
     Clase CloudQueueClient
          ListQueues();
          CreateIfNotExist();
          Delete();
          Clear();
          SetMetadata();
          GetQueueReference();
4. Servicios de Almacenamiento

   Uso de la cola
     Clase   CloudQueueMessage

       cola.AddMessage();
       cola.PeekMessage();
       cola.GetMessage();
       cola.DeleteMessage();
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
5.   Servicios de Computación

        Escalado de Aplicaciones con Azure
         Creación de Servicios para Azure
       Comunicación de Servicios sobre Azure
5.      Servicios de Computación

    Compute
    Creación de Aplicaciones con Azure
    Creación de Servicios para Azure
    Múltiples Websites sobre Azure
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?
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
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);
5.       Servicios de Computación

   Por suerte en Azure puedo indicar el
    número de instancias que se ejecutan
    para cada rol
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
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
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
5.       Servicios de Computación

   Tipos de persistencia de datos
     Session
     ViewState
     Cookies
     Application
     Base   de Datos
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
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
5.   Servicios de Computación



         Worker roles
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
5.       Servicios de Computación

   Ejercicio: Crear un Worker Rol
     Que  permita realizar operaciones aritméticas
     Sumar
     Restar
     Multiplicar
     Dividir
     Raíz Cuadrada
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
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);
       }
    }
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 puerto
            Input para externas
            Internal para internas
       Escribir el código de servicio
            Clase ServiceHost
            Clase NetTcpBinding
            RoleEnvironment.CurrentRoleInstance.InstanceEndpoints
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); }
 }
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));
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);
5.       Servicios de Computación

   ¿Por qué Worker roles?
     Liberar de carga el front-end
     Habilitar multi-hilos
     Trabajar por estados/fases
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
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
       ¿?
       Librería
               de servicios de apoyo
       Heredera de BizTalk

     Funciones     básicas
       Securizar
                servicios (ACS)
       Comunicar servicios (ESB)
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
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
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
     Namespace




     Microsoft.ServiceBus.dll
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);
         }
      }
    }
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);
       }
    }
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>
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>
6.   Windows Azure AppFrabric



        Control de Acceso
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
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];
6.       Windows Azure AppFrabric
class 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;
    }
}
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 Azure Virtual Network
    Windows Azure Marketplace
7.        Otros Servicios de Azure

   Content Delivery Network (CDN)
     Servidores   distribuidos por todo el mundo
       Servidores frontera
       Servidores origen




     Permiten   distribuir contenidos
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
     Eventos del RoleEnvironment


     Ejemplo:
       DiagnosticMonitor.Start("Microsoft.Windows
         Azure.Plugins.Diagnostics.ConnectionString");
       RoleEnvironment.Changing += [Delegado];
7.       Otros Servicios de Azure

   SQL Azure
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"
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
7.           Otros Servicios de Azure
   SQL Azure
       Accesible desde ADO.Net
       Cuenta de usuario
       [usuario]@[servidor]
       Dispone de un firewall para restringir el acceso
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)
Muchas Gracias

  Óliver Centeno

Más contenido relacionado

La actualidad más candente

Cloud + Docker - La arquitectura MELI usando AWS en la nube.
Cloud + Docker - La arquitectura MELI usando AWS en la nube.Cloud + Docker - La arquitectura MELI usando AWS en la nube.
Cloud + Docker - La arquitectura MELI usando AWS en la nube.
melidevelopers
 
Guia de migración Azure
Guia de migración AzureGuia de migración Azure
Guia de migración Azure
Cade Soluciones
 
Administracion y Despliegue a traves PowerShell Azure
Administracion y Despliegue a traves PowerShell Azure Administracion y Despliegue a traves PowerShell Azure
Administracion y Despliegue a traves PowerShell Azure
Ivan Martinez
 
Webinar: Mejores prácticas de Seguridad de la Información
Webinar: Mejores prácticas de Seguridad de la InformaciónWebinar: Mejores prácticas de Seguridad de la Información
Webinar: Mejores prácticas de Seguridad de la Información
Amazon Web Services LATAM
 
24HOP Espanol - Funcionalidades de Nube Hibrida en SQL Server 2014
24HOP Espanol - Funcionalidades de Nube Hibrida en SQL Server 201424HOP Espanol - Funcionalidades de Nube Hibrida en SQL Server 2014
24HOP Espanol - Funcionalidades de Nube Hibrida en SQL Server 2014
Guillermo Caicedo
 
Docker ECS en AWS
Docker ECS en AWS Docker ECS en AWS
Docker ECS en AWS
Amazon Web Services LATAM
 
24 HOP edición Español - Funcionalidades de nube híbrida en sql server 2014 -...
24 HOP edición Español - Funcionalidades de nube híbrida en sql server 2014 -...24 HOP edición Español - Funcionalidades de nube híbrida en sql server 2014 -...
24 HOP edición Español - Funcionalidades de nube híbrida en sql server 2014 -...
SpanishPASSVC
 
Microsoft azure
Microsoft azureMicrosoft azure
Microsoft azure
jose torres
 
AWS Summit Lima 2015: VIrtual Private Cloud y opciones de conectividad con Le...
AWS Summit Lima 2015: VIrtual Private Cloud y opciones de conectividad con Le...AWS Summit Lima 2015: VIrtual Private Cloud y opciones de conectividad con Le...
AWS Summit Lima 2015: VIrtual Private Cloud y opciones de conectividad con Le...
Amazon Web Services LATAM
 
Comenzando a usar el Continuous Delivery
 Comenzando a usar el Continuous Delivery Comenzando a usar el Continuous Delivery
Comenzando a usar el Continuous Delivery
Amazon Web Services LATAM
 
SSRS modelo IaaS en la Nube | SolidQ Summit 2014
SSRS modelo IaaS en la Nube | SolidQ Summit 2014SSRS modelo IaaS en la Nube | SolidQ Summit 2014
SSRS modelo IaaS en la Nube | SolidQ Summit 2014
SolidQ
 
Desarrollando aplicaciones iOS con datos en tiempo real con Firebase y Swift
Desarrollando aplicaciones iOS con datos en tiempo real con Firebase y SwiftDesarrollando aplicaciones iOS con datos en tiempo real con Firebase y Swift
Desarrollando aplicaciones iOS con datos en tiempo real con Firebase y Swift
Software Guru
 
Comenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWSComenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWS
Amazon Web Services LATAM
 
24 HOP edición Español - Sql server 2014 como crear soluciones de bases de da...
24 HOP edición Español - Sql server 2014 como crear soluciones de bases de da...24 HOP edición Español - Sql server 2014 como crear soluciones de bases de da...
24 HOP edición Español - Sql server 2014 como crear soluciones de bases de da...
SpanishPASSVC
 
DevOps en AWS
DevOps en AWS DevOps en AWS
Webinar: Ask the Architect - Servicios de Storage de AWS
Webinar: Ask the Architect - Servicios de Storage de AWSWebinar: Ask the Architect - Servicios de Storage de AWS
Webinar: Ask the Architect - Servicios de Storage de AWS
Amazon Web Services LATAM
 
DevOps en AWS
DevOps en AWSDevOps en AWS
EC2: Cómputo en la nube a profundidad
EC2: Cómputo en la nube a profundidad EC2: Cómputo en la nube a profundidad
EC2: Cómputo en la nube a profundidad
Amazon Web Services LATAM
 
Webinar: Comenzando con los servicios de AWS
Webinar: Comenzando con los servicios de AWSWebinar: Comenzando con los servicios de AWS
Webinar: Comenzando con los servicios de AWS
Amazon Web Services LATAM
 
Webinar –Conectar servidores dedicados con Servidores Cloud
Webinar –Conectar servidores dedicados con Servidores CloudWebinar –Conectar servidores dedicados con Servidores Cloud
Webinar –Conectar servidores dedicados con Servidores Cloud
Arsys
 

La actualidad más candente (20)

Cloud + Docker - La arquitectura MELI usando AWS en la nube.
Cloud + Docker - La arquitectura MELI usando AWS en la nube.Cloud + Docker - La arquitectura MELI usando AWS en la nube.
Cloud + Docker - La arquitectura MELI usando AWS en la nube.
 
Guia de migración Azure
Guia de migración AzureGuia de migración Azure
Guia de migración Azure
 
Administracion y Despliegue a traves PowerShell Azure
Administracion y Despliegue a traves PowerShell Azure Administracion y Despliegue a traves PowerShell Azure
Administracion y Despliegue a traves PowerShell Azure
 
Webinar: Mejores prácticas de Seguridad de la Información
Webinar: Mejores prácticas de Seguridad de la InformaciónWebinar: Mejores prácticas de Seguridad de la Información
Webinar: Mejores prácticas de Seguridad de la Información
 
24HOP Espanol - Funcionalidades de Nube Hibrida en SQL Server 2014
24HOP Espanol - Funcionalidades de Nube Hibrida en SQL Server 201424HOP Espanol - Funcionalidades de Nube Hibrida en SQL Server 2014
24HOP Espanol - Funcionalidades de Nube Hibrida en SQL Server 2014
 
Docker ECS en AWS
Docker ECS en AWS Docker ECS en AWS
Docker ECS en AWS
 
24 HOP edición Español - Funcionalidades de nube híbrida en sql server 2014 -...
24 HOP edición Español - Funcionalidades de nube híbrida en sql server 2014 -...24 HOP edición Español - Funcionalidades de nube híbrida en sql server 2014 -...
24 HOP edición Español - Funcionalidades de nube híbrida en sql server 2014 -...
 
Microsoft azure
Microsoft azureMicrosoft azure
Microsoft azure
 
AWS Summit Lima 2015: VIrtual Private Cloud y opciones de conectividad con Le...
AWS Summit Lima 2015: VIrtual Private Cloud y opciones de conectividad con Le...AWS Summit Lima 2015: VIrtual Private Cloud y opciones de conectividad con Le...
AWS Summit Lima 2015: VIrtual Private Cloud y opciones de conectividad con Le...
 
Comenzando a usar el Continuous Delivery
 Comenzando a usar el Continuous Delivery Comenzando a usar el Continuous Delivery
Comenzando a usar el Continuous Delivery
 
SSRS modelo IaaS en la Nube | SolidQ Summit 2014
SSRS modelo IaaS en la Nube | SolidQ Summit 2014SSRS modelo IaaS en la Nube | SolidQ Summit 2014
SSRS modelo IaaS en la Nube | SolidQ Summit 2014
 
Desarrollando aplicaciones iOS con datos en tiempo real con Firebase y Swift
Desarrollando aplicaciones iOS con datos en tiempo real con Firebase y SwiftDesarrollando aplicaciones iOS con datos en tiempo real con Firebase y Swift
Desarrollando aplicaciones iOS con datos en tiempo real con Firebase y Swift
 
Comenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWSComenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWS
 
24 HOP edición Español - Sql server 2014 como crear soluciones de bases de da...
24 HOP edición Español - Sql server 2014 como crear soluciones de bases de da...24 HOP edición Español - Sql server 2014 como crear soluciones de bases de da...
24 HOP edición Español - Sql server 2014 como crear soluciones de bases de da...
 
DevOps en AWS
DevOps en AWS DevOps en AWS
DevOps en AWS
 
Webinar: Ask the Architect - Servicios de Storage de AWS
Webinar: Ask the Architect - Servicios de Storage de AWSWebinar: Ask the Architect - Servicios de Storage de AWS
Webinar: Ask the Architect - Servicios de Storage de AWS
 
DevOps en AWS
DevOps en AWSDevOps en AWS
DevOps en AWS
 
EC2: Cómputo en la nube a profundidad
EC2: Cómputo en la nube a profundidad EC2: Cómputo en la nube a profundidad
EC2: Cómputo en la nube a profundidad
 
Webinar: Comenzando con los servicios de AWS
Webinar: Comenzando con los servicios de AWSWebinar: Comenzando con los servicios de AWS
Webinar: Comenzando con los servicios de AWS
 
Webinar –Conectar servidores dedicados con Servidores Cloud
Webinar –Conectar servidores dedicados con Servidores CloudWebinar –Conectar servidores dedicados con Servidores Cloud
Webinar –Conectar servidores dedicados con Servidores Cloud
 

Destacado

Windows azure connect copy
Windows azure connect   copyWindows azure connect   copy
Windows azure connect copy
Ibon Landa
 
Azure workshop
Azure workshopAzure workshop
Azure workshop
Wei-Ting Kuo
 
WorkShop SQL Azure
WorkShop SQL AzureWorkShop SQL Azure
WorkShop SQL Azure
John Bulla
 
Guía para el aprendizaje de herramientas
Guía para el aprendizaje de herramientasGuía para el aprendizaje de herramientas
Guía para el aprendizaje de herramientas
fernandoeugenio12
 
XML Básico
XML BásicoXML Básico
XML Básico
Oliver Centeno
 
Java en Tiempo Real
Java en Tiempo RealJava en Tiempo Real
Java en Tiempo Real
Oliver Centeno
 
Joomla!
Joomla!Joomla!
My SQL
My SQLMy SQL
Perl (practical extraction and report language)
Perl (practical extraction and report language)Perl (practical extraction and report language)
Perl (practical extraction and report language)
Oliver Centeno
 
Microsoft Test Manager 2010
Microsoft Test Manager 2010Microsoft Test Manager 2010
Microsoft Test Manager 2010
Oliver Centeno
 
ATL
ATLATL
Sun Java System Web Server 6.1
Sun Java System Web Server 6.1Sun Java System Web Server 6.1
Sun Java System Web Server 6.1
Oliver Centeno
 
Spring framework 3
Spring framework 3Spring framework 3
Spring framework 3
Oliver Centeno
 
Liferay
LiferayLiferay
Herramientas Java
Herramientas JavaHerramientas Java
Herramientas Java
Oliver Centeno
 
Red Hat Enterprise Linux 5
Red Hat Enterprise Linux 5Red Hat Enterprise Linux 5
Red Hat Enterprise Linux 5
Oliver Centeno
 
Azure WorkshopPart1 Intro
Azure WorkshopPart1   IntroAzure WorkshopPart1   Intro
Azure WorkshopPart1 Intro
Oliver Michalski
 
Web 2.0
Web 2.0Web 2.0
TFS 10
TFS 10TFS 10
Métrica v3 y RUP
Métrica v3 y RUPMétrica v3 y RUP
Métrica v3 y RUP
Oliver Centeno
 

Destacado (20)

Windows azure connect copy
Windows azure connect   copyWindows azure connect   copy
Windows azure connect copy
 
Azure workshop
Azure workshopAzure workshop
Azure workshop
 
WorkShop SQL Azure
WorkShop SQL AzureWorkShop SQL Azure
WorkShop SQL Azure
 
Guía para el aprendizaje de herramientas
Guía para el aprendizaje de herramientasGuía para el aprendizaje de herramientas
Guía para el aprendizaje de herramientas
 
XML Básico
XML BásicoXML Básico
XML Básico
 
Java en Tiempo Real
Java en Tiempo RealJava en Tiempo Real
Java en Tiempo Real
 
Joomla!
Joomla!Joomla!
Joomla!
 
My SQL
My SQLMy SQL
My SQL
 
Perl (practical extraction and report language)
Perl (practical extraction and report language)Perl (practical extraction and report language)
Perl (practical extraction and report language)
 
Microsoft Test Manager 2010
Microsoft Test Manager 2010Microsoft Test Manager 2010
Microsoft Test Manager 2010
 
ATL
ATLATL
ATL
 
Sun Java System Web Server 6.1
Sun Java System Web Server 6.1Sun Java System Web Server 6.1
Sun Java System Web Server 6.1
 
Spring framework 3
Spring framework 3Spring framework 3
Spring framework 3
 
Liferay
LiferayLiferay
Liferay
 
Herramientas Java
Herramientas JavaHerramientas Java
Herramientas Java
 
Red Hat Enterprise Linux 5
Red Hat Enterprise Linux 5Red Hat Enterprise Linux 5
Red Hat Enterprise Linux 5
 
Azure WorkshopPart1 Intro
Azure WorkshopPart1   IntroAzure WorkshopPart1   Intro
Azure WorkshopPart1 Intro
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
TFS 10
TFS 10TFS 10
TFS 10
 
Métrica v3 y RUP
Métrica v3 y RUPMétrica v3 y RUP
Métrica v3 y RUP
 

Similar a Azure

.Net Conf UY 2017: Un paseo por Azure Service Fabric
.Net Conf UY 2017: Un paseo por Azure Service Fabric.Net Conf UY 2017: Un paseo por Azure Service Fabric
.Net Conf UY 2017: Un paseo por Azure Service Fabric
Guillermo Javier Bellmann
 
Migrando Una Aplicación OnPremise existente a Windows Azure
Migrando Una Aplicación OnPremise existente a Windows AzureMigrando Una Aplicación OnPremise existente a Windows Azure
Migrando Una Aplicación OnPremise existente a Windows Azure
OSSE
 
[Evento] Microsoft Azure | Azure Compute: una mirada en 360°
[Evento] Microsoft Azure | Azure Compute: una mirada en 360°[Evento] Microsoft Azure | Azure Compute: una mirada en 360°
[Evento] Microsoft Azure | Azure Compute: una mirada en 360°
Pablo Ariel Di Loreto
 
Introducción a Azure App Service - MUG Buenos Aires
Introducción a Azure App Service - MUG Buenos AiresIntroducción a Azure App Service - MUG Buenos Aires
Introducción a Azure App Service - MUG Buenos Aires
Guillermo Javier Bellmann
 
Azure Relay (Hybrid connections) & .NET Core ARM
Azure Relay (Hybrid connections) & .NET Core ARMAzure Relay (Hybrid connections) & .NET Core ARM
Azure Relay (Hybrid connections) & .NET Core ARM
Manuel Rodrigo Cabello Malagón
 
Ponencia W2K8
Ponencia W2K8Ponencia W2K8
Ponencia W2K8
luis.salazar90
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
Software Guru
 
Fast tracktothecloud nestorrequesens-itequia-20110331
Fast tracktothecloud nestorrequesens-itequia-20110331Fast tracktothecloud nestorrequesens-itequia-20110331
Fast tracktothecloud nestorrequesens-itequia-20110331
MICProductivity
 
Migration Day - Migración de Microsoft a AWS
Migration Day - Migración de Microsoft a AWSMigration Day - Migración de Microsoft a AWS
Migration Day - Migración de Microsoft a AWS
Amazon Web Services LATAM
 
Microsoft azure presentacion
Microsoft azure presentacionMicrosoft azure presentacion
Microsoft azure presentacion
Juan Paucar
 
Windows Server.pdf
Windows Server.pdfWindows Server.pdf
Windows Server.pdf
clasescompu
 
Cloud Computing: Windows Azure
Cloud Computing: Windows AzureCloud Computing: Windows Azure
Cloud Computing: Windows Azure
Diego López-de-Ipiña González-de-Artaza
 
Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CL v...
Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CL v...Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CL v...
Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CL v...
Guillermo Javier Bellmann
 
Computación en Windows Azure Platform 26 01-2011
Computación en Windows Azure Platform 26 01-2011Computación en Windows Azure Platform 26 01-2011
Computación en Windows Azure Platform 26 01-2011
Gisela Torres
 
Azure functions
Azure functionsAzure functions
Azure functions
Germán Küber
 
Windows server 2008
Windows server 2008Windows server 2008
Windows server 2008
Alejandro Dominguez Santamaria
 
PRESENTACION Windows server 2008
PRESENTACION  Windows server 2008PRESENTACION  Windows server 2008
PRESENTACION Windows server 2008
Alejandro Dominguez Santamaria
 
Windows server 2008
Windows server 2008Windows server 2008
Windows server 2008
Alejandro Dominguez Santamaria
 
Why Azure is so MEAN?
Why Azure is so MEAN?Why Azure is so MEAN?
Why Azure is so MEAN?
Adrián Fernández
 
Presentacion cloud computer
Presentacion cloud computerPresentacion cloud computer
Presentacion cloud computer
Cielo Gris
 

Similar a Azure (20)

.Net Conf UY 2017: Un paseo por Azure Service Fabric
.Net Conf UY 2017: Un paseo por Azure Service Fabric.Net Conf UY 2017: Un paseo por Azure Service Fabric
.Net Conf UY 2017: Un paseo por Azure Service Fabric
 
Migrando Una Aplicación OnPremise existente a Windows Azure
Migrando Una Aplicación OnPremise existente a Windows AzureMigrando Una Aplicación OnPremise existente a Windows Azure
Migrando Una Aplicación OnPremise existente a Windows Azure
 
[Evento] Microsoft Azure | Azure Compute: una mirada en 360°
[Evento] Microsoft Azure | Azure Compute: una mirada en 360°[Evento] Microsoft Azure | Azure Compute: una mirada en 360°
[Evento] Microsoft Azure | Azure Compute: una mirada en 360°
 
Introducción a Azure App Service - MUG Buenos Aires
Introducción a Azure App Service - MUG Buenos AiresIntroducción a Azure App Service - MUG Buenos Aires
Introducción a Azure App Service - MUG Buenos Aires
 
Azure Relay (Hybrid connections) & .NET Core ARM
Azure Relay (Hybrid connections) & .NET Core ARMAzure Relay (Hybrid connections) & .NET Core ARM
Azure Relay (Hybrid connections) & .NET Core ARM
 
Ponencia W2K8
Ponencia W2K8Ponencia W2K8
Ponencia W2K8
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
 
Fast tracktothecloud nestorrequesens-itequia-20110331
Fast tracktothecloud nestorrequesens-itequia-20110331Fast tracktothecloud nestorrequesens-itequia-20110331
Fast tracktothecloud nestorrequesens-itequia-20110331
 
Migration Day - Migración de Microsoft a AWS
Migration Day - Migración de Microsoft a AWSMigration Day - Migración de Microsoft a AWS
Migration Day - Migración de Microsoft a AWS
 
Microsoft azure presentacion
Microsoft azure presentacionMicrosoft azure presentacion
Microsoft azure presentacion
 
Windows Server.pdf
Windows Server.pdfWindows Server.pdf
Windows Server.pdf
 
Cloud Computing: Windows Azure
Cloud Computing: Windows AzureCloud Computing: Windows Azure
Cloud Computing: Windows Azure
 
Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CL v...
Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CL v...Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CL v...
Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CL v...
 
Computación en Windows Azure Platform 26 01-2011
Computación en Windows Azure Platform 26 01-2011Computación en Windows Azure Platform 26 01-2011
Computación en Windows Azure Platform 26 01-2011
 
Azure functions
Azure functionsAzure functions
Azure functions
 
Windows server 2008
Windows server 2008Windows server 2008
Windows server 2008
 
PRESENTACION Windows server 2008
PRESENTACION  Windows server 2008PRESENTACION  Windows server 2008
PRESENTACION Windows server 2008
 
Windows server 2008
Windows server 2008Windows server 2008
Windows server 2008
 
Why Azure is so MEAN?
Why Azure is so MEAN?Why Azure is so MEAN?
Why Azure is so MEAN?
 
Presentacion cloud computer
Presentacion cloud computerPresentacion cloud computer
Presentacion cloud computer
 

Más de Oliver Centeno

Metodologías ágiles
Metodologías ágilesMetodologías ágiles
Metodologías ágiles
Oliver Centeno
 
Web services y java
Web services y javaWeb services y java
Web services y java
Oliver Centeno
 
JavaFX 2
JavaFX 2JavaFX 2
JavaFX 2
Oliver Centeno
 
SOA y Web Services
SOA y Web ServicesSOA y Web Services
SOA y Web Services
Oliver Centeno
 
Enterprise Library 5
Enterprise Library 5Enterprise Library 5
Enterprise Library 5
Oliver Centeno
 
MSS 2010
MSS 2010MSS 2010
MSS 2010
Oliver Centeno
 
PMP, Project Management Professional
PMP, Project Management ProfessionalPMP, Project Management Professional
PMP, Project Management Professional
Oliver Centeno
 
Hibernate
HibernateHibernate
Hibernate
Oliver Centeno
 
OSGi
OSGiOSGi

Más de Oliver Centeno (9)

Metodologías ágiles
Metodologías ágilesMetodologías ágiles
Metodologías ágiles
 
Web services y java
Web services y javaWeb services y java
Web services y java
 
JavaFX 2
JavaFX 2JavaFX 2
JavaFX 2
 
SOA y Web Services
SOA y Web ServicesSOA y Web Services
SOA y Web Services
 
Enterprise Library 5
Enterprise Library 5Enterprise Library 5
Enterprise Library 5
 
MSS 2010
MSS 2010MSS 2010
MSS 2010
 
PMP, Project Management Professional
PMP, Project Management ProfessionalPMP, Project Management Professional
PMP, Project Management Professional
 
Hibernate
HibernateHibernate
Hibernate
 
OSGi
OSGiOSGi
OSGi
 

Último

Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
YashiraPaye
 
mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
MiguelAtencio10
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
julio05042006
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
YaniEscobar2
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
mantenimientocarbra6
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
larapalaciosmonzon28
 
IA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticulturaIA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticultura
Miguel Rebollo
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
gisellearanguren1
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
larapalaciosmonzon28
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
NicandroMartinez2
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
Festibity
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Festibity
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
al050121024
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
AMADO SALVADOR
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
larapalaciosmonzon28
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
LilibethEstupian
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Festibity
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
cbtechchihuahua
 
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
bendezuperezjimena
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
AMADO SALVADOR
 

Último (20)

Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
 
mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
 
IA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticulturaIA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticultura
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
 
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
 

Azure

  • 2. Contenidos 1. Introducción a Windows Azure 2. Instalación 3. Primeros pasos con Azure 4. Servicios de Almacenamiento 5. Servicios de Computación 6. Windows Azure AppFrabric 7. Otros Servicios de Azure
  • 3. 1. Introducción a Windows Azure Cloud Computing Windows Azure SQL Azure Features Roles
  • 4. 1. Introducción a Windows Azure  Windows Azure  SQL Azure  Cloud Computing  Features  Roles
  • 5. 1. Introducción a Windows Azure  Cloud Computing  Grandes aplicaciones  Granjas de servidores  Alquiler de servicios
  • 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. 1. Introducción a Windows Azure  ¿Por qué usar Cloud?
  • 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. 1. Introducción a Windows Azure  Proveedores de Servicios (SaaS)  Aplicaciones especializadas  Aplicaciones empresariales  Mercados verticales  Mercados locales
  • 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. 1. Introducción a Windows Azure  Cloud Computing  ArquitecturaSOA  Independiente de infraestructura  Basada en consumo de recursos  Implementaciones:  GoogleApp Engine  Amazon Web Services
  • 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. 1. Introducción a Windows Azure  Cloud Computing as a Service
  • 14. 1. Introducción a Windows Azure  Windows Azure
  • 15. 1. Introducción a Windows Azure  Windows Azure  Sistema Operativo  En Nube  Ejecución escalable de aplicaciones  Front-end  Back-end
  • 16. 1. Introducción a Windows Azure  Tipos de aplicaciones  Aplicaciones Web  Aplicaciones de cómputo
  • 17. 1. Introducción a Windows Azure  Ejecutable en servidores paralelos
  • 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. 1. Introducción a Windows Azure  ¿Por qué virtualizar?  Optimizar el uso del servidor
  • 20. 1. Introducción a Windows Azure  Tamaños de máquina virtual  Configurable para cada rol
  • 21. 1. Introducción a Windows Azure  Otros componentes de la infraestructura
  • 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. 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. 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. 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. 1. Introducción a Windows Azure  Servicios de Almacenamiento  Cuenta de almacenamiento  Contenedores de ficheros  BLOB  Colas de mensajes  Tablas
  • 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. 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. 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. 1. Introducción a Windows Azure  Y, ¿dónde están mis datos?  Centros de datos  Dublín  Amsterdam
  • 31. 2. Instalación Descarga del SDK y suscripción Plantillas para Visual Studio Despliegue de Aplicaciones
  • 32. 2. Instalación  Descarga del SDK y suscripción  Plantillas para Visual Studio  Despliegue de Aplicaciones
  • 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. 2. Instalación  Windows Azure SDK http://www.windowsazure.com/es-es/develop/net/  Versiones  Última 1.6  Cada versión cambia cosas… 
  • 35. 2. Instalación  Windows Azure SDK
  • 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. 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. 2. Instalación  Proyectos de roles  ASP.Net  ASP.Net MVC  WCF Service  Worker  FastCGI
  • 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. 2. Instalación
  • 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. 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. 3. Primeros pasos con Azure Creación de una aplicación Azure Migración de una aplicación existente
  • 44. 3. Primeros pasos con Azure  Creación de una aplicación Azure  Conversión de una aplicación existente
  • 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. 3. Primeros pasos con Azure  Módulos de gestión en la nube  Portal  Diagnostics  Analytics y herramientas de facturación
  • 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. 3. Primeros pasos con Azure
  • 49. 3. Primeros pasos con Azure  Por eso  Por ahora…  Vamos a trabajar con el emulador
  • 50. 3. Primeros pasos con Azure  Tipos de desarrollo para Azure
  • 51. 3. Primeros pasos con Azure  Creación de un servicio
  • 52. 3. Primeros pasos con Azure  Creación de un servicio  Elegir el/los roles (tipos de proyecto)
  • 53. 3. Primeros pasos con Azure  Creación de un servicio  Librerías de Azure
  • 54. 3. Primeros pasos con Azure  Creación de un servicio  Listo para ejecutar en local
  • 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. 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. 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. 3. Primeros pasos con Azure  Empaquetar y desplegar  cspack permite crear un script de despliegue  Botón derecho en el proyecto > Publicar
  • 59. 3. Primeros pasos con Azure
  • 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. 3. Primeros pasos con Azure
  • 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. 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. 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. 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. 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. 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. 3. Primeros pasos con Azure  Migración a Azure
  • 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. 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. 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. 4. Servicios de Almacenamiento Windows Azure Storage BLOB Storage Servicio de Tablas Procesamiento de Mensajes
  • 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. 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. 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. 4. Servicios de Almacenamiento  Windows Azure Storage  API basado en REST  Acceso a través de HTTP  Construido sobre infraestructura de Web Rol
  • 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. 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. 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. 4. Servicios de Almacenamiento 1. Crear un Contenedor (directorio)  No se admiten mayúsculas CloudStorageAccount cuenta; var cliente = cuenta.CreateCloudBlobClient(); CloudBlobContainer contenedor = cliente. GetContainerReference([nombre]); contenedor.CreateIfNotExist();
  • 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. 4. Servicios de Almacenamiento 2. 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. 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. 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. 4. Servicios de Almacenamiento 3. 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. 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. 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. 4. Servicios de Almacenamiento 4. Propiedades de los BLOB  blob.FetchAttributes();  blob.Properties y blob.Metadata  BlobType  ContentType  LastModifiedTimeUtc  Length  ContentEncoding  ContentLanguage  ContentMD5  …
  • 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. 4. Servicios de Almacenamiento 5. 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. 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. 4. Servicios de Almacenamiento Table Service
  • 93. 4. Servicios de Almacenamiento  Tablas simples  Acceso privado  Almacenar entidades  No relacional  No FK  No Joins  No índices  Se puede particionar
  • 94. 4. Servicios de Almacenamiento
  • 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. 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. 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. 4. Servicios de Almacenamiento  Columnas de una tabla
  • 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. 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. 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. 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. 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. 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. 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. 4. Servicios de Almacenamiento  Ejercicio: Tabla de colores  Crear una entidad Colores  Crear un contexto  Crear una página para hacer CRUD
  • 107. 4. Servicios de Almacenamiento  Acceso mediante StorageClient  ClaseCloudTableClient  Métodos  GET: ListTables()  DELETE: DeleteTable("nombre")  POST: CreateTableIfNotexist("nombre")
  • 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. 4. Servicios de Almacenamiento Queue Service
  • 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. 4. Servicios de Almacenamiento  Uso de la cola  REST y StorageClient … de nuevo  Clase CloudQueueClient  ListQueues();  CreateIfNotExist();  Delete();  Clear();  SetMetadata();  GetQueueReference();
  • 112. 4. Servicios de Almacenamiento  Uso de la cola  Clase CloudQueueMessage  cola.AddMessage();  cola.PeekMessage();  cola.GetMessage();  cola.DeleteMessage();
  • 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. 5. Servicios de Computación Escalado de Aplicaciones con Azure Creación de Servicios para Azure Comunicación de Servicios sobre Azure
  • 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. 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. 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. 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. 5. Servicios de Computación  Por suerte en Azure puedo indicar el número de instancias que se ejecutan para cada rol
  • 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. 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. 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. 5. Servicios de Computación  Tipos de persistencia de datos  Session  ViewState  Cookies  Application  Base de Datos
  • 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. 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. 5. Servicios de Computación Worker roles
  • 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. 5. Servicios de Computación  Ejercicio: Crear un Worker Rol  Que permita realizar operaciones aritméticas  Sumar  Restar  Multiplicar  Dividir  Raíz Cuadrada
  • 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. 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. 5. Servicios de Computación  Reacción a peticiones  Externas: WCF WebService  Internas
  • 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. 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. 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. 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. 5. Servicios de Computación  ¿Por qué Worker roles?  Liberar de carga el front-end  Habilitar multi-hilos  Trabajar por estados/fases
  • 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. 6. Windows Azure AppFrabric Service Bus Control de Acceso
  • 139. 6. Windows Azure AppFrabric  Service Bus  Control de Acceso  Caching  Integración
  • 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. 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. 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. 6. Windows Azure AppFrabric  ¿Me lo repites?  Antes  Después
  • 144. 6. Windows Azure AppFrabric  ESB  .Net Service Bus
  • 145. 6. Windows Azure AppFrabric  ¿Cómo se implementa en Azure?  WCF sb://  Protocolo  Namespace  Microsoft.ServiceBus.dll
  • 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. 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. 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. 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. 6. Windows Azure AppFrabric Control de Acceso
  • 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. 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. 6. Windows Azure AppFrabric class 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. 7. Otros Servicios de Azure CDN Azure Diagnostics SQL Azure
  • 155. 7. Otros Servicios de Azure  Servicios de contenido (CDN)  Windows Azure Virtual Machine Role  Windows Azure Virtual Network  Windows Azure Marketplace
  • 156. 7. Otros Servicios de Azure  Content Delivery Network (CDN)  Servidores distribuidos por todo el mundo  Servidores frontera  Servidores origen  Permiten distribuir contenidos
  • 157. 7. Otros Servicios de Azure  Habilitable desde el portal
  • 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. 7. Otros Servicios de Azure  SQL Azure
  • 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. 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. 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. 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. Muchas Gracias Óliver Centeno

Notas del editor

  1. 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