Curso: Microsoft Azure INA. Tem02: Módulo 01: Exploración de los servicios de Azure Compute

Para consultar de todos los servicios de Azure: https://azure.microsoft.com/es-mx/services/

Unidad 1: Introducción

Imagine que trabaja como responsable de desarrollo en Tailwind Traders, una empresa especializada en la fabricación de hardware. El equipo de administración le indica que al sitio web de la empresa le ha sido difícil mantenerse al día de las demandas de la aplicación. El equipo quiere investigar una solución. Los servidores front-end web funcionan cerca de su capacidad durante las horas punta del día y necesita una obtener rápidamente una solución en su lugar. Pero hay un problema. No tiene ningún servidor disponible para escalar horizontalmente la aplicación.

Podría solicitar la compra de nuevos equipos, pero el presupuesto de su departamento es reducido. Quiere dar una buena impresión a sus superiores, pero no sabe cuántos servidores son necesarios para este proyecto y no quiere comprar más hardware del necesario. Incluso si pudiera adquirir varios servidores, necesitaría dedicar mucho tiempo en la configuración e instalación de software.

Idealmente, tendría que obtener los recursos que necesita para este trabajo sin demasiada administración y los configuraría para realizarlo. Pagaría solo por los recursos de proceso que necesite mientras los usa.

Este escenario es exactamente lo que puede hacer en Azure. Puede crear recursos de proceso, configurarlos para hacer el trabajo necesario y pagar solo por lo que usa.

Unidad 2: Introducción a los servicios de Azure Compute

  • Azure Compute es un servicio de informática a petición para ejecutar aplicaciones basadas en la nube. 
  • Los recursos están disponibles a petición y normalmente pueden estar disponibles en minutos o incluso en segundos.
  • Solo se paga por los recursos que se usan y solo durante el tiempo que se usan.
  • El servicio es compatible con Linux, Windows Server, SQL Server, Oracle, IBM y SAP.

Azure Virtual Machines

  • Las máquinas virtuales son emulaciones de software de equipos físicos.
  • Incluyen un procesador virtual, memoria, almacenamiento y recursos de red. 
  • Al utilizar un cliente de escritorio remoto, puede usar y controlar la máquina virtual como si se estuviera sentado delante de ella.
  • Virtual Machines proporciona infraestructura como servicio (IaaS)
  • Cuando necesite un control total sobre el entorno y el sistema operativo, las máquinas virtuales son la opción idónea. 
  • Al igual que sucede en un equipo físico, se puede personalizar todo el software que se ejecuta en la máquina virtual. 
  • Esta capacidad resulta útil cuando se ejecuta software personalizado o configuraciones de hospedaje personalizadas.
  • Del servicio:
    • Implemente máquinas virtuales que tengan hasta 416 vCPU y 12 TB de memoria.
    • Consiga hasta 3,7 millones de operaciones IOPS por máquina virtual en almacenamiento local. Aproveche Ethernet de hasta 30 Gbps y la primera implementación de la nube de InfiniBand a 200 Gbps.
    • Cifre la información confidencial, proteja las máquinas virtuales frente a amenazas malintencionadas, proteja el tráfico de la red y satisfaga los requisitos normativos y de cumplimiento.

Azure Virtual Machine Scale Sets

  • Son un recurso de Azure Compute que puede usar para implementar y administrar un conjunto de máquinas virtuales idénticas.
  • Con todas las máquinas virtuales configuradas de la misma manera, los conjuntos de escalado de máquinas virtuales están diseñados para admitir el escalado automático verdadero.
  • No es necesario el aprovisionamiento previo de las máquinas virtuales. Por este motivo, es más sencillo compilar servicios a gran escala cuyo destino sean las cargas de trabajo en contenedores, de macroproceso y macrodatos
  • A medida que la demanda aumente, se pueden agregar más instancias de máquina virtual. A medida que la demanda disminuya, se pueden quitar más instancias de máquina virtual. El proceso puede ser manual, automatizado o una combinación de ambos.
  • Del servicio:
    • Permite crear y administrar un grupo heterogéneo de máquinas virtuales (VM) con equilibrio de carga.
    • Aumente o disminuya el número de máquinas virtuales automáticamente en respuesta a la demanda o en función de una programación que defina.
    • Administre, configure y actualice de forma centralizada miles de máquinas virtuales y proporcione mayor disponibilidad y seguridad para las aplicaciones.
    • Utilice plantillas centralizadas para crear e implementar miles de máquinas virtuales en minutos con escalabilidad automática y equilibrio de carga integrados.
    • Aumente la disponibilidad de las aplicaciones con estado y sin estado en diferentes zonas de disponibilidad y dominios de error a gran escala.

Container Instances y Azure Kubernetes Service

  • Son recursos de Azure Compute que puede usar para implementar contenedores y administrarlos.
  • Los contenedores son entornos de aplicación ligeros y virtualizados
  • Están diseñados para crearse, escalarse horizontalmente y detenerse dinámicamente de forma rápida.
  • Puede ejecutar varias instancias de una aplicación en contenedores en un único equipo host.
  • Del servicio container:
    • Si ejecuta las cargas de trabajo en Azure Container Instances (ACI), puede dedicarse al diseño y la creación de aplicaciones y no a la administración de la infraestructura en la que se ejecutan.
    • Implemente contenedores en la nube con una velocidad y una simplicidad sin precedentes, con un solo comando.
    • Por ejemplo, con Virtual Kubelet, utilice ACI para ampliar elásticamente en ráfagas desde el clúster de Azure Kubernetes Service (AKS) cuando haya picos de tráfico.
    • ACI ofrece aislamiento de hipervisor para cada grupo de contenedores a fin de garantizar que los contenedores se ejecutan de forma aislada sin compartir un kernel.
    • Ampliación elástica en ráfagas con AKS: ACI ofrece cálculos aislados y rápidos para atender los picos de tráfico sin tener que administrar servidores. Por ejemplo, Azure Kubernetes Service (AKS) puede usar Virtual Kubelet para aprovisionar pods en ACI que se inician en segundos. Esto permite que AKS se ejecute con tan solo la capacidad suficiente para la carga de trabajo promedio. A medida que se agote la capacidad del clúster de AKS, escale horizontalmente pods adicionales en ACI sin tener que administrar los servidores adicionales.
    • Aplicaciones basadas en eventos con Azure Logic Apps: Combine ACI con el conector de Logic Apps para ACI, Azure Queue y Azure Functions para crear una infraestructura robusta capaz de escalar horizontalmente contenedores a petición de manera elástica. Con Azure Container Instances, puede ejecutar tareas complejas capaces de dar respuesta a los eventos.
    • Trabajos de procesamiento de datos: Use Azure Container Instances para el procesamiento de datos cuando los datos de origen se ingieren, procesan y colocan en un almacén duradero tal como Azure Blob Storage. Al procesar los datos con ACI en lugar de máquinas virtuales aprovisionadas estáticamente, puede conseguir un importante ahorro de costos gracias a la facturación por segundo.
  • Del servicio Kubernete:
    • Implemente y administre fácilmente aplicaciones en contenedores con un servicio de Kubernetes totalmente administrado
    • Azure Kubernetes Service (AKS) ofrece Kubernetes sin servidor, una experiencia de integración y entrega continuas (CI/CD) integrada y seguridad y gobernanza de nivel empresarial.
    • Aprovisionamiento elástico de capacidad sin necesidad de administrar la infraestructura y con la capacidad de agregar desencadenadores y escalado automático controlado por eventos mediante KEDA
    • Experiencia de desarrollo de un extremo a otro más rápida con las Herramientas de Kubernetes de Visual Studio Code Azure DevOps y Azure Monitor
    • Las capacidades de autenticación y autorización más exhaustivas usando Azure Active Directory y aplicación de reglas dinámicas entre varios clústeres con Azure Policy
    • Disponible en más regiones de las que ofrece cualquier otro proveedor de nube.

Usos habituales de Azure Kubernetes Service (AKS):

  • Microservicios con AKS: Use AKS para simplificar la implementación y administración de una arquitectura basada en microservicios.
  • DevOps seguro para AKS: DevOps y Kubernetes funcionan mejor juntos. Consiga un equilibrio entre la velocidad y la seguridad, y ofrezca código a gran escala con más rapidez mediante la implementación de prácticas de DevOps seguras con Kubernetes en Azure.
  • Expansión instantánea de AKS con ACI: Use el nodo virtual de AKS para aprovisionar pods en ACI que comienzan en segundos. Esto permite que AKS se ejecute con tan solo la capacidad suficiente para la carga de trabajo promedio.
  • Arquitectura de referencia de Azure IoT: Esta arquitectura de referencia muestra una arquitectura recomendada para aplicaciones de IoT en Azure que usa componentes de plataforma como servicio (PaaS).
  • Entrenamiento de modelos de Machine Learning con AKS: El entrenamiento de modelos usando conjuntos de datos de gran tamaño es una tarea compleja que utiliza muchos recursos. Use herramientas que ya conoce, como TensorFlow y Kubeflow, para simplificar el entrenamiento de modelos de Machine Learning.
  • Escenario de streaming de datos: Use AKS para ingerir y procesar fácilmente un flujo de datos en tiempo real con millones de puntos de datos recopilados por medio de sensores. Lleve a cabo análisis y cálculos con rapidez para desarrollar conclusiones rápidamente en escenarios complejos.

Azure App Service

  • Puede compilar, implementar y escalar de forma rápida aplicaciones de API, móviles y web de nivel empresarial que se pueden ejecutar en cualquier plataforma. 
  • App Service es una oferta de plataforma como servicio (PaaS).
  • Del servicio:
    • Azure App Service posibilita la creación más rápida de aplicaciones mediante un servicio en la nube único que le permite originar aplicaciones web y móviles listas para la empresa de manera rápida y sencilla para cualquier plataforma o dispositivo y realizar implementaciones en una infraestructura en la nube escalable y fiable.
    • Trabaje con .NET.NET Core Node.jsJavaPython o PHP en contenedores o en ejecución en Windows o Linux. 
    • umpla los estrictos requisitos de cumplimiento y seguridad y rendimiento de nivel empresarial con un servicio de confianza y totalmente administrado que controla más de 60 000 millones de solicitudes al día.
    • Obtenga alta disponibilidad con un tiempo de actividad respaldado por un contrato de nivel de servicio (SLA) del 99,95 %.
    • Use Azure Active Directory y otros proveedores de identidades populares para autenticar y autorizar el acceso a la aplicación.
    • Mejorar la accesibilidad con Azure Cognitive Services para la lectura de texto incrustada y la traducción de voz.
    • Cree fácilmente contenido que permite búsquedas con los servicios de búsqueda en la nube con tecnología de IA.
    • Realice una solución de problemas inteligente e interactiva en vivo con App Service diagnostics.
    • Vea el estado y el rendimiento de las aplicaciones con Azure Monitor y Application Insights para tomar decisiones más rápido

Funciones

  • Es una opción ideal si le preocupa solo el código que ejecuta el servicio y no la infraestructura o la plataforma subyacente. Se usan normalmente cuando se debe realizar un trabajo en respuesta a un evento (a menudo a través de una solicitud REST), un temporizador o un mensaje de otro servicio de Azure, y cuando ese trabajo puede completarse rápidamente, en segundos o en menos tiempo.

Unidad 3: Decisión de cuándo usar Azure Virtual Machines

  • Las máquinas virtuales son una opción ideal cuando se necesita lo siguiente:
    • Control total sobre el sistema operativo (SO).
    • Capacidad de ejecutar software personalizado.
    • Usar configuraciones de hospedaje personalizadas.
  • Al seleccionar una imagen de máquina virtual preconfigurada, podrá crear y aprovisionar una máquina virtual en cuestión de minutos. 

Ejemplos de cuándo usar máquinas virtuales

  • Durante las pruebas y el desarrollo. Las máquinas virtuales proporcionan una manera rápida y sencilla de crear distintas configuraciones de sistema operativo y de aplicación. El personal encargado de las pruebas y del desarrollo puede eliminar fácilmente las máquinas virtuales cuando ya no las necesite.
  • Al ejecutar aplicaciones en la nube. La capacidad de ejecutar determinadas aplicaciones en la nube pública.or ejemplo, es posible que una aplicación necesite controlar las fluctuaciones en la demanda. Apagar las máquinas virtuales cuando no las necesite o iniciarlas rápidamente para satisfacer un aumento repentino de la demanda significa que solo paga por los recursos que se usan.
  • A la hora de extender el centro de recursos a la nube. Una organización puede extender las capacidades de su propia red local mediante la creación de una red virtual en Azure y al agregar máquinas virtuales a esa red virtual. Las aplicaciones como SharePoint se pueden ejecutar en una máquina virtual de Azure en lugar de hacerlo de forma local. Esta disposición hace que sea más sencilla o menos costosa de implementar que
  • Durante la recuperación ante desastres. Si se produce un error en un centro de datos principal, puede crear máquinas virtuales que se ejecuten en Azure para ejecutar las aplicaciones críticas y, después, puede apagarlas cuando el centro de datos principal vuelva a estar operativo.

Traslado a la nube con máquinas virtuales

Las máquinas virtuales también son una opción excelente cuando se mueve de un servidor físico a la nube (también conocido como Lift-and-shift). Puede crear una imagen del servidor físico y hospedarla en una máquina virtual con pocos o ningún cambio. Al igual que un servidor físico local, las máquinas virtuales requieren mantenimiento. Por tanto, debe actualizar el sistema operativo y su software.Las máquinas virtuales también son una opción excelente cuando se mueve de un servidor físico a la nube (también conocido como Lift-and-shift). Puede crear una imagen del servidor físico y hospedarla en una máquina virtual con pocos o ningún cambio. Al igual que un servidor físico local, las máquinas virtuales requieren mantenimiento. Por tanto, debe actualizar el sistema operativo y su software.

Escalado de máquinas virtuales en Azure

  • Se pueden ejecutar máquinas virtuales únicas para pruebas, desarrollo o tareas secundarias. 
  • También se pueden agrupar las máquinas virtuales para proporcionar alta disponibilidad, escalabilidad y redundancia.
  • Se puede hacer con dos herramientas:
    • Conjuntos de escalado de máquinas virtuales
    • Azure Batch

¿Qué son los conjuntos de escalado de máquinas virtuales?

  • Los conjuntos de escalado de máquinas virtuales permiten crear y administrar un grupo de máquinas virtuales idénticas, de carga equilibrada. Imagine que está ejecutando un sitio web que permite a los científicos cargar imágenes de astronomía que deben procesarse. Si ha duplicado la máquina virtual, normalmente necesitará configurar un servicio adicional para enrutar las solicitudes entre varias instancias del sitio web. Los conjuntos de escalado de máquinas virtuales pueden encargarse de ello.
  • Los conjuntos de escalado le permiten administrar, configurar y actualizar de forma centralizada un gran número de máquinas virtuales en cuestión de minutos para proporcionar aplicaciones altamente disponibles. 
  • El número de instancias de máquina virtual puede aumentar o disminuir automáticamente según la demanda, o de acuerdo con una programación definida. 

¿Qué es Azure Batch?

  • Azure Batch permite trabajo por lotes paralelos a gran escala y de informática de alto rendimiento (HPC) con la capacidad de escalar a decenas, cientos o miles de máquinas virtuales.
  • Cuando esté listo para ejecutar un trabajo, Batch:
    • Iniciará un grupo de máquinas virtuales de proceso de forma automática.
    • Instalará aplicaciones y datos de almacenamiento provisional.
    • Ejecutará trabajos con tantas tareas como tenga.
    • Identificará errores.
    • Reordenará la cola de trabajo.
    • Reducirá verticalmente el grupo a medida que se complete el trabajo.

Unidad 4: Decisión de cuándo usar Azure App Service

En la investigación sobre Tailwind Traders, ha examinado formas diferentes de virtualizar la aplicación. Otra alternativa consiste en implementar los sitios web front-end de la aplicación en Azure App Service, lo que facilita la respuesta a la demanda de la aplicación.

App Service permite crear y hospedar aplicaciones web, trabajos en segundo plano, back-ends móviles y API RESTful en el lenguaje de programación que prefiera, sin tener que administrar la infraestructura. Ofrece escalado automático y alta disponibilidad. App Service es compatible con Windows y Linux, y permite implementaciones automatizadas desde GitHub, Azure DevOps o cualquier repositorio Git para admitir un modelo de implementación continua.

Esta entorno de plataforma como servicio (PaaS) permite centrarse en el sitio web y la lógica de la API, mientras que Azure se encarga de la infraestructura para ejecutar y escalar las aplicaciones web.

Costos de Azure App Service

  • Se paga por los recursos de Azure Compute que la aplicación usa mientras procesa las solicitudes según el plan de App Service que elija. 
  • El plan de App Service determina la cantidad de hardware dedicado al host. Por ejemplo, el plan determina si el hardware es dedicado o compartido y cuánta memoria se le reserva. Incluso hay un nivel gratuito que puede usar para hospedar sitios pequeños y con poco tráfico.

Tipos de servicios de aplicaciones

  • Con App Service, puede hospedar la mayoría de los estilos de servicio de aplicación más comunes, como los siguientes:
    • Aplicaciones web
    • Aplicaciones de API
    • Trabajos web
    • Aplicaciones móviles
  • App Service controla la mayoría de las decisiones sobre la infraestructura que se tratan en el hospedaje de aplicaciones accesibles desde la web:
    • La implementación y administración se integran en la plataforma.
    • Los puntos de conexión se pueden proteger.
    • Los sitios se pueden escalar rápidamente para controlar cargas de tráfico elevado.
    • El equilibrio de carga integrado y el administrador de tráfico proporcionan alta disponibilidad.
  • Todos estos estilos de aplicación se hospedan en la misma infraestructura y comparten estas ventajas. Esto convierte a App Service en la elección ideal para hospedar aplicaciones orientadas a la web.

Aplicaciones web

  • App Service incluye compatibilidad completa para hospedar aplicaciones web mediante ASP.NET, ASP.NET Core, Java, Ruby, Node.js, PHP o Python. Puede elegir Windows o Linux como sistema operativo del host.

Aplicaciones de API

  • Al igual que al hospedar un sitio web, puede compilar API web basadas en REST mediante el lenguaje y el marco que prefiera. Se obtiene compatibilidad completa con Swagger y la posibilidad de empaquetar y publicar la API en Azure Marketplace. Las aplicaciones producidas se pueden consumir desde cualquier cliente basado en HTTP o HTTPS.

Trabajos web

  • Se puede usar la característica WebJobs para ejecutar un programa (.exe, Java, PHP, Python o Node.js) o un script (.cmd, .bat, PowerShell o Bash) en el mismo contexto que una aplicación web, aplicación de API o aplicación móvil. Los puede programar o ejecutar un desencadenador. Los trabajos web suelen usarse para ejecutar tareas en segundo plano como parte de la lógica de aplicación.

Aplicaciones móviles

  • Use la característica Mobile Apps de App Service a fin de compilar rápidamente un back-end para aplicaciones iOS y Android. Con unos pocos clics en Azure Portal, puede realizar lo siguiente:
    • Almacenar los datos de aplicaciones móviles en una base de datos SQL basada en la nube.
    • Autenticar a clientes con proveedores sociales comunes, como MSA, Google, Twitter y Facebook.
    • Enviar notificaciones de inserción.
    • Ejecutar lógica de back-end personalizada en C# o Node.js.
  • En el lado de la aplicación móvil, hay compatibilidad con el SDK para aplicaciones nativas de iOS y Android, Xamarin y React.

Unidad 5: Decisión de cuándo usar Azure Container Instances o Azure Kubernetes Service

  • A pesar de que las máquinas virtuales son una excelente manera de reducir los costos frente a las inversiones que son necesarias para el hardware físico, están limitadas a un solo sistema operativo por máquina virtual. Los contenedores son una excelente opción si quiere ejecutar varias instancias de una aplicación en un solo equipo host.

¿Qué son los contenedores?

  • Los contenedores son un entorno de virtualización. 
  • Al igual que la ejecución de varias máquinas virtuales en un solo host físico, se pueden ejecutar varios contenedores en un solo host físico o virtual. 
  • Los contenedores son ligeros y están diseñados para crearse, escalarse horizontalmente y detenerse de forma dinámica.
  • Aunque es posible crear e implementar máquinas virtuales a medida que aumenta la demanda de la aplicación, los contenedores están diseñados para permitirle responder a los cambios a petición. 
  • Con los contenedores, puede reiniciar rápidamente en caso de bloqueo o interrupción del hardware.
  • Uno de los motores de contenedor más populares es Docker, que es compatible con Azure.

Comparación de máquinas virtuales con contenedores

https://www.microsoft.com/es-es/videoplayer/embed/RE2yuaq?postJsllMsg=true&autoCaptions=es-es

Administrar contenedores

  • Los contenedores se administran a través de un orquestador de contenedores, que puede iniciar, detener y escalar horizontalmente las instancias de la aplicación, según sea necesario. 
  •  Hay dos maneras de administrar los contenedores basados en Microsoft y Docker en Azure:
    • Azure Container Instances
    • Azure Kubernetes Service (AKS).

Azure Container Instances

  • Ofrece la forma más rápida y sencilla de ejecutar un contenedor en Azure, sin tener que administrar ninguna máquina virtual o adoptar ningún servicio adicional. 
  • Es una oferta de plataforma como servicio (PaaS) que permite cargar los contenedores, que se ejecutan automáticamente.

Azure Kubernetes Service

  • La tarea de automatizar y administrar una gran cantidad de contenedores (y de interactuar con ellos) se conoce como orquestación. 
  • Azure Kubernetes Service es un servicio completo de orquestación para contenedores con arquitecturas distribuidas y grandes volúmenes de contenedores.

¿Qué es Kubernetes?

https://www.microsoft.com/es-es/videoplayer/embed/RE2yEuX?postJsllMsg=true&autoCaptions=es-es

Uso de contenedores en las soluciones

  • Los contenedores se usan normalmente para crear soluciones mediante una arquitectura de microservicios
  • Esta arquitectura es donde se dividen las soluciones en partes más pequeñas e independientes. 
  • Por ejemplo, se puede dividir un sitio web en un contenedor que hospeda el front-end, otro que hospeda el back-end y un tercero para el almacenamiento.
  • De esta forma, puede separar partes de la aplicación en secciones lógicas que se pueden mantener, escalar o actualizar independientemente.
  • Imagine que el back-end de su sitio web ha alcanzado el límite de su capacidad, pero el front-end y el almacenamiento no están sobrecargados. Podría:
    • Escalar el back-end por separado para mejorar el rendimiento.
    • Decidir utilizar un servicio de almacenamiento diferente.
    • Reemplazar el contenedor de almacenamiento sin que ello afecte al resto de la aplicación.

¿Qué es un microservicio?

En el vídeo siguiente se describen algunos detalles importantes sobre los microservicios.

https://www.microsoft.com/es-es/videoplayer/embed/RE2yual?postJsllMsg=true&autoCaptions=es-es

Unidad 6: Decisión de cuándo usar Azure Functions

Tras consultar a varios de sus colegas desarrolladores en Tailwind Traders, ha determinado que parte de la lógica de aplicación está orientada a eventos. En otras palabras, para una gran cantidad de tiempo, la aplicación espera una entrada determinada antes de realizar cualquier procesamiento. Para reducir los costos, se quiere evitar el tener que pagar por el tiempo que la aplicación espera la entrada. Teniendo esto en cuenta, ha decidido investigar Azure Functions para ver si puede ser de ayuda.

La informática sin servidor es la abstracción de los servidores, la infraestructura y los sistemas operativos. Con la informática sin servidor, Azure se encarga de administrar la infraestructura de servidor, así como de la asignación y desasignación de recursos según la demanda. La infraestructura no es responsabilidad del usuario. El escalado y el rendimiento se controlan automáticamente. Solo se le cobrarán los recursos exactos que use. Tampoco hay ninguna necesidad de reservar capacidad.

La informática sin servidor incluye la abstracción de servidores, un escalado controlado por eventos y la microfacturación:

  • Abstracción de servidores: la informática sin servidor abstrae los servidores en los que se ejecuta. Nunca se reservan instancias de servidor de forma explícita. La plataforma las administra de forma automática. Cada ejecución de función puede ejecutarse en una instancia de proceso diferente. Este contexto de ejecución es transparente para el código. Con la arquitectura sin servidor, se implementa el código, el cual se ejecuta con alta disponibilidad.
  • Escalado controlado por eventos: la informática sin servidor es una opción excelente para las cargas de trabajo que responden a eventos entrantes. Los eventos incluyen desencadenadores mediante lo siguiente:
    • Temporizadores, por ejemplo, si una función tiene que ejecutarse todos los días a las 10:00 UTC.
    • HTTP, por ejemplo, escenarios de API y webhook.
    • Colas, por ejemplo, con procesamiento de pedidos.

En lugar de escribir una aplicación completa, el desarrollador crea una función, la cual contiene código y metadatos sobre sus desencadenadores y enlaces. La plataforma programa automáticamente la función para que se ejecute y escala el número de instancias de proceso según la tasa de eventos de entrada. Los desencadenadores definen cómo se invoca una función. Los enlaces permiten conectarse de manera declarativa a servicios desde el código.

  • Microfacturación: la informática tradicional factura para un bloque de tiempo, como el pago de una tarifa mensual o anual, para el hospedaje de sitios web. Este método de facturación es práctico, pero no siempre es rentable. Incluso si el sitio web de un cliente solo recibe una visita al día, este sigue pagando por tenerlo disponible durante todo el día. Con la informática sin servidor, solo se paga por el tiempo durante el que se ejecuta el código. Si no se produce ninguna ejecución de función activa, no se cobra al cliente. Por ejemplo, si el código se ejecuta una vez al día durante dos minutos, se le cobrará por una ejecución y por dos minutos de tiempo de proceso.

Azure tiene dos implementaciones de proceso sin servidor:

  • Azure Functions: las funciones pueden ejecutar código en prácticamente cualquier lenguaje moderno.
  • Azure Logic Apps: las aplicaciones lógicas están diseñadas en web y pueden ejecutar lógica desencadenada mediante servicios de Azure sin escribir código.

Azure Functions

  • El uso de Azure Functions es ideal si le preocupa solo el código que ejecuta el servicio, pero no la infraestructura o la plataforma subyacentes.
  • Las funciones se usan normalmente cuando se debe realizar un trabajo en respuesta a un evento (a menudo a través de una solicitud REST), un temporizador o un mensaje de otro servicio de Azure, y cuando ese trabajo puede completarse rápidamente, en segundos o en menos tiempo.
  • Las funciones escalan automáticamente según la demanda, para que sean una opción sólida cuando la demanda es variable. Por ejemplo, podría recibir mensajes de una solución de IoT que se usa para supervisar una flota de vehículos de entrega. Probablemente llegarán más datos durante el horario comercial.
  • Con Functions, Azure ejecuta el código cuando se desencadena y desasigna recursos automáticamente cuando la función finaliza. En este modelo, solo se le cobrará por el tiempo de CPU usado mientras se ejecuta la función.
  • Las funciones pueden ser sin estado o con estado. Cuando son sin estado (valor predeterminado), se comportan como si se reiniciaran cada vez que responden a un evento. Cuando son con estado (denominado Durable Functions), se pasa un contexto a través de la función para realizar el seguimiento antes de la actividad.

Azure Logic Apps

  • Las aplicaciones lógicas son similares a las funciones. Ambas permiten desencadenar lógica basada en un evento. Cuando las funciones ejecutan código, las aplicaciones lógicas ejecutan flujos de trabajo diseñados para automatizar escenarios empresariales y compilados a partir de bloques lógicos predefinidos.
  • Todos los flujos de trabajo de aplicación lógica de Azure comienza con un desencadenador, que se activa cuando se produce un evento específico o cuando hay nuevos datos disponibles que cumplen determinados criterios. Muchos desencadenadores incluyen funcionalidades de programación básicas que permiten a los desarrolladores especificar con qué frecuencia se ejecutarán sus cargas de trabajo. Cada vez que el desencadenador se activa, el motor de Logic Apps crea una instancia de aplicación lógica que ejecuta las acciones del flujo de trabajo. Estas acciones también pueden incluir conversiones de datos y controles de flujo, como instrucciones condicionales, instrucciones «switch», bucles y bifurcaciones.
  • Los flujos de trabajo de aplicaciones lógicas se crean mediante un diseñador visual en Azure Portal o en Visual Studio. Los flujos de trabajo se conservan como un archivo JSON con un esquema de flujo de trabajo conocido.
  • Azure proporciona más de 200 conectores y bloques de procesamiento diferentes para interactuar con servicios distintos.
  • También puede crear conectores personalizados y los pasos de flujo de trabajo si el servicio con el que necesita interactuar no está cubierto.
  • Después, se usa el diseñador visual para vincular conectores y bloques. Los datos se pasan a través del flujo de trabajo para realizar el procesamiento personalizado, y todo ello a menudo sin escribir código.
  • Por ejemplo, supongamos que llega un vale a Zendesk. Podría:
    • Detectar la intención del mensaje con Cognitive Services.
    • Crear un elemento en SharePoint para realizar un seguimiento de la incidencia.
    • Si el cliente no se encuentra en la base de datos, agregarlo al sistema Dynamics 365 CRM.
    • Enviar un correo electrónico de seguimiento para confirmar su solicitud.
  • Todas esas acciones podrían plantearse en un diseñador visual, lo que facilita la visualización del flujo de lógica. Por este motivo, es ideal para un rol de analista de negocios.

Comparación entre Functions y Logic Apps

  • Functions y Logic Apps pueden crear orquestaciones complejas. Una orquestación es una colección de funciones o pasos que se ejecutan para realizar una tarea compleja.
    • Con Functions, se escribe código para completar cada paso.
    • Con Logic Apps, se usa una GUI para definir las acciones y cómo se relacionan entre sí.
  • Aquí se indican algunas diferencias comunes entre las dos.

Unidad 7: Decisión de cuándo usar Azure Virtual Desktop

Además de los desafíos que Tailwind Traders ha estado enfrentado con el escalado de aplicación, el administrador le ha pedido que reúna un nuevo equipo de desarrollo de trabajadores remotos.

Esta tarea normalmente requeriría la configuración de varios equipos PC nuevos con todas las herramientas de desarrollo necesarias para el nuevo equipo. Después, tendría que enviarlos a los desarrolladores correspondientes. El tiempo de adquisición, configuración y envío de cada uno de estos equipos sería costoso. Además, los nuevos desarrolladores tienen sus propios dispositivos informáticos que ejecutan una combinación de sistemas operativos Windows, Android y macOS.

Quiere encontrar una manera de acelerar el proceso de implementación para los trabajadores remotos. También quiere mantener los costos de administración al mínimo. Teniendo esto en cuenta, quiere ver cómo Azure Virtual Desktop puede ayudar a su organización.

¿Qué es Azure Virtual Desktop?

  • Azure Virtual Desktop es un servicio de virtualización de escritorios y aplicaciones que se ejecuta en la nube. 
  • Permite que los usuarios usen una versión hospedada en la nube de Windows desde cualquier ubicación. 
  • Azure Virtual Desktop funciona en dispositivos como Windows, Mac, iOS, Android y Linux.

¿Por qué debería usar Azure Virtual Desktop?

Proporción de la mejor experiencia de usuario

  • Los usuarios tienen la libertad de conectarse a Azure Virtual Desktop con cualquier dispositivo a través de Internet.
  • Emplean un cliente de Azure Virtual Desktop para conectarse a sus aplicaciones y escritorios de Windows publicados.
  • Este cliente puede ser una aplicación nativa del dispositivo o el cliente web HTML5 de Azure Virtual Desktop.
  • Puede asegurarse de que las máquinas virtuales (VM) del host de sesión ejecutan aplicaciones y servicios cercanos que se conectan a su centro de datos o a la nube. De este modo, los usuarios siguen siendo productivos y no experimentan tiempos de carga prolongados.
  • El inicio de sesión de usuario en Azure Virtual Desktop es rápido porque los perfiles de usuario están contenedorizados mediante FSLogix. 
  • El perfil de usuario está disponible inmediatamente y aparece en el sistema exactamente como un perfil de usuario nativo.
  • Puede proporcionar una propiedad individual a través de escritorios personales (persistentes). Por ejemplo, puede que quiera proporcionar escritorios remotos personales a los miembros de un equipo de ingeniería. Después, estos miembros pueden agregar o quitar programas sin que afecte a otros usuarios en ese escritorio remoto.

Aumento de la seguridad

  • Azure Virtual Desktop proporciona administración centralizada de la seguridad de los escritorios de los usuarios con Azure Active Directory (Azure AD). Puede habilitar la autenticación multifactor para proteger los inicios de sesión de los usuarios. También puede proteger el acceso a los datos mediante la asignación a los usuarios de controles de acceso basados en roles (RBAC) detallados.
  • Con Azure Virtual Desktop, los datos y las aplicaciones se separan del hardware local y se ejecutan en un servidor remoto. Se reduce el riesgo de dejar los datos confidenciales en un dispositivo personal.
  • Las sesiones de usuario están aisladas en entornos de una o varias sesiones.
  • Azure Virtual Desktop también mejora la seguridad gracias al uso de tecnología de conexión inversa. Este tipo de conexión es más seguro que el Protocolo de escritorio remoto. No abrimos puertos de entrada a las máquinas virtuales del host de sesión.

¿Cuáles son algunas de la principales características de Azure Virtual Desktop?

Administración simplificada

  • Utilice Azure AD y RBAC para administrar el acceso a los recursos.
  • obtendrá herramientas para automatizar las implementaciones de máquinas virtuales, administrar las actualizaciones de máquinas virtuales y proporcionar recuperación ante desastres 
  • Usa Azure Monitor para la supervisión y las alertas

Administración del rendimiento

  • Azure Virtual Desktop ofrece opciones para equilibrar la carga de los usuarios en los grupos de hosts de máquinas virtuales. 
  • Los grupos de hosts son colecciones de máquinas virtuales con la misma configuración asignada a varios usuarios. 
  • Para obtener el mejor rendimiento, puede configurar el equilibrio de carga para que se produzca cuando los usuarios inicien sesión (modo de amplitud).Con el modo de amplitud, los usuarios se asignan secuencialmente a través del grupo de hosts para la carga de trabajo. 
  • Para ahorrar costos, puede configurar las máquinas virtuales para el equilibrio de carga en modo de profundidad, donde los usuarios se asignan por completo en una máquina virtual antes de pasar a la siguiente. 
  • Azure Virtual Desktop proporciona herramientas para aprovisionar automáticamente máquinas virtuales adicionales cuando la demanda entrante supera un umbral especificado.

Implementación de sesión múltiple de Windows 10

  • Azure Virtual Desktop permite usar la sesión múltiple de Windows 10 Enterprise, el único sistema operativo basado en cliente de Windows que permite varios usuarios simultáneos en una sola máquina virtual. 

¿Cómo puede reducir costos con Azure Virtual Desktop?

Traiga sus propia licencias

  • Azure Virtual Desktop está disponible sin costo adicional si tiene una licencia de Microsoft 365 válida. Pague solo por los recursos de Azure que usa en Azure Virtual Desktop.
  • Traiga su licencia de Windows o Microsoft 365 válida para obtener aplicaciones y escritorios de Windows 10 Enterprise y Windows 7 Enterprise sin costo adicional.
  • Si es un cliente apto para la Licencia de acceso de cliente para Servicios de Escritorio remoto de Microsoft, las aplicaciones y los escritorios de Servicios de Escritorio remoto de Windows Server están disponibles sin costo adicional.

Ahorre en costos de proceso

  • Compre licencias de Azure Reserved Virtual Machine Instances de un año o de tres años para ahorrar hasta un 72 %, en comparación con los precios de pago por uso. Puede pagar una reserva por adelantado o mensualmente. Reservations ofrece un descuento en la facturación y no afecta al estado del entorno de ejecución de los recursos.

2.1.1 Exploración de los servicios de Azure Compute

Virtual Machines (VM)

  • Es crear un equipo dentro de un equipo
  • Permite configurar entornos de sistemas operativos completos sin adquirir un equipo
  • Y permite configurar el hardware según los tipos de necesidades de procesamiento, memoria y almacenamiento.
  • Para esto Azure tiene diferentes tipos de series de maquinas virtuales: A, D, G que están diseñas para utilizar en escenarios específicos para sacar el mayor provecho a los equipos de cómputo
  • Por ejemplo a las A y D son bastantes económicas y son para cargas de trabajo que no requieren mucho procesamiento de cómputo (bases de datos pequeñas, servidores de pruebas)
  • Las «D» son máquinas virtuales de propósito general donde prácticamente podemos tener cualquier aplicación que tenemos en nuestro computador
  • La «G» tienen características de optimización de memoria y mayor almacenamiento ideales para bases de datos de gran tamaño que requieren acceso a datos rápidos
  • La «N» son MV con GPU para maquinas virtuales que requieren gran procesamiento de gráficos como son la simulación, edición de videos y desarrollo de videojuegos

Azure VM Scale Sets

  • Puede que la demanda de recursos puede ser en diferentes periodos de tiempo , por ejemplo cuando en un sitio web de preventa de boletos o aplicaciones educativas cuando inician las labores para esto disponemos del escaldo vertical y horizontal
  • Pero Azure ofrece un servicio que reduce las tareas de administración de este proceso «Azure Scale Stes»
  • Que nos permite crear y administrar un grupo de MV’s con un balanceador de cargas, donde le número de MV puede aumentar o disminuir de forma automática según demanda
  • En la siguiente tabla se puede ver los beneficios de utilizar Azure Scale Stes con Azure Virtual Maquine
  • Lo mejor es que no hay costos relacionados en utilizar Azure Scale Sets, solo se pagaría por los recursos de cómputo añadidos (como las instancias de las MV’s el balanceador de cargas o almacenamiento de discos administrados )

Azure Batch

  • Si lo que necesitamos es ejecutar tareas automatizadas y que se realizan miles o millones de veces podemos utilizar Azure Batch
  • Que es un servicio que nos permite ejecutar actividades que no requieren intervención humana o en función de los recursos disponibles
  • Ejemplos: simulaciones de financieras, generación de informes, análisis y procesamiento de imágenes, análisis de secuencias genéticas o convertir archivos de un formato a otro
  • Ejemplo de 6 pasos:
  • 1: carga de archivos que se van a procesar y pueden ser de cualquier tipo como datos estructurados, archivos de video, scripts o aplicaciones
  • 2: Una vez que los archivos se encuentran en la nube, se configura el servicio de Azure Batch que consiste en crear un grupo de nodos que serian las MV’s que ejecutan las tareas que están en un carga de trabajo, y aquí el servicio Azure batch programa automáticamente las tareas para su ejecución en los nodos del proceso de grupo, donde es muy importante destacar que las tareas se ejecutan de manera paralela
  • 3: Ya con el servicio configurado se descargan los archivos de entrada que van a procesar
  • 4: Cuando ya el servicio se esta ejecutando se le puede solicitar al servicios de batch que supervise el proceso y las tareas
  • 5. al final cuando termine de ejecutar las tareas los resultados de cargas de trabajo se vuelven a cargar en Azure Storage
  • 6: una vez en Azure Storage se pueden descargar a un servidor local

Azure Container

  • Cuando se piensa en la virtualización se piensa en máquinas virtuales pero existen muchos tipos de virtualización y los contenedores es una de ellas
  • En la siguiente imagen se puede ver el funcionamiento de la máquinas virtuales, donde un equipo nos permite ejecutar varias máquinas virtuales
  • Lo importante aquí es notar que cada MV tiene su propio Sistema operativo y estos es que gran parte de los recursos de procesamiento de cómputo se consumen es esos SO’s y no tanto en la aplicación
  • Los contenedores solucionan este problema
  • Ya que se virtualiza el SO y hace que el contenedor persiva que tiene el SO, proporcionando una infraestructura ligera e inmutable para el empaquetado e implementación de las aplicaciones, ya que en el contenedor solo empaquetamos las aplicación, sus dependencias y configuración
  • Esto soluciona muchos problemas a los desarrolladores ya que por ejemplo el problema de que una aplicación no funcione cuando se mueve de un entorno a otro esto queda resuelto ya que al traer empaquetado todo los necesario para ejecutar la aplicación la aplicación se puede probar en varios entornos, mejorando la portabilidad y distribución
  • Los contenedores sirven para:
    • Ejecutar varias instancias de una aplicación en un único equipo host ya que consumen menos recursos de procesamiento de cómputo que las MV
    • Por esto se utilizan para crear aplicaciones en una arquitectura de microservicios
    • Para realizar migración de aplicaciones existentes (lift-and-shift) en la nube
    • Para el procesamiento por lotes (batch) ya que para esto es mas recomendable para reducir costos utilizar contenedores y no MV
    • Aprendizaje automático,

Azure kubernetes Services (AKS)

  • A medida que las aplicaciones crecen para abarcar varios contenedores implementados en varios servidores, administrarlos se vuelve cada vez más complejos, y cuando comienzan a surgir estas preguntas es cuando AKS comienza a servir
  • Kubernetes es una plataforma de código abierto portátil y extensible para la automatización de la implementación, escalado y la administración de cargas de trabajo de contenedores y se puede clasificar como una plataforma de orquestación
  • AKS simplifica la implementación en Azure de clústeres de kubernetes administrados
  • Facilitando la administración de los Kubernetes que manejan las aplicaciones que están en los contenedores
  • Características:
    • Actualización automátizada
    • Recuperación automática
    • Escalado sencillo
  • Con AKS se obtienen las ventajas que se tiene con Kubernetes de código abierto sin la complejidad y ni la sobrecarga de operativa y complejidad que tendría la ejecución de nuestro propio clúster de Kubernet personalizado

Azure App Service

  • Es un servicio basado en HTTP, para hospedar aplicaciones Web y agregar a las aplicaciones web las ventajas de Microsoft Azure como seguridad, el equilibrio de carga , escalado automático y administración automatizada
  • Sino que también poder utilizar otros servicios de Azure, por ejemplo facilitando la integración con los de servicios cognitivos de Azure y teniendo diferentes servicios de almacenamiento

Azure Functions

  • Es un servicio que se puede clasificar como cómputo sin servidor
  • Que permite ejecutar fragmentos, la lógica de negocio y su ejecución se da cuando ocurre un evento
  • Características:
    • Los recursos se escalan según demanda convirtiéndola en una función rentable
    • Se pueden programar con los lenguajes de programación más comunes
  • Escenarios:
    • Responder a cambios de una BD: puede crear funciones que respondan a cambios en una base de datos
    • Crear una pila de mensajes: como notificaciones de una aplicación móvil o servicio REST
    • Procesar datos en tiempo real: como sensores en Iot
    • Ejecutar tareas programadas

Azure Logic Apps

  • También tenemos otro servicio que se basa en eventos
  • Que nos permite crear flujos de trabajo con poco código o ninguno, donde cada flujo esta constituido por bloques lógicos predefinidos
  • Esto permite a los usuarios por medio de una interfaz gráfica integrar aplicaciones, datos, sistemas y servicios utilizando cientos de conectores que están listos para utilizar, así como plantillas con soluciones empresariales ya diseñadas, en las cuales solo se requiere pocas configuraciones
  • Escenarios:
    • Envió de notificaciones en O35: se pueden enviar notificaciones de correo en office 365, conexiones a diferentes aplicaciones como Dinamic, SQL Server y Oracle
    • Traslado de archivos con FTP:
    • Automatización de tareas
    • Flujos de trabajo

Azure Virtual Desktop

  • Windows Virtual Desktop: Es un servicio de virtualización de escritorio y aplicaciones que se ejecutan en la nube
  • Permiten que los usuarios creen y utilizan un aversión de Windows hospedada desde cualquier ubicación
  • Es diferentes a las MV que se ofrecen un aplicación que permite que se acceda al equipo desde una tablet, celulares y tiene una menor administración de recursos para los usuarios finales y administradores de TI
  • Escenarios:
    • Trabajo remoto:
    • Confidencialidad de la información:
    • Pruebas de software y desarrollo:
    • Proyectos de duración limitada: