Monday, January 27, 2025

Week #7: Almacenamiento



Azure Blob Storage

  • "Blob" en este contexto se refiere a: Binary Large Object.
  • Almacenamiento de objetos seguro y escalable de forma masiva para cargas de trabajo nativas de nube, archivos, lagos de datos, informática de alto rendimiento y aprendizaje automático.
  • Es posible publicar un sitio web estático en blob storage. Muy barato.

Características

  • Escalable, duradero y disponible: Excelente durabilidad por diseño con replicación geográfica y flexibilidad para modificar la escala según sea necesario.
  • Protegido: Autenticación con el id. de Microsoft Entra (anteriormente Azure Active Directory) y control de acceso basado en roles (RBAC), más cifrado en reposo y protección contra amenazas avanzada.
  • Optimizado para lagos de datos: El espacio de nombres de archivos y el acceso multiprotocolo permiten ejecutar cargas de trabajo de análisis para obtener conclusiones a partir de los datos.
  • Administración de datos completa: Administración del ciclo de vida de un extremo a otro, control de acceso basado en directivas y almacenamiento inmutable (WORM).

Casos de uso 

  • Imágenes: Almacena diferentes tamaños y formatos en un único almacenamiento de imágenes.
  • Streaming: Transmite audio y video directamente desde tu almacenamiento blob.
  • Archivos de registro (Log Files): Escribe en archivos de registro sin importar el tamaño y la frecuencia
  • Almacén de datos: Almacena cualquier tipo de datos a gran escala, como para archivar, hacer copias de seguridad, restaurar y recuperar en caso de desastres.
  • Todos los tipos: Almacena cualquier tipo de archivo y accede de manera distribuida a través del almacenamiento en la nube de Azure.

Tipos de Blob 

  • Block (Bloque): Almacena texto y datos binarios de hasta 4.7TB. Está compuesto por bloques de datos gestionados de forma individual.
  • Append (Anexar): Bloques de blobs que están optimizados para operaciones de anexado. Funciona bien para registros donde los datos se anexan constantemente.
  • Page (Página): Almacena archivos de hasta 8TB. Cualquier parte del archivo podría ser accedida en cualquier momento, por ejemplo, un disco duro virtual.

Tipos de niveles de acceso para Blob Storage

  • Hot (Caliente): Archivos accedidos frecuentemente Tiempos de acceso más bajos y costos de acceso más altos.
  • Cool (Frío): Costos de almacenamiento más bajos y tiempos de acceso más altos. Los datos permanecen aquí almenos 30 días.
  • Archive (Archivo): Los costos más bajos y los tiempos de acceso más altos. 

Azure Disk Storage

Almacenamiento en bloque de alta durabilidad y gran rendimiento para Azure Virtual Machines.

  • Almacenamiento en disco rentable: Utiliza discos compartidos para ejecutar aplicaciones en clúster o de alta disponibilidad de forma rentable en la nube.
  • Resistencia sin precedentes: Consigue una durabilidad de nivel empresarial constante con una tasa de error anual del 0 %
  • Escalabilidad de conexión directa: Atiende la demanda sin que afecte al rendimiento con el almacenamiento en disco Ultra 
  • Seguridad incorporada: Protege tus datos con cifrado automático


Disco gestionado

  • Azure Administra: No tienes que preocuparte por las copias de seguridad y el tiempo de actividad
  • Tamaño y Rendimiento: Azure garantiza el tamaño y el rendimiento según tu acuerdo con ellos
  • Actualización: Es fácil aumentar el tamaño de tu disco y cambiar su tipo

Tipos de disco en Disk Storage

  • HDD: Disco duro giratorio. Bajo costo y adecuado para copias de seguridad.
  • SSD Premium: Super rápido y de alto rendimiento. Latencia muy baja. Úsalo para cargas de trabajo críticas.
  • SSD Estándar: Estándar para producción. Mayor confiabilidad, escalabilidad y menor latencia en comparación con HDD.
  • Ultra Disk: Para las cargas de trabajo más exigentes y con alta intensidad de datos. Discos de hasta 64TB.


Azure File Storage

Recursos compartidos de archivos en la nube de grado empresarial sencillos, seguros y sin servidor.

  • Recursos compartidos de archivos sin servidor: Sistema de archivos distribuido creado desde cero para ofrecer alta disponibilidad y durabilidad, sin máquinas virtuales IaaS ni archivos NAS ocultos.
  • Diseñado para entornos híbridos con File Sync: Transforma tus servidores Windows Server en memorias caché de tus recursos compartidos en la nube sin renunciar al rendimiento de los entornos locales.
  • TCO optimizado: Se usan diferentes niveles para adaptar los recursos compartidos a tus requisitos de rendimiento y ofrecer precios competitivos
  • Compatibilidad con varios protocolos: Proporciona compatibilidad con varios protocolos, lo que permitirá almacenar datos de orígenes diferentes

Problemas en las instalaciones

  • Restricciones: Solo tienes una cantidad limitada de almacenamiento
  • Copias de seguridad: Tiempo y recursos gastados en mantener copias de seguridad
  • Seguridad: Puede ser difícil mantener todos los datos seguros en todo momento. A menudo se necesita la ayuda de especialistas.
  • Compartir archivos: Puede ser difícil compartir archivos entre equipos y organizaciones

Beneficios del uso de File Storage

  • Compartir: Comparte el acceso al almacenamiento de archivos de Azure entre máquinas y proporciona acceso a tu infraestructura local (on-premises).
  • Gestionado: No tienes que preocuparte por el hardware o el sistema operativo.
  • Resiliente: Las interrupciones de red y de energía no afectarán tu almacenamiento.


Escenarios

  • Híbrido: Complementa o reemplaza tu solución de almacenamiento de archivos local (on-premises) existente.
  • Lift and Shift (Levanta y Mueve): Traslada tus almacenamientos de archivos existentes y los servicios relacionados a Azure.


Azure Archive Storage

  • Solución rentable para almacenamiento a largo plazo de datos raramente accedidos
  • Permite movimiento entre niveles de almacenamiento
  • Herramientas integradas para fácil clasificación, búsqueda y administración de datos
  • Cifrado, autenticación y cumplimiento de estándares y regulaciones de la industria

Características

  • Requerimiento: Las políticas, legislación y recuperación pueden ser requisitos para archivar datos.
  • Precio más bajo: El nivel de archivo es el precio más bajo para el almacenamiento en Azure. Unos pocos dólares al mes pueden conseguirte terabytes de espacio.
  • Características: Duradero, cifrado y estable. Perfectamente adecuado para datos que se acceden con poca frecuencia.
  • Liberar Almacenamiento: Con el almacenamiento Archive económico, puedes liberar tu almacenamiento local (on-premises).
  • Seguro: Totalmente seguro para permitir cualquier dato personal, como registros financieros, datos médicos y más.
  • Blob: El almacenamiento Archive es almacenamiento blob, por lo que las mismas herramientas funcionarán para ambos.


Redundancia de almacenamiento

  • Si una copia falla/es inaccesible, los datos aún están disponibles
  • Azure Storage siempre crea múltiples copias de tus datos:
    • Automático
    • Mínimo de tres copias
    • Invisible para el usuario final
  • Múltiples opciones de redundancia
  • Diferentes alcances de ubicación
    • Zona única, múltiples zonas, múltiples regiones
  • Mayor disponibilidad = mayor costo

