Informática sin servidor

En este capítulo final, miraremos al futuro con la informática sin servidor. Si usted es un desarrollador, la idea de los contenedores (examinados en el capítulo 19) puede haber sido atractiva porque es menos necesario configurar la infraestructura subyacente para sus aplicaciones. Si es así, le van a encantar los componentes sin servidor de Azure. Y si usted es un administrador de TI que repentinamente se pregunta qué incluirá su trabajo si no hay servidores en el futuro, no se preocupe. La informática sin servidor puede ser más que un término de marketing, ya que muchas de las habilidades de servidor y de infraestructura que usted tiene continuarán aplicándose.
En Azure, dos ofertas principales proporcionan características de cálculo sin servidor: Azure Logic Apps y Azure Function Apps. En este capítulo, exploraremos lo que cada servicio ofrece y cómo pueden trabajar juntos. Para asegurarse de que sus aplicaciones sin servidor puedan comunicarse entre sí y distribuir datos, también analizaremos los servicios de mensajería como Azure Event Grid, Service Bus
y Event Hubs.

¿Qué es la informática sin servidor?
Decir que la informática sin servidor no tiene servidor es erróneo: un servidor, en algún lugar, ejecuta un código para usted. La diferencia de las cargas de trabajo de aplicaciones de IaaS, como las VM de Azure y las cargas de trabajo de PaaS en aplicaciones web, es que las aplicaciones sin servidor suelen desglosarse en unidades discretas más pequeñas de una aplicación. No se ejecuta una sola aplicación grande; en su lugar, ejecuta componentes de la aplicación breves. Si esto suena similar a los contenedores y los microservicios que analizamos en capítulos pasados, no se preocupe que no se está volviendo loco: la informática sin servidor se superpone un montón con esos temas en términos de cómo diseñar sus aplicaciones. Podrías crear microservicios utilizando los enfoques sin servidor que veremos en este capítulo.
En la figura, se muestra cómo una aplicación se desglosa en pequeños componentes que se ejecutan en un proveedor informático sin servidor y proporcionan pequeñas unidades de salida.

En Azure, la informática sin servidor incluye dos servicios principales:
– Azure Logic Apps: para responder a ciertas entradas y desencadenantes, las aplicaciones lógicas le permiten crear flujos de trabajo que pueden procesar
y generar acciones adicionales de apuntar y hacer clic, sin necesidad de código. Las aplicaciones lógicas pueden ser creadas por usuarios sin ninguna experiencia en programación ni infraestructura de TI. En la figura, se muestra un esquema simple de aplicación lógica.

No hay actualizaciones de seguridad que mantener y no hay requisitos de diseño en torno a la alta disponibilidad o la capacidad de escalar. La plataforma Azure se encarga automáticamente de esto. Existen cientos de conectores preconfigurados para aplicaciones lógicas que se integran con servicios como Twitter, Office 365, SharePoint y Outlook. Puede responder a los tweets públicos acerca de su empresa o producto, enviar un mensaje de alerta por correo electrónico cuando se cargue un archivo en SharePoint, o mandar una notificación cuando se reciba un mensaje de un dispositivo de IoT.
– Azure Function Apps: para ejecutar pequeños bloques de código, las aplicaciones de función le permiten utilizar lenguajes de programación comunes como C#, Node.js y Python sin ninguna administración de infraestructura adicional.
Su código se ejecuta en un entorno seguro y aislado, y se le factura basándose en el consumo de memoria por segundo. En la figura, se describe el proceso básico para una aplicación de función.

No hay VM para mantener y no se necesita ninguna aplicación web. No tiene que preocuparse por la alta disponibilidad o la escala, porque el servicio Azure Function Apps se ocupa de estas tareas. Todo lo que proporciona es su código, y la plataforma Azure se asegura de que cada vez que necesite ejecutar ese código,
los recursos estén disponibles para procesar su solicitud.
Las aplicaciones lógicas no requieren código, por lo que tienen una mayor base de usuarios potenciales. Los propietarios de aplicaciones de negocios o los equipos de finanzas y contabilidad, por ejemplo, pueden desarrollar sus propias aplicaciones lógicas sin tener que escribir código. Las aplicaciones de función proporcionan más control y flexibilidad y le permiten manipular eventos de una manera específica
y mejorar la integración con otros componentes de la aplicación.
Tanto las aplicaciones lógicas como las aplicaciones de función proporcionan una manera para que usted realice acciones basadas en desencadenantes sin tener que mantener un entorno de aplicación o infraestructura. Un servidor en algún lugar en Azure ejecuta su aplicación lógica o de función, pero desde su perspectiva como administrador o desarrollador de TI, estas son tecnologías sin servidor.

Plataformas de mensajes Azure
En el capítulo 12, analizamos cómo controlar y solucionar problemas de los recursos de Azure, y en el capítulo 16 vimos cómo utilizar Azure Security Center para detectar problemas y realizar la administración de actualizaciones. Ambas características se basan en flujos de datos, como la extensión de diagnóstico de VM de Azure, para informar a la plataforma lo que está sucediendo en la VM. La plataforma de diagnóstico y control de Azure es genial, y otros servicios como Web Apps, Azure Container Instances y Azure IoT Hub también pueden transmitir diagnósticos de servicio para su análisis central.
Con aplicaciones sin servidor, a menudo necesita una manera de intercambiar mensajes y transmitir datos reales de la aplicación, no solo para solucionar problemas de diagnóstico o actualizaciones de estado. Ahí es cuando necesita una plataforma de mensajería.

Azure Event Grid
¿Qué pasa si solo desea informar sobre ciertas acciones o actividades que se están completando? En los flujos de trabajo de automatización y la informática sin servidor,
la capacidad de realizar una acción en respuesta a un evento es útil, como se muestra en la figura.

Analicemos un par de escenarios que puede utilizar en su pizzería:
– Mensaje recibido en un IoT Hub: un dispositivo de IoT conectado IoT Hub puede informar una lectura de temperatura en un horno o en la ubicación de un vehículo de entrega. IoT Hub está configurado para reenviar una notificación
a Azure Event Grid.
Una función de Azure se suscribe a las notificaciones de Event Grid para IoT Hub y ejecuta un pequeño componente de la aplicación sin servidor para registrar la información en Cosmos DB y enviar una notificación por correo electrónico. También puede utilizar Logic Apps en lugar de Azure Function Apps, según la complejidad que necesita la respuesta de la aplicación.
– Archivo cargado en Azure Storage: el departamento de marketing puede subir
al almacenamiento un cupón promocional para ahorrar dinero en una orden
de pizza. Cuando se crea un nuevo archivo, se envía una notificación
a Event Grid.
Un webhook se suscribe a Event Grid y publica una copia de la imagen de almacenamiento en Twitter. Este tweet permite a los clientes conocer la oferta de la semana o el cupón de ahorro de dinero.
Estos escenarios son para escenarios informáticos sin servidor verdaderamente automático, pero Event Grid también puede integrarse con recursos más tradicionales como VM y aplicaciones web. Por ejemplo, se puede configurar un grupo de recursos para enviar notificaciones a Event Grid. Hay muchas maneras de crear una VM, como en el portal, con la CLI de Azure, o con una plantilla del Administrador de recursos, por lo que desea asegurarse de que la VM esté correctamente configurada para Update Management a través de Security Center. Se puede suscribir un runbook de automatización Azure a Event Grid para recibir notificaciones sobre las operaciones de creación de VM y, a continuación, incorporado en la VM, al servicio de administración de actualizaciones e instalar las actualizaciones de aplicaciones o seguridad necesarias.

Azure Event Hubs y Service Bus
Event Grid puede funcionar con muchos recursos Azure y es muy adecuado para la informática sin servidor con aplicaciones lógicas o aplicaciones de función. Pero las aplicaciones lógicas y las aplicaciones de función pueden ejecutarse basándose en otras entradas de datos, como hubs de eventos o un Service Bus. Veamos las diferencias entre estos diversos servicios de mensajería para que usted pueda decidir cuándo utilizarlos:
– Azure Event Hubs le permite recibir una secuencia de datos, como por ejemplo dispositivos de IoT o telemetría de aplicaciones. Los hubs de eventos proporcionan una plataforma de mensajería de baja latencia capaz de manipular millones de eventos por segundo de múltiples proveedores simultáneos. Los hubs de eventos son un almacén de datos más que una cola de mensajes, y el cliente o la aplicación comprueba los eventos en el hub con la frecuencia que usted desee. Luego, los datos recibidos en el hub de eventos pueden ser procesados por otros servicios, como se muestra en la figura.



– Azure Service Bus permite a los componentes de la aplicación intercambiar datos de mensajes, como las colas de almacenamiento que examinamos en el capítulo 4. Las colas de almacenamiento de información son una implementación anterior y más básica de una plataforma de mensajería en Azure. Un Service Bus proporciona funciones más avanzadas, como pedidos garantizados de mensajes, operaciones atómicas y envío de mensajes en lotes. En la figura, se describe un escenario común para un Service Bus.

Con tres servicios que le permiten transmitir, recibir y procesar datos entre aplicaciones y servicios en Azure, ¿cuál se utiliza y cuándo? En la tabla, se proporciona una recapitulación de alto nivel de Event Grid, Event Hubs y Service Bus.

Azure Logic Apps y Function Apps pueden ser desencadenados por las tres plataformas de mensajería. Vamos a crear un service bus que se puede utilizar para desencadenar una aplicación lógica.

Creación de un Service Bus y su integración con un IoT Hub
En este escenario, utilicemos un Service Bus para transmitir mensajes recibidos de un IoT Hub. El dispositivo Raspberry Pi simulado del capítulo 20 genera lecturas de temperatura y las transmite al IoT Hub. Si la temperatura es superior a 30 °C, se incluye otro dato en el mensaje del dispositivo de IoT: temperatureAlert = true. En la figura, se describe cómo se puede integrar un IoT Hub con el Service bus para procesar mensajes con esta alerta de temperatura.

Pruébelo ahora
Para crear un Service Bus, complete los pasos siguientes:
1 Abra Azure Portal y seleccione Crear un recurso en la parte superior izquierda del menú.
2 Busque y seleccione Service Bus y, a continuación, elija Crear.
3 Proporcione un nombre, como azuremol, y, a continuación, seleccione el nivel básico de precios.
4 Cree nuevo grupo de recursos y proporcione un nombre, como azuremol-chapter21. Asegúrese de que la ubicación sea la misma que para los recursos creados en el capítulo 20, como Este de EE. UU. La interacción entre una cola de Service Bus, una aplicación lógica y una aplicación de función puede tener problemas si no es coherente con sus ubicaciones.
5 Acepte los demás valores predeterminados y elija crear Service Bus.
6 Cuando cree el recurso, seleccione el grupo de recursos y, a continuación, elija el Service Bus que creó en el paso 5.
7 Seleccione Colas; agregue una nueva cola; y escriba un nombre,
como azuremol.
8 Acepte todos los demás valores predeterminados y elija Crear.
Con un Service Bus y una cola creados, ¿cómo configurar un IoT Hub para utilizarlos? En el IoT Hub, define los puntos de conexión como los destinos de los mensajes recibidos de los dispositivos de IoT. Existe un punto de conexión predeterminado en el concentrador de IoT para todos los mensajes que no cumplen los criterios definidos. Puede configurar el Service Bus como punto de conexión para recibir mensajes. A continuación, se define una ruta que incluye criterios para los cuales los mensajes deben dirigirse a un punto de conexión. En este ejemplo, esta ruta requiere cualquier mensaje que contenga temperatureAlert = true en el cuerpo del mensaje que se enrutará al punto de conexión de Service Bus, como se muestra en la figura.

Pruébelo ahora
Para configurar un IoT Hub para enrutar mensajes de alerta de temperatura al Service Bus, complete los pasos siguientes:
1 Seleccione el grupo de recursos del capítulo 20, como azuremolchapter20
y, a continuación, elija el IoT Hub.
2 En mensajería en la barra de navegación a la izquierda, seleccione Enrutamiento de mensajes, y elija para agregar un punto de conexión personalizado para una cola de Service Bus.
3 Proporcione un nombre de punto de conexión, como azuremol.
4 Seleccione el espacio de nombres de la cola de Service Bus, como azuremol
y, a continuación, la cola real.
5 Para dirigir mensajes a este punto de conexión, cree una ruta. En la sección Enrutamiento de mensajes en la barra de navegación a la izquierda, seleccione Rutas y elija para agregar una nueva ruta.
6 Proporcione un nombre, como temperatureAlert.
7 Elija el punto de conexión de Service Bus que creó en el paso anterior,
como azuremol.
8 Para la consulta de enrutamiento, escriba lo siguiente:
temperatureAlert = «true»
9 Cuando esté listo, guarde la ruta.
Ahora tiene un dispositivo Raspberry Pi simulado que envía datos al IoT Hub, así como una ruta para colocar mensajes que contengan una alerta de temperatura en una cola de mensajes del Service Bus. En realidad no tiene una aplicación aún: no hay nada que pueda hacer con los datos de la cola de Service Bus. ¿Qué podría querer hacer con una alerta de temperatura? El envío de una notificación por correo electrónico es un ejemplo común, así que vamos a ver cómo se puede desencadenar una aplicación lógica cada vez que se coloca un mensaje en la cola de Service Bus.

Creación de una aplicación lógica de Azure
Como vimos cuando analizamos aplicaciones lógicas en la sección 21.1, un mensaje recibido de una cola de Service Bus puede utilizarse como un desencadenador para iniciar el proceso de ejecución. Se utiliza el IoT Hub para procesar los mensajes recibidos de los dispositivos de IoT y solo enrutar a los mensajes del punto de conexión de la cola de Service Bus que contienen temperatureAlert = true en el cuerpo del mensaje. Con este enfoque, la aplicación lógica solo se ejecuta cuando se genera una alerta de temperatura.
En la figura, describe lo que hace su aplicación lógica. Cuando se coloca un mensaje en la cola de Service Bus, la aplicación lógica se ejecuta y envía una alerta por correo electrónico.

Pruébelo ahora
Para crear una aplicación lógica, complete los pasos siguientes:
1 Abra Azure Portal y elija Crear un recurso en la parte superior izquierda
del menú.
2 Busque y seleccione Logic App y, a continuación, elija Crear.
3 Proporcione un nombre, como azuremol, y seleccione el grupo de recursos, como azuremolchapter21. Una vez más, elija la misma ubicación que sus otros recursos de IoT del capítulo 20.
4 Acepte los otros valores predeterminados y elija Crear.
5 Cuando haya creado el recurso, seleccione el grupo de recursos y, a continuación, abra la aplicación lógica. Para la opción «Agregar desencadenadores comunes», elija «Cuando se reciba un mensaje en una cola de Service Bus».
6 Proporcione un nombre, como azuremol; luego seleccione su cola de Service Bus, como azuremol.
7 Elija la directiva de Service Bus predeterminada que se indica, como RootManageSharedAccess-Key, y cree la conexión.
8 Seleccione Continuar y, a continuación, elija el nombre de la cola del Service Bus, como azuremol.
9 Acepte los valores predeterminados, como la frecuencia para comprobar si hay mensajes.
10 Elija para agregar un nuevo paso a la aplicación lógica.
11 Para agregar una acción, busque lo que desea hacer. En este ejercicio, busque correo electrónico. Seleccione su proveedor, como Gmail: enviar un correo electrónico, Outlook.com: enviar un correo electrónico, o SMTP: enviar un correo electrónico, como se muestra en la figura.

12 Inicie sesión en su proveedor de correo electrónico para autorizar el enrutamiento del correo y confirme que desea conceder permisos de aplicaciones lógicas para enviar correo electrónico.

13 Proporcione una dirección de correo electrónico de destinatario en la que reciba correo electrónico; un asunto de correo electrónico, como Alerta
de temperatura y un cuerpo del mensaje, como Temperatura alta detectada en el dispositivo de IoT.
14 Guarde la aplicación lógica.
Hagamos una pausa para revisar lo que ha desarrollado en los últimos ejercicios, como se muestra en la figura. Este diseño básico de aplicaciones sin servidor no incluye ningún control que limite la cantidad de mensajes que se enviarán. En la aplicación lógica, puede definir que solo desea enviar un máximo de cinco alertas por correo electrónico y esperar 30 minutos antes de enviar más. Como parte de su diseño de la aplicación, usted debe considerar cómo desea ser notificado de situaciones como esta. También puede configurar la aplicación lógica para leer los datos del mensaje de la cola del Service Bus e incluir la marca de tiempo del mensaje del dispositivo de IoT y la temperatura real registrada. Analizaremos cómo hacer esto en el siguiente ejercicio.

Veamos esta aplicación básica sin servidor en acción.
Pruébelo ahora
Para ejecutar el dispositivo Raspberry Pi simulado y probar su aplicación lógica, complete los pasos siguientes.
1 Abra un navegador web al dispositivo Raspberry Pi IoT simulado del capítulo anterior (https://azure-samples.github.io/raspberry-pi-web-simulator).
2 Compruebe que la cadena de conexión de su IoT Hub se sigue agregando en la ventana de código que configuró en el capítulo anterior.
3 Elija para ejecutar la aplicación.
Las lecturas simuladas del sensor de temperatura y humedad se generan cada dos segundos, y se envía un mensaje al IoT Hub. Puede tomar algunos mensajes antes de que se genere una lectura de temperatura simulada de 30 °C y se muestre en la ventana de salida.
El IoT Hub enruta cualquier mensaje que contenga temperatureAlert: true al punto de conexión de Service Bus. A medida que estos mensajes se colocan en la cola de Service Bus, la aplicación lógica los recoge y envía un correo electrónico a través del proveedor definido. A continuación, recibe un correo electrónico para notificarle de una lectura de alta temperatura. Este proceso solo debe tomar unos segundos en completarse.
4 El dispositivo Raspberry Pi simulado genera mensajes cada dos segundos,
de modo que detenga la aplicación a menos que le gusten un montón de alertas por correo electrónico.
Cuando recibe alertas por correo electrónico, el mensaje no contiene mucha información. Su aplicación lógica no extrae el contenido del mensaje del Service Bus
y formatea la información. Sería genial si el correo electrónico de alerta pudiese incluir el nombre del dispositivo de IoT o la temperatura registrada. ¿Cómo se puede procesar cada mensaje y realizar un análisis sobre este? ¿Qué pasa con el otro servicio sin servidor de Azure que analizamos: Azure Function Apps?

Creación de una Azure Function App para analizar datos del dispositivo de IoT
Para ampliar su aplicación sin servidor actual, puede desencadenar una aplicación de función de Azure desde dentro de su aplicación lógica. Los datos del mensaje del Service Bus se pueden enviar a una aplicación de función para analizar la temperatura registrada. Luego, la notificación por correo electrónico enviada por la aplicación lógica puede incluir información sobre el nombre del dispositivo de IoT y la temperatura registrada. La interacción entre la aplicación lógica y la aplicación de función se muestra en la figura.

Pruébelo ahora
Para crear una aplicación de funciones y activarla desde la aplicación lógica, complete los pasos siguientes:
1 Abra Azure Portal y seleccione Crear un recurso en la parte superior izquierda del menú.
2 Busque y seleccione Function App y, a continuación, elija Crear.
3 Seleccione un grupo de recursos, como azuremolchapter21 y proporcione un nombre, como azuremol. Quiere estar en la misma región que sus recursos anteriores.
Quiere publicar código, considere que también puede publicar una imagen de contenedor Docker (capítulo 19). Ni siquiera necesitaría crear una instancia de contenedor ni ninguna infraestructura adicional; un contenedor de corta duración se ejecutaría según sea necesario y luego se detendrá.
4 Para esta aplicación básica, elija el tiempo de ejecución Node.js, ya que utilizamos algo de JavaScript simple.
5 Tiene tres opciones de planes de hospedaje. Un plan de consumo le permite pagar por ejecución y los recursos que necesita se asignan dinámicamente en tiempo de ejecución. Para aplicaciones más coherentes y listas para la producción, puede utilizar un plan de hospedaje dedicado o premium que proporcione un costo más fijo y predecible. Los planes premium proporcionan características adicionales, como asegurar la conectividad a un conjunto definido de redes virtuales de Azure y tener siempre una instancia lista para evitar algunos retrasos en un escenario de arranque en frío para su aplicación. Para este ejercicio, elija un plan de consumo.
6 Acepte los demás valores predeterminados para crear una cuenta de almacenamiento con nombre y Application Insights y, a continuación,
elija Revisar + Crear.
7 Cuando esté listo, cree la aplicación de función. Tarda un minuto o dos para crear la aplicación de función.
8 Cuando haya creado el recurso, seleccione el grupo de recursos y, a continuación, abra la aplicación lógica del ejercicio anterior y seleccione Editar.
9 En el diseñador de Logic Apps, elija para agregar un nuevo paso.
10 Busque y seleccione Azure Functions y, a continuación, elija la función creada en los pasos anteriores (como azuremol) y elija Crear nueva función.
11 Proporcione un nombre de función, como analyzeTemperature.
12 Elimine cualquier código existente, reemplácelo con el código de los siguientes listados y, a continuación, elija Crear.
Este código también está disponible en el repositorio de GitHub en w.

13 De nuevo en el diseñador de Logic Apps para el paso de la función, seleccione
el cuadro Solicitar cuerpo y elija Mensaje de Service Bus en la lista de contenido dinámico en el lado derecho.
14 En el diseñador de Logic Apps, arrastre y suelte para reordenar los pasos de modo que la acción Enviar un correo electrónico esté por debajo del paso de la aplicación de funciones analyzeTemperature, como se muestra en la figura.
15 Seleccione la acción Enviar un correo electrónico y, a continuación, seleccione el cuadro de texto para el cuerpo del mensaje de correo electrónico.

16 En la función analyzeTemperature, seleccione la respuesta del Cuerpo, como se muestra en la figura.
17 En el diseñador de Logic Apps, elija Guardar.
Su aplicación sin servidor tiene muchas partes móviles. Examinemos lo que desarrolló antes de ejecutar el dispositivo de IoT Raspberry Pi simulado para generar alertas de correo electrónico que incluyan la lectura de la temperatura según lo calcula la aplicación de funciones. En la figura, se proporciona información general de todos los componentes que ahora se utilizan en la aplicación sin servidor.

18 Abra el dispositivo Raspberry Pi simulado en un navegador web y ejecute la aplicación. Cada vez que se genera la alerta de temperatura, la aplicación lógica desencadena la aplicación de funciones para extraer los datos de temperatura del cuerpo del mensaje e incluirlos en la notificación de correo electrónico. Puede tardar unos momentos para que una lectura de temperatura sea superior a 30 °C que luego marca el mensaje con una alerta de temperatura. Cuando se envía esa alerta y se procesa el mensaje, se recibe una notificación por correo electrónico que informa sobre la temperatura.
Respire profundo y dese una palmada en la espalda. ¡Eso fue mucho para hacer en su almuerzo!

Errores de autenticación de su aplicación lógica a la aplicación funciones
Puede ver el historial de ejecución en la ventana de información general de su aplicación lógica en Azure Portal. Si recibe muchos errores repetidos, seleccione uno de los errores para ver más sobre donde se produce el error.
Un problema común es que la aplicación lógica no está autorizada automáticamente
a hablar con la aplicación funciones. La reimplementación de la aplicación lógica suele corregir este error, pero la verdadera solución es probablemente agregar lo que se denomina clave de función al encabezado de la aplicación lógica.
Para obtener esta clave, seleccione su aplicación de funciones y, a continuación, elija la función que creó, como analyzeTemperature. En la opción Administrar, la tecla de función predeterminada puede visualizarse y copiarse. Copie esta clave, regrese a la aplicación lógica y abra el diseñador.
En la función analyzeTemperature, elija agregar un parámetro y, a continuación, agregue un encabezado. Desea enviar un poco de información al principio de la llamada a la aplicación de funciones que envía la clave. El proceso es un poco al revés, ya que introduce en par de claves, pero introduce x-functions-key para la clave, y luego pega su clave de función real como el valor.
La actualización de la integración de la aplicación lógica con la aplicación funcional tarda unos instantes. Después de eso, el historial de ejecución de la aplicación lógica debe mostrar los eventos que funcionan correctamente, y las notificaciones de correo electrónico deben iniciarse.

No deje de aprender
Este capítulo contiene un montón de nuevos conceptos. ¡De hecho, los capítulos anteriores contienen muchas nuevas ideas y tecnologías! No se preocupe si está luchando para entender cómo puede empezar a implementar todos estos servicios Azure, tales como contenedores, IA y ML, y la informática sin servidor. Estos capítulos se diseñaron para mostrar lo que es posible en Azure y demostrar que no es necesario limitarse a realizar una migración lift and shift de las aplicaciones heredadas.
Al empezar a desarrollar y ejecutar aplicaciones en Azure, aproveche la oportunidad de modernizar las aplicaciones y revisar los flujos de trabajo de administración o implementación. Muchos servicios Azure que simplifican y aceleran el ciclo de vida de la aplicación; entonces, no sienta como si tuviera que quedarse con la ejecución de VM porque eso es lo que resulta cómodo en los negocios.
Sí, Azure ofrece muchos servicios nuevos y brillantes, pero en gran parte se basan en componentes básicos de infraestructura analizados en la parte 1 de este libro.
Los desarrolladores pueden empezar a utilizar los últimos enfoques de diseño de aplicaciones que implican Kubernetes o informática sin servidor, y los administradores pueden reutilizar su conocimiento del centro de datos local con conceptos básicos de informática en la nube y técnicas de solución de problemas. A medida que crecen sus necesidades de negocio, Azure puede respaldarlas.
En el capítulo 1, fui abierto y sincero y dije que no cubriría todos los servicios en Azure. Hay muchos más servicios Azure para conocer y más para profundizar acerca de los servicios que vimos en el libro. Espero que haya encontrado al menos algunas áreas que le interesen y lo motiven a explorar un poco más. Mis favoritas incluyen conjuntos de escala de máquinas virtuales, Cosmos DB y Azure Kubernetes Service.

Materiales de aprendizaje adicionales
Soy parcial, pero creo que un buen lugar para continuar aprendiendo acerca de Azure es https://docs.microsoft.com/azure. Esta página web tiene la documentación del servicio principal de Azure, las guías de arquitectura, los recursos de referencia y SDK y los ejemplos. Cada servicio Azure tiene su propio conjunto de inicios rápidos, tutoriales y ejemplos, junto con información conceptual y guías individuales.
Si se pone serio, puede investigar las opciones de certificación para Azure. Los exámenes individuales incluyen Microsoft Azure Administrator (AZ-104), Microsoft Azure Architect Technologies and Design (AZ-303 y AZ-304), y Microsoft Azure Security Technologies (AZ-500). Este libro y los ejercicios de laboratorio que completó cubren muchas de las áreas en las que esos exámenes ponen a prueba sus conocimientos, pero tendría que estudiar algunas áreas adicionales de Azure AD y los procedimientos recomendados de diseño antes de hacer los exámenes. El sitio de Microsoft Learn en
https://docs.microsoft.com/learn proporciona algunas vías de aprendizaje adicionales para las diferentes opciones de certificación de Azure para ayudarle a prepararse.

Recursos de GitHub
En este libro, utilizó ejemplos de código, plantillas y aplicaciones de ejemplo de https://github.com/fouldsy/azure-mol-samples-2nd-edition. Estas muestras deben mantenerse actualizadas a medida que se lancen las nuevas versiones de CLI de Azure; el repositorio de GitHub también incluye ejemplos y plantillas de PowerShell para todos los ejercicios. Este libro se centra en la CLI de Azure en Azure Cloud Shell, pero siéntase libre de explorar cómo se ve cada ejercicio en PowerShell o una plantilla.
Si nota algún problema con los ejemplos, cree un problema en GitHub en
https://github.com/fouldsy/azure-mol-samples-2nd-edition/issues. Todo va muy rápido en Azure, y quiero asegurarme de que siempre tenga los últimos ejemplos de trabajo para ayudarlo a aprender. ¡Siéntase libre de hacer sugerencias, también! Todos los documentos Azure en https://docs.microsoft.com/azure también aceptan comentarios, problemas y ediciones, así que a medida que explore el resto de lo que ofrece Azure, siéntase libre de participar y ayudar a otros a aprender y crecer.

Reflexión final
Respire profundo y dese cuenta de que el cambio es normal. Se lanzan nuevas características y servicios casi diariamente. Azure, al igual que todos los principales proveedores de informática en la nube, puede verse y sentirse un poco diferente de la última vez que lo usó (hace una hora). Si tiene las habilidades fundamentales y la comprensión que espero que haya aprendido en este libro, puede adaptarse y crecer con todas las nuevas oportunidades que Azure ofrece. Siempre tiene algo nuevo que aprender, y me encantaría escuchar lo que desarrolla y ejecuta en Azure.

Y con esta entrada, finalizamos esta serie de entradas relacionadas con contenido basico y sencillo de entender para aprender a usar Azure.
Gracias a todos!!!!