Friday, February 28, 2025

Control de versiones en scripts de migración de bases de datos

Introducción

El desarrollo de software es un proceso en constante evolución, donde los cambios son esenciales para mejorar los sistemas y adaptarse a un entorno tecnológico dinámico. Sin embargo, gestionar estas modificaciones de manera efectiva es un desafío, ya que cualquier alteración no planificada puede comprometer la estabilidad, seguridad o eficiencia de una aplicación. Para enfrentar este reto, el control de versiones se ha convertido en una práctica fundamental, permitiendo a los equipos registrar cambios, mantener un historial preciso y colaborar de forma estructurada mediante herramientas como Git. Esto asegura la coherencia del código fuente y facilita su mantenimiento y evolución.

En el caso de las bases de datos, la gestión del cambio presenta desafíos únicos, ya que almacenan información crítica y cualquier modificación puede afectar la integridad de los datos. A diferencia del código fuente, que puede reemplazarse fácilmente, las bases de datos requieren estrategias bien planificadas para evitar pérdidas de información, garantizar la compatibilidad con versiones anteriores y sincronizar cambios sin interrumpir la operatividad del sistema. En este artículo, se analizará la importancia del control de versiones en los scripts de migración de bases de datos, los principales desafíos que implica y las mejores prácticas para asegurar estabilidad, seguridad y escalabilidad.


Versionado de Base de Datos mediante scripts de migración

Los scripts de migración de bases de datos son archivos que contienen instrucciones SQL diseñadas para modificar la estructura, los datos o la configuración de una base de datos de manera incremental y controlada. Estos scripts permiten realizar cambios como:

  • Creación, modificación o eliminación de tablas.
  • Adición o eliminación de columnas.
  • Alteración de índices, restricciones y llaves foráneas.
  • Inserción, actualización o eliminación de datos estáticos.
  • Cambios en procedimientos almacenados, funciones y triggers.
  • Creación de Jobs o Tareas Programadas.
  • Cambios en permisos y seguridad.
  • Creación de scripts de reversión para cada migración.

Por ejemplo, un script de migración que define la creación de una nueva tabla Users podría ser de la siguiente manera:

-- V1__Create_Users_Table.sql
CREATE TABLE Users (
    Id INT PRIMARY KEY,
    Name VARCHAR(100),
    Email VARCHAR(100) UNIQUE,
    CreatedAt DATETIME DEFAULT CURRENT_TIMESTAMP
);

El control de versiones en bases de datos busca gestionar cambios de manera estructurada, evitando inconsistencias entre entornos (desarrollo, prueba, producción). Los scripts de migración son una parte clave de este proceso, ya que:

  1. Documentan los cambios: Cada script representa una versión específica de la base de datos, facilitando el seguimiento del historial de modificaciones.
  2. Permiten la replicación de cambios en distintos entornos: Aseguran que todos los desarrolladores y servidores utilicen la misma versión de la base de datos.
  3. Facilitan el rollback: En caso de errores, los scripts de migración pueden incluir scripts de reversión para volver a una versión anterior.
  4. Se integran con herramientas de versionado y CI/CD: Herramientas como Flyway, Liquibase, Entity Framework Core Migrations, entre otras, permiten aplicar estos scripts de manera ordenada y automatizada.

El uso de scripts de migración es una estrategia esencial para mantener la coherencia y estabilidad de las bases de datos a medida que evolucionan junto con el software. Sin embargo, gestionar estos cambios manualmente puede volverse complejo, especialmente en proyectos grandes con múltiples desarrolladores y entornos.

Para abordar este desafío, existen herramientas especializadas que automatizan la gestión de migraciones y garantizan que los cambios se apliquen de manera ordenada y reproducible. Entre las soluciones más utilizadas en el ecosistema de desarrollo encontramos Flyway y Entity Framework Core Migrations, dos enfoques que facilitan el versionado de bases de datos, cada uno con características y beneficios específicos.


Flyway y Entity Framework Core Migrations: Herramientas para el versionado de bases de datos

El control de versiones en bases de datos no solo requiere una estrategia bien definida, sino también herramientas que faciliten la aplicación y gestión de cambios de manera eficiente y segura. Flyway y Entity Framework Core Migrations (EF Core Migrations) son dos de las soluciones más utilizadas en el mundo del desarrollo, cada una con un enfoque distinto para gestionar la evolución de la base de datos.

Flyway: Migraciones mediante scripts SQL

Flyway es una herramienta de control de versiones de bases de datos que permite gestionar cambios mediante scripts SQL escritos manualmente. Se basa en un enfoque migration-based, lo que significa que los cambios se aplican secuencialmente a través de scripts versionados.

¿Cómo funciona Flyway?
  1. Los desarrolladores crean scripts de migración con cambios específicos en SQL.
  2. Flyway detecta y aplica los scripts en orden secuencial, registrando cada cambio en una tabla especial (flyway_schema_history).
  3. Los cambios se propagan automáticamente a diferentes entornos (desarrollo, prueba, producción).

Ejemplo de script de migración en Flyway:
-- V1__Create_Users_Table.sql
CREATE TABLE Users (
    Id INT PRIMARY KEY,
    Name VARCHAR(100),
    Email VARCHAR(150) UNIQUE,
    CreatedAt DATETIME DEFAULT CURRENT_TIMESTAMP
);

Ejemplo de comando para ejecutar la migración:
flyway migrate

Ventajas de Flyway
  • Independiente del lenguaje de programación (compatible con .NET, Java, Python, etc.).
  • Permite escribir migraciones en SQL puro, dando control total sobre los cambios.
  • Historial de cambios claro y replicable en múltiples entornos.
  • Integración sencilla con CI/CD (Jenkins, GitHub Actions, Azure DevOps, etc.).
Desventajas de Flyway
  • Requiere escribir los scripts SQL manualmente, lo que puede ser más tedioso para equipos sin experiencia en bases de datos.
  • No genera automáticamente los scripts a partir del modelo de datos, como lo hace EF Core Migrations.
¿Cuándo usar Flyway?
  • Cuando se necesita control total sobre los cambios en la base de datos.
  • Si la base de datos es compartida entre múltiples aplicaciones o equipos.
  • En proyectos que no dependen exclusivamente de .NET y requieren una solución universal.

Entity Framework Core Migrations: Migraciones Code-First

Entity Framework Core Migrations (EF Core Migrations) es la herramienta nativa de .NET y Entity Framework Core para gestionar cambios en la base de datos mediante el enfoque Code-First. En este caso, los cambios en la base de datos se generan a partir del modelo de datos en C#, sin necesidad de escribir scripts SQL manualmente.

¿Cómo funciona EF Core Migrations?
  1. El desarrollador modifica las clases del modelo de datos en C# (ejemplo: agregar una nueva propiedad a una entidad).
  2. Se genera automáticamente un script de migración con el siguiente comando: 
    dotnet ef migrations add AddBirthdateToUsers

  3. Se aplica la migración a la base de datos con el comando:
    dotnet ef database update

  4. EF Core se encarga de ejecutar los cambios en SQL, sin necesidad de escribir los scripts manualmente.

Ejemplo de modelo de datos en C#:
public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }
    public DateTime Birthdate { get; set; } // Nuevo campo agregado
}

Ejemplo de migración generada automáticamente por EF Core:
ALTER TABLE Users ADD COLUMN Birthdate DATE;


Ventajas de EF Core Migrations
  • Automatiza la generación de scripts SQL, reduciendo la carga de trabajo del desarrollador.
  • Se integra perfectamente con .NET y Entity Framework Core.
  • Permite realizar migraciones sin escribir SQL manualmente, facilitando la gestión del esquema de la base de datos.
Desventajas de EF Core Migrations
  • Está altamente acoplado a .NET y Entity Framework Core.
  • Puede generar scripts SQL no óptimos en bases de datos grandes o complejas.
  • No es ideal para bases de datos compartidas con otras aplicaciones que no usan EF Core.
¿Cuándo usar EF Core Migrations?
  • En proyectos .NET que usan Entity Framework Core y siguen el enfoque Code-First.
  • Cuando se quiere minimizar la necesidad de escribir SQL manualmente.
  • Si la base de datos solo es utilizada por la aplicación .NET y no requiere cambios gestionados por otros equipos.


Conclusión

El desarrollo de software requiere que tanto el código como la base de datos evolucionen de manera estructurada para adaptarse a nuevas necesidades sin comprometer la integridad del sistema. A diferencia del código fuente, donde los cambios son más manejables, cualquier modificación en una base de datos debe gestionarse cuidadosamente mediante un sistema de versionado. Herramientas como Flyway y Entity Framework Core Migrations facilitan este proceso, ofreciendo enfoques distintos según el contexto del proyecto. Más allá de la elección de herramientas, es crucial adoptar una cultura de disciplina y control en la gestión de cambios, ya que un sistema de versionado adecuado no solo garantiza estabilidad y seguridad, sino que también permite escalar y evolucionar el software de manera eficiente.


¡Gracias por llegar hasta aquí!


Webgrafía:


Monday, February 24, 2025

Week #11: Precios

Azure Cost Management

Herramienta de Azure que permite monitorizar, controlar y optimizar los costos de los recursos consumidos dentro de la nube de Microsoft.

¿Qué podemos hacer con Cost Management?

  • Asignación de costes: Distribuye y asigna costos a distintas unidades o departamentos dentro de una organización.
  • Exportación de datos: Permite la extracción de datos de costos para análisis más profundo en otras herramientas.
  • Políticas de costo: Establece políticas para controlar y gestionar los gastos en base a reglas predefinidas.
  • Integración con herramientas: Se integra con otras soluciones y servicios de Azure para proporcionar visibilidad total del gasto.
  • Informe de ineficiencias: Identifica recursos subutilizados o no utilizados.
  • Comparativas de precios: Muestra comparativas de precios entre diferentes regiones y servicios.
  • Vistas personalizadas: Personaliza y crea paneles de control para diferentes stakeholders o equipos.

Costes acumulados en Cost Management



Definición de presupuestos

Los presupuestos permiten establecer límites de gasto en recursos de Azure y recibir alertas cuando estos límites estén cerca de alcanzarse o se hayan excedido.



Facturación

Las facturas de Azure Cost Management ofrecen un desglose detallado de los gastos incurridos en los servicios de Azure durante un período determinado, permitiendo a los usuarios comprender y gestionar sus costos en la plataforma.






Calculadora de precios

Crecimiento de servicios y complejidad en el control de costes

  • Cada vez hay más opciones disponibles en Azure
  • Los servicios están más conectados entre sí
  • Esto hace que el control de los costos sea más complicado

Factores que afectan a los precios

  • Tamaño de recurso: Diferentes tamaños de recursos tendrán diferentes precios. Una máquina virtual más potente costará más.
  • Tipo de recurso: Hay una gran diferencia en la cantidad de recursos de hardware necesarios para varios tipos de recursos, así como en la complejidad.
  • Ubicación: Diferentes ubicaciones de Azure tienen diferentes precios para los servicios. Las tasas de cambio, los costos laborales y más tienen una influencia en el precio.
  • Ancho de banda: El ancho de banda que están utilizando tus servicios también incurra en un costo.

Calculadora de precios

  • Permite calcular los costos esperados de utilizar los servicios de Azure, proporcionando transparencia y control financiero.
  • Los usuarios pueden seleccionar servicios, ajustar la configuración y ver el impacto en los costos.
  • Facilita la planificación presupuestaria y ayuda a las empresas a optimizar sus inversiones en la nube de Azure.






Tráfico de datos




Calculadora del costo total de propiedad (TCO)

  • Analiza los gastos de infraestructura actual vs. Azure
  • Considera gastos indirectos como mantenimiento y electricidad
  • Provee datos para una transición informada a la nube



Informes de la calculadora del costo total de propiedad (TCO)







Mejores prácticas en costes en el Cloud

  • Existen varias técnicas y herramientas para poder ahorrar dinero en el Cloud y gestionar nuestros presupuestos.
  • Puntos destacables para poder gestionar correctamente los costes del Cloud: 
    • Límites de gastos
    • Quotas de servicios
    • Tags (Etiquetas)
  • También disponemos de diferentes modelos de precios a elegir: 
    • Pay-As-You-Go 
    • Instancias reservadas 
    • Reservas de capacidad

Limitación de los gastos

  • Piensa en esto como tu límite de tarjeta de crédito. ¡No queremos sorpresas en la factura!
  • Los límites de gastos en Azure son herramientas que permiten establecer un techo de gasto, funcionando como un freno financiero para evitar facturaciones no deseadas y mantener el control sobre el presupuesto.

Quotas

  • Es como el guardia de seguridad en la puerta de un club. Asegura que no haya demasiada fiesta (uso de recursos) de una vez.
  • Las quotas en Azure representan los límites establecidos para el uso de ciertos recursos, asegurando que no se sobrepasen capacidades y evitando gastos inesperados o la monopolización de recursos en un ambiente compartido.

Tags

  • ¡Etiquetas para todo! Como poner nombres a tus plantas, pero para tus recursos de Azure. Organiza y rastrea fácilmente.
  • Usar tags en Azure permite clasificar y monitorear tus recursos de manera organizada, facilitando la identificación de gastos por proyectos o departamentos y optimizando así la gestión y reducción de costos.

Azure Advisor

  • Imagina a un mago que te da trucos para ahorrar dinero, ser más seguro y eficiente. ¡Eso es Advisor!
  • Se trata de una herramienta integrada de Azure que proporciona recomendaciones personalizadas basadas en prácticas recomendadas, diseñadas para ayudar a los usuarios a optimizar recursos, reducir costos, mejorar la seguridad y maximizar la eficiencia operativa en la plataforma.

Elige el modelo de precios adecuado

  • 💸 Pay-As-You-Go: Perfecto para quienes aman la flexibilidad.
  • 📆 Instancias reservadas: Ideal para los que planean con anticipación.
  • 💰Reserva de capacidad: Grandes descuentos cuando te comprometes con Azure a largo plazo.



Resumen - Precios

  • Azure Cost Management: Herramienta para monitorizar, controlar y optimizar los costos.
  • Calculadora de precios: Proporciona estimaciones detalladas de los costos de los servicios específicos en Azure según las necesidades del usuario.
  • Calculadora del costo total de propiedad (TCO): Compara los costos de las infraestructuras on-premise con los de Azure, incluyendo tanto los costos directos como los indirectos.
  • Zona de facturación: Agrupación geográfica específica de regiones de Azure que comparten el mismo modelo de precios.
  • Coste asociado al tráfico de datos:
    • Dentro de una zona de facturación: El tráfico de datos entre diferentes regiones dentro de la misma zona de facturación generalmente no incurre en costos adicionales
    • Entre zonas de facturación: Cuando el tráfico de datos se mueve entre diferentes zonas de facturación, se suele incurrir en costos adicionales
  • Mejores prácticas:
    • Limitación de gastos: Establecer un límite en el gasto para evitar sobrepasar el presupuesto
    • Quotas: Límites establecidos en los recursos para controlar el consumo y evitar excesos
    • Tags: Etiquetas para organizar y clasificar recursos, facilitando su gestión y seguimiento
    • Azure Advisor: Servicio de recomendaciones personalizadas para optimizar recursos y prácticas en Azure
  • Modelos de precios: Selecciona un modelo de precios acorde a tu propósito en el Cloud
    • Pay As You Go: Solo se paga por los recursos que se utilizan, sin compromisos a largo plazo
    • Instancias reservadas: Compromiso a largo plazo a cambio de tarifas reducidas en VMs
    • Reservas de capacidad: Reservar capacidad de recursos con antelación para garantizar disponibilidad y precios estables





Tuesday, February 18, 2025

Week #10: Monitorización y gestión

Gobernanza

La gobernanza de Azure se refiere al conjunto de procesos, directrices y prácticas mediante los cuales los recursos y servicios de Azure se administran y supervisan.

  • Políticas de Azure: Define directrices para la creación y administración de recursos, garantizando la coherencia y el cumplimiento.
  • Blueprints de Azure: Conjunto de soluciones predefinidas para estandarizar y acelerar el despliegue de recursos.
  • RBAC (Control de acceso basado en roles):
    • Permite especificar quién puede hacer qué en los recursos de Azure
    • Define roles y asigna permisos específicos a usuarios, grupos o aplicaciones
  • Locks de recursos: Previenen modificaciones o eliminación accidental de recursos críticos.
  • Monitoreo y auditoría: Mediante Azure Monitor se pueden visualizar operaciones y detectar irregularidades.

¿Qué hace la Gobernanza en Azure en términos prácticos?
  • Controlar quién crea recursos: solo personas autorizadas podrán hacerlo.
  • Establecer límites: como cuánto pueden gastar, qué tipo de recursos pueden utilizar, y en qué regiones.
  • Asegurar el cumplimiento de normativas: como protección de datos personales o estándares de seguridad.
  • Auditar y supervisar: saber quién hizo qué, cuándo y cómo.
Ejemplo práctico:
  • Sin gobernanza: Cada desarrollador puede crear máquinas virtuales sin límites. Resultado: caos, gastos altos, riesgos de seguridad.
  • Con gobernanza: Estableces reglas como: “Los desarrolladores pueden crear máquinas virtuales solo en estas regiones, con estos tamaños específicos, y con un presupuesto mensual máximo de $500.”

Cumplimiento de políticas con Azure Policy

Azure Policy ayuda a aplicar los estándares de la organización y a evaluar el cumplimiento a escala.


El cumplimiento de políticas significa verificar que todos los recursos en Azure (máquinas virtuales, bases de datos, etc.) respeten las reglas definidas por tu organización.

Por ejemplo, podrías tener reglas como:
  • "Todas las máquinas virtuales deben estar en la región Estados Unidos."
  • "Nadie puede crear recursos muy costosos sin aprobación."
  • "Todos los recursos deben tener etiquetas (tags) indicando quién es el responsable."
Azure Policy revisa continuamente que se cumplan estas reglas.

Ejemplo práctico:

Imagina que tu empresa quiere reducir costos, así que estableces esta política en Azure:
"Ningún recurso puede superar los 200 dólares mensuales."

Si alguien intenta crear una base de datos costosa que exceda ese límite:
  • Azure Policy automáticamente bloquea esa creación.
  • Genera una alerta que te informa sobre el intento de creación.
  • En los reportes verás claramente cuáles recursos están cumpliendo o incumpliendo esta regla.

Control de acceso basado en roles de Azure (RBAC)

  • El control de acceso basado en roles (Azure RBAC) ayuda a administrar quién tiene acceso a los recursos de Azure, qué pueden hacer con esos recursos y a qué áreas puede acceder.
  • Para controlar el acceso a los recursos que usan Azure RBAC hay que utilizar las asignaciones de roles de Azure.
  • Una asignación de roles consta de tres elementos:
    • Entidad de seguridad
    • Definición de rol
    • Ámbito

Azure RBAC - Entidad de seguridad

  • Una entidad de seguridad es un objeto que representa a un usuario, un grupo, una entidad de servicio o una identidad administrada que solicita acceso a recursos de Azure.
  • Puedes asignar un rol a cualquiera de estas entidades de seguridad.


Azure RBAC - Definición de roles

  • Una definición de roles es una recopilación de permisos
  • Una definición de roles enumera las acciones que se pueden realizar; por ejemplo, de lectura, escritura y eliminación 
  • Suele denominarse un rol

Azure RBAC - Ámbito (Scope)

  • Ámbito es el conjunto de recursos al que se aplica el acceso
  • Cuando se asigna un rol, es posible limitar aún más las acciones permitidas si se define un ámbito
  • Puedes especificar un ámbito en cuatro niveles: grupo de administración, suscripción, grupo de recursos o recurso.


Relación entre RBAC y Microsoft Entra ID

RBAC y Microsoft Entra ID trabajan juntos de forma complementaria:
  • Microsoft Entra ID gestiona quién eres (identidad).
  • RBAC gestiona qué puedes hacer con esa identidad (permisos).




Locks (Candados)

Los Locks protegen los recursos de Azure evitando su eliminación accidental o modificación.

Tipos:
  • Read-only: Bloquea modificaciones
  • Delete: Bloquea eliminaciones
Asignación:
  • Se pueden aplicar a nivel de recurso, grupo de recursos o suscripción
Jerarquía de aplicación:
  • Puedes configurar un Lock en un recurso específico, un grupo de recursos o incluso a nivel de suscripción completa.
  • Si un grupo de recursos tiene un Lock y se intenta eliminar o modificar cualquier recurso dentro de ese grupo, la operación será bloqueada.

Azure Blueprints

Los Blueprints en Azure permiten la orquestación de soluciones repetibles con un conjunto predefinido de recursos.

Características principales:
  • Plantillas: Diseña y despliega consistentemente infraestructuras y configuraciones.
  • Políticas y roles: Integra reglas y estándares para cumplir con regulaciones y mejores prácticas.
  • Versionado: Gestiona y rastrea cambios en tus Blueprints a lo largo del tiempo.

Azure Blueprints vs Resource Manager

Imagina que estás construyendo una ciudad:

Azure Resource Manager (ARM)
  • Sería como las herramientas y procesos que usas para construir edificios individuales.
  • Cada vez que necesitas un edificio, tomas una plantilla (diseño) y la usas para construir ese edificio en un lugar específico.
Azure Blueprints
  • Sería como tener un plan maestro para toda la ciudad.
  • No solo indica dónde van los edificios (usando las herramientas de ARM para construirlos).
  • También dónde van las carreteras, las zonas de parques, y las regulaciones (políticas) que esos edificios deben seguir.
En términos más técnicos:
  • ARM: Te permite desplegar recursos individuales en Azure (como máquinas virtuales, bases de datos, etc.) usando plantillas.
  • Azure Blueprints: Combina plantillas ARM, políticas de Azure y otras configuraciones en un diseño cohesivo para desplegar soluciones completas y repetibles.

Ejemplo

Azure Blueprints es como una receta o plantilla reutilizable para crear y gestionar entornos en Azure de manera rápida, segura y consistente.

Imagina que cada vez que un equipo nuevo inicia un proyecto en tu empresa, necesitan:
  • Una máquina virtual.
  • Una base de datos SQL.
  • Permisos específicos (RBAC).
  • Etiquetas para saber qué equipo creó esos recursos.
Con Azure Blueprints:
  1. Creas esta configuración solo una vez como un Blueprint.
  2. La próxima vez, solo aplicas ese Blueprint.
  3. Automáticamente se crean los recursos, políticas, permisos y etiquetas.
Así reduces errores y ganas muchísimo tiempo.

Microsoft Cloud Adoption Framework

Cloud Adoption Framework es una guía probada que se ha diseñado para ayudar a crear
e implementar las estrategias empresariales y tecnológicas necesarias para que todo vaya bien a tu organización en la nube.
  • Proporciona procedimientos recomendados, la documentación y las herramientas de la toma de decisiones empresariales.
  • Los procedimientos recomendados de Cloud Adoption Framework permiten a las organizaciones alinear mejor sus estrategias empresariales y técnicas para asegurar un resultado satisfactorio.

Azure Monitor

Herramienta para supervisar aplicaciones, infraestructura y recursos, tanto en la nube como en
instalaciones locales.
  • Integración completa: Métricas y registros detallados de casi todos los servicios.
  • Análisis avanzado: Identifica patrones, tendencias y anomalías.
  • Alertas proactivas: Respuestas rápidas a problemas potenciales.
  • Visualización de datos: Dashboards personalizables y vistas en tiempo real.
  • Automatización de respuestas: Acciones automáticas basadas en condiciones.

Caso práctico - VM y Azure Monitor

Una VM en Azure puede enviar una variedad de información a Azure Monitor, por ejemplo:
  • Métricas de rendimiento
  • Registros de actividad
  • Registros de diagnóstico de VM
  • Registros de red
  • Registros de seguridad y auditoría
  • Registros de aplicaciones
  • Extensiones de monitoreo


Características esenciales de Azure Monitor

  • Telemetría continua: Azure Monitor recibe datos de telemetría de la mayoría de los servicios de Azure y también admite la integración de servicios locales.
  • Centralización y gestión automatizada: Ofrece una plataforma unificada y totalmente gestionada, permitiendo un análisis consolidado de todos los datos.
  • Lenguaje de consulta avanzado: Proporciona una herramienta de consulta interactiva para analizar detalladamente los datos de telemetría.
  • Inteligencia predictiva: Utiliza aprendizaje automático (Machine Learning) para identificar y prevenir problemas de manera proactiva.

Dashboard de Azure Monitor



Herramientas de monitorización

Las herramientas de monitorización permiten supervisar y registrar el rendimiento o el estado de recursos, como hardware, redes o software. Ayudan en la detección de anomalías, en el análisis de tendencias y en la solución de problemas.

Log Analytics:
  • Recolecta y analiza datos de telemetría de recursos Azure.
  • Identifica patrones y ayuda en la solución de problemas.
Application Insights:
  • Gestión del rendimiento de aplicaciones web.
  • Detecta automáticamente anomalías de rendimiento.
Alertas de Azure Monitor:
  • Notifica proactivamente sobre problemas en apps e infraestructura.
  • Establece umbrales y recibe alertas cuando se cruzan.

Log Analytics

  • Azure Monitor genera grandes cantidades de registros y datos.
  • Log Analytics es la herramienta que almacena y consulta estos datos, permitiendo a los usuarios obtener información valiosa de ellos.

Consultas en Log Analytics: Las consultas en Log Analytics de Azure se realizan utilizando el
lenguaje Kusto Query Language (KQL).



Application Insights

  • Enfocado en aplicaciones web.
  • Compatible con App Service, Azure VMs y recursos externos.
  • Agente necesario para VMs 
  • Diagnostica cuellos de botella (bottleneck) en rendimiento.
  • Analiza interacciones de usuario en el sitio.


Alertas de Azure Monitor

Activa notificaciones ante eventos inesperados. Por ejemplo:



Elementos destacables de las alertas de Azure Monitor
  • Cuando algo no funciona como esperado, las alertas de Azure Monitor informan al grupo adecuado para que haga algo al respecto.
  • Un grupo de acción en Azure Monitor define acciones tomadas cuando se activa una regla
    • Email/SMS: Notificar al personal de soporte
    • Flujos de trabajo automatizados (integración con Logic Apps, Azure Functions, etc.)
  • Ejemplo de alertas de Azure Monitor:


Azure Service Health

Azure Service Health informa de incidentes de servicio y trabajos de mantenimiento programados en Azure, lo que le permite tomar medidas para mitigar el tiempo de inactividad.


  • Dashboard personalizable: 
    • Visualiza de manera clara los problemas del servicio que impactan tus recursos en un panel diseñado para ti.
  • Alertas configurables: 
    • Mantente informado con notificaciones de interrupciones, tanto programadas como inesperadas.
    • Configura y personaliza las alertas con facilidad
  • Monitorización en directo
    • Vigila las alertas y dificultades en tiempo real, y accede a informes exhaustivos cuando se solucionen.
  • Totalmente gratuito
    • Service Health está disponible para suscriptores de Azure sin coste adicional

Visión general de Azure Arc

Recursos de cómputo en múltiples ubicaciones
  • Más ubicaciones significa más sobrecarga de gestión
  • No se pueden aplicar políticas de gobernanza de Azure a recursos que no son de Azure
    • AWS, Google Cloud, otras nubes
    • Instalaciones locales (On-Premises)
  • Y si pudiéramos…
    • ¿Gestionar tanto recursos de Azure como no-Azure en la misma interfaz?
    • ¿Aplicar políticas de gobernanza de Azure a recursos que no son de Azure?
  • Solución: Usar Azure Arc

¿Qué es exactamente Azure Arc?
  • Azure Arc te permite gestionar y aplicar políticas a tus recursos, ya estén en Azure, en tus propios servidores o en otras nubes, todo desde un único panel de control.

Beneficios del uso de Azure Arc
  • Gestión unificada: Proporciona una única interfaz para gestionar recursos en diferentes entornos, lo que simplifica la administración de infraestructuras dispersas
  • Aplicación consistente de políticas: Permite aplicar políticas de gobernanza y seguridad de Azure en recursos que se encuentren fuera de Azure
  • Extensión de servicios de Azure: Puedes desplegar y gestionar servicios de Azure como Azure SQL y Azure Kubernetes Service (AKS) en cualquier infraestructura, incluidas las on-premises o en otras nubes.

Resumen - Monitorización y gestión

  • Gobernanza: Sistema de regulaciones, prácticas, políticas y procedimientos utilizados para dirigir y administrar una entidad o recurso
  • Azure Policy: Permite establecer y aplicar reglas específicas en los recursos de Azure para garantizar el cumplimiento de normativas y estándares corporativos
  • Control de acceso basado en rol de Azure (RBAC): Sistema de permisos que asigna roles específicos a usuarios, determinando lo que pueden y no pueden hacer con los recursos
  • Locks: Mecanismo de Azure que previene la modificación o eliminación accidental de recursos, asegurando su integridad
  • Azure Blueprints: Permite definir conjuntos repetibles de recursos de Azure, facilitando la implementación y el cumplimiento de estándares organizacionales
  • Azure Monitor: Servicio diseñado para recopilar, analizar y actuar sobre los datos telemétricos de aplicaciones y recursos en la nube
  • Microsoft Cloud Adoption Framework: Conjunto de prácticas, guías y herramientas proporcionadas por Microsoft para facilitar la adopción de soluciones en la nube.
  • Herramientas de monitorización:
    • Log Analytics: Herramienta para recopilar y analizar datos telemétricos y registros de recursos en la nube
    • Application Insights: Monitoriza el rendimiento y uso de aplicaciones, proporcionando análisis en tiempo real
    • Alertas de Azure Monitor: Notificaciones que se activan según condiciones específicas, alertando sobre cambios o problemas en recursos
  • Azure Service Health: Proporciona información sobre la salud y el estado de los servicios de Azure, notificando a los usuarios sobre interrupciones y mantenimientos
  • Azure Arc: Extiende las capacidades de administración de Azure a infraestructuras en cualquier lugar, permitiendo la gestión unificada de recursos




Saturday, February 15, 2025

Dedicación Industria vs. Academia

Cuando terminé la carrera de Analista de Sistemas en ORT tuve una fuerte disyuntiva sobre mi dedicación industria/academia. En ese momento, me encantaba los temas de investigación y la escritura de artículos relacionados al desarrollo de software. Me atraía bastante la idea de dedicarme a la docencia, sin embargo al final terminé dedicándome de lleno a la industria, muchas veces participando en proyectos que no eran de mi interés. Antes de seguir con esta reflexión ¿a qué me refiero con Academia e Industria? 

Academia

Hace referencia al mundo de la enseñanza, la investigación y el desarrollo del conocimiento en instituciones educativas como universidades, institutos o centros de investigación.

Características de la academia:

  • Se centra en la generación, transmisión y validación del conocimiento.
  • Se trabaja en universidades, institutos o centros de investigación.
  • Se investiga sobre nuevas tecnologías, metodologías o modelos teóricos.
  • Se requiere una formación avanzada como maestrías o doctorados en muchos casos.
  • Puede incluir actividades de docencia, escritura de artículos científicos o supervisión de tesis.

Ejemplo: Ser profesor universitario en una facultad de informática y escribir artículos sobre inteligencia artificial en conferencias académicas.

Industria

Se refiere al ámbito profesional en el que se aplican conocimientos y habilidades para desarrollar productos, servicios o soluciones tecnológicas en empresas u organizaciones. En el caso del desarrollo de software, la industria abarca roles como programador, arquitecto de software, ingeniero de datos, DevOps, entre otros.

Características de la industria:

  • Se centra en la aplicación práctica del conocimiento para resolver problemas reales.
  • Se trabaja en empresas privadas o públicas que buscan rentabilidad, eficiencia o innovación.
  • Hay una fuerte orientación hacia plazos, clientes y requerimientos del negocio.
  • Se valora la experiencia práctica, certificaciones y habilidades técnicas aplicadas.

Ejemplo: Trabajar como desarrollador .NET en una empresa de software que crea sistemas para el sector financiero.

Con esta aclaración sobre los términos academia/industria espero dar más claridad sobre este dilema que aún me persigue...


Como comenté al principio, terminé elegiendo la industria, principalmente por motivos económicos, sin embargo la academia me sigue interesando bastante. Siento que es momento de poner un poco de orden a todo esto y combinar ambas, dando cursos o escribiendo contenido técnico. Es posible seguir una carrera combinando la academia e industria, todo es cuestión de saber organizarse. Para aquellos que quieran meterse de lleno a uno u otro, le rescomiendo ver el video Academia or Industry? How do I choose? donde recomiendan responderse a las siguientes tres preguntas:

  1. Do you often think about the applications for your research?
  2. Do you like variety in your work?
  3.  Is work-life balance important?

Mirando hacia atrás, a veces me pregunto qué habría pasado si hubiera seguido el rumbo de la academia por completo. Sin embargo, también valoro todo lo que aprendí en la industria y las oportunidades que surgieron en el camino. Al final, creo que no se trata tanto de “escoger un lado” como de escuchar la voz interior que nos impulsa a explorar. Esa voz puede orientarnos hacia la docencia, la investigación o la creación de proyectos que realmente nos apasionen, incluso si eso significa encontrar espacios para ambas cosas. Más que un dilema, es la oportunidad de construir un sendero propio donde la curiosidad, el aprendizaje continuo y el deseo de compartir conocimiento puedan coexistir con la experiencia profesional y las demandas de la vida cotidiana.

¡Gracias por llegar hasta aquí!


Thursday, February 13, 2025

Naming Things: The Hardest Problem in Software Engineering

 


Week #9: Seguridad

 

Defensa en produndidad

  • Leyes del Reino (Políticas y procedimientos): El conjunto de normas y regulaciones que gobiernan la operación y el comportamiento dentro del castillo, asegurando que cada entidad actúe de acuerdo con los estándares y objetivos del reino.
  • Castillo y terreno (Físico): La estructura y localización definen las primeras barreras y estrategias defensivas
  • Murallas exteriores (Perímetro): Sirven como una protección primaria, evitando accesos no deseados.
  • Pasadizos secretos (Redes): Canales de comunicación y conexión entre diferentes áreas y recursos.
  • Sala de estrategias (Hosts): El lugar centralizado donde se procesa información y se orquestan los movimientos y decisiones.
  • Guardias y llaves (Aplicaciones): Gestionan quién puede y no puede entrar basado en credenciales y permisos.
  • Cámara del tesoro (Datos): El activo más valioso, que se protege y se resguarda con extrema precaución y seguridad.




Puntos de conexión (endpoints)

  • Por defecto: Riesgos de exposición pública en Azure.
    • Servicios gestionados accesibles vía internet.
    • Recursos críticos visibles públicamente (una BD, por ejemplo)
  • Desafío: ¿Cómo limitar o eliminar esta exposición pública?
  • Solución: Mitigando la exposición pública
    • Puntos de conexión (endpoints) de servicio: Protección adicional sin eliminar el acceso público.
    • Puntos de conexión (endpoints) privados: Conexión segura a través de red privada, minimizando la exposición pública.

Puntos de conexión (endpoints) de servicio

  • Conectar de forma privada una subred VNet a los servicios de Azure
    • Conexión directa desde la subred a los servicios de Azure
    • La conexión se realiza a través de la infraestructura privada de Microsoft (no a través del internet público).


  • Configurar el servicio para permitir tráfico únicamente desde una subred con el punto final del servicio habilitado.
    • También se puede restringir el acceso a direcciones IP públicas específicas



Limitaciones de los endpoints de servicio

  •  Acceso seguro únicamente para redes virtuales (VNets)
    • No hay acceso privado desde las instalaciones locales.
    • Se debe permitir el acceso desde las instalaciones físicas a través de la IP pública.
  • El endpoint público del servicio todavía existe
    • No es completamente privado
  • Los endpoints de servicio proporcionan acceso a un servicio completo
    • Por ejemplo, proporciona acceso privado a todo Azure Storage, no sólo a una única cuenta de almacenamiento

Puntos de conexión (endpoints) privados

Los endpoints privados en Azure permiten a los usuarios tener conexiones seguras y privadas desde una red virtual a los servicios gestionados de Azure, como Azure Storage o Azure SQL Database.


  • Interfaz de red gestionada: Un endpoint privado está asociado con una "interfaz de red gestionada" (NIC), que es un recurso que permite que una red virtual se comunique con el servicio Azure a través de una dirección IP privada.
  • Puedes deshabilitar completamente el acceso público a un servicio conectado: Asegurando que solo se pueda acceder a él desde la red virtual a través del endpoint privado.
  • Disponible a través de redes conectadas: Los servicios con endpoints privados pueden ser accedidos no solo desde la red virtual en la que se creó el endpoint, sino también desde redes que estén conectadas a ella, como otras redes virtuales o redes locales conectadas a través de VPN o Azure ExpressRoute.

Caso práctico - Contexto

  • Conexión VPN desde la oficina: Establecemos una conexión VPN segura desde nuestra ubicación (oficina) a una VNet en Azure.
  • Acceso a Azure SQL: Necesitamos acceder de manera segura y privada a una base de datos Azure SQL que contiene información sensible, minimizando cualquier exposición a riesgos de seguridad.


Caso práctico - Problema del contexto expuesto

Exposición al internet público: Acceder directamente a la base de datos desde la oficina utilizando el internet público implica riesgos de seguridad y exposición de datos sensibles.



Caso práctico - Solución de la problemática

Solución: Uso de un endpoint privado
  • Conexión privada: Utilizamos un punto final privado para conectar nuestra VNet directamente y de manera privada con la base de datos Azure SQL.
  • Acceso seguro desde la oficina: Este método permite un acceso seguro y directo desde la oficina a través de la conexión VPN establecida previamente, sin pasar por el internet público.
  • Desactivar acceso público: Opcionalmente, podemos desactivar completamente el acceso público a la base de datos Azure SQL.


Azure Key Vault

Azure Key Vault es un servicio en la nube para el almacenamiento de los secretos y el acceso a estos de forma segura.



  • Seguridad del hardware: Ni siquiera Microsoft puede acceder a las claves que contiene.
  • Aislamiento de aplicaciones: Una aplicación no puede compartir secretos ni acceder a los secretos de otra aplicación.
  • Escalabilidad global: Escala a nivel global como cualquier otro servicio administrado de Azure.

Caso práctico de Azure Key Vault





Microsoft Defender for Cloud (anteriormente Azure Security Center)

Microsoft Defender for Cloud es una plataforma de protección de aplicaciones nativas de la nube.
  • Provee alertas contra amenazas 
  • Está preparado para arquitecturas híbridas
  • Cada VM tiene un agente instalado que envía datos
  • Azure analiza la información y alerta si es necesario


Características destacables de Defender for Cloud

  • Evaluación continua: Monitoreo constante de seguridad
  • Políticas personalizables: Adaptadas a las necesidades
  • Detección avanzada: Identificación de amenazas sofisticadas
  • Protección VM: Seguridad para máquinas virtuales
  • Recomendaciones de seguridad: Consejos para mejorar la seguridad
  • Integración completa: Con otras soluciones de seguridad de Microsoft
  • Visualización de seguridad: Paneles de control claros
  • Respuesta a incidentes: Ayuda en la reacción efectiva
  • Cumplimiento regulatorio: Cumplimiento normativo
  • Multinube: Extiende la protección más allá de Azure (AWS, Google Cloud)

Uso de Microsoft Defender for Cloud

  • Define políticas 📘
    • Configura políticas de Azure para monitorizar los recursos
    • Una política es un conjunto de reglas utilizadas para evaluar un recurso.Puedes utilizar políticas predefinidas o crear las suyas propias.
  • Proteger recursos 🔒
    • Protege activamente tus recursos mediante la supervisión de las políticas y sus resultados.
  • Responder ante alertas 🚨
    • Responde a cualquier alerta de seguridad. Investiga todas ellas y luego regresa al paso 1  para definir nuevas políticas que tengan en cuenta la alerta.

Inventario de Microsoft Defender for Cloud



Azure Sentinel

Sentinel es una herramienta SIEM (información de seguridad y gestión de eventos).


Proceso de ejecución de Azure Sentinel:
1. Colección de datos
2. Agregación y normalización
3. Análisis y detección de amenazas
4. Investigación y validación

Beneficios y características de Azure Sentinel

  • Análisis de comportamiento: Sentinel utiliza inteligencia artificial para aprender si algún comportamiento detectado es inusual.
  • Integración con AWS: Esto brinda un enfoque para la detección de amenazas en toda su infraestructura
  • multinube.
  • Escalabilidad: Sentinel puede aprovechar la escala de la nube de Azure y entregar resultados más precisos de manera rápida.
  • Seguridad: Organizaciones muy grandes utilizan Sentinel para proteger su infraestructura de Azure.

Relación Azure Sentinel y Microsoft Defender for Cloud

  • Microsoft Defender for Cloud recolecta datos sobre vulnerabilidades, configuraciones inseguras y amenazas en tus recursos en Azure o entornos híbridos.
  • Estos datos y alertas generados por Defender for Cloud pueden enviarse automáticamente a Azure Sentinel, donde son analizados para detectar amenazas más complejas o ataques en progreso.
  • Azure Sentinel aprovecha la información proporcionada por Defender for Cloud para detectar patrones de ataques más sofisticados y coordinar respuestas automáticas.
  • Microsoft Defender for Cloud: Gestiona seguridad directamente en tus recursos Azure, identifica vulnerabilidades y amenazas específicas.
  • Azure Sentinel (Microsoft Sentinel): Centraliza todas las alertas de seguridad, incluyendo las que provienen de Defender for Cloud, para detectar y responder a incidentes avanzados.


Resumen - Seguridad

  • Defensa en profundidad: Estrategia de seguridad multicapa que protege los datos y sistemas en todos los niveles de la infraestructura de IT.
  • Puntos de conexión (endpoints):
    • Puntos de conexión (endpoints) de servicio: Puntos de acceso que permiten la conectividad controlada a servicios de Azure mediante IP públicas.
    • Puntos de conexión (endpoints) privados: Facilitan conexiones seguras y directas desde una red virtual a servicios de Azure utilizando una IP privada.
  • Azure Key Vault: Administración centralizada de secretos, claves de cifrado y certificados para proteger los datos y mantener la integridad de las aplicaciones.
  • Microsoft Defender for Cloud: Solución integral de seguridad que salvaguarda los recursos de Azure mediante la identificación y mitigación de amenazas y vulnerabilidades.
  • Azure Sentinel: Plataforma de SIEM (Gestión de Eventos e Información de Seguridad) que proporciona visión avanzada y respuesta automatizada frente a amenazas en entornos cloud.




Monday, February 3, 2025

Week #8: Autenticación y Autorización

Autenticación vs. Autorización

  • Autenticación: Proceso de demostrar que es quien dice ser. Esto se logra mediante la verificación de la identidad de una persona o dispositivo.
  • Autorización: Acto de conceder a una parte autenticada permiso para hacer algo. Especifica a qué datos se puede acceder y qué se puede hacer con ello.

Microsoft Entra ID (anteriormente, Azure Active Directory)



Microsoft Entra ID

  • Es un servicio de gestión de identidades en la nube ofrecido por Microsoft.
  • Está construido para trabajar en la nube y ofrece una serie de funcionalidades y características dirigidas a aplicaciones web y móviles.
  • NO debe confundirse con el Active Directory tradicional, que se instala y se ejecuta en servidores locales.

Características destacables de Microsoft Entra ID

  • Gestión de identidades y acceso: Permite la gestión centralizada de usuarios y grupos, capacidades de inicio de sesión único (SSO) y autenticación multifactor (MFA).
  • Desarrollo de aplicaciones: Los desarrolladores pueden utilizar Microsoft Entra ID como plataforma de identidad para sus aplicaciones.
  • Integración de aplicaciones: Fácil integración con aplicaciones y servicios tanto en la nube como en las instalaciones.
  • Seguridad e inteligencia: Ofrece capacidades de seguridad avanzadas mediante Microsoft Entra ID Protection.
  • Otras características: B2B y B2C, acceso condicionado, gestión de privilegios, conformidad.

Inquilino (Tenant)

  • Un inquilino representa una organización.
  • Se trata de una instancia dedicada de Microsoft Entra ID que una organización o un desarrollador de aplicaciones recibe al principio de su relación con Microsoft. Esa relación podría empezar, por ejemplo, por el registro en Azure o Microsoft 365.
  • Cada inquilino de Microsoft Entra es distinto e independiente de otros inquilinos de Microsoft Entra.


Arquitectura híbrida con Microsoft Entra ID




Recomendaciones para el examen de certificación

  • Active Directory (AD) y Microsoft Entra ID NO es lo mismo.
    • Administrar Microsoft Entra ID puede requerir un conjunto de habilidades ligeramente diferentes debido a sus plataformas y capacidades únicas.
  • Cada cuenta de Azure viene con una instancia de Microsoft Entra ID, que es utilizada para gestionar los usuarios y sus accesos a los recursos de Azure.
    • Un inquilino (tenant) es una instancia dedicada de Microsoft Entra ID y simboliza a tu organización dentro de Azure. Es el núcleo de tu presencia en Azure, que aloja a tus usuarios y proporciona las configuraciones y las referencias a tus recursos de suscripción.
  • Un usuario generalmente pertenece a un único tenant pero puede ser invitado como usuario externo ("guest") en otros tenants.


Centro de administración de Microsoft Entra ID

  • Consola de administración moderna donde se gestionan los usuarios, grupos y otras características relacionadas con la identidad de Microsoft Entra ID. 
  • Es el punto central para administrar y configurar características de identidad en el entorno de Azure y Microsoft 365.
  • No hace falta ingresar por el portal de Azure, sino por el siguiente link: https://entra.microsoft.com


Microsoft Entra Connect (anteriormente Azure AD Connect)

Microsoft Entra Connect es una aplicación local de Microsoft diseñada para cumplir y lograr tus
objetivos de identidad híbrida.
  • Sincronización de directorios: Unión entre Active Directory local con Microsoft Entra
  • Inicio de sesión único (SSO): Acceso unificado a aplicaciones locales y en la nube
  • Modos flexibles: Diferentes métodos de sincronización según necesidades
  • Seguridad avanzada: Beneficios como autenticación multifactor y políticas condicionales






Microsoft Entra Connect Health

  • Microsoft Entra Connect Health ayuda a supervisar y a conocer mejor la infraestructura de identidad local, lo que garantiza la confiabilidad de este entorno
  • Es tan sencillo como instalar un agente en cada uno de los servidores de identidad locales.
  • Microsoft Entra Connect Health es una herramienta que monitorea y te avisa si hay problemas con tu conexión entre Active Directory local y Azure AD (o sea, con Entra Connect). Piensa en él como un doctor que cuida tu sistema de sincronización.



Confianza Cero

Confianza cero es una estrategia de seguridad. No es un producto o un servicio, sino un enfoque para diseñar e implementar el siguiente conjunto de principios de seguridad.
  • Comprobación explícita: Realiza siempre las operaciones de autorización y autenticación.
  • Acceso con privilegios mínimos: Limita el acceso de los usuarios.
  • Asunción de que hay brechas: Minimiza el radio de explosión y el acceso a los segmentos.

El modelo de Confianza Cero (Zero Trust):
  • Presupone que hay brechas y, por consiguiente, comprueba todas las solicitudes como si provinieran de una red no controlada.
  • Enseña a "no confiar nunca, a realizar siempre todas las comprobaciones pertinentes”.
  • Está diseñado para adaptarse a las complejidades del entorno moderno que abarca la fuerza de trabajo móvil, protege a las personas, los dispositivos, las aplicaciones y los datos dondequiera que se encuentren.
    • No se basa en la ubicación del usuario, sino en su identidad y credenciales validadas, permitiendo el acceso a recursos autorizados desde cualquier lugar, siempre que se cumplan los criterios de seguridad y autenticación.


Autenticación Multifactor (MFA)

MFA es un procedimiento en el que se solicita a los usuarios durante el proceso de inicio de sesión una forma adicional de identificación. Por ejemplo: un código en el teléfono móvil o una lectura de la huella digital.

El funcionamiento de MFA se basa en exigir uno o varios de los siguientes métodos de autenticación:
  • Algo que conoces: Normalmente una contraseña
  • Algo que tienes: Como un dispositivo de confianza que no se puede duplicar con facilidad.
  • Algo que forma parte de ti: Información biométrica como una huella digital o una detección de rostro.

Beneficios:
  • Protege contra robos de contraseña: Si alguien consigue tu contraseña, no podrá entrar sin el segundo factor.
  • Aumenta la seguridad sin complicarte la vida: Solo toma unos segundos más, pero reduce muchísimo el riesgo de ataques.
  • Es obligatorio en muchas empresas: Especialmente en sectores como salud, banca o tecnología. Microsoft y otras plataformas lo recomiendan fuertemente.
  • Evita accesos no autorizados desde otros países o dispositivos sospechosos: Incluso si alguien intenta entrar desde otro país, el sistema puede bloquearlo o pedir más pruebas.

Acceso condicional

  • El acceso condicional reúne las señales para tomar decisiones y aplicar las directivas de la organización.
  • El acceso condicional es el motor de directivas de Confianza cero de Microsoft que tiene en cuenta señales de varios orígenes al aplicar decisiones de directivas.


Señales comunes del acceso condicional

El acceso condicional tiene en cuenta señales de varios orígenes al tomar decisiones de acceso.
  • Pertenencia a un usuario o grupo.
  • Información de la ubicación de la IP.
  • Dispositivo.
  • Aplicación.
  • Detección de riesgo calculado y en tiempo real.
  • Microsoft Defender para aplicaciones en la nube.


Decisiones comunes

Bloquear acceso
  • Decisión más restrictiva
Conceder acceso
Decisión menos restrictiva, puede requerir una o varias de las opciones siguientes:
  • Requiere autenticación multifactor
  • Requerir intensidad de autenticación
  • Requerir que el dispositivo esté marcado comocompatible
  • Requerir un dispositivo unido a Microsoft Entra
  • Requerir aplicación cliente aprobada
  • Requerir la directiva de protección de aplicaciones
  • Requerir cambio de contraseña
  • Requerir condiciones de uso

Autenticación sin contraseña

  • El uso de características como la autenticación multifactor (MFA) constituye una excelente manera de proteger una organización.
  • Sin embargo, sumar esta capa de seguridad adicional al hecho de tener que recordar las contraseñas suele frustrar a los usuarios.
  • Los métodos de autenticación sin contraseña son más sencillos y cómodos.
  • En lugar de usar una contraseña, puedes utilizar algo que ya tengas contigo, como tu teléfono, combinado con algo que seas, como tu cara, o algo que sepas, como un PIN.

Aumentar comodidad manteniendo seguridad

Eliminación de las contraseña del sistema de login. Remplazado con:
  • Algo que tienes: teléfono móvil / clave
  • Algo que sabes/eres: (en el dispositivo) huella dactilar, escaneo facial, PIN


Opciones de autenticación sin contraseña

Microsoft Azure global y Azure Government ofrecen las siguientes tres opciones de autenticación sin contraseña que se integran con Microsoft Entra ID:



Acceso de usuarios externos

Escenario: Trabajar con un consultor externo para optimizar la configuración de Azure.

¿Soluciones posibles?
  • Crear una cuenta de organización separada para el usuario externo. Esta opción requiere que el usuario externo gestione dos cuentas.
  • Invitar a un usuario invitado al tenant de Azure. El usuario invitado utiliza su cuenta existente como colaborador externo. Colaboración B2B.

Proveedores de identidad
  • Microsoft, Google, Facebook
  • Otros proveedores de identidad externos

Asignar permisos para la cuenta de invitado
  • Principio de mínimo privilegio

Opcional: Asignar usuario invitado a una aplicación

Opcional: Aplicar política de acceso condicional entre inquilinos (cross-tenant)
  • Requerir MFA
  • Requerir dispositivos gestionados aprobados

Escenario: Invitando a un consultor externo (pasos)

  1. Configurar proveedor de identidad (si no es Microsoft).
  2. Invitar a la parte externa.
  3. Después de que el usuario invitado acepte la invitación, asignar permisos.
  4. Opcionalmente: Asignar aplicaciones, aplicar política de acceso condicional.

Azure Active Directory Domain Services (Azure AD DS)

  • Azure AD DS te permite tener las funciones tradicionales de Active Directory en la nube (como GPO, LDAP, unir máquinas a dominio) sin tener que instalar y mantener servidores. Es ideal si estás migrando a la nube, pero aún necesitas esas funcionalidades clásicas.
  • Azure AD DS es un servicio gestionado que facilita la implementación de servicios de dominio en Azure. Autenticación, autorización y la aplicación de políticas de seguridad para aplicaciones y usuarios.
  • Es esencial para las organizaciones que desean migrar aplicaciones al cloud sin perder las funcionalidades del Active Directory Domain Services (AD DS) tradicional.
  • Permite unificar el manejo de las identidades corporativas en entornos híbridos, conectando fácilmente los entornos on-premises con la nube.
  • Soporta protocolos de autenticación antiguos, como NTLM y Kerberos (esenciales para aplicaciones legacy)

¿Cómo funciona Azure AD DS?

  • Azure AD DS es un servicio gestionado
    • No requiere configuración/gestión del sistema operativo
    • Detrás de escena: dos controladores de dominio Windows para alta disponibilidad
  • Crear un nombre de dominio/espacio de nombres único
    • Ejemplo: aadds-nombredelaempresa.com
    • Dominio independiente, no es una extensión del dominio AD local
  • Sincronización unidireccional de Microsoft Entra ID a Azure AD DS
    • Sincroniza usuarios, grupos y credenciales
    • Microsoft Entra ID también se puede sincronizar bidireccionalmente con el AD local

Casos de uso de Azure AD DS

  • Migración de aplicaciones: Para aplicaciones on-premises que dependen del AD DS y se están moviendo a Azure, facilitando la transición sin modificar la autenticación y autorización.
  • Desarrollo y pruebas: Provee un entorno de pruebas a los desarrolladores para construir y testar aplicaciones en un entorno similar al de producción.

Inicio de sesión único (SSO, Single Sign-On)

El inicio de sesión único (SSO) es un método de autenticación que permite a los usuarios iniciar sesión con un conjunto de credenciales en varios sistemas independientes.


SSO en Microsoft Entra ID

La habilitación de SSO facilita el acceso a múltiples aplicaciones
  • Una sola credencial: Acceso con un único nombre de usuario y contraseña
  • Acceso sin interrupciones: Ingreso fluido a todas las aplicaciones vinculadas
  • Mayor seguridad: Reduce riesgos de seguridad asociados con múltiples credenciales
  • Gestión centralizada: Control unificado de políticas y usuarios

Caso práctico del uso de SSO




Resumen - Autenticación y Autorización

  • Microsoft Entra ID: Servicio de identidad y acceso en la nube que conecta múltiples aplicaciones y usuarios.
  • Confianza cero: Enfoque de seguridad que no confía en ningún usuario o sistema por defecto, incluso si están dentro de la red corporativa
  • Autenticación multifactor (MFA): Técnica de seguridad que utiliza dos o más métodos de verificación para autenticar a un usuario.
  • Acceso condicional: Política que permite o niega el acceso a recursos basándose en condiciones específicas como ubicación del usuario o estado del dispositivo.
  • Sin contraseña: Estrategias de autenticación que no requieren de una contraseña tradicional, utilizando otros métodos como biometría o tokens.
  • Acceso de usuarios externos: Gestión y control de acceso de usuarios que no pertenecen directamente a la organización, tales como clientes o socios.
  • Azure Active Directory Domain Services (Azure AD DS): Permite a las organizaciones usar servicios de dominio en la nube, simplificando la administración de identidades y accesos en entornos Azure.
  • Inicio de sesión único (SSO): Permite a los usuarios acceder a múltiples aplicaciones y servicios con una sola autenticación o conjunto de credenciales.



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