Opciones de redundancia de almacenamiento

  • Región única
    • Almacenamiento con redundancia local (LRS)
    • Almacenamiento con redundancia de zona (ZRS)
  • Múltiples regiones
    • Almacenamiento con redundancia geográfica (GRS)
    • Almacenamiento con redundancia de zona geográfica (GZRS)
  • Todas las opciones incluyen:
    • Tres copias en la región primaria
    • Tres copias en la región secundaria (para opciones de múltiples regiones)


LRS



ZRS



GRS



GZRS



Almacenamiento con redundancia local (LRS)

  • Crea automáticamente tres copias en la región primaria para garantizar su durabilidad
  • LRS suele ser la opción de almacenamiento más económica
  • Diseñado para proteger tus datos contra fallos en el hardware de almacenamiento, como discos o nodos defectuosos
  • Todo el almacenamiento y replicación se realiza dentro de una única región, sin distribución geográfica
  • Al ser local, no ofrece protección contra interrupciones de zona o regionales

Almacenamiento con redundancia de zona (ZRS)

  • A diferencia del LRS, el ZRS replica datos en diferentes zonas de disponibilidad dentro de una misma región, aumentando la durabilidad y disponibilidad
  • Al igual que el LRS, el ZRS mantiene tres copias de los datos, pero están distribuidas en diferentes zonas
  • Diseñado para salvaguardar los datos incluso si una zona completa enfrenta problemas, lo que lo hace más resistente a interrupciones que el LRS
  • ZRS tiene un costo más alto que el LRS debido a la replicación entre zonas
  • ZRS no protege contra eventos catastróficos que puedan afectar a una región completa


Almacenamiento con redundancia geográfica (GRS)

  • GRS replica datos en diferentes centros de datos en regiones geográficamente separadas, protegiendo contra desastres regionales
  • Mantiene tres copias en la región primaria y tres copias adicionales en una región secundaria
  • En caso de un fallo o desastre en la región primaria, los datos pueden ser accedidos desde la región secundaria, garantizando una alta disponibilidad
  • GRS tiene un costo superior a LRS y ZRS
  • GRS es ideal para organizaciones y aplicaciones que necesitan el más alto nivel de protección y disponibilidad para sus datos.

Almacenamiento con redundancia de zona geográfica (GZRS)

  • GZRS combina las características del almacenamiento de redundancia de zona (ZRS) y del almacenamiento con redundancia geográfica (GRS), ofreciendo protección tanto a nivel de zona como a nivel geográfico
  • Tres copias de los datos distribuidas en diferentes zonas de disponibilidad en la región primaria (ZRS)
  • Tres copias adicionales en una región secundaria (LRS)
  • Diseñado para garantizar la disponibilidad de datos incluso si una zona completa o incluso una región entera enfrenta problemas
  • GZRS tiende a ser más costoso que las opciones ZRS y GRS por separado.

Resumen de las opciones de redundancia de almacenamiento

  • Azure Storage replica automáticamente los datos para garantizar la redundancia
    • Tres copias en una única región
    • Seis copias distribuidas en dos regiones emparejadas
      • Tres en cada región
  • Las opciones de redundancia varían según la disponibilidad y el coste
    • Zona única
    • Varias zonas en una única región
    • A través de regiones


Movimiento de datos

  • Existen diferentes soluciones que se pueden seleccionar según:
    • Frecuencia de transferencia (ocasional/continua)
    • Tamaño de los datos
    • Ancho de banda de la red
  • Para el examen AZ-900, enfócate en transferencias pequeñas y ocasionales utilizando las siguientes herramientas:
    • AzCopy
    • Azure Storage Explorer
    • Azure File Sync

AzCopy

  • Herramienta de línea de comandos utilizada para copiar datos hacia y desde servicios de almacenamiento de Azure.
  • Es especialmente útil para:
    • Transferir blobs y Azure Files
    • Programar transferencias de datos
azcopy cp "blockstellart.mp4" "https://mystorageaccount.blob.core.windows.net/my-container/blockstellart.mp4?SAS-token"

Azure Storage Explorer

  • Interfaz gráfica de usuario (GUI) que permite a los usuarios administrar fácilmente los datos de Azure Storage desde Windows, macOS y Linux.
  • Permitiendo a los usuarios: Explorar, cargar, descargar, eliminar y renombrar datos almacenados en Azure Storage


Azure File Sync

  • Sincroniza Azure Files con servidores de archivos locales
  • Rendimiento de servidor de archivos local + disponibilidad en la nube
  • Casos de uso:
    • Respalda el servidor de archivos local
    • Sincroniza archivos entre varias ubicaciones locales
    • Los usuarios remotos acceden a Azure Files
    • Transición a usar exclusivamente Azure Files como servidor de archivos


Opciones de migración adicionales

Azure Data Box

  • ESCENARIO: Transferencia de GRAN cantidad de datos y/o ancho de banda limitado
  • Gran = Demasiado para transferir a través de Internet
  • En relación con el ancho de banda de red disponible
  • Transferencia de datos sin conexión hacia/desde Azure
  • Copia datos a un dispositivo físico de almacenamiento de datos (Data Box)
    • Encriptado
    • Robusto
  • Envío Data Box hacia/desde Azure
    • Hacia Azure: los datos de Data Box se transfieren a una cuenta de almacenamiento
    • Desde Azure: Data Box se entrega en una ubicación local para transferencia en el sitio


  • Casos de uso de Azure Data Box
    • Migración inicial masiva de datos
    • Recuperación de desastres: Restaurar respaldo de Azure en un centro de datos local
    • Requisitos de seguridad: Datos sensibles que no pueden enviarse por Internet

Azure Migrate

  • Analiza tus cargas de trabajo locales y proporciona recomendaciones sobre los requisitos para la migración a Azure.
  • Identifica y evalúa automáticamente las aplicaciones y servidores locales para facilitar una migración más fluida.
  • Proporciona una estimación detallada de los costos que implicaría mover y operar tus aplicaciones y datos en Azure.
  • Identifica dependencias entre aplicaciones y servidores, facilitando una planificación de migración más precisa.
  • Permite probar las migraciones antes de realizarlas para asegurarse de que funcionen correctamente.


Almacenamiento Premium

  • Opciones de rendimiento Premium para requisitos de baja latencia
  • Principales aspectos a considerar:
    • Tipos de almacenamiento disponibles para cada opción de rendimiento
    • Opciones de redundancia
      • Sacrificar cierto nivel de redundancia a cambio de un rendimiento superior

Opciones de rendimiento para cuentas de almacenamiento

  • Standard:
    • Standard General-Purpose v2:
      • Opción por defecto
      • Soporta todos los tipos de almacenamiento
      • Disponible con todas las opciones de redundancia
  • Premium:
    • Premium Block Blobs (Blobs en bloques):
      • Blobs de bloque con características de rendimiento superior
    • Premium File Shares (Recursos compartidos de archivos):
      • Comparticiones de archivos con rendimiento optimizado para operaciones de archivo más rápidas y eficientes
    • Premium Page Blobs (Blobs en páginas):
      • Blobs de página con un rendimiento más elevado, adecuados para cargas de trabajo intensivas


Premium Block Blobs (Blobs en bloque)

  • Tipo de almacenamiento: Block blobs
  • Ideal para cargas de trabajo de almacenamiento blob de baja latencia
    • Aplicaciones de Inteligencia Artificial (AI), Internet de las Cosas (IoT)
  • Redundancia
    • Solo soporta redundancia local (LRS) y de zona (ZRS)
  • Estos Blobs Premium son útiles para aplicaciones que necesitan un acceso rápido y un tiempo de respuesta bajo con respecto al almacenamiento de datos, siendo ideales para tareas críticas y operaciones intensivas en datos

Premium File Shares (Recursos compartidos de archivos)

  • Tipo de almacenamiento: Azure Files
  • Ideal para aplicaciones empresariales de alto rendimiento (servidores de archivos)
  • Protocolos
    • Soporta SMB y NFS
    • Compatibles con Windows/Linux
  • Redundancia
    • Solo soporta redundancia local (LRS) y de zona (ZRS)

Premium Page Blobs (Blobs de páginas)

  • Tipo de almacenamiento: Page blobs
  • Usado principalmente para discos virtuales no gestionados
  • Redundancia
    • Solo soporta redundancia local (LRS) y de zona (ZRS)
  • Los Page Blobs son especialmente útiles para escenarios que requieren I/O aleatorio, como bases de datos y discos de máquinas virtuales

Resumen de opciones de almacenamiento Premium


Resumen - Almacenamiento

  • Blob
    • Almacenamiento general para cualquier tipo de datos que desees guardar
    • Tipos de Blobs: Block (bloque), Append (anexar) y Page (página)
    • Un Blob se encuentra dentro de un contenedor, y este a su vez se encuentra dentro de una cuenta de almacenamiento
    • Ofrece diferentes niveles de acceso / diferentes precios: Hot (caliente), Cool (frío) o Archive (archivo)
  • Disco
    • Almacenamiento en bloque de alta durabilidad y gran rendimiento para Azure Virtual Machines
    • Es un servicio de almacenamiento gestionado
    • Puedes elegir entre HDD, SSD, Premium SSD o Ultra Disk
  • File
    • Opción para reducir la dependencia de sistemas de almacenamiento de archivos locales (on-prem)
    • Almacenamiento altamente disponible y resiliente
    • Facilita el compartir archivos
  • Archive
    • Método extremadamente económico para almacenar grandes cantidades de datos
    • También es un tipo de almacenamiento Blob
  • Redundancia de almacenamiento
    • Se realizan múltiples copias de los datos de Azure Storage
    • Se guardan al menos tres copias
    • Opciones de zonas únicas o múltiples
    • Opciones de regiones únicas o múltiples
  • Movimiento de datos
    • AzCopy: Herramienta de línea de comandos
    • Storage Explorer: Interfaz gráfica de usuario (GUI)
    • Azure File Sync: Sincronización de Azure Files con servidores de archivos en las instalaciones (on-premises)
  • Opciones Adicionales de Migración
    • Azure Data Box: Transferencia de datos offline
    • Azure Migrate: Migración de recursos en las instalaciones, incluidos servidores, bases de datos y aplicaciones
  • Opciones de rendimiento Premium
    • Opciones de almacenamiento respaldadas por SSD
    • Opciones limitadas de redundancia
    • Tipos de almacenamiento Premium

Sunday, January 26, 2025

OAuth2, OpenID Connect (OIDC) y JWT

Marco Teórico

OAuth2, OpenID Connect (OIDC), y JWT se combinan comúnmente porque juntos ofrecen una solución integral, segura y eficiente para autenticación y autorización en aplicaciones modernas. La razón de esta cambinación es la siguiente: 

  • Completo: OAuth2 + OIDC cubren tanto autorización como autenticación.
  • Eficiente: JWT permite transportar tokens de manera rápida y sin depender de almacenamiento adicional en el servidor.
  • Compatible: Es ampliamente utilizado en aplicaciones web, móviles y APIs debido a su facilidad de integración.

Poniéndolo en contexto con el esquema de la Seguridad Informática:


En el control de riesgos definimos las acciones, estrategias y mecanismos implementados para mitigar, minimizar o eliminar los riesgos identificados durante el análisis de riesgos. En función de la clásica combinación de estos estándares y mecanismos de seguridad para identidad y acceso (OAuth2, OIDC y JWT) podemos decir lo siguiente: 

  • Servicios de seguridad:  Requisitos generales que se necesitan para proteger la información.
    • Autenticación: Verificar que un usuario sea quien dice ser.
    • Autorización: Controlar qué recursos y acciones están permitidos para un usuario autenticado.
    • Confidencialidad: Proteger la información transmitida.
    • Integridad: Asegurar que los datos no sean manipulados en el proceso.
  • Mecanismos de seguridad: Formas concretas de implementar esos requisitos en la práctica.
    • OAuth2: Cómo se implementa la autorización mediante flujos como el Authorization Code Flow para delegar el acceso a recursos de manera segura.
    • OpenID Connect (OIDC): Cómo se implementa la autenticación mediante una extensión de OAuth2 que utiliza el ID Token para identificar al usuario.
    • JWT (JSON Web Token): Cómo se representa y transporta la información de manera segura mediante un token firmado digitalmente que asegura integridad confidencialidad.

Implementación en .NET

Implementar OAuth2, OpenID Connect (OIDC) y JWT en un proyecto .NET implica integrar los conceptos de autenticación y autorización utilizando bibliotecas y configuraciones específicas. A continuación, vemos un ejemplo:

1. Configuración del Proveedor de Identidad

Primero necesitas un proveedor de identidad que soporte OAuth2 y OpenID Connect, como Azure AD, Auth0, Okta, Keycloak o Google.

Obtener Credenciales del Proveedor:
  • ID del Cliente (Client ID).
  • Secreto del Cliente (Client Secret).
  • URL de autorización y token (Authorization Endpoint, Token Endpoint).

2. Configuración del Proyecto en .NET

Usaremos ASP.NET Core para esta implementación.

a) Instalar paquetes necesarios:

dotnet add package Microsoft.AspNetCore.Authentication.JwtBearer
dotnet add package Microsoft.IdentityModel.Protocols.OpenIdConnect
dotnet add package Microsoft.AspNetCore.Authentication.OpenIdConnect


b) Configurar los servicios en Program.cs o Startup.cs:
En el archivo Program.cs, añade los servicios para autenticación y validación de JWT.

builder.Services.AddAuthentication(options =>
{
    options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(options =>
{
    options.Authority = "https://<your-provider-domain>"; // URL del proveedor OIDC (p.ej., Auth0, Azure AD)
    options.Audience = "<your-audience>"; // Identificador del API configurado en el proveedor
    options.TokenValidationParameters = new TokenValidationParameters
    {
        ValidateIssuer = true,
        ValidateAudience = true,
        ValidateLifetime = true,
        ValidateIssuerSigningKey = true
    };
});


c) Habilitar autenticación en el pipeline de la aplicación:

Agrega el middleware de autenticación en el pipeline:

var app = builder.Build();

app.UseAuthentication();
app.UseAuthorization();

app.MapControllers();
app.Run();


3. Proteger Endpoints en la API

Utiliza el atributo [Authorize] en los controladores o acciones específicas que requieren autenticación.

[ApiController]
[Route("api/[controller]")]
[Authorize] // Protege este endpoint
public class SecureController : ControllerBase
{
    [HttpGet]
    public IActionResult GetSecureData()
    {
        return Ok("This is a secure endpoint");
    }
}

4. Flujo de Autenticación y Autorización

  • El cliente (como una SPA o aplicación móvil) redirige al usuario al endpoint de autorización del proveedor.
  • Una vez autenticado, el proveedor devuelve:
    • Un ID Token (si usas OIDC) en formato JWT con información sobre el usuario.
    • Un Access Token (OAuth2) en formato JWT para acceder a los recursos de la API.
  • El cliente incluye el Access Token en las peticiones a la API:
Authorization: Bearer <access_token>
  • La API valida el token utilizando el middleware configurado.

5. Validar el Token JWT

El middleware de ASP.NET Core se encarga de la validación automáticamente. Sin embargo, si necesitas validarlo manualmente, puedes usar la biblioteca System.IdentityModel.Tokens.Jwt:

var handler = new JwtSecurityTokenHandler();
var token = handler.ReadJwtToken("<access_token>");
var claims = token.Claims; // Obtener claims del token


6. Flujo Adicional: OpenID Connect para Login

Si estás desarrollando una aplicación que necesita autenticación de usuario, puedes usar OpenIdConnect:

builder.Services.AddAuthentication(options =>
{
    options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddCookie()
.AddOpenIdConnect(options =>
{
    options.Authority = "https://<your-provider-domain>";
    options.ClientId = "<your-client-id>";
    options.ClientSecret = "<your-client-secret>";
    options.ResponseType = OpenIdConnectResponseType.Code;
    options.SaveTokens = true;
    options.GetClaimsFromUserInfoEndpoint = true;
});

Esto permite iniciar sesión mediante el proveedor configurado.


Conclusión

La combinación de OAuth2, OIDC y JWT es muy popular porque equilibra seguridad, escalabilidad y compatibilidad con aplicaciones modernas. Sin embargo, dependiendo del caso de uso, puedes optar por tecnologías más simples (como API Keys o sesiones) o más avanzadas (como autenticación biométrica o blockchain).
  • Token-Based Authentication con Simple Tokens (Sin JWT): Utiliza tokens simples (generalmente UUIDs o cadenas aleatorias) en lugar de JWT. Estos tokens se almacenan en una base de datos en el servidor para validarlos. Ejemplo: Sesiones tradicionales usando cookies con un token de sesión generado.
  • API Key Authentication: Las aplicaciones utilizan claves API para autenticar solicitudes. Estas claves son secretas y se pasan en cada solicitud (por ejemplo, en la cabecera HTTP). Ejemplo: Uso de claves API en servicios como Google Maps o servicios REST.
  • LDAP (Lightweight Directory Access Protocol): Utilizado principalmente en entornos empresariales para autenticar usuarios a través de un directorio centralizado. Ejemplo: Aplicaciones internas en organizaciones que usan Active Directory.
  • SAML (Security Assertion Markup Language): Un estándar basado en XML utilizado para autenticación y autorización en aplicaciones empresariales. Ejemplo: Integraciones con servicios empresariales como Salesforce o aplicaciones on-premise.
  • Session-Based Authentication: Una técnica tradicional donde el servidor genera una sesión para el usuario después de autenticarse, y el cliente almacena un identificador de sesión (generalmente en una cookie). Ejemplo: Aplicaciones web que no utilizan APIs modernas.
  • Biometric Authentication: Utiliza características biométricas como huellas digitales, reconocimiento facial o escaneo de retina para autenticar al usuario. Ejemplo: Aplicaciones móviles con autenticación por huella digital (ej.: Face ID, Touch ID).
  • Passwordless Authentication: Elimina el uso de contraseñas y utiliza métodos alternativos como enlaces mágicos enviados por correo electrónico, códigos de verificación, o autenticación con dispositivos confiables. Ejemplo: Aplicaciones que envían un enlace para iniciar sesión (como Slack o Notion).
  • Blockchain-Based Authentication: Utiliza tecnologías de blockchain para verificar identidades descentralizadas y gestionar autorizaciones. Ejemplo: Identidades descentralizadas con proyectos como uPort o Sovrin.

¡Gracias por llegar hasta aquí!

Monday, January 20, 2025

Week #6: Redes

Azure Virtual Network

  • Azure Virtual Network proporciona una red privada aislada en el Cloud y altamente configurable para ejecutar recursos y servicios de Azure de manera segura.
  • Permite la creación y gestión de subredes dentro de la red virtual para organizar y segmentar recursos de manera efectiva.
  • Utiliza filtros de red y servicios de seguridad avanzados para proteger los recursos y datos dentro de la red virtual contra amenazas y ataques.
  • Permite la asignación y gestión de bloques de direcciones IP privadas, ofreciendo flexibilidad para diseñar y implementar arquitecturas de red según las necesidades del negocio.
Examen de certificación:
¿Cuál de las siguientes opciones de Azure permite segmentar y aislar recursos de red en la nube?
  • Azure Traffic Manager
  • Azure Virtual Network (VNet)
  • Azure CDN
  • Azure Blob Storage
Respuesta Correcta: Azure Virtual Network (VNet)

Subredes

  • Las subredes te permiten particionar tu red dentro de tu Azure Virtual Network
    • Una subred pública es una subred accesible desde Internet
    • Una subred privada es una subred a la que no se puede acceder desde Internet
  • Cada subred debe tener un intervalo de direcciones único, especificado en formato CIDR, en el espacio de direcciones de la red virtual
    • Este intervalo de direcciones no puede superponerse con otras subredes de la red virtual.

VNet Peering (Emparejamiento)

  • Conectar dos VNet, de forma privada, utilizando la red de Azure
  • Ofrece una conexión directa y rápida entre redes, sin necesidad de atravesar la red pública de Internet (comportamiento como si estuvieran en la misma red)
  • No deben tener un CIDR (rango de direcciones IP) superpuesto
  • La conexión VNet Peering no es transitiva (debe establecerse para cada VNet que necesite comunicarse entre sí).


Espacio de direcciones

  • Los espacios de direcciones (Address Spaces) son rangos de direcciones IP asignados a las redes virtuales ysubredes.
  • Rango de IPs:
    • Conjunto de direcciones IP disponibles para asignar a los recursos.
    • Ejemplo: 10.0.0.0/16 proporciona direcciones desde 10.0.0.1 hasta 10.0.255.254
    • Indica que los primeros 16 bits de la dirección IP están reservados para identificar la red.
    • Con /16, tienes 2^(32-16) direcciones disponibles, o 65,536 direcciones en total.
  • Subredes:
    • Subdivide el espacio de direcciones en segmentos más pequeños
    • Ejemplo: Subred dentro de 10.0.0.0/16 podría ser 10.0.1.0/24.
  • Asignación automática:
    • Azure asigna automáticamente las direcciones IP a los recursos (VMs, balanceadores de carga, etc.)
  • Reservas:
    • Algunas direcciones IP están reservadas para uso de Azure y no están disponibles para asignación.
    • Ejemplo: 10.0.0.0 en una subred está reservada para la dirección de red.

Ejemplo práctico

  • Creas una red virtual con un espacio de direcciones de 10.1.0.0/16
    • Dispones de 65,536 direcciones IP (10.1.0.1 a 10.1.255.254)
  • Subdivides en subredes:
    • Subred A: 10.1.0.0/24 (256 IPs disponibles, e.g., 10.1.0.1 a 10.1.0.254)
    • Subred B: 10.1.1.0/24 (256 IPs disponibles, e.g., 10.1.1.1 a 10.1.1.254)
  • Cada subred puede alojar recursos con direcciones IP dentro de su rango asignado

Grupos de seguridad de red

  • Controla tráfico entrante/saliente a recursos Azure, mediante reglas para permitir/denegar tráfico.
  • Establece prioridades para evaluar reglas en orden específico.
  • Aplicable tanto a instancias individuales como a subredes completas
  • Las reglas de entrada y salida 
    • Se evalúan por prioridad mediante la combinación de origen, puerto de origen, destino, puerto de destino y protocolo para permitir o denegar el tráfico
    • La regla de seguridad no puede tener la misma prioridad y dirección que una regla existente

Configuración de reglas de seguridad

  • Origen: Define las direcciones IP de origen que están sujetas a esta regla.
  • Intervalo de puertos de origen: Especifica los puertos de origen para el tráfico entrante.
  • Destino: Identifica el recurso de destino.
  • Servicio: Especifica el protocolo de destino y el intervalo de puertos para esta regla.
  • Intervalos de puertos de destino: Especifica los puertos de salida para el tráfico saliente.
  • Protocolo: Protocolo de tráfico (TCP, UDP, ICMP, etc.).
  • Acción: Determina si el tráfico seleccionado será permitido o denegado.
  • Prioridad: Número que determina el orden en qué se aplican las reglas. Los números más bajos tienen prioridad más alta (100, 200, 300, etc.).
  • Nombre: Identificador único para la regla.
  • Descripción: (Opcional) Proporciona información adicional sobre la regla.



Azure Load Balancer

  • Los Load Balancers (equilibradores de carga) son servidores que reenvían el tráfico de Internet a múltiples servidores (máquinas virtuales) en sentido descendente.




  • Azure Load Balancer opera en el nivel 4 (transporte) del modelo OSI, distribuyendo tráfico de red entrante entre múltiples servidores para mejorar la disponibilidad y confiabilidad. Admite protocolos TCP y UDP
  • Es el único punto de contacto de los clientes.
  • Distribuye flujos de entrada que llegan al front-end del equilibrador de carga a las instancias del grupo de back-end.
    • Estos flujos están de acuerdo con las reglas de equilibrio de carga y los sondeos de estado configurados.
    • Las instancias del grupo de back-end pueden ser instancias de Azure Virtual Machines o de un conjunto de escalado de máquinas virtuales.
  • Asegura alta disponibilidad mediante la distribución equitativa del tráfico entre instancias de servidor saludables en múltiples zonas de disponibilidad.

¿Por qué utilizar un Load Balancer?

  • Equilibrio de carga del tráfico interno y externo a las máquinas virtuales.
  • Distribuir la carga entre múltiples instancias descendentes.
  • Exponer un único punto de acceso (DNS) en tu aplicación.
  • Manejar sin problemas los fallos de las instancias descendentes.
  • Realiza comprobaciones periódicas del estado de tus instancias.
  • Proporcionar terminación SSL (HTTPS) para tus sitios web.
  • Alta disponibilidad entre zonas.

Azure VPN Gateway

  • Azure VPN Gateway facilita conexiones seguras entre redes Azure y infraestructuras on-premises (locales).
  • Tiene soporte para:
    • VPN S2S (Site-To-Site): permite conectarte a las redes locales.
    • VPN P2S (Point-To-Site): permite conectarte a máquinas virtuales a través de las redes virtuales de Azure desde cualquier lugar.
  • Utiliza túneles VPN que establecen conexiones seguras, cifrando los datos que pasan a través de ellos.
  • Permite personalizar las configuraciones de VPN, adaptándose a diversos escenarios y requisitos de seguridad.
  • Ofrece diferentes tamaños y tipos de Gateway para ajustarse a necesidades de rendimiento y escalabilidad.

VPN S2S (Site-To-Site)

VPN Site-To-Site (S2S) establece una conexión segura y cifrada entre dos redes diferentes ubicadas en distintos lugares, permitiendo la comunicación fluida entre ellas como si estuvieran en una red local unificada.




VPN P2S (Point-To-Site)

VPN Point-To-Site (P2S) permite a usuarios individuales conectarse de manera segura a
una red remota, como una red corporativa, desde cualquier lugar, utilizando una
conexión cifrada y autenticada, lo cual es esencial para trabajadores remotos y móviles



Azure Application Gateway

  • Azure Application Gateway es un equilibrador de carga de tráfico web que permite administrar el tráfico a las aplicaciones web.
  • Azure Application Gateway distribuye el tráfico entrante entre múltiples servidores, optimizando el rendimiento y la fiabilidad de las aplicaciones.
  • Permite dirigir el tráfico a diferentes servidores o grupos de servidores basado en la URL de destino:
    • http://www.example.com/images
    • http://www.example.com/video
  • Facilita la configuración de reglas de redirección para asegurar que el tráfico se transmita de manera segura (Redirección HTTP a HTTPS).
  • Soporta zonas de disponibilidad de Azure para proporcionar resistencia ante fallos en una zona.


  • Soporta zonas de disponibilidad de Azure para proporcionar resistencia ante fallos en una zona.

  • Los chequeos de salud son cruciales para asegurar la distribución eficiente y confiable del tráfico hacia los servidores de back-end que están operativos y respondiendo adecuadamente.
  • Application Gateway envía solicitudes a intervalos regulares a los servidores de back-end.
  • Las respuestas de los servidores se evalúan para determinar su estado de salud.


Azure Content Delivery Network

  • Permite la entrega rápida y confiable de contenido con amplia cobertura global.
  • Mejora el rendimiento de lectura, el contenido se almacena en caché en edge location.
  • Mejora la experiencia de los usuarios.
  • Se integra sin problemas con otros servicios de Azure para una experiencia de usuario fluida y eficiente.
  • Protección DDoS y reglas personalizadas para la defensa contra amenazas.


https://learn.microsoft.com/es-es/azure/cdn/cdn-overview


Azure ExpressRoute

  • Azure ExpressRoute ofrece conexión privada y segura entre infraestructuras locales y Azure.
  • Proporciona alto rendimiento y baja latencia para aplicaciones críticas.
  • La conexión es directa y no transita por el internet público, ofreciendo más seguridad.
  • Facilita la integración segura entre entornos locales y la nube de Azure.
  • Ideal para transferir grandes volúmenes de datos de manera eficiente.


Resumen - Redes

  • Azure Networking: Conjunto de servicios y características para conectar y administrar recursos de red
  • Azure Virtual Network: Red privada definida por el usuario en Azure para conectar recursos de forma segura
  • Espacio de direcciones: Rango de direcciones IP asignadas dentro de una red
  • Grupo de seguridad de red: Filtro de tráfico de red que aplica reglas de seguridad a los recursos dentro de una red virtual
  • Azure Load Balancer: Distribuye el tráfico entrante entre servidores para mejorar la disponibilidad y fiabilidad
  • Azure VPN Gateway: Facilita conexiones seguras desde ubicaciones on-premises a la red virtual de Azure
  • Azure Application Gateway: Balanceador de carga que ofrece funcionalidades avanzadas para aplicaciones web
  • Azure Content Delivery Network: Servicio que distribuye contenido de manera eficiente a usuarios en diversas ubicaciones
  • Azure ExpressRoute: Conexión privada y segura entre redes Azure y on-premises, mejorando la confiabilidad y velocidad

Wednesday, January 15, 2025

Week #12: Preparación para el examen

Preparemos el examen de Microsoft Azure

  • Hemos cubierto todos los servicios por los que, según mi investigación y experiencia, la gente recibe preguntas en el examen.
  • Hay servicios que encontrarás en las preguntas que son distractores.
  • Hay más de 200 servicios de Azure, y no se puede abarcarlos todos.
  • Si te sientes abrumado por la cantidad de conocimientos que acabas de aprender, repásalos una vez más.

Recomendaciones para el día del examen

  • 🧘Trata de no estresarte... tienes suficiente tiempo para leer y entender cada pregunta
  • 🤔 Asegúrate de entender bien cada alternativa antes de tomar una decisión
  • 🔍 Busca palabras clave en las preguntas / respuestas 
  • 🗑 Reduce tus opciones descartando las respuestas claramente erróneas.
  • 🚩 Si no estás seguro, marca la pregunta para revisarla más tarde y avanza.
  • ⏳Si terminas antes de tiempo, utiliza los minutos restantes para revisar las preguntas marcadas y asegurarte de que no dejaste ninguna respuesta en blanco


Vista general del examen

Diferentes tipos de preguntas:

  • Sí / No
  • Arrastrar y soltar
  • Completar la frase
  • De opción múltiple: tiene una respuesta correcta y tres incorrectas
  • Respuesta múltiple: tiene dos o más respuestas correctas de entre cinco o más opciones
    • ATENCIÓN: el software del examen no te dice si has seleccionado el número correcto de respuestas (pero se menciona el número requerido).

Intenta siempre responder a la pregunta
  • Las preguntas no contestadas se consideran incorrectas
  • No hay penalización por una respuesta incorrecta
Si necesitas revisar una pregunta para más tarde puedes marcarla y revisarla posteriormente


Tipos de preguntas más comunes



¿Cómo funcionará el examen?

  • Tendrás que inscribirte en línea en https://learn.microsoft.com/es-es/credentials/
  • La tasa del examen depende del país donde residas (revisa la página del examen)
  • El día del examen necesitarás el documento de identidad
  • No podrás hablar, ni usar notas, slides, etc.
  • Se harán entre 40 - 60 preguntas en 45 minutos (¡Tendrás tiempo!)
  • Para aprobar necesitas una puntuación de al menos 700 sobre 1000
  • Al final puedes revisar opcionalmente todas las preguntas/respuestas
  • No sabrás qué respuestas eran correctas / incorrectas
  • Conocerás la puntuación de forma inmediata o unos días después (notificación por correo electrónico)
  • Si suspendes, puedes volver a hacer el examen 24 horas después (se vuelve a pagar)


Inscripción en el examen de certificación

https://learn.microsoft.com/en-us/credentials/certifications/azure-fundamentals/?practice-assessment-type=certification#certification-take-the-exam





AZ-900 Exam Questions






Monday, January 13, 2025

Week #5: Computación

Azure Virtual Machines (VM)

  • Azure Virtual Machines (VM) es una de las ofertas más populares de Azure
  • VM = Virtual Machine = Infraestructura como servicio (IaaS)
  • En un centro de datos empresarial, las aplicaciones se implementan en servidores físicos
  • ¿Dónde se implementan las aplicaciones en el Cloud?
    • Alquiler de máquinas virtuales (VM)
  • Conocer las VM es fundamental para entender el funcionamiento del Cloud

Características de Azure Virtual Machines (VM)

  • Balanceo de carga y autoescalado para varias máquinas virtuales.
  • Automatización del aprovisionamiento para tus máquinas virtuales
  • Administra la conexión y la configuración de la red de tus instancias de máquina virtual (VM)
  • Caso de uso de las VM:
    • Procesamiento de datos y análisis
    • Configuración de instancias VM para actuar como servidores HTTP (Web)
    • Aplicaciones con alto performance

Creación de VM

  • Vamos a lanzar nuestro primer servidor virtual utilizando el portal de Azure
  • Tendremos una primera aproximación de alto nivel a los distintos parámetros
  • Veremos que nuestro servidor web se lanza utilizando los datos de usuario de VM
  • Aprenderemos a iniciar / parar / terminar nuestra instancia.

Comandos útiles para Instancias con Ubuntu


  • sudo su: Cambia el usuario root
  • apt-get -y update: Actualiza la lista de paquetes disponibles de los repositorios de software
  • apt-get -y install nginx: Instala el servidor web Nginx
  • Crea un archivo index.html en el directorio raíz del servidor web con un
  • saludo que incluye el nombre completo del host de la máquina
https://learn.microsoft.com/es-es/azure/virtual-machines/user-data

Opciones de compra

  • Instancias de pago por uso (Pay-As-You-Go): Para cargas de trabajo de corta duración con precios predecibles, facturación por segundos de uso.
  • Planes de ahorro (1 y 3 años): Para usuarios que pueden comprometerse con un volumen de uso específico a largo plazo, ideal para cargas de trabajo continuas y predecibles.
  • Instancias reservadas (1 y 3 años): Ofrecen un descuento significativo con respecto al precio de pago por  uso, a cambio de un compromiso de 1 ó 3 años. Ideales para cargas de trabajo que se ejecutarán de manera continua.
  • Instancias spot: Para cargas de trabajo esporádicas y flexibles con costos reducidos. Estas instancias pueden ser interrumpidas, por lo que son menos fiables para cargas de trabajo críticas.
  • Hosts dedicados de Azure (Azure Dedicated Hosts): Proporciona servidores físicos dedicados para alojar máquinas virtuales, permitiendo control sobre la ubicación y el hardware dedicado.
  • Instancias aisladas: Ofrecen aislamiento a nivel de harware, asegurando que ningún otro cliente comparta el hardware utilizado.
  • Reservas de capacidad a petición: La reserva de capacidad a petición permite reservar capacidad de proceso en una región de Azure o una zona de disponibilidad durante cualquier periodo de tiempo.

Instancias de pago por uso (Pay-As-You-Go)

  • Paga por lo que usas
  • Tiene el coste más elevado, pero no hay que pagar por adelantado
  • Sin compromiso a largo plazo
  • Recomendado para cargas de trabajo a corto plazo y sin interrupciones, cuando se puede predecir el comportamiento de la aplicación.

Planes de ahorro (1 ó 3 años)

  • Obtén un descuento basado en el uso a largo plazo (hasta el 65%)
  • X USD cada hora durante 1 ó 3 años
  • Las compras del plan de ahorro no se pueden cancelar ni reembolsar.
  • Puedes pagar un plan de ahorro por adelantado o mensualmente.
    • El costo total del plan de ahorro por adelantado y mensual es el mismo.
  • Al finalizar el plazo del plan de ahorro, el descuento en la facturación caduca y los recursos se facturan al precio de pago por uso.
  • Los planes de ahorro son ideales para cargas de trabajo predecibles y estables que requerirán recursos de Azure de manera continua durante el periodo de compromiso.

Instancias reservadas

  • Hasta un 72% de descuento en comparación con el servicio de pago por uso.
  • Reserva de atributos de instancia específicos (tipo de instancia, región, periodo, frecuencia de facturación, RAM, vCPU, grupo de instancias).
  • Puedes cancelar el plan en cualquier momento. Tendrás que pagar una comisión.
  • Periodo de reserva:
    • 1 año (+descuento)
    • 3 años (+++descuento)
  • Opciones de pago: Por adelantado o  mensualmente.
  • El costo total de las reservas por adelantado y mensuales es el mismo.
  • Recomendado para aplicaciones de uso constante (piensa en una base de datos)

Instancias spot (Spot Virtual Machines)

  • Puedes obtener un descuento de hasta el 90% en comparación con la demanda.
  • Instancias que puedes "perder" en cualquier momento si su precio máximo es inferior al precio spot actual.
  • Las intancias MAS rentables de Microsoft Azure.
  • Útil para las cargas de trabajo que son resistentes a los fallos.
    • Trabajos por lotes (Batch Jobs)
    • Análisis de datos
    • Procesamiento de imágenes
    • Cualquier carga de trabajo distribuida.
    • Cargas de trabajo con una hora de inicio y finalización flexible
  • No es adecuado para trabajos críticos o bases de datos

Hosts dedicados (Azure Dedicated Host)

  • Proporciona servidores físicos (capaces de hospedar una o varias instancias de Azure Virtual Machines) dedicados a una organización y sus cargas de trabajo.
  • La capacidad del servidor no se comparte con otros clientes.
  • Opciones de compra:
    • Pago por uso: paga la capacidad de proceso por segundo, sin compromisos a largo plazo ni pagos por adelantado.
    • Plan de ahorro: comprometido a gastar una cantidad fija por hora durante uno o tres años.
    • Reservas: contrato de uno o tres años para usar una instancia específica de un servicio
  • La opción más cara.
  • Útil para empresas que tienen fuertes necesidades de regulación o cumplimiento.

Instancias aisladas

  • Usar un tamaño aislado se garantiza que tu máquina virtual es la única que se ejecuta en un servidor físico específico.
  • Azure Compute ofrece tamaños de máquinas virtuales que están aislados para un tipo concreto de hardware y dedicados a un solo cliente.
  • Casos de uso:
    • Necesario para cumplir los requisitos normativos y de cumplimiento
    • Aplicaciones criticas que requieren un ambiente controlado y aislado

Reservas de capacidad a petición

  • Reserva la capacidad de las instancias a petición en una región o AZ específica durante cualquier periodo de tiempo.
  • Se puede implementar y eliminar en cualquier momento sin compromiso de permanencia.
  • Se puede combinar automáticamente con instancias reservadas para usar descuentos por compromiso a término.
  • Adecuado para cargas de trabajo ininterrumpidas a corto plazo que necesitan estar en una AZ específica.

Conjuntos de escalado (Scale Sets)




  • Un grupo lógico de máquinas virtuales en Azure que puede configurarse y gestionarse como una sola unidad.
  • Capaz de añadir más máquinas a medida que crece la demanda (autoescalado)
  • Capaz de reducir máquinas a medida que se ralentiza la demanda
    • Puede gestionar hasta 100 máquinas virtuales en un único conjunto de escalado
    • Puede configurarse para aumentar esa cifra hasta 1000 máquinas virtuales en un único conjunto de escalado.
  • Opcionalmente puedes:
    • Añadir un balanceador de carga (Load Balancer)
    • Distribuir instancias VM a través de múltiples AZs (si están disponibles).
  • Admite escalado manual y autoescalado.

Recomendaciones - Examen de certificación

Los conjuntos de escalado (Scale Sets) están llevando las máquinas virtuales
al siguiente nivel.
  • Los conjuntos de escalado son máquinas virtuales idénticas. Pueden activarse o desactivarse según sea necesario.
  • Una VM base es lo que se copia para formar las máquinas virtuales del conjunto de escalado.
  • A medida que aumenta el uso de recursos, se activan más máquinas virtuales para soportar la carga.
  • Sólo pagas por la máquina virtual, el almacenamiento y los recursos de red que utilizas. No pagas nada adicional por los conjuntos de escalado.

Escalabilidad y alta disponibilidad

  • La escalabilidad significa que una aplicación/sistema puede manejar mayores cargas adaptándose.
  • Hay dos tipos de escalabilidad:
    • Escalabilidad vertical
    • Escalabilidad horizontal (= elasticidad)
  • La escalabilidad está vinculada pero es diferente a la alta disponibilidad

Escalado Vertical

  • Desplegar la aplicación/base de datos en una instancia mayor:
    • Un disco duro más grande
    • Una CPU más rápida
    • Más RAM, CPU, E/S o capacidades de red
  • En Azure: Podemos aumentar el tamaño de la VM
  • Hay límites al escalado vertical

Escalado horizontal

  • Despliegue de múltiples instancias de aplicación/base de datos
  • (Normalmente, pero no siempre) Se prefiere el escalado horizontal al escalado vertical:
    • El escalado vertical tiene límites
    • El escalado vertical puede ser caro
    • El escalado horizontal aumenta la disponibilidad
  • El escalado horizontal necesita infraestructura adicional:
    • Conjuntos de escalado, balanceadores de carga, etc.



Alta disponibilidad

  • La alta disponibilidad suele ir de la mano del escalado horizontal
  • Alta disponibilidad significa ejecutar la aplicación / sistema en al menos 2 zonas de disponibilidad
  • El objetivo de la alta disponibilidad es sobrevivir a la pérdida del centro de datos (desastre)

Alta disponibilidad y escalabilidad para VM

  • Escalado vertical: Aumentar el tamaño de la instancia (= escalar hacia arriba / abajo)
    • Desde: 0.5G de RAM, 1 vCPU
    • Hasta: 11.4 TB de RAM, 416 vCPUs
  • Escalado horizontal: Aumentar el número de instancias (= escalado hacia fuera / hacia dentro)
    • Conjuntos de escalado (VM Scale Sets)
    • Balanceador de carga (Azure Load Balancer)
  • Alta disponibilidad: Ejecutar instancias para la misma aplicación a través de múltiples AZ
    • Conjuntos de escalado (VM Scale Sets) Multi AZ
    • Balanceador de carga Multi AZ

Escalabilidad vs Elasticidad (vs Agilidad)

  • Escalabilidad: capacidad de acomodar una mayor carga reforzando el hardware (scale up / hacia arriba), o añadiendo nodos (scale out / hacia afuera)
  • Elasticidad: una vez que un sistema es escalable, la elasticidad significa que habrá cierto "autoescalado" para que el sistema pueda escalar en función de la carga.
  • Agilidad: (no relacionado con la escalabilidad) los nuevos recursos de IT están a un clic de distancia, lo que significa que se reduce el tiempo para poner esos recursos a disposición de los desarrolladores de semanas a sólo minutos

Arquitectura típica: Web App de 3 niveles



Problemas de los desarrolladores en Azure

  • Gestión de la infraestructura.
  • Desplegar el código.
  • Configurar todas las bases de datos, load balancers, etc.
  • Problemas de escalado.
  • La mayoría de las aplicaciones web tienen la misma arquitectura (Load Balancer + Grupo de escalado + Almacenamiento).
  • Lo único que quieren los desarrolladores es que su código se ejecute.
  • La solución es buscar una forma rápida de lanzar nuestro código en la nube. Para ello podemos usar el servicio de App Service que nos permite desplegar aplicaciones de forma consistente en diferentes aplicaciones y entornos. Esta opción no requiere muchos conocimientos de Cloud Computing.

App Service

  • App Service ofrece una solución robusta para desplegar, administrar y escalar aplicaciones web de manera eficiente y segura.
  • App Service (Azure) = Elastic BeanStalk (AWS).
  • Utiliza muchos de los componentes familiares de Azure: VMs, grupos de escalado, Azure Load Balancer, Azure SQL Database y otros servicios de bases de datos, etc.
  • Todo esto se presenta en una sola vista que es intuitiva y fácil de comprender.
  • El único deber del desarrollador es el código de la aplicación.
  • App Service = Plataforma como Servicio (PaaS).
  • Utilizar App Service es gratuito, pero se paga por los recursos subyacentes que se consumen.

  • Servicio gestionado:
    • La configuración de la instancia/el sistema operativo es gestionada por App Service
    • Aprovisionamiento automático de capacidad.
    • Balanceo de carga y autoescalado incorporados.
    • Monitoreo del estado de la aplicación y capacidad de respuesta.
  • App Service se usa especialmente en los siguientes casos de uso:
    • Web Apps: alojar sitios web dinámicos, blogs, tiendas en línea y más, con facilidad de escala automática y administración simplificada.
    • Web App para contenedores: ejecutar aplicaciones en contenedores Docker, lo que facilita la implementación y escalabilidad de aplicaciones empaquetadas en contenedores de forma rápida y sencilla.
    • API Apps: permite exponer y gestionar servicios web de manera eficiente, con opciones de autenticación, escalabilidad y monitoreo integradas.

Azure Container Instances (ACI)

¿Qué es Docker?

  • Docker es una plataforma de desarrollo de software para desplegar aplicaciones.
  • Las aplicaciones se empaquetan en contenedores que pueden ejecutarse en cualquier sistema operativo.
  • Las aplicaciones se ejecutan igual, independientemente de dónde se ejecuten
    • Cualquier máquina
    • No hay problemas de compatibilidad
    • Comportamiento predecible
    • Menos trabajo
    • Más fácil de mantener y desplegar
    • Funciona con cualquier lenguaje, cualquier sistema operativo y cualquier tecnología
  • Amplía y reduce los contenedores muy rápidamente (en segundos).

Docker en un sistema operativo

  • Los contenedores de Docker se ejecutan igual en cualquier infraestructura:
    • Máquina local
    • Centro de datos corporativo
    • Cloud
  • Son ligeros
    • En comparación con las máquinas virtuales
  • Docker proporciona aislamiento para los contenedores


¿Dónde se almacenan las imágenes Docker?

  • Las imágenes de Docker se almacenan en repositorios de Docker.
  • Públicos: Docker Hub https://hub.docker.com/
    • Encuentra imágenes base para muchas tecnologías o sistemas operativos:
    • Ubuntu
    • MySQL
    • NodeJS, Java...
  • Privado: Azure Container Registry (ACR)

Servicio Azure Container Instances (ACI)

Servicio que permite ejecutar contenedores de docker en el cloud de Microsoft Azure.



Características de ACI

  • Ejecución de cargas de trabajo en contenedores
    • Servicio Azure principal para ejecutar cargas de trabajo de contenedores
    • Una carga de trabajo es un proceso o aplicación
  • Bajo Demanda = Ahorra $$$
    • Utiliza aplicaciones en contenedores para procesar bajo demanda, creando la imagen del contenedor cuando la necesites.
  • Selecciona la herramienta que más te guste para hacer los despliegues
    • Utiliza el portal de Azure, Azure CLI o PowerShell. La que más te guste.

Azure Kubernetes Service (AKS)

Kubernetes


Kubernetes (K8s) es un sistema de orquestación de contenedores de código abierto para automatizar el despliegue, escalado y gestión de aplicaciones.
  • Código abierto: Código base público y participación comunitaria en en el producto.
  • Orquestación. Realiza un seguimiento de muchas partes de un sistema. Se asegura de que contenedores están configurados correctamente para trabajar juntos.
  • Despliegue automático de aplicación. Kubernetes desplegará más imágenes de contenedores según sea necesario.
  • Escalado automático. Monitorización automática de carga de la aplicación para determinar cuándo escalar el número de contenedores utilizados.

Características de Azure Kubernetes Service (AKS)


  • Replicar arquitecturas de contenedores
    • Reutiliza la arquitectura de contenedores gestionándola en Kubernetes. Esto hace que la configuración sea más rápida y aumente la confianza en el sistema.
  • Servicios Azure estándar incluidos
    • No tienes que preocuparte por la infraestructura y el hardware. Obtienes gestión de identidad y acceso, aprovisionamiento elástico y mucho más.
  • Alcance global
    • Utiliza Kubernetes compatibles con las regiones Azure compatibles e instalaciones locales mediante Azure Stack.

Caso prático



Azure Virtual Desktop

  • Solución de virtualización de escritorio y aplicaciones en el Cloud de Microsoft Azure.
  • Conéctate a tus escritorios desde cualquier lugar usando cualquier dispositivo de forma remota.
  • Ofrece una experiencia optimizada para Office 365. 
  • Soporta varios usuarios pueden acceder al mismo Azure Virtual Desktop simultáneamente.
  • Casos de uso:
    • Entorno de trabajo híbrido
    • Desarrollo y testing
    • Recuperación ante desastres


Azure Functions

¿Qué es Serverless?

  • Serverless es un nuevo paradigma en el que los desarrolladores ya no tienen que gestionar servidores...
  • Sólo despliegan código.
  • Sólo despliegan... ¡funciones!
  • Serverless no significa que no haya servidores... significa que simplemente no los gestionas / aprovisionas / ves


Beneficios de Azure Functions

  • Sólo se ejecuta cuando es necesario
    • La función de Azure sólo se ejecuta cuando hay datos que procesar.
  • Ahorra dinero
    • Sin tráfico no se usan recursos.Esto significa que no pagas por la función cuando no está en uso.
  • Resistencia
    • Si la función falla, no afecta a otras instancias de la función.

Resumen - Computación

  • Azure Compute: Ofrece soluciones de cómputo
  • Azure Virtual Machines (VM): Servidores virtuales escalables
  • Opciones de compra: Diferentes planes y precios para ajustarse a necesidades específicas
  • Scale Sets: Facilita la administración de VMs a gran escala para aplicaciones de alto tráfico
  • Alta disponibilidad vs escalabilidad (vertical y horizontal) vs elasticidad vs agilidad
  • App Service: Servicio para construir, hospedar y escalar aplicaciones web
  • Azure Container Instances (ACI): Servicio de ejecución de contenedores
  • Azure Container Registry (ACR): Servicio para almacenar y gestionar imágenes de contenedores
  • Azure Kubernetes Service (AKS): Servicio de orquestación de contenedores para aplicaciones más complejas
  • Azure Virtual Desktop: Escritorios y aplicaciones virtuales con seguridad y escalabilidad
  • Azure Functions: Ejecución de funciones sin servidor, con escalamiento automático y facturación por uso





Cuando el código funciona, pero no tiene tests: ¿y ahora qué?

Seguramente te ha pasado alguna vez. Te dan acceso al repositorio de un nuevo proyecto. Lo abres con curiosidad, esperas encontrar una estru...