Está en la página 1de 80

La guía de Azure para

desarrolladores

Publicado en agosto de 2018


Agosto Índice 2
2018

03 / 46 /
Introducción Trabajar y comprender IoT

06 / 47
48
Azure IoT Hub
Azure IoT Central
Aceleradores de soluciones de Azure IoT
Introducción a Azure 48
48 Azure IoT Edge
07 49 Obtener más información acerca de Azure IoT
Ejecuta lo que quieras en Azure
07 50 ¿Qué se usa en cada caso?
Seleccionar los servicios adecuados de Azure
13 Crear aplicaciones más rápidas
14
18
Dónde almacenar los datos
Análisis de Azure Data
51 /
22 Tutorial 1: La experiencia de Azure Portal Dónde y cómo implementar los
servicios de Azure
27 / 52 Infraestructura como código
Proteger una aplicación 53 Azure Service Fabric
53 Contenedores de Azure
28 Azure Active Directory 54 Azure Stack
28 Azure API Management 55 Dónde y cuándo implementar
28 Azure AD Application Proxy

56 /
28 Azure Key Vault
29 Managed Service Identity
29 Cifrado
29 Azure Security Center
Microsoft Azure en acción
30 Protección de Azure contra ataques de denegación de servicio
57 Tutorial 1: Desarrollar una aplicación web y una base de
distribuidos
30 datos en Azure
Azure Application Gateway
62 Tutorial 2: Expandir las aplicaciones con Azure Logic Apps y
30 Firewall de aplicaciones web de Azure
30 Cognitive Services
Azure Network Watcher
68 Tutorial 3: Listo para producción
31 Grupos de seguridad de red
74 Tutorial 4: Usar Azure API Management para controlar las
31 Zonas privadas DNS de Azure
31 API y generar documentación
Redes privadas virtuales en varios sitios
31 Azure ExpressRoute
31
32
Equilibradores de carga
Registro y supervisión
78 /
32 Documentación técnica y arquitectónica de seguridad de Azure
Resumen y siguientes pasos

33 /
Agregar inteligencia a tu aplicación

34 Búsqueda de Azure
34 Azure Cognitive Services
39 Azure Bot Service
39 Azure Machine Learning Studio
41 Azure Maps
41 Herramientas para desarrolladores de inteligencia artificial
42 Usar eventos y mensajes en una aplicación
Agosto Introducción 3
2018

Si eres un desarrollador o arquitecto


que quieres empezar a trabajar con
Microsoft Azure, este libro es para ti.

Escrito por desarrolladores para


desarrolladores, esta guía te mostrará
cómo empezar con Azure y qué
servicios puedes utilizar para ejecutar
aplicaciones, almacenar datos,
incorporar inteligencia, desarrollar
aplicaciones de IoT e implementar
soluciones de forma más eficiente
y segura. Antes de profundizar,
veamos lo que el cloud —y Azure,
en particular— pueden lograr.
Agosto Introducción 4
2018

¿Qué es Azure y qué puede servidores. Si un servidor deja de funcionar, otro


toma el control. Si un centro de datos completo
hacer por ti? falla (un escenario improbable), otro toma su lugar.
Todo esto es posible gracias a la enorme escala del
Azure proporciona servicios que pueden ayudarte cloud. De hecho, Microsoft ofrece acuerdos de nivel
a lograr muchas cosas. Estos van desde lo simple, de servicio (SLA) que garantizan que los servicios
como crear una máquina virtual (VM) y cargar estarán en operación y funcionales. Azure ofrece
software o crear una nueva base de datos de SQL; uno de los SLA más altos de la industria por sus
a lo complejo, como implementar flujos de trabajo servicios (Tabla 1-1).
de integración continua (CI) y entrega continua (CD)
o trabajar con contenedores. También puedes ajustar Uno de los argumentos más convincentes a favor del
la base de datos de forma automática o diagnosticar cloud es que ya no es necesario poseer servidores.
fácil y rápidamente problemas con las apps web. Esto quiere decir que la responsabilidad de comprarlos
En el pasado, los desarrolladores tenían que crear y mantenerlos en operación no recae en ti. Además,
continuamente estos y otros proyectos comunes, no tienes que preocuparte por la configuración de
pero ahora están disponibles como servicio. Además, red del servidor. Ya todo está resuelto, incluidas la
puedes utilizar estos servicios con poco esfuerzo: casi temperatura y las condiciones ambientales de los
tan fácil como encender y apagar la luz. Así puedes servidores y el recibo de la electricidad.
concentrarte en los aspectos de tu aplicación que la
hacen única: las características que aportan un valor También es posible aumentar los servicios
añadido real para tus usuarios.   y recursos de forma casi infinita con solo dar unos
cuantos clic en un botón. Eso no puedes hacerlo
El poder del cloud es que los servicios y recursos con recursos on-premises, a menos que estés
son increíblemente completos y resistentes. Es dispuesto a gastar enormes cantidades de dinero en
muy poco probable que existan problemas de equipamiento y personal administrativo. También
ejecución porque el cloud es inteligente y se repara puedes escalar de forma global. Puedes ubicar tus
a sí mismo. Con Azure, hay centros de datos en servicios en cualquier lugar del mundo para ofrecer
todo el mundo llenos de decenas de miles de una experiencia de alto rendimiento a los usuarios,

Tabla 1-1: SLA para servicios de Azure

Servicio  SLA (disponibilidad) 

Azure SQL Database  99,99 % 

Cosmos DB  99,999 % en lectura; 99,99 % en escritura 

Azure Storage  Hasta 99,99 % si se utiliza almacenamiento georreplicado de acceso de lectura (RA-GRS) 

Servicio de apps  99,95 % 

Máquina virtual  99,95 % (cuando se implementan dos instancias) 

Cognitive Services  99,9 % 


Agosto Introducción 5
2018

estén donde estén. Eso también significa que Documentación y guías que resumen la
puedes guardar los datos donde más te convenga. información general de todo lo que incluye Azure
Y algo igual de importante: al utilizar recursos y proporcionan información detallada gracias a la
del cloud, puedes volver a reducir la escala de tus documentación específica de cada característica.
servicios y recursos cuando disminuya la demanda.  
Comunidad de soporte, que contiene respuestas
Además de una gran escalabilidad, servicios a las preguntas de la comunidad y ofrece un lugar
inteligentes listos para usar y la eficiencia del pago para dialogar con la comunidad de Azure.
por uso, el cloud ofrece mayor seguridad. Todos los
días, millones de personas alrededor del mundo @AzureSupport en Twitter, que es operado por
usan el cloud. Por supuesto, también es un blanco hábiles ingenieros de Azure que responden con
habitual de ataque. Los proveedores de prestigio rapidez a los problemas que les presentas por Twitter.
y con experiencia en el cloud como Microsoft
Azure Friday, que da un vistazo a los servicios
reconocen los patrones de uso de los usuarios y características de Azure con el equipo de
normales y los de las personas malintencionadas. ingenieros de Microsoft.
Esto quiere decir que sabemos cómo proteger
frente a los ataques, tanto los más frecuentes como Azure Advisor, que hace recomendaciones de los
los más inusuales. Las herramientas de supervisión recursos de Azure de forma automática, incluido lo
inteligentes, los algoritmos de machine learning y la que necesitas hacer para lograr mayor seguridad
inteligencia artificial permiten a los proveedores y disponibilidad, mejorar el rendimiento y reducir
del cloud detectar los ataques en tiempo real los costes.
y detenerlos en seco. Las décadas de experiencia
Azure Service Health, que te ofrece una
en seguridad y tráfico de gran escala, combinados
visualización personalizada de la salud de tus
con una excepcional experiencia en la seguridad del
servicios de Azure.
sector, convierten el cloud en un entorno mucho más
seguro que cualquier centro de datos on-premises. Stack Overflow, que ofrece respuestas a preguntas
sobre Azure e incluye muchos mensajes activos de
Para obtener más información sobre cómo Azure
miembros de los equipos de ingeniería de Azure.
protege tus aplicaciones y datos, consulta la
documentación oficial de seguridad de Azure y la
información general de seguridad de Azure.

Estamos aquí para ayudarte.


Si necesitas ayuda, estamos aquí de distintas
formas. Tenemos planes de soporte que te dan
acceso a los equipos de soporte técnico de Azure y
proporcionamos otros servicios, tales como guías
de diseño en el cloud y asistencia de planificación
migraciones. En función de tus necesidades, puedes
adquirir un plan de soporte que garantice las
respuestas de los equipos de soporte técnico en
menos de 15 minutos. También puedes obtener
ayuda a través de otros canales, tales como:
Agosto Introducción a Azure 6
2018

Introducción
Te uniste a la comunidad de Azure y ahora
quieres comenzar a desarrollar aplicaciones.
¿Qué necesitas? Realmente, no mucho. Lo más

a Azure importante es contar con una cuenta en Azure para


implementar tu app. Puedes usar las herramientas,
aplicaciones y marcos que elijas, y después puedes
comenzar a ejecutar tus aplicaciones en Azure.
Agosto Introducción a Azure 7
2018

Ejecuta lo que quieras Azure App Service consta de los siguientes elementos:

en Azure Aplicación web: Aplicación web es uno de los


servicios de Azure más usados. Puedes utilizarlo
Azure es ideal para aplicaciones web y API. También para hospedar tus aplicaciones web o tus API. Una
es excelente como host para aplicaciones de aplicación web es básicamente una abstracción
escritorio y móviles. Por ejemplo, podrías utilizarlo de un servidor web, como Internet Information
para autenticar a los usuarios en tu aplicación Services (IIS) o Tomcat, que se utiliza para hospedar
de escritorio o enviar notificaciones push a tu aplicaciones basadas en HTTP.
aplicación móvil. Sea cual sea el escenario que
tengas en mente, Azure puede agregarle valor. Aplicación web puede hospedar aplicaciones que
están escritas en .NET, Node.js, PHP, Java o Python,
Seleccionar los servicios y existen extensiones que se pueden usar para
ejecutar otros lenguajes.
adecuados de Azure
Conocimos una muestra de .NET Core y app
SQL en nuestra sección de ejemplo
Dónde debes hospedar tu aplicación
La primera decisión que tendrás que tomar es
Web App for Containers: Web App for Containers
dónde debes hospedar tu aplicación. Azure ofrece
te ayuda a implementar y ejecutar fácilmente
varias opciones de hosting. Aquí puedes encontrar
aplicaciones web con contenedores a escala. Obtén
un árbol de decisiones para encontrar el servicio
imágenes del contenedor de Docker Hub o de
que mejor se adecua a cada situación.
Azure Container Registry, y Web App for Containers
implementará la aplicación con contenedores con
Máquinas virtuales (VM)
tus dependencias preferidas en producción en
Una de las formas de hospedar una aplicación
cuestión de segundos. La plataforma se encarga
es usar una máquina virtual en Azure Virtual
automáticamente de las revisiones del SO, del
Machine. Esto te da mucho control sobre el modo
aprovisionamiento de capacidad y del equilibrio
de hospedar la aplicación, pero también te obliga
de carga.
a mantener el entorno; por ejemplo, a aplicar
revisiones al sistema operativo (SO) y mantener Aplicación móvil: Aplicación móvil proporciona
actualizados los programas antivirus. un back-end para tus aplicaciones móviles. Puedes
hospedar en Aplicación móvil una API con la que
Puedes, por ejemplo, usar una máquina virtual para
se conectan las aplicaciones móviles a través del
probar la última versión de preview de Visual Studio
SDK cliente multiplataforma. Está disponible para
sin “ensuciar” tu equipo.
Windows, iOS y Android. Aplicación móvil ofrece
Azure App Service características únicas, tales como la sincronización
También puedes hospedar tus aplicaciones en una sin conexión y las notificaciones push que te ayudan
de las principales ofertas de servicio de Azure: a crear una experiencia móvil segura, moderna y de
Azure App Service. Azure App Service es un alto rendimiento.
conjunto de servicios de hosting y orquestación con Puedes escribir tu back-end de Aplicación móvil en
características y capacidades comunes. Por ejemplo, .NET o Node.js.
todos los App Services tienen la capacidad de
proteger una aplicación con Azure Active Directory
y pueden usar dominios personalizados.
Agosto Introducción a Azure 8
2018

Características de Azure App Service Si estás satisfecho con el funcionamiento de la


Azure App Service es uno de los principales nueva versión de tu aplicación en la ranura de
servicios de Azure que se pueden usar para implementación, puedes llevar a cabo un intercambio,
hospedar las aplicaciones. Cada uno de estos el cual cambia la aplicación de la ranura de
servicios ofrece capacidades únicas, pero todos implementación por la de la ranura de producción.
comparten algunas características en común: También puedes cambiar de una ranura de desarrollo
a una ranura de ensayo y luego a la ranura de
Escalado: Azure App Service se ejecuta en planes producción, como se ilustra en la figura 2-1. Antes
de App Service, que son abstracciones de máquinas de hacer esto, la operación de intercambio verifica
virtuales. Una o más máquinas virtuales ejecutan que la nueva versión de tu sitio web se ha preparado
Azure App Service, pero tú no necesitsa saber y está lista para el uso. Cuando esto se confirma, la
cuáles porque Azure se encarga de ellas. Sin operación de intercambio alterna las ranuras y los
embargo, puedes ajustar la escala de los recursos usuarios ven la nueva versión de la aplicación sin
que ejecutan Azure App Service. Puedes elegir tiempo de inactividad. Si quieres, también puedes
un nivel de precios superior (desde gratis hasta revertir la implementación de la nueva versión.
premium) o aumentar el número de instancias de
la aplicación que se ejecutan. Puedes incluso hacer Las ranuras de implementación se usan dentro de
que Azure App Service ajuste automáticamente un entorno como desarrollo, prueba o producción.
el número de instancias en función de una Las ranuras de implementación no se usan como
programación o de métricas como la CPU, la entornos porque residen en el mismo plan de
memoria o la longitud de la cola HTTP. App Service y es preferible que los entornos estén
Ranuras de implementación: Puedes implementar separados por motivos de seguridad, escala,
una nueva versión de tu aplicación en una ranura rendimiento y facturación.
de implementación. En ella podrás probar si
funciona del modo esperado y moverla después a Puedes intercambiar ranuras de implementación
la ranura de producción. Puedes incluso utilizar la manualmente, a través de la interfaz de la línea
característica Pruebas en producción de Azure para de comandos (CLI) de Azure y a través de la API
redirigir un porcentaje del tráfico de la aplicación de administración de Azure. Esto permite que
de producción a una ranura de implementación. herramientas como Visual Studio Team Services
Por ejemplo, podrías desviar un 10 % de los realicen operaciones de intercambio durante un
usuarios a la nueva versión de tu aplicación en la lanzamiento.
ranura de implementación para ver si las nuevas
características están funcionando como se esperaba Una ranura de implementación es otro elemento de
y si los usuarios las están utilizando. Azure App Service (como una aplicación web) que
se ejecuta en el mismo plan de Azure App Service,
junto con el Azure App Service original. Como las
ranuras de implementación se ejecutan en el mismo
plan de Azure App Service que el Azure App Service
original, su uso no conlleva ningún coste adicional.

Entrega continua: Para publicar tu aplicación en


App Services, puedes usar servicios externos como
Visual Studio Team Services, Jenkins u Octopus
Deploy. También puedes usar la característica
de entrega continua (CD) de App Services. Esto
te permite crear una secuencia de compilación-
prueba-lanzamiento en el propio App Service.
El proceso hace lo siguiente:
Figura 2-1: Intercambio de una ranura de implementación
Agosto Introducción a Azure 9
2018

1. Recupera el código fuente más reciente desde Entorno de App Service: En una aplicación web
el repositorio indicado de varios niveles, a menudo se tiene una base de
datos o servicios utilizados por una aplicación en
2. Compila el código según la plantilla elegida
Aplicación web. Lo deseable es que esos servicios
(ASP.NET, Node.js, etc.)
solo estén expuestos a la aplicación y no a Internet.
3. Implementa la aplicación en un entorno de Desde luego, la propia aplicación está a menudo
ensayo y realiza una prueba de carga expuesta a Internet porque proporciona el punto
de acceso para los usuarios.
4. Implementa la aplicación en producción
después de la aprobación (puedes indicar si Para aislar estos servicios de soporte de Internet,
quieres utilizar una ranura de implementación) puedes utilizar una Azure Virtual Network. Este
servicio empaqueta tus servicios de soporte y los
Se conecta a recursos on-premises: Puedes conecta a tu aplicación en Aplicación web de tal
conectarte a recursos externos, tales como modo que los servicios de soporte solo están
almacenes de datos a tus App Services. No es expuestos a la aplicación, no a Internet. En este
necesario que estos recursos se encuentren en Azure; artículo se describe este servicio con más detalle
pueden estar en cualquier sitio, como on-premises, y se muestra cómo usarlo.
en tu propio centro de datos. Puedes conectarte
a servicios on-premises a través de muchos A veces, puedes querer tener aun más control. Tal
mecanismos, en función de tus necesidades. Puedes vez quieres que tu aplicación esté contenida en una
usar Conexiones híbridas de Azure, Azure Virtual red virtual para poder controlar el acceso. Quizás
Networks y Azure ExpressRoute para conectarte a los quieras que otra aplicación la invoque en Aplicación
recursos on-premises. web y que forme parte de tu back-end. En tal caso,
puedes usar un Azure App Service Environment.
Dominios personalizados y certificados de Azure Esto te proporciona una escala muy alta y te da
App Service: Cuando activas una app en Azure control sobre el aislamiento y el acceso a la red. Sin
App Service, expone una URL; por ejemplo, https:// embargo, debes tener en cuenta que App Service
myazurewebsite.azurewebsites.net. Es muy probable Environment solo está disponible para App Services
que quieras usar tu propio dominio personalizado. en el nivel de precios premium.
Para ello, tienes que asignar ese nombre de dominio
a App Services. Así es como lo haces. Nota: Actualmente, App Service Environment no
funciona para Web App for Containers.
Además, puedes asegurarte de que la aplicación
se sirve a través de HTTPS usando un certificado Azure Functions
de capa de sockets seguros (SSL). Puedes traer tu Con Azure Functions, solo tienes que escribir el código
propio certificado o comprar uno directamente que necesitas para una solución sin preocuparte por
desde el Azure Portal. Cuando compras un crear una aplicación completa o la infraestructura
certificado SSL desde el Azure Portal, compras para ejecutarla. Una función es una unidad de lógica
un certificado de Azure App Service, que puedes de código desencadenada por una solicitud HTTP, un
configurar para usarlo en los enlaces de los evento de otro servicio de Azure o una programación.
dominios personalizados. Los enlaces de entrada y de salida conectan el

Descubre cómo comprar y configurar un


certificado en este tutorial
Agosto Introducción a Azure 10
2018

código de la función con otros servicios, como Azure recursos del cloud y on-premises. Logic Apps tiene
Storage, Azure Cosmos DB y Azure Service Bus, disponibles muchos conectores con las API, como
e incluso servicios externos como Twilio y SendGrid. el que permite conectar con Azure SQL Databases,
Con Functions, puedes crear funciones con rapidez SalesForce, SAP, etc. También puedes exponer tus
y hospedarlas en un entorno versátil que realiza el propias API o funciones de Azure como conectores
para usarlas en una aplicación lógica, lo que te
escalado de forma automática.
permitirá realizar fácilmente acciones en sistemas
externos en tu flujo de trabajo o hacer que uno de
Otro aspecto que hace especial a Azure Functions
ellos active tu aplicación lógica.
es que puedes optar por pagar únicamente por las
funciones que se ejecuten sin tener que mantener
Al igual que las funciones de Azure, las
las instancias de computo en ejecución todo el mes.
aplicaciones lógicas no tienen servidor, se escalan
Esto se denomina también sin servidor porque solo
automáticamente y solo se paga por ellas cuando se
tienes que crear tu aplicación sin preocuparte por
ejecutan.
los servidores ni por el escalado de los mismos.
El siguiente ejemplo muestra un flujo de trabajo de
Puedes escribir funciones de Azure en C#, F#, Logic Apps:
JavaScript y en una lista creciente de lenguajes.
1. La aplicación lógica se activa mediante un
correo electrónico que contiene un pedido de
Un ejemplo de una aplicación que usa Functions es
envío que llega a Office 365.
una que activa una función cada vez que se carga un
nuevo archivo de imagen en Azure Blob Storage. Al 2. Con los datos del correo electrónico, la
hacerlo, la función ajustaría el tamaño de la imagen aplicación lógica comprueba la disponibilidad
y la escribiría en otra cuenta de Blob Storage. del artículo pedido en SQL Server.

Los datos de Blob que desencadenaron la función 3. La aplicación lógica envía un mensaje de texto
se pasan a la función como el parámetro myBlob, al teléfono del cliente utilizando Twilio (el
que incluye la dirección URL del Blob. Puedes número de teléfono estaba también en el correo
usar el parámetro de enlace de salida outputBlob electrónico), y en él se indica que el pedido se ha
para especificar el Blob en el que quieres escribir recibido y el artículo se ha enviado.
el resultado. No necesitas escribir el código para
Introducción a Azure Logic Apps
conectar a Blob Storage, solo configurarlo.
Contenedores
Crea tu primera función de Azure usando Azure
Portal Los contenedores son similares que las máquinas
virtuales, pero mucho más ligeras, y puedes
Azure Logic Apps iniciarlas y detenerlas en solo unos segundos.
Puedes organizar la lógica de negocio con Logic Los contenedores también ofrecen tremenda
Apps, automatizar un proceso de negocio o portabilidad, lo cual los hace ideales para
integrar con aplicaciones de software como servicio desarrollar una aplicación localmente y luego
(SaaS). Al igual que en el caso de Azure Functions, hospedarla en el cloud, en pruebas y, más adelante,
Logic Apps se puede activar desde una fuente en producción. Incluso puedes ejecutar los
externa; por ejemplo, un nuevo mensaje en una contenedores on-premises o en otros clouds. El
cola de Azure Storage. Puedes enlazar llamadas de entorno que usas en tu equipo de desarrollo viaja
la API a conectores para crear un flujo de trabajo con el contenedor, por lo que tu aplicación se
(posiblemente complejo) en el que participen ejecuta siempre en el mismo ecosistema.
Agosto Introducción a Azure 11
2018

Al igual que las máquinas virtuales, los contenedores El objetivo de AKS es proporcionar un entorno de
te proporcionan mucho control sobre tu entorno. hosting de contenedor con el uso de tecnologías
Puedes instalar lo que necesites para ejecutar tus y herramientas de código abierto. Por ello, AKS
aplicaciones. Pero, de nuevo, serás responsable de expone los puntos de conexión Kubernetes API
aplicar las revisiones y mantener el SO que se ejecuta estándar. Mediante el uso de estos criterios de
en el contenedor, así como de otros elementos valoración estándar, puedes utilizar cualquier
auxiliares, como los programas antivirus. software que sea capaz de hablar con un racimo de
Kubernetes, como kubectl, helm o borrador.
Hosting de contenedores con Azure Container
AKS reduce la complejidad y la sobrecarga
Instances operativa de administrar un clúster de Kubernetes
Puedes hospedar tu contenedor usando Azure delegando gran parte de esa responsabilidad a
Container Instances. Azure Container Instances Azure. Como un servicio hospedado de Kubernetes,
proporciona capacidad de cómputo aislado y
Azure administra por ti tareas críticas, tales como
rápido para atender el aumento repentino de health monitor y mantenimiento. Además, solo
tráfico sin la necesidad de administrar servidores. pagas por los nodos de agente dentro de los
Por ejemplo, Azure Container Service (ACS) puede clústeres, no por los maestros. Como un servicio
usar Virtual Kubelet para aprovisionar pods dentro gestionado de Kubernetes, AKS proporciona
de ACI que comienzan en segundos. Esto permite actualizaciones de versiones y parches de
que ACS se ejecute con suficiente capacidad para Kubernetes de forma automática, fácil escalamiento
una carga de trabajo promedio. Al agotarse la de clústeres, plano de control hospedado de
capacidad en tu clúster de ACS, puedes escalar autorreparación (maestros), y ahorro de costes
con pods adicionales en ACI sin administrar ningún porque solo pagas por los nodos que se ejecutan
servidor adicional. del conjunto de agentes.
Dado que Azure se hace cargo de la administración
El servicio Azure Container Instances se factura
de los nodos en tu clúster de AKS, hay muchas
por segundo, por CPU virtual, por gigabyte o por
tareas que no tienes que realizar manualmente,
memoria.
como las actualizaciones de clústeres. Y como
Para obtener más información sobre Container
Azure se hace cargo de estas importantes tareas
Instances, consulta Introducción sobre Azure de mantenimiento, AKS no ofrece acceso directo
Container Instances (como en SSH) al clúster.
Escala y orquesta contenedores con Azure Para aprender más sobre AKS, consulta
Kubernetes Service Empieza ahora con Azure Kubernetes Serivce

Otra forma de hospedar contenedores es usar


Azure Batch
Azure Kubernetes Service (AKS). AKS simplifica crear,
Si necesitas ejecutar aplicaciones por lotes a gran
configurar y administrar un clúster de máquinas
escala o de computación de alto rendimiento
virtuales preconfiguradas para ejecutar contenedores.
(HPC) en las máquinas virtuales, puedes elegir
Eso significa que puedes usar tus habilidades o las
Azure Batch. Batch crea y administra una colección
habilidades y el conocimiento de la comunidad
de hasta miles de máquinas virtuales, instala las
para administrar e implementar aplicaciones que se
aplicaciones que deseas ejecutar y programa
ejecuten en contenedores en Azure.
trabajos en dichas máquinas. No necesitas
Con AKS, puedes aprovechar todos los beneficios implementar y administrar las distintas máquinas
de Azure y conservar la portabilidad de las virtuales o clústeres de servidores. Batch programa,
aplicaciones gracias a Kubernetes y Docker. administra y escala automáticamente tus trabajos,
por lo que solo usas las máquinas virtuales que
Agosto Introducción a Azure 12
2018

necesitas. Batch es un servicio gratuito; solo se Azure Service Fabric


paga por los recursos subyacentes consumidos, Otra forma de ejecutar tus aplicaciones en Azure
como las máquinas virtuales, el almacenamiento de es ejecutarlas en Azure Service Fabric. Este es
información y la conexión en red. el servicio que ejecuta muchas de los servicios
de Azure dentro de Microsoft, como Azure SQL
Batch es un servicio idóneo para ejecutar cargas
Database y Azure App Service. Puedes ejecutar
de trabajo paralelas a escala como modelos de
tus aplicaciones en Azure Service Fabric para
riesgo financiero, transcodificación de contenido
lograr alta disponibilidad, a gran escala y realizar
multimedia, VFX y representación de imágenes
actualizaciones continuas.
3D, simulaciones de ingeniería y muchas otras
aplicaciones que hacen uso intensivo de los
Utilizas Azure Service Fabric para ejecutar
recursos informáticos. Utiliza Batch para escalar una
aplicaciones basadas en el microservicio .NET. Estas
aplicación o un script que ya hayas ejecutado en
son soluciones que consisten en muchos servicios
estaciones de trabajo o en un clúster local, o para
pequeños que hablan entre sí y son empleados
desarrollar soluciones SaaS que utilicen Batch como
por las interfaces de usuario y otros componentes.
plataforma de computación.
Service Fabric es ideal para este tipo de soluciones
Empieza a usar Azure Batch en cinco minutos
con estos tutoriales paso a paso

Tabla 2-1: ¿Qué servicios de Azure son los más adecuados para qué tipos de aplicaciones?
web
Aplicaciones

Containers
Web Apps for

Mobile Apps

Functions

Logic Apps

Machines
Virtual

Kubernetes
Servicio de

Service Fabric

contenedor
Instancias de

Batch
Aplicaciones
monolíticas y X X X* X X
N-Tier

Back end de app


X X*
móvil

App de
arquitectura de X X X
microservicios

Orquestación y
flujos de trabajo
X X
de procesos de
negocio

Tareas intensivas
X
de cómputo

Ejecutar la
aplicación en
cualquier lugar X X X X
(incluso on-
premises)

* Para migrar mediante lift-and-shift aplicaciones existentes a Azure.


Agosto Introducción a Azure 13
2018

porque es excelente para ejecutar componentes Figura 2-2: Azure Traffic Manager dirige el tráfico al punto
de aplicaciones con gran rendimiento y muy alta de conexión con mayor rendimiento desde el punto de vista
geográfico.
disponibilidad, al tiempo que las orquesta.

La cualidad única de Azure Service Fabric es que


puedes ejecutarlo en cualquier lugar. Puedes
instalar Service Fabric en tu ordenador de desarrollo
local, on-premises, o en cualquier cloud, incluyendo
Azure. También puedes utilizar Azure Service Fabric
Mesh para ejecutar contenedores en un clúster de
Service Fabric que Microsoft administre como un
servicio. Esto abre muchas posibilidades.

También puedes implementar aplicaciones a Azure Azure Traffic Manager escala en las regiones, lo
Service Fabric y administrarlas con tus herramientas cual ayuda a reducir la latencia y a proporcionar a
favoritas, como Visual Studio y Visual Studio Team los usuarios una experiencia de alto rendimiento,
Services. Además, Service Fabric recientemente sin importar dónde estén. Traffic Manager es
pasó a ser código abierto. un mecanismo de enrutamiento inteligente que
se antepone a, por ejemplo, las aplicaciones de
¿Qué se usa en cada caso? Aplicación web en todo el mundo. Aplicación web
Algunos de los servicios que ejecutan tu aplicación actúa como punto de conexión, y Azure Traffic
en Azure pueden funcionar bien conjuntamente en Manager supervisa el estado y el rendimiento.
una solución, mientras que otros son más adecuados Como se muestra en la Figura 2-2, cuando un
para diferentes propósitos. Esto puede dificultar la usuario accede a tu aplicación, Traffic Manager lo
elección de los servicios que en realidad necesitas. La dirige a la aplicación de Aplicación web que es más
Tabla 2-1 puede ayudarte a identificar qué servicios eficaz en su proximidad.
en Azure son los mejores para tu situación.
Incluir Traffic Manager en tu arquitectura es una
forma excelente de mejorar el rendimiento de tu
Crear aplicaciones más aplicación.

rápidas
Azure Content Delivery Network
Uno de los servicios de Azure que pueden ayudarte
Una vez que la aplicación esté funcionando en
a hacer tu aplicación más rápida es Azure Content
Azure, quieres que su rendimiento sea lo más alto
Delivery Network. Sube tus archivos estáticos
posible. Azure proporciona una gama de servicios
(vídeos, imágenes, JavaScript, CSS e incluso archivos
que pueden ayudarte con eso.
estáticos HTML) a un almacén de datos como Azure
Blob Storage y luego asocia Azure Content Delivery
Azure Traffic Manager
Network. Content Delivery Network replicará a
Muchas aplicaciones modernas tienen usuarios
continuación esos archivos estáticos en cientos de
en todo el mundo. Proporcionar una experiencia
puntos de presencia (PoP) repartidos por todo el
de alto rendimiento para todo el mundo es, como
mundo. Solo tienes que cambiar la referencia a los
poco, un reto. El problema más obvio al que tendrás
archivos estáticos en tu aplicación a una dirección
que enfrentarte es la latencia. La latencia es el
URL diferente. Por ejemplo, donde la referencia era
tiempo que tarda una señal o una solicitud en viajar
~/images/image.png, ahora sería https://example.
hasta un usuario. Entre más lejos estén los usuarios
de tu aplicación, más latencia experimentarán
Agosto Introducción a Azure 14
2018

azureedge.com/image.png. Es algo muy fácil de Cache. La ventaja de la caché es que almacena los
hacer y mejora el rendimiento de la aplicación de datos en un formato sencillo como clave-valor.
las siguientes formas: No necesitas ejecutar una consulta compleja para
obtener estos datos, basta con conocer la clave para
• Reduce el contenido suministrado desde la recuperar el valor. Esto puede mejorar mucho el
aplicación. Ahora lo suministra Content Delivery rendimiento de la aplicación. Así funciona este flujo
Network, lo que libera ciclos de procesamiento de trabajo:
en la aplicación
1. La aplicación necesita algunos datos e intenta
• Lleva el contenido estático físicamente más recuperarlos de la caché.
cerca de tus usuarios distribuyéndolo a puntos
2. Si los datos no están, los obtiene de la base de
de presencia repartidos por todo el mundo
datos y los almacena en la caché.
Content Delivery Network puede resultarte útil en
3. La próxima vez que la aplicación busque esos
aplicaciones web, pero también en aplicaciones datos, los encontrará en la memoria caché, lo
móviles y de escritorio. que evitará un viaje a la base de datos.

Un ejemplo de uso de Content Delivery Network es Azure proporciona caché como servicio con Redis
servir vídeos para una aplicación móvil. Los vídeos Cache. Esto se basa en el proyecto de código
abierto Redis y cuenta ahora con el respaldo de
pueden ser grandes y no deseas almacenarlos en el
los mejores SLA del sector. Es muy eficaz e incluye
dispositivo móvil (tampoco lo desean los usuarios).
opciones avanzadas como la agrupación en
Con Content Delivery Network, se sirven desde
clústeres y la replicación geográfica.
el punto de presencia, lo que también mejora el
rendimiento, ya que está cerca del usuario.
Introducción a Azure Redis Cache

Empieza a usar Azure Content Delivery Network


Dónde almacenar los datos
Azure Redis Cache Los datos son un aspecto muy importante de
Todas las aplicaciones modernas trabajan con datos. cualquier aplicación moderna y tienen todo
Recuperar datos desde un almacén de datos, como tipo de formas y tamaños. Azure proporciona
una base de datos, conlleva normalmente explorar muchos tipos de almacenes de datos que pueden
múltiples tablas o documentos que se encuentran ayudarte a mantener y recuperar los datos en
en algún servidor distante, combinar los resultados cualquier escenario. La Tabla 2-2 en la siguiente
y enviar el resultado al dispositivo que inició la página presenta las opciones de almacenamiento
solicitud. Esto, por supuesto, lleva tiempo y puede disponibles en Azure.
frustrar y molestar a tus usuarios.
Puedes utilizar casi todas las opciones de
Para eliminar algunos de estos “recorridos”, puedes almacenamiento mencionadas en esta sección
almacenar en caché los datos que no cambian a como activadores y enlaces para Azure Functions.
menudo. De esta forma, en lugar de consultar la
base de datos cada vez, podrías recuperar algunos Veamos a detalle cada opción de almacenamiento:
de los datos desde una caché, como Azure Redis
Agosto Introducción a Azure 15
2018

Tabla 2-2: Opciones de almacenamiento de Azure

SQL
Bases de datos

MySQL

PostgreSQL

MariaDB

Cosmos DB

Blob

Tabla

Cola

Archivo

Disco

Data Lake Store

Warehouse
SQL Data
Datos relacionales X X X X X X

Datos no estructurados X X X

Datos semiestructurados X X

Mensajes en cola X

Archivos en disco X

Archivos de alto rendimiento en


X
disco
Almacenamiento de datos de gran
X X X X X X
tamaño
Almacenamiento de datos
X X X X X X X X X X
pequeños

Replicación de datos geográficos X X X X X X X X X X

Consistencia de los datos


X
ajustables

Puedes utilizar SQL Database con tus herramientas


Azure SQL Database favoritas, como SQL Server Management Studio
Si deseas utilizar tablas con filas y columnas para y Entity Framework. A continuación se describen
almacenar datos, Azure SQL Database es una gran algunas de sus características más avanzadas:
opción. Es un sistema de base de datos relacional que • Replicación geográfica, que replica los datos
es similar a Microsoft SQL Server on-premises. Como en otras regiones geográficas en tiempo real
SQL Database se ejecuta en el cloud, está totalmente (Introducción a la replicación geográfica)
administrado, ofrece un alto rendimiento y copias • Enmascaramiento dinámico de datos,
de seguridad automáticas y es escalable, además de que enmascara dinámicamente los datos
contar con muchas funciones avanzadas. confidenciales para determinados usuarios
en tiempo de ejecución (Introducción al
Puedes hacer (casi) lo mismo que con un SQL Server enmascaramiento dinámico de datos)
on-premises. De hecho, las nuevas características • Auditoría, que proporciona una auditoría
de SQL Server primero se integran en Azure SQL completa de todas las acciones que se realizan
Database y después en SQL Server on-premises. en los datos (Introducción a la auditoría de
Azure SQL Database)
Agosto Introducción a Azure 16
2018

• Ajuste automático de base de datos, que supervisa Figura 2-3: Información general de los servicios de Azure
el rendimiento de tu base de datos y la ajusta Storage

de forma automática (Introducción al ajuste


automático de Azure SQL Database)

Las bases de datos de SQL Database son extremadamente


fiables y sólidas y ofrecen un acuerdo de nivel de servicio Blob Tabla Cola
(SLA) que garantiza un tiempo de actividad del 99,99 %. Sin estructurar Semiestructurado Cola Fiable MSMQ
Grande Página/ Esquema flexible
Bloque Mensajes cortos
Azure Databases para MySQL, PostgreSQL y
MariaDB
Azure proporciona bases de datos MySQL, PostgreSQL
y MariaDB como bases de datos administradas, lo cual
significa que solo las activa y no tiene que preocuparse
por la infraestructura subyacente. Al igual que Azure Archivo Disco
SQL Database y Cosmos DB, estas bases de datos Recurso Premium E/S alta
están disponibles universalmente, son escalables, muy compartido de Discos de VM
archivos SMB
seguras y completamente administradas.

Cada una de ellas es adecuada para casos de uso


un poco distintos, pero en términos generales sus • Traffic Management, que envía a los usuarios
funcionalidades se complementan mucho. Usarías Azure a la réplica de datos más próxima a ellos.
Databases for MySQL, PostgreSQL y MariaDB cuando
• Escala global sin límites; solo pagas por
ya utilizas una de sus versiones on-premises y buscas
el rendimiento y el almacenamiento que
aprovechar la administración completa en el cloud.
necesitas.

Azure Cosmos DB • Indexación automática de los datos. Ya no es


Azure Cosmos DB es un nuevo tipo de base de datos necesario mantener ni ajustar la base de datos.
pensada realmente para el cloud. Estas son algunas de Además de todas estas características, Cosmos DB
sus principales características: ofrece diferentes API con las que puedes almacenar
y recuperar datos, como SQL, JavaScript, Gremlin,
• SLA del 99,99 % (99,999 % para operaciones de MongoDB, Almacenamiento de tablas de Azure
lectura) que incluye bajas latencias (menos de 10 ms y Apache Cassandra. Las distintas API gestionan
en las lecturas; menos de 15 ms en las escrituras). los datos de diferentes formas. Puedes utilizar
documentos como datos y también tablas no
• Replicación geográfica, que replica los datos
estructuradas, gráficos y blobs. Tú utilizas la API
en otras regiones geográficas en tiempo real
que se adapten a tus necesidades y Cosmos DB se
(Cómo distribuir los datos globalmente con Azure encarga del resto.
Cosmos DB)j
Disfrutarás de rendimiento de nivel de cloud,
• Niveles de consistencia de datos ajustables, de escalabilidad y fiabilidad, y podrás seguir
manera que puedas elegir consistencia de dato, usando el modelo de programación al que estás
habilitando un verdadero sistema de datos acostumbrado.
distribuidos globalmente. Por ejemplo, puedes
Introducción a Azure Cosmos DB
seleccionar consistencia fuerte, coherencia de los
eventos o consistencia de sesión.
Agosto Introducción a Azure 17
2018

Azure Storage Queue Storage


Azure Storage es uno de los servicios más antiguos, Azure Queue Storage es un tipo poco usual de
eficaces y fiables de Azure. Azure Storage ofrece almacenamiento que se utiliza para almacenar
cinco tipos de almacenamiento que tienen las pequeños mensajes de datos, pero su principal
siguientes características comunes: objetivo es servir como cola. Los mensajes se ponen
• Redundancia geográfica que replica los datos en la cola y otros procesos los toman de ella. Este
en distintos centros de datos para que puedas patrón desvincula el remitente del procesador de
recuperarlos si un centro de datos deja de mensajes y mejora el rendimiento y la fiabilidad.
funcionar en caso de desastre Azure Queue Storage se basa en Microsoft Message
Queueing, que se puede encontrar en versiones
• Cifrado de datos en tiempo de ejecución anteriores de Windows.

• Dominios personalizados
Introducción a Azure Queue Storage

Los cinco tipos de Azure Storage son Blob, tabla,


cola, archivo y disco (Figura 2-3). File Storage
Puedes usar Azure File Storage como una unidad
Blob Storage desde la que se comparten los archivos. Usa el
Azure Blob Storage almacena datos no protocolo de bloque de mensaje de servidor (SMB),
estructurados de gran tamaño, lo que se conoce lo que significa que se puede utilizar con Windows
como “blobs” de datos. Pueden ser archivos de y Linux, y se puede tener acceso a él desde el cloud
vídeo, imagen, audio o texto o incluso archivos de o desde sistemas on-premises. Al igual que los otros
disco duro virtuales (VHD) para máquinas virtuales. tipos de Azure Storage, File Storage es escalable y
económico.
Hay dos tipos de blobs: blobs de página y blobs Introducción a Azure File Storage
de bloque. Los blobs de página están optimizados
para las operaciones aleatorias de lectura y escritura.
Disk Storage
Son perfectos para el almacenamiento de un disco
Azure Disk Storage es similar a File Storage, pero está
duro virtual. Los blobs de bloques están optimizados
pensado específicamente para un alto rendimiento
para cargar eficientemente grandes cantidades de
de E/S. Es perfecto para usarlo como unidad en una
datos. Son idóneos para almacenar archivos de vídeo
máquina virtual que necesite alto rendimiento, por
grandes que no cambian con frecuencia.
ejemplo una máquina virtual en la que se ejecute
SQL Server. Sin embargo, hay que tener en cuenta
Introducción a Azure Blob Storage
que Disk Storage solo está disponible en el nivel de
precios premium de Azure Storage.
Almacenamiento de tablas
Azure Table Storage es un almacenamiento de Almacenamiento de Azure Data Lake
valores clave NoSQL extremadamente rápido y Los almacenes de datos anteriores estaban
barato que puedes usar para almacenar datos en diseñados para el uso normal con aplicaciones o
tablas flexibles. Una tabla puede contener una fila para el uso con máquinas virtuales. Azure Data Lake
que describe un pedido y otra fila que describe Store es un almacenamiento para aplicaciones de
la información del cliente. No necesitas definir el Big Data. Se usa para almacenar grandes cantidades
esquema de datos. Esto hace que Table Storage sea de datos en su formato nativo: estructurados,
muy flexible. no estructurados y cualquier tipo intermedio.
La finalidad de Data Lake Store es albergar los datos
Introducción a Azure Table Storage sin procesar para poder analizarlos o transformarlos
Agosto Introducción a Azure 18
2018

y moverlos. A continuación se muestran las cuando se sabe qué informes se van a mostrar a
principales características de Azure Data Lake: los usuarios y cuál es el esquema de datos de esos
informes. En ese caso, puedes crear esquemas en
• Capacidad de almacenamiento ilimitada. Un
SQL Data Warehouse y rellenarlos con los datos para
archivo puede tener más de un petabyte: 200
veces más de lo que ofrecen otros proveedores que los usuarios pueden examinar dichos datos.
del cloud.
Crea un Azure SQL Data Warehouse
• Rendimiento escalable para permitir grandes
cantidades de análisis en paralelo.
Análisis de Azure Data
• Puedes almacenar datos en cualquier formato
sin un esquema. Casi tan importante como almacenar datos es obtener
Este es un enfoque muy diferente al del almacén de conocimientos al analizarlos. Azure proporciona
datos tradicional, en el que los esquemas de datos muchos servicios para escenarios de análisis de datos,
se definen de antemano. lo que le permite obtener conocimientos valiosos
y útiles de sus datos, no importa qué tan grandes,
Por ejemplo, podrías utilizar Data Lake Store para pequeños o complejos sean.
almacenar todos los datos que obtienes de los
dispositivos del Internet de las cosas (IoT) que Data Factory de Azure
están recopilando datos de temperatura. Puedes Mover y transformar datos no es una tarea trivial.
dejar los datos en el almacén y luego filtrarlos y Azure Data Factory puede ayudarte a hacerlo.
crear una vista de los datos por hora o por semana. Dentro de Data Factory puedes crear un proceso
Almacenar los datos en Data Lake Store es bastante integral que realice todo el proceso de extracción,
económico, así que se pueden guardar años de transformación y carga (ETL).
datos en él a un coste muy bajo.
Data Factory puede mover los datos de forma
Introducción a Azure Data Lake Store con
Azure Portal
confiable de on-premises al cloud, dentro del cloud
o a on-premises. No importa dónde se encuentren
Azure SQL Data Warehouse las fuentes de tus datos. Data Factory también
Puedes usar Azure SQL Data Warehouse si necesitas ofrece muchos conectores que puedes utilizar
una solución de almacenamiento de datos tradicional para conectarse fácilmente con tus fuentes de
totalmente administrada, escalable en tamaño, datos, tales como SQL Server, Cosmos DB, Oracle y
segura y de alto rendimiento. Los datos se almacenan muchos más.
en esquemas predefinidos y se consultan usando el
lenguaje SQL de SQL Server ya conocido. Cuando mueves datos, también puedes filtrarlos
antes de enviarlos a un destino final, limpiarlos o
Dado que SQL Data Warehouse se ejecuta en Azure, transformarlos con una actividad en el proceso, tal
permite el uso de características avanzadas como como Apache Spark Activity. Además, Azure Data
la detección automática de amenazas, que utiliza Factory ofrece estas útiles características:
Machine Learning para entender los patrones de la • Procesos programados
carga de trabajo y servir como sistema de alarma
para avisar de posibles incumplimientos.
Un ejemplo de uso de SQL Data Warehouse es
Agosto Introducción a Azure 19
2018

• Supervisión de procesos Azure Storage y Azure Data Lake Store.

• Migración mediante lift-and-shift de tus Utilizas Azure Data Lake Analytics al crear y enviar
paquetes SQL Server Integration Services (SSIS) tareas que consultan datos, los analizan o los
a Azure Data Factory transforman. Puedes escribir estas tareas en U-SQL,
que es un lenguaje tipo SQL, y expandir U-SQL con
Microsoft R y Python.
Crear una fábrica de datos con Azure Portal

Pagas por las tareas que envías y ejecutas, y el


Azure Analysis Services servicio se escala de forma automática dependiendo
Con Azure Analysis Services, puedes crear un modelo de la capacidad que requieran las tareas. Por
semántico de tus datos al que los usuarios pueden lo general, Azure Data Lake Analytics se utiliza
obtener acceso directamente con herramientas para tareas de análisis de largo plazo en grandes
de visualización como Power BI. El servicio está cantidades de datos.
desarrollado literalmente en herramientas de SQL
Server Analysis Services que se ejecutan on-premises Crea tu primer script U-SQL con Azure Portal
con SQL Server, pero ahora se ejecuta administrado en
el cloud. Esto quiere decir que el servicio es escalable
y que los datos se almacenan de forma redundante. Azure Stream Analytics
Además, puedes pausar el servicio cuando no lo uses, Puedes utilizar el servicio Azure Stream Analytics
reduciendo así los costes. para analizar, consultar y filtrar datos de streaming
en tiempo real. Por ejemplo, cuando recibes un
Con Azure Analysis Services, puedes proporcionar stream de datos de temperatura desde un dispositivo
datos modelados directamente a los usuarios de
de IoT, te dice qué tan cálido está afuera. Podría
forma muy eficiente. Los usuarios pueden consultar
proporcionar la misma temperatura cada segundo
millones de registros en segundos ya que el modelo
por una hora hasta que la temperatura cambie, pero
vive completamente in memory y se actualiza
solo estás interesado en esos cambios. Azure Stream
periódicamente; por ejemplo, todas las noches.
Analytics puede consultar los datos en tiempo real y
Puedes obtener datos en el modelo semántico desde almacenar solo los datos diferenciales en Azure
cualquier lugar, incluso desde fuentes de datos en SQL Database.
el cloud y on-premises. Puedes utilizar Azure Blob
Storage, Azure SQL Databases, Azure SQL Data Stream Analytics puede obtener datos desde
Warehouse y muchos otros servicios como fuentes muchos servicios, incluido Azure Blob Storage,
de datos para el modelo. También puedes utilizar Azure Event Hub o Azure IoT Hub. Puedes analizar
fuentes de datos como las bases de datos on- los datos utilizando un lenguaje simple estilo SQL
premises de Active Directory, Access y Oracle. o un código personalizado. Después de consultar
y filtrar el stream de datos, Stream Analytics puede
Crear un servidor Azure Analysis Services con
Azure Portal producir el resultado en muchos servicios de Azure,
incluidos Azure SQL Database, Azure Storage y Azure
Análisis de Azure Data Lake Event Hub.
Otro servicio de Azure para realizar tareas de análisis
de datos es Azure Data Lake Analytics. Con este Crea una tarea de Stream Analytics con Azure
servicio, puedes analizar, procesar y transformar Portal
cantidades potencialmente masivas de datos de
Agosto Introducción a Azure 20
2018

Azure Time Series Insights Azure Data Lake Store. Databricks también funciona
Puedes utilizar Azure Time Series Insights para con datos de Azure SQL Data Warehouse, Azure
obtener información rápida sobre grandes SQL Database y Azure Cosmos DB. Además, puedes
cantidades de datos típicos de IoT. Este servicio conectar Databricks a Power BI para crear y mostrar
obtiene datos desde Azure Event Hub, IoT Hub y tus paneles de gran calidad.
propias entradas de referencia, y conserva dichos
datos por un tiempo, aproximadamente un año. Ejecuta una tarea de Spark en Azure Databricks
con Azure Portal

Azure Time Series Insights es un servicio superrápido,


Azure HDInsight
así que los usuarios pueden consultar y analizar datos
Azure HDInsight es una plataforma dentro de Azure
mediante la herramienta de visualización tan pronto
para ejecutar servicios administrados y de código
como llegan. Time Series Insights no solo analiza los
abierto para análisis de datos. Puedes utilizarlo para
datos, también los ingresa y conserva por un tiempo.
ejecutar clústeres especializados de tus herramientas
Es similar a Azure Analysis Services, donde los datos
favoritas de código abierto para análisis de datos.
viven en memoria en un modelo para que los usuarios
La ventaja de ejecutar estas herramientas en Azure
puedan consultarlos. Las principales diferencias
HDInsight es que son administradas, lo que significa
son que Time Series Insights está optimizado para
que no tienes que mantener máquinas virtuales ni
IoT, datos basados en tiempo y contiene su propia
actualizar sistemas operativos. Además, pueden
herramienta de visualización de datos.
escalarse y conectarse con facilidad entre sí, con
otros servicios de Azure y con los servicios y fuentes
Explora una demostración del entorno Time de datos on-premises.
Series Insights desde tu navegador
La mayoría de los tipos de clústeres de análisis de
Azure Databricks datos de código abierto especializados en Azure
Azure Databricks te permite ejecutar en el cloud HDInsight utilizan Azure Blob Storage o Azure
un clúster de Databricks administrado y escalable. Data Lake Store para obtener acceder a los datos o
Databricks proporciona una plataforma unificada almacenarlos, dado que estos servicios funcionan
de análisis con una gran variedad de herramientas con el sistema de archivos Hadoop.
y capacidades. En Databricks, ejecutas versiones Potencialmente, puedes ejecutar distintos tipos
optimizadas de Apache Spark para hacer análisis de clústeres masivos especializados. Por ejemplo,
avanzado de datos. puedes ejecutar un clúster Apache Hadoop. Esto te
permite procesas y analizar datos con herramientas
Además del análisis basado en Spark, Databricks de Hadoop como Hive, Pig, Oozie, etc.
ofrece notas interactivas y flujos y espacios de
También puedes lanzar un clúster Apache HBase,
trabajo integrados que puedes utilizar para
el cual brinda una base de datos NoSQL muy veloz.
colaborar con todo el equipo de datos, incluidos los
Los datos se encuentran en realidad dentro de Azure
científicos de datos, ingenieros de datos y analistas
Storage o Azure Data Lake, pero HBase proporciona
de negocios, los cuales tienen acceso a herramientas
una capa de abstracción encima, la cual tiene su
especializadas para sus necesidades específicas.
propia funcionalidad y rendimiento único.

Azure Databricks está completamente integrado con Puedes crear un clúster Apache Storm, que está
Azure Active Directory, lo cual permite implementar diseñado para analizar streams de datos, como Azure
seguridad granular. Con Databricks, realiza análisis Stream Analytics. Además, puedes tener un clúster
de datos basados en Spark con datos que provienen Apache Spark, que ofrece un marco para procesar y
de muchos lugares, tales como Azure Storage y analizar enormes cantidades de datos.
Agosto Introducción a Azure 21
2018

HDInsight también puede ejecutar un clúster Hay más tipos de clúster, así como herramientas que
para Microsoft Machine Learning Server puedes usar dentro de los clústeres. Puedes realizar
(anteriormente, servidor Microsoft R). Esto te permite casi cualquier tarea de análisis y procesamiento de
ejecutar tareas basadas en R para analizar datos. datos con una combinación de estos clústeres, y
Por último, puedes crear un clúster que ejecute todos se administran en el cloud.
Apache Kafka, el cual es un sistema de mensajes
de suscripción-publicación que se utiliza para Extrae, transforma y carga datos con Apache
desarrollar aplicaciones con mecanismos de cola. Hive en Azure HDInsight

La Tabla 2-3 puede ayudarte a escoger los servicios


de Azure adecuados para analizar los datos.

Tabla 2-3: Opciones de análisis de datos en Azure


Data Factory

Analysis Services

Data Lake Analytics

Stream Analytics

Time Series Insights

Azure Databricks

Azure HDInsight

Mover datos de almacén a almacén X

Transformar datos X X X X X X X

Consultar y filtrar datos de streaming X X X

Proporcionar un modelo semántico en


X X X
memoria para los usuarios
Los usuarios pueden consultar datos y crear
X
paneles

Analizar datos para uso posterior X X X


Agosto
Febrero La guíaipsum
Lorem de Azure
dolor
para
sit desarrolladores
amet, consectetur 22
2018 adipiscing elit

01 /
Ahora que has adquirido una noción general de los
servicios disponibles en Azure, profundicemos un
poco con breve tutorial.

Una de las herramientas más importantes de

Tutorial: La Azure es Azure Portal, que se puede encontrar


en https://portal.azure.com/. Esta es la ubicación

experiencia de
central de Azure, en la que puedes hacer todo lo
que quieras con Azure. La mayoría de las cosas que
se pueden hacer en Azure Portal se pueden hacer

Azure Portal también a través de la API de Azure, la interfaz


de la línea de comandos (CLI) de Azure y Azure
PowerShell

Lo primero que verás en Azure Portal es un panel


con mosaicos. Puedes crear y personalizar los
paneles y compartirlos con los miembros del
equipo o reservarlos para tu uso exclusivo.
Agosto Introducción a Azure 23
2018

Mosaicos en Azure Portal Buscar servicios


Los paneles contienen mosaicos que muestran Los servicios de Azure son el tema central de Azure
información sobre un servicio o actúan como Portal. Puedes agregarlos y buscarlos de varias
acceso directo a un servicio. Puedes encontrar estos formas.
mosaicos, que se muestran en la figura 2-4, por todo
el portal, en las páginas de todos los servicios. Pueden Para crear nuevos servicios, en la esquina superior
resultar muy útiles para obtener información general izquierda de la ventana del portal, haz clic en el
sobre el funcionamiento de un servicio con rapidez. signo más (“+”). Esto abre el cuadro de búsqueda
de Marketplace, donde lo encontrarás todo: desde
Aplicación web a Linux Server, como se muestra en la
Figura 2-6.

Figura 2-4: Mosaicos informativos en Azure Portal

Por ejemplo, el servicio Application Insights muestra


de manera predeterminada mosaicos que indican
si hay alguna alerta activa, si están llegando datos
en directo, cuántos usuarios han estado activos en
las últimas 24 horas, cuál ha sido la disponibilidad,
etc. Se trata de información muy útil en un formato
muy consumible. Puedes personalizar el tamaño
y la información de los mosaicos. También puedes Figura 2-6: El botón Nuevo recurso en Azure Portal
personalizar el aspecto de los gráficos ajustando sus
escalas de tiempo y haciendo que muestren los datos Cuando encuentres el servicio que deseas (Figura
en diferentes formatos, como líneas o barras. 2-7), un asistente te guiará por su configuración e
implementación.
También puedes anclar mosaicos (Figura 2-5)
directamente en los paneles para que sean lo
primero que se ve al entrar en el portal. Por ejemplo,
puedes anclar mosaicos de todas las métricas de
servicio que te interesen para crear un panel de
supervisión con el fin de compartirlo con el equipo
o de visualizarlo en un monitor en la sala del equipo.

Figura 2-7: Resultados de la búsqueda de recursos

Si tienes varios recursos, puedes encontrarlos por


Figura 2-5: Puedes anclar mosaicos en un panel medio de la búsqueda. Puedes usar el cuadro
de búsqueda de la parte superior del portal
(Figura 2-8) para buscar en todos tus recursos
e ir directamente a ellos.
Agosto Introducción a Azure 24
2018

desees ver expandiendo el menú Favoritos y haciendo


clic en las estrellas de esas categorías.

Descripción de las hojas


En Azure las páginas se denominan también hojas.
Las hojas están en todas partes y puedes incluso
anclarlas en los paneles. Cuando abres una app web,
primero ves la hoja de información general (como en
la Figura 2-9).

Figura 2-8: Menú de favoritos de Azure Portal


Esta hoja proporciona herramientas para detener,
iniciar y reiniciar la app web y muestra mosaicos
con sus métricas, como el número de solicitudes
y de errores. Si se elige otro elemento de menú,
En el panel del lado izquierdo del portal se encuentra
se abre una nueva hoja. Las hojas siempre se
el menú Favoritos. Este menú muestra las categorías de
abren en contexto. Así, si abres la hoja Ranuras de
recursos (representadas por sus iconos) como Azure App implementación y haces clic en el botón Agregar
Service. Puedes reorganizar los iconos arrastrándolos nueva ranura de implementación, aparece una
arriba y abajo. También puedes seleccionar los que nueva hoja a la derecha de la hoja Ranuras de
implementación que indica el contexto en el que te
encuentras.

Figura 2-9: Hoja de información general del servicio Web App


Agosto Introducción a Azure 25
2018

Crear una nueva máquina virtual de tamaño para las máquinas virtuales: algunas
Vamos a usar Azure Portal para crear una nueva son pequeñas y otras increíblemente grandes.
máquina virtual (VM). Después de crearla, te Puedes usar el asistente para seleccionar cuántos
mostraremos cómo apagarla y eliminarla para no núcleos y cuánta memoria quieres, y elegir las
seguir pagando por ella. opciones en función de eso. Además, hay otras
características que tienen opciones de tamaño:
Una nota sobre los grupos de recursos
La máquina virtual se implementará en un grupo a. Tipo de disco duro (SSD o disco duro normal).
de recursos. Todos los recursos de Azure residen b. Cantidad máxima de IOPS (operaciones
en grupos de recursos. Un grupo de recursos es de entrada/salida por segundo). Esto
un contenedor lógico que alberga los recursos. determina en gran medida el rendimiento
Puedes administrar la seguridad de un grupo de de la máquina virtual, especialmente si las
investigación y ver lo que cuestan los recursos del aplicaciones ejecutadas leen y escriben
grupo. Es una práctica habitual agrupar los servicios mucho en el disco duro.
relacionados en un grupo de recursos para facilitar c. Cantidad de unidades de datos que se
su protección y para poder determinar fácilmente lo pueden instalar en la máquina virtual.
que cuestan. d. Capacidad para equilibrar la carga.
e. Tarjeta gráfica que se instala en la máquina
1. En Azure Portal, en la esquina superior izquierda, virtual. Esto resulta útil si necesitas hacer
haz clic en el botón Crear un nuevo servicio. mucha representación de gráficos o si hay
cargas de trabajo computacionales altas.
2. En el cuadro de búsqueda, escribe Linux
virtual machine. 6. Después de seleccionar el tamaño, puedes
configurar ajustes adicionales como la red
3. Haz clic en Windows Server 2016 Datacenter.
virtual, la dirección IP y las extensiones en la
4. Haz clic en Crear. Se abre el Asistente para crear máquina. Por ahora, déjalo todo como está y
máquinas virtuales. haz clic en Aceptar.

a. Elige un nombre para la máquina virtual. 7. Repasa el resumen, acepta los términos y haz
b. Elige el tipo de unidad. SSD proporciona clic en Crear.
una máquina virtual más rápida, pero
Ahora se implementará la máquina virtual.
también es más caro. Para este tutorial,
Generalmente se tarda solo unos minutos. ¡Después
elige SSD.
c. Escribe un nombre de usuario. de esto tendrás una máquina virtual ejecutándose
d. Selecciona Contraseña en tipo de en Azure! Cuando navegas a la máquina virtual
autenticación. en el portal de Azure, puedes ver su estado,
e. Escribe una contraseña y confírmala. configurarla e iniciar sesión con RDP.
f. En el cuadro Grupo de recursos, escribe
Para iniciar sesión en la máquina virtual con
un nuevo nombre.
g. Elige la ubicación de la máquina virtual RDP, haz clic en el botón Conectar en la hoja de
y haz clic en Aceptar. información general de la máquina virtual en el
portal de Azure (Figura 2-10). Esto activará una
5. Elige el tamaño de la máquina virtual. descarga del archivo RDP, el cual puedes abrir
y utilizar para conectarte a la máquina virtual.
El rendimiento de la máquina virtual determina
lo que se paga por ella. Hay muchas opciones
Agosto Introducción a Azure 26
2018

Figura 2-10: El botón Conectar en la hoja de información


general de la máquina virtual en Azure Portal

Limpieza de los recursos del tutorial


Si terminaste de usar la máquina virtual, puedes
cerrarla y quitarla eliminando el grupo de recursos
que creamos al generar la máquina virtual. Este
grupo contiene la máquina virtual y todos los
demás recursos que se crean automáticamente.
Después de eliminar el grupo de recursos, ya no
pagarás por ninguno de los recursos que utilizaste
en este tutorial.
Agosto Proteger una aplicación 27
2018

Proteger una
La seguridad es uno de los aspectos más
importantes de cualquier aplicación y no es fácil
gestionarla bien. Afortunadamente, Azure ofrece

aplicación muchos servicios que te ayudarán a proteger tu


aplicación. En este capítulo veremos algunos de
esos servicios.
Agosto Proteger una aplicación 28
2018

Azure Active Directory métodos de autenticación, como tokens de acceso,


Una parte importante de la seguridad de tu autenticación básica y certificados. Además, puedes
aplicación es la autenticación de los usuarios realizar un seguimiento para ver quién llama a tu API
antes de utilizarla. La autenticación no es fácil de y bloquear a los autores de llamadas no deseados.
implementar. Hay que almacenar las identidades
y las credenciales de los usuarios en algún sitio, Mucho más que seguridad
implementar la administración de contraseñas, Aunque la seguridad es crucial, Azure API
crear un protocolo de enlace de autenticación Management ofrece otras capacidades que
seguro, etc. pueden ayudar a agilizar tu flujo de desarrollo y
de pruebas, tales como simulacros de respuesta
Azure Active Directory proporciona todo esto y más de datos de prueba, publicación de varias
“out of the box”. Las identidades de los usuarios se versiones de API, introducción de cambios seguros
guardan en Azure Active Directory y los usuarios se sin interrupciones con las revisiones y otorgar
autentican en él, de modo que solo se les redirige a acceso a la documentación autogenerada de
la aplicación una vez que se han autenticado. Azure API, catálogo de API y muestras de código para
Active Directory se encarga de administrar las desarrolladores.
contraseñas, lo que incluye situaciones frecuentes
como “He olvidado la contraseña”. Introducción a Azure API Management

Millones de aplicaciones usan Azure Active Directory Azure AD Application Proxy


cada día, entre ellas Azure portal, Outlook.com Azure AD Application Proxy proporciona acceso
y Office 365. Debido a esto, puede detectar con de inicio de sesión único (SSO) y remoto seguro para
más facilidad el comportamiento malicioso y apps web hospedadas on-premises. Las aplicaciones
responder a él. Por ejemplo, si un usuario inicia que seguramente querrías publicar incluyen sitios de
sesión en una aplicación desde una ubicación en SharePoint, Outlook Web Access y otras aplicaciones
Europa y un minuto más tarde inicia sesión desde web de línea de negocios (LOB). Estas apps web
Australia, Azure Active Directory marca esto como on-premises se integran con Azure AD, la misma
un comportamiento malintencionado y pide al identidad y plataforma de control que utiliza Office
usuario credenciales adicionales por medio de una 365. Los usuarios finales obtienen acceso a tus apps
autenticación multifactor. on-premises de la misma forma en que obtienen
acceso a Office 365 y a otras apps de software como
Azure API Management servicio (SaaS) integradas con Azure AD.
Las interfaces de programación de aplicaciones
(API) deben ser seguras. Esto aplica tanto para Azure Key Vault
las API que creas tú mismo como para las que Dentro de tu arquitectura de seguridad, necesitas
consumes de otros proveedores. Para ayudar un lugar seguro para almacenar y administrar
a proteger tus API, puedes utilizar Azure API certificados, claves y otros secretos. Azure Key
Management. Es básicamente un proxy que Vault proporciona esta capacidad. Con Key Vault,
antepone a las API y que agrega características tienes una ubicación central en la que se almacenan
como el almacenamiento en caché, la limitación los secretos utilizados por tus aplicaciones.
y la autenticación y autorización.
Pueden ser las credenciales de una cadena de
Con API Management puedes proteger una API conexión utilizada por tu aplicación. Tu aplicación
pidiendo a los usuarios que se suscriban a ella. De obtendría la cadena de conexión de Key Vault en
esta forma, las aplicaciones necesitan autenticarse vez de obtenerla desde el sistema de configuración.
para poder usar tu API. Puedes utilizar varios
Agosto Proteger una aplicación 29
2018

De esta forma, los administradores pueden • Azure Disk Encryption cifra volúmenes
controlar los secretos y los desarrolladores no de datos, arranque de máquinas virtuales
tienen que ocuparse de ellos. e infraestructura como servicio (IaaS)
de Windows y Linux utilizando claves
Key Vault también almacena certificados, como administradas por los clientes.
capa de sockets seguros (SSL), que se usan
• Azure Storage Service Encryption cifra los
para proteger el tráfico intercambiado por las
datos de forma automática antes de persistir
aplicaciones a través de HTTPS.
en Azure Storage, y después descifra los datos
automáticamente cuando los recuperas.
Introducción a Azure Key Vault
• Azure Client-Side Encryption es compatible
Managed Service Identity con cifrado de datos dentro de las aplicaciones
¿Cómo evitas que las credenciales sean localizables cliente antes de cargar a Azure Storage u otras
dentro del código? Utilizar Azure Key Vault es un terminales, y después descifra los datos al
comienzo, pero ¿dónde almacenas las credenciales descargarlos al cliente.
para conectarte a Key Vault? Azure Managed • SQL Transparent Data Encryption (TDE) cifra
Service Identity proporciona una solución. los archivos de datos de SQL Server, Azure
SQL Database yAzure SQL Data Warehouse.
Puedes utilizar Managed Service Identity desde Los archivos de registro y los datos se cifran
muchos servicios en Azure, incluido Azure App utilizando algoritmos de cifrado estándar de
Service. Simplemente habilitas Managed Service la industria. Las páginas en una base de datos
Identity con un botón para inyectar las credenciales se cifran antes de escribirse en el disco y se
a tu aplicación en el momento de ejecución y descifran al leerlas.
después utilizas esas credenciales para obtener
acceso a otros servicios, como Azure Key Vault. • SQL Always Encrypted cifra los datos dentro de
Toda la autenticación entre los servicios se realiza aplicaciones cliente antes de almacenarlos en
en el nivel de infraestructura. Tu aplicación no tiene Azure SQL. Permite delegar la administración
que ocuparse de eso y puede simplemente usar de bases de datos on-premises a terceros, y
otros servicios. mantiene una separación entre quienes son
propietarios y pueden ver los datos y quienes la
administran pero no deben tener acceso a los
Cómo utilizar Azure Managed Service Identity mismos.
(preview pública) en App Service y Azure Functions
• Azure Cosmos DB no requiere ninguna
Cifrado acción de tu parte porque los datos del
Cifrado predeterminado de datos: De manera usuario almacenados en Cosmos DB en un
predeterminada, los datos se encuentran cifrados almacenamiento no volátil (unidades de estado
en Azure cuando se almacenan en Azure SQL sólido) están cifrados de forma predeterminada
Database, Azure SQL Data Warehouse, Azure y no existen controles para modificar esa
Database for MySQL, Azure Database for configuración.
PostgreSQL, Azure Storage, Azure Cosmos DB o
Azure Security Center
Azure Data Lake Store.
Azure Security Center proporciona una
Este cifrado se realiza automáticamente y no administración de la seguridad unificada y una
protección avanzada frente a las amenazas en
necesitas configurar nada para utilizarlo. Para
cargas de trabajo en el cloud híbrido. Ofrece
ayudar a satisfacer tus requerimientos de seguridad
controles de política centralizados para limitar la
y cumplimiento, puedes utilizar las siguientes
exposición a amenazas y encontrar y solucionar
funciones para encriptar datos en reposo:
Agosto Proteger una aplicación 30
2018

las vulnerabilidades de forma rápida. Además, Azure Application Gateway


Security Center es compatible con integración de Azure Application Gateway es un dispositivo
soluciones de terceros y puede personalizarse con virtual dedicado que proporciona un controlador
capacidades de programación y automatización. de entrega de aplicaciones (ADC) como servicio.
Puedes usar Security Center para analizar el estado Ofrece varias capacidades de balance de carga
de la seguridad de tus recursos de cómputo, redes Layer 7 para tu aplicación y permite que los clientes
virtuales, servicios de almacenamiento y datos, optimicen la productividad de la granja web al
y aplicaciones. Una evaluación continua ayuda a descargar terminación SSL de uso intensivo de CPU
descubrir posibles problemas de seguridad, tales a la puerta de enlace de la aplicación. La puerta
como sistemas con actualizaciones de seguridad de enlace también proporciona otras capacidades
faltantes o puertos de red expuestos. Una lista de de enrutamiento Layer 7, tales como distribución
recomendaciones y descubrimientos priorizados
round-robin de tráfico entrante, afinidad de sesión
puede activar alertas y otros remedios guiados.
basada en cookies, enrutamiento basado en ruta
URL y la capacidad de hospedar varios sitios web
Protección de Azure contra ataques de
tras una sola puerta de enlace de aplicación.
denegación de servicio distribuidos
Lo has oído demasiadas veces en las noticias y sin Firewall de aplicaciones web de Azure
duda no deseas que le ocurra a tu compañía: tu Necesitas proteger tu aplicación frente a muchas
aplicación es el blanco de un ataque de denegación amenazas, incluidas las definidas en Open Web
de servicio distribuido (DDoS). Estos tipos de ataques Application Security Project (OWASP), como
son cada vez más frecuentes y pueden desbordar a la inyección SQL y Cross-Site Scripting (XSS).
una aplicación hasta el punto de que nadie pueda El firewall de aplicaciones web de Azure puede
usarla. El servicio de protección Azure DDoS ofrece ayudarte con eso. El firewall de aplicaciones web,
protección contra ataques DDoS en un nivel básico una característica del servicio Azure Application
(el nivel Básico) y un nivel pagado (el nivel Estándar). Gateway, proporciona protección en tiempo real
para tu aplicación. Puede detectar un ataque
malicioso, tal y como se define en el conjunto de
El nivel Básico se activa automáticamente como
reglas básicas de OWASP, e impedir que el ataque
parte de la plataforma Azure para cada cliente.
llegue a tu aplicación. También informa sobre los
No tienes que hacer nada para habilitarlo. Este
ataques que se han intentado o están en curso para
servicio protege tus aplicaciones contra los ataques
que puedas ver qué amenazas están tratando de
de DDoS más comunes mediante la realización
llegar a tu aplicación, dando una capa adicional de
de monitoreo y mitigación en tiempo real,
seguridad.
y proporciona las mismas defensas utilizadas por
Microsoft Online Services. Azure Network Watcher
Azure Network Watcher es un servicio regional que
El nivel Estándar proporciona capacidades te permite monitorizar y diagnosticar condiciones en
adicionales de mitigación que se ajustan el nivel de la red, desde y hasta Azure. Sus muchas
específicamente a los recursos de Azure Virtual herramientas de diagnóstico y visualización pueden
Network. Es fácil de activar y no tienes que cambiar ayudar a comprender y obtener conocimiento más
tus aplicaciones: todo se hace en el nivel de red. detallado sobre la red en Azure. Ejemplos:
Además, puedes personalizar la protección de nivel
• Topología: Proporciona una visualización de la
Básico con tus propias políticas que se centran en
red que muestra las distintas interconexiones
tus aplicaciones y casos de uso específicos.
y asociaciones entre los recursos de red en un
Más información sobre protección de Azure
grupo de recursos.
frente a DDoS
• Captura variable de paquete: Captura datos
de paquetes dentro y fuera de una máquina
Agosto Proteger una aplicación 31
2018

virtual. Las opciones avanzadas de filtrado


Más información sobre DNS Private Zones
y controles de ajuste fino, como la capacidad
de definir limitaciones de tamaño y hora,
proporcionan versatilidad. Los datos del Redes privadas virtuales en varios sitios
paquete pueden almacenarse en blob Azure es compatible con dos tipos de conexiones
o en el disco local en formato .cap. de redes privadas virtuales (VPN) en varios sitios:
VPN punto a sitio (P2S) y VPN sitio a sitio (S2S). Una
• Verificación de flujo de IP: Confirma si un
conexión VPN punto a sitio te permite crear una
paquete se autoriza o no con base en los
conexión segura a tu red virtual desde un equipo de
parámetros de paquete 5-tuple (IP destino,
cliente individual. Para establecer una conexión P2S,
IP origen, Puerto destino, Puerto origen y
se inicia desde el equipo del cliente. Esto es útil para
protocolo). Si un grupo de seguridad rechaza
quienes quieren conectarse a Azure VNets desde
el paquete, se obtienen la regla y el grupo que
una ubicación remota. La VPN P2S también es útil
rechazaron el paquete.
cuando solo tienes unos pocos clientes que necesitan
Grupos de seguridad de red conectarse a una VNet. Por el contrario, se utiliza una
Un grupo de seguridad de red (NSG) contiene conexión VPN de sitio a sitio para conectar tu red
una lista de reglas de seguridad para permitir o on-premises a una red virtual Azure sobre un túnel
rechazar el tráfico de red a los recursos conectados VPN IPsec/IKE (IKEv1 o IKEv2). Este tipo de conexión
a Azure Virtual Networks (VNet). Los NSG pueden requiere un dispositivo VPN situado on-premises que
asociarse con subredes, máquinas virtuales (clásicas) tenga una dirección IP pública al exterior.
o interfaces de red (NIC) individuales conectadas a
máquinas virtuales (Resource Manager). Cuando un
NSG se asocia con una subred, las reglas se aplican Obtén más información sobre las redes
privadas virtuales punto a sitio y sitio a sitio
a todos los recursos conectados a la subred. Puedes
restringir incluso más el tráfico si asocias un NSG a
una máquina virtual o NIC. Azure ExpressRoute
Azure ExpressRoute te permite llevar tus redes on-
Zonas privadas DNS de Azure premises al cloud de Azure a través de una conexión
El sistema de nombres de dominio (DNS) es privada facilitada por un proveedor de conectividad
responsable de traducir (o resolver) un nombre de sin tener que atravesar Internet. Con ExpressRoute,
servicio a su dirección IP. Azul DNS es un servicio puedes establecer conexiones con los servicios
de hosting para dominios DNS que proporciona de cloud de Microsoft, como Azure, Office 365
resolución de nombres usando la infraestructura de y Dynamics 365.
Azure. Además de los dominios DNS con conexión
a internet, Azure DNS ahora es compatible con Equilibradores de carga
dominios DNS privados como una función de preview: Puedes utilizar los equilibradores de carga para
Azure DNS Private Zones. Los beneficios de seguridad aumentar la disponibilidad de aplicaciones. Azure
de las zonas DNS privadas incluyen la capacidad es compatible con equilibradores de carga internos
de crear una infraestructura DNS dividida. Esto te y externos, los cuales pueden utilizarse en una
permite crear zonas DNS privadas y públicas con los configuración interna o pública. Además, puedes
mismos nombres sin exponer los nombres internos. configurar equilibradores de carga para que sean
Además, el uso de la característica Azure DNS Private compatibles con puertos de alta disponibilidad
Zones elimina la necesidad de utilizar soluciones (HA), en casos donde una regla de puertos HA sea
DNS personalizadas, lo cual podría aumentar la una variante de una regla de equilibrio de carga
superficie de vulnerabilidad por causa de los requisitos configurada en un Estándar de equilibrador de carga
independientes de administración y actualizaciones. interno. Puedes proporcionar una sola regla para
Agosto Proteger una aplicación 32
2018

equilibrar la carga de todos los flujos de TCP y UDP los usuarios con tu aplicación. Funciona para
que llegan a todos los puertos de un equilibrador de aplicaciones en diversas plataformas hospedadas
carga interno. en el cloud y on-premises, incluidas .NET, Node.js y
J2EE. Application Insights se integra con tu proceso
Obtén más información sobre equilibradores
de carga y reglas de puertos de HA DevOps y tiene puntos de conexión con una variedad
de herramientas de desarrollo. Puede supervisar y
Registro y supervisión analizar telemetría para apps móviles al integrarse
Azure Log Analytics: Azure Log Analytics te ayuda con Visual Studio App Center y HockeyApp.
a recopilar y analizar datos generados por recursos
en tus entornos de cloud y on-premises. Proporciona Azure Blueprint: El proyecto de seguridad y
conocimiento en tiempo real mediante paneles cumplimiento de Azure: IA y datos médicos HIPAA/
personalizados y de búsqueda integrada para HITRUST proporciona herramientas y orientación
analizar millones de registros en todas las cargas de para ayudar a implementar un entorno PaaS que
trabajo y servidores sin importar su ubicación física. cumpla con los estándares de la Health Insurance
Portability and Accountability Act (HIPAA) y la Health
Azure Monitor: Azure Monitor permite la
Information Trust Alliance (HITRUST). Esta oferta
supervisión básica de los servicios Azure al permitir
PaaS permite adquirir, almacenar y analizar registros
la recopilación de métricas, registros de actividades y
médicos personales y no personales, además de
registros de diagnóstico. Por ejemplo, el registro de
interactuar con ellos, en un entorno seguro de
actividades te indicará cuándo se crean o modifican
cloud de varios niveles implementado como una
nuevos recursos. Existen métricas que proporcionan
solución integral. El plan muestra una arquitectura
estadísticas de rendimiento para diferentes recursos,
de referencia en común que podría aplicarse a otros
incluidos el sistema operativo asociado con una
casos de uso además del cuidado de la salud, y está
máquina virtual. Puedes ver estos datos con uno
diseñado para simplificar la adopción de Azure.
de los exploradores en el portal Azure y enviarlos a
Azure Log Analytics para el análisis de tendencias
y detallado, o puedes crear reglas de alerta que Obtén más información sobre Proyecto de
seguridad y cumplimiento de Azure: IA y datos
notificarán proactivamente los problemas críticos. médicos HIPAA/HITRUST

Registros de flujos de Azure Network Security


Group: Los registros de flujo de Azure NSG son una Documentación arquitectónica y técnica de
característica de Network Watcher que permite seguridad de Azure
ver información acerca del ingreso y egreso de Azure cuenta con una enorme biblioteca de
tráfico IP mediante un Network Security Group. Los documentación técnica sobre seguridad que
registros de flujos pueden analizarse para obtener complementa la información de seguridad
conocimiento sobre el tráfico de una red y los incluida con los servicios individuales. Se incluyen
problemas de rendimiento y seguridad relacionados informes técnicos, documentos sobre prácticas
con dicho tráfico. Aunque los registros de flujos se recomendadas y listas de verificación en el sitio de
enfocan en NSG, no se muestran de la misma forma información de Azure Security. También se tratan
que otros registros y se almacenan únicamente temas de seguridad de cloud público en distintas
dentro de una cuenta de almacenamiento. áreas, tales como seguridad de red, seguridad
de almacenamiento, seguridad de cómputo,
Application Insights: Application Insights es un
administración de acceso e identidades, registro/
servicio extensible de administración del rendimiento
auditoría, protección de carga de trabajo en el cloud,
de aplicaciones (APM) para desarrolladores web que
seguridad PaaS y más.
trabajan en múltiples plataformas. También incluye
potentes herramientas de análisis para diagnosticar
problemas y entender qué hacen realmente
Agosto Agregar inteligencia a tu aplicación 33
2018

Agregar
Hospedar tu aplicación y tus datos y lograr que sea
escalable y segura y que tenga un alto rendimiento
está muy bien, pero ¿no sería estupendo poder

inteligencia agregar características y funciones inteligentes a la


aplicación con casi ningún esfuerzo?

a tu aplicación
Agosto Agregar inteligencia a tu aplicación 34
2018

Búsqueda de Azure Extrae datos desde casi cualquier fuente y


aplica un conjunto de habilidades cognitivas
modulares que extraen conocimiento. Este
La búsqueda es una característica habitual en la conocimiento se organiza y almacena en un
mayoría de las aplicaciones; sin embargo, siempre ha índice, lo cual permite nuevas experiencias para
sido una función difícil de implementar. Búsqueda explorar los datos mediante la Búsqueda.
de Azure proporciona una buena parte de la base
necesaria para hacer búsquedas. Solo tienes que Ejemplo de búsqueda cognitiva
usar una instancia de Búsqueda de Azure, crear Las compañías petroleras y de gas cuentan con
un índice que te ayude a buscar y rellenarlo con equipos de geólogos y otros especialistas que
datos, eso es todo. Esto significa, por ejemplo, que necesitan comprender los datos geológicos y
podrías implementar Búsqueda de Azure fácilmente sísmicos. A menudo tienen décadas de documentos
para ayudar a los usuarios a realizar búsquedas PDF con fotos de muestras y hojas de muestra
en tu catálogo de productos en una aplicación de llenas de notas de campo escritas a mano.
comercio electrónico. Necesitan relacionar eventos, lugares y personas
(expertos en el sector) y luego explorar toda
Hay muchas opciones que puedes usar para adaptar esta información para tomar decisiones clave.
Búsqueda de Azure y hay muchas estupendas Búsqueda cognitiva utiliza servicios cognitivos
características que facilitarán las búsquedas a los para analizar todos estos datos, incluyendo
usuarios: los archivos PDF e imágenes, para extraer
• Búsqueda geográfica que permite a los usuarios información y correlacionarla, todo sin necesidad
explorar datos en función de la proximidad de de escribir complicado software OCR o de
un resultado de búsqueda a una ubicación física. reconocimiento de imágenes.

Crea tu primer índice de Búsqueda de Azure en


• Los analizadores de lenguaje de Lucene, así el portal

como los procesadores de lenguaje natural de


Microsoft (NLP), disponibles en 56 idiomas para Azure Cognitive Services
gestionar de forma inteligente la lingüística de
cada idioma, incluidos los tiempos verbales, los Azure Cognitive Services ofrece algoritmos de
sustantivos con plurales irregulares (por ejemplo, machine learning y datos como servicio. Microsoft
“vez” frente a “veces”), la descomposición de ha creado los algoritmos de machine learning
palabras, la división de palabras (para los idiomas que sustentan Cognitive Services para que tú no
sin espacios) y mucho más. tengas que crearlos. Además, para la mayoría de
los servicios, Microsoft proporciona los datos para
• Supervisión y creación de informes que indican entrenar dichos algoritmos. Sin embargo, para
lo que se ha buscado, lo rápida que ha sido la algunos servicios puedes utilizar tus propios datos
búsqueda y si ha tenido éxito. personalizados para entrenar los algoritmos.

• Características de experiencia del usuario, como Cognitive Services proporciona una manera
ordenar y paginar los resultados de búsqueda, excepcionalmente fácil de incorporar machine
filtrado inteligente y sugerencias de búsqueda. learning e inteligencia artificial en tu aplicación:
simplemente invocando API. Hay muchas API en las
• Búsqueda cognitiva, que es un enfoque de categorías de visión, habla, lenguaje, conocimiento
prioridad de IA a la comprensión del contenido. y búsqueda. La Tabla 4-1 muestra qué API hay
La búsqueda cognitiva se basa en Búsqueda de disponibles por el momento, pero considera que
Azure con servicios cognitivos incorporados. siempre hay nuevas API para agregar a la lista.
Agosto Agregar inteligencia a tu aplicación 35
2018

Tabla 4-1: Azure Cognitive Services por categoría

Visión Habla Lenguaje Conocimiento Búsqueda

Computer Vision Servicios de Habla Text Analytics QnA Maker Bing Web Search
Face • Voz a texto Texto de traducción Custom Decision Bing Visual Search
Video Indexer • Texto a voz Bing Spell Check Bing Entity Search
Content Moderator • Traducción de voz Content Moderator Bing News Search
Custom Vision Speaker Recognition Comprensión del Bing Custom Search
lenguaje Bing Image Search
Bing Autosuggest
Bing Video Search

Cada categoría contiene diversos servicios que predefinido. No tienes que crearlo; lo único que
puedes usar al invocar una API. Algunas categorías debes hacer es alimentar el servicio con tus datos.
contienen servicios personalizados, como el servicio
Custom Vision, el servicio Language Understanding Por ejemplo, quizá quieras crear un modelo que
y el servicio Bing Custom Search. Estos servicios pueda detectar los tipos de nubes en el cielo, como
personalizados ofrecen algoritmos preconfigurados cúmulos y estratos, a partir de una imagen. Para
de machine learning, al igual que los demás servicios, crear este modelo, subes imágenes de diferentes
y te permiten utilizar tus propios datos para entrenar tipos de nubes al portal de Custom Vision. Este
el modelo. portal está disponible cuando comienzas a usar
Además de estos servicios, puedes utilizar los el servicio Custom Vision. Después de subir las
servicios en los laboratorios de Cognitive Services. imágenes, las etiquetas para que el servicio sepa
Los laboratorios contienen servicios experimentales cómo entrenar el modelo. Así que etiquetas una
que Microsoft está probando para ver si encajan imagen con “cúmulo” o “estrato”.
bien con los casos de uso de los clientes. Uno de
esos servicios experimentales es Project Gesture, Puedes entrenar el modelo después de cargar
que permite detectar gestos (como un movimiento suficientes imágenes. Entre más imágenes
de la mano) e integrarlos en tu experiencia de etiquetadas cargues y entre más entrenamiento
usuario. realices, el modelo será más preciso y dará mejores
resultados.
Experimenta con Cognitive Services
Cuando tengas un modelo que funcione bien,
Veamos con más detenimiento algunos de los puedes empezar a utilizarlo. Puedes usar tu modelo
Cognitive Services. si invocas la API Custom Vision y alimentas nuevas
imágenes. Cuando cargas una nueva imagen, el
Custom Vision servicio te dirá si la reconoce como uno de los tipos
Con el servicio Custom Vision, puedes detectar de nubes. La Figura 4-1 muestra un ejemplo de la
cosas en imágenes con base en tus propios datos de apariencia de un punto de conexión de API.
entrenamiento. Custom Vision funciona de forma
similar a otros Cognitive Services en el sentido en
que incluye un algoritmo de machine learning
Agosto Agregar inteligencia a tu aplicación 36
2018

de machine learning predefinido, mientras que tú


proporcionas los datos. En este caso, subes archivos
de vídeo o audio, y Video Indexer los analiza.

Video Indexer tiene muchas capacidades


impresionantes, tales como:

• Crea una transcripción del texto en un vídeo.


Puedes refinar la transcripción manual y
entrenar a Video Indexer para reconocer
términos del sector, como “DevOps”.

• Reconoce rostros e identifica quién aparece en


un vídeo y en qué momentos. Video Indexer
Figura 4-1: Un ejemplo del punto de conexión de API de puede hacer lo mismo para el audio, ya que
Custom Vision reconoce quién tiene la palabra y en qué
momento.
Utilizar el servicio Custom Vision para detectar cosas
con base en tu propio modelo es impresionante, pero • Reconoce texto visible en un vídeo (por
eso no es todo. El modelo que creas cuando entrenas ejemplo, el texto en una diapositiva) y lo
el servicio Custom Vision con tus datos puede transcribe.
implementarse en el “sistema terminal inteligente”.
• Realiza análisis de intención, que indica cuando
Esto significa que el modelo y la API pueden
se dice o se muestra algo positivo, negativo
ejecutarse en otro lugar que no sea el cloud, como
o neutro.
un servidor on-premises dentro de un contenedor
Docker o en otro dispositivo, como tu teléfono • Incluye muchas más características.

Esto otorga gran flexibilidad porque no necesitas Como muestra la variedad de estas funcionalidades,
una conexión activa a Internet para utilizar las Video Indexer combina muchos Cognitive Services,
capacidades del servicio Custom Vision. También como conversión de voz y reconocimiento del
puedes ejecutarlo localmente para lograr el mejor hablante. En conjunto, estos servicios ofrecen
rendimiento. Además, el modelo que ejecutas poderosas capacidades para que tu contenido sea
en terminal inteligente no es tan grande. Es de más valioso, más accesible y puedas encontrarlo
aproximadamente decenas de megabytes, dado con mayor facilidad.
que solo implementas el modelo y la API, no los
datos de entrenamiento (que se utilizaron para Puedes cargar archivos multimedia a Video Indexer
crear el modelo). mediante el portal de Video Indexer o la API. La
Figura 4-2 muestra los resultados de un vídeo Azure
Friday que se cargó al servicio Video Indexer.
Crea tu propio proyecto de Custom Vision

Como se muestra en la imagen, Video Indexer crea


Video Indexer
una transcripción del audio del vídeo. Puedes editar
El servicio Video Indexer proporciona conocimiento
la transcripción e incluso traducirla a otros idiomas.
sobre los archivos de vídeo y audio que cargas. Este
También puedes ver que Video Indexer reconoció
Cognitive Service también es parte del conjunto
texto en la diapositiva detrás de los oradores y lo
de aplicaciones Media Analytics de Azure Media
marcó como “OCR”. Puedes omitir ese texto si hace
Services. Este servicio también ofrece un algoritmo
Agosto Agregar inteligencia a tu aplicación 37
2018

Figura 4-2: Ejemplo de un vídeo cargado a Video Indexer

clic en él; Video Indexer ofrece esta funcionalidad Finalmente, solo pagas por el hosting de QnA
para aplicaciones individuales al integrar el widget Maker, no por cuántas veces los usuarios consultan
Cognitive Insights. el servicio resultante.

Crea tu propio servicio de base de


Carga tu primer vídeo a Video Indexer conocimientos con QnA Maker

QnA Maker Bing Autosuggest


El QnA Maker Cognitive Service ofrece una forma El servicio Bing Autosuggest proporciona
fácil de navegar por las preguntas más frecuentes sugerencias de búsqueda mientras escribes. Esto
(FAQ). La mayoría de las empresas ya tienen un FAQ permite darle a los usuarios una experiencia de
en su sitio web o ubicación similar. Esta información búsqueda con la que se sientan familiarizados, al
puede proporcionarse a QnA Maker, el cual analiza estilo de Bing o Google, donde los resultados de las
la información para encontrar pares de preguntas búsquedas se automatizan o se completan.
y respuestas y conocimientos.
Alimentas el texto de búsqueda, caracter
QnA Maker es un servicio que puedes integrar en tu por caracter, al servicio Bing Autosuggest, y
aplicación y que ofrece información a los usuarios rápidamente produce sugerencias de búsqueda
de forma conversacional. Además, puedes utilizar en formato JSON. Por ejemplo, cuando escribes
QnA Maker para crear un bot mediante los servicios el texto de consulta Qué debo buscar, el servicio
Azure Bot Service y Language Understanding produce el siguiente JSON:
Service. Es posible crear un bot QnA sin escribir
código mediante el portal QnA Maker. También
puedes utilizar la API QnA Maker para crear
servicios QnA mediante programación.
Agosto Agregar inteligencia a tu aplicación 38
2018

{
“_type”: “Suggestions”,
“instrumentation”: null,
“queryContext”: {
“originalQuery”: “what should I search for”
},
“suggestionGroups”: [
{
“name”: “Web”,
“searchSuggestions”: [
{
“url”: “https://www.bing.com/search?q=what+should+i+search+for&FORM=USBAPI”,
“urlPingSuffix”: null,
“displayText”: “what should i search for”,
“query”: “what should i search for”,
“searchKind”: “WebSearch”
},
{
“url”: “https://www.bing.com/search?q=what+should+i+search+for+on+bing&
FORM=USBAPI”,
“urlPingSuffix”: null,
“displayText”: “what should i search for on bing”,
“query”: “what should i search for on bing”,
“searchKind”: “WebSearch”
},
{
“url”: “https://www.bing.com/search?q=what+should+i+search+for+on+the+internet&
FORM=USBAPI”,
“urlPingSuffix”: null,
“displayText”: “what should i search for on the internet”,
“query”: “what should i search for on the internet”,
“searchKind”: “WebSearch”
},
{
“url”: “https://www.bing.com/search?q=what+should+i+search+for+today&
FORM=USBAPI”,
“urlPingSuffix”: null,
“displayText”: “what should i search for today”,
“query”: “what should i search for today”,
“searchKind”: “WebSearch”
},
{
“url”: “https://www.bing.com/search?q=what+should+i+search+for+in+dna+raw+data&
FORM=USBAPI”,
“urlPingSuffix”: null,
“displayText”: “what should i search for in dna raw data”,
“query”: “what should i search for in dna raw data”,
“searchKind”: “WebSearch”
}
]
}
]
}

Esto contiene todas las sugerencias y, en la parte


superior de los resultados, contiene la consulta original.

Obtén una clave de API y prueba Bing


Autosuggest gratuitamente por 7 días
Agosto Agregar inteligencia a tu aplicación 39
2018

Azure Bot Service Azure Machine Learning


El Azure Bot Service te facilita crear un bot: software
Studio
que puede interactuar con los usuarios de forma
Puedes agregar increíbles funciones inteligentes
automática y autónoma.
a tus aplicaciones con servicios de Azure, tales
como Cognitive Services. Se basan en algoritmos
Crear un bot no es una tarea trivial. Necesitas hacer
de machine learning que Microsoft creó para que
un seguimiento del contexto de las interacciones con
puedas usarlos como servicio. Sin embargo, hay
el usuario y debes estar preparado para responder
otras maneras de utilizar machine learning en las
a muchos parámetros de interacción posibles. Bot
aplicaciones. Antes de eso, hablemos de qué es y qué
Service te ayuda a hacerlo de las siguientes formas:
no es machine learning.

• Ayuda a realizar un seguimiento del contexto


¿Qué es machine learning?
de interacción y proporciona plantillas para
Machine learning suele confundirse con inteligencia
comenzar desde Bot Framework.
artificial (IA), pero no son lo mismo. La IA implica
• Se integra perfectamente con Cognitive máquinas que realizan tareas que son características
Services, lo que te permitirá crear un bot de la inteligencia humana. La IA también es algo que
“inteligente”. puede implementarse mediante el uso de machine
learning, además de otras técnicas.
• Facilita la integración con servicios como
Facebook, Slack, Microsoft Teams, Telegram, Machine learning es un campo de la ciencia
etc. computacional que da a los ordenadores la capacidad
de aprender sin recibir programación explícita.
• Ofrece toda las ventajas de un servicio
Machine learning puede lograrse al utilizar una o varias
administrado en Azure: gran escalabilidad,
tecnologías algorítmicas, como redes neuronales,
entrega continua (CD) integrada y pagar solo
aprendizaje profundo, redes bayesianas, etc.
por lo que se usa.

Entonces, ¿qué involucra machine learning?


Un ejemplo de un bot que puedes desarrollar con
Bot Service es uno que proporcione a los usuarios
La Figura 4-3 muestra el flujo de trabajo básico para
las respuestas a las preguntas más frecuentes, el
el uso de machine learning.
cual puede utilizar junto con QnA Maker Cognitive
Service. La interfaz del bot puede ser un cuadro de
chat que esté en tu sitio web.

Empieza a trabajar con un bot de chat usando


Azure Bot Service

Figura 4-3: El proceso de machine learning


Agosto Agregar inteligencia a tu aplicación 40
2018

El proceso de machine learning funciona de la exponer modelos con servicios web. Studio es un
siguiente manera: portal que puedes utilizar desde tu navegador web.
• Los datos que proporcionas tú o alguien más
(Microsoft, por ejemplo) contienen patrones. En Studio, puedes comenzar de cero o con uno de
Quizás conozcas algunos de los patrones, como los muchos experimentos que se encuentran en la
los hábitos de compra de los usuarios. También galería, incluido uno para predecir la duración de
es probable que no conozcas muchos patrones las estancias en los hospitales y otro para detectar
en los datos. anomalías en streams de datos en tiempo real.
Puedes utilizar estos experimentos como base de
• El algoritmo de machine learning es la parte un modelo de machine learning o para aprender
inteligente del software que te permite sobre cómo pueden resolverse esos casos.
encontrar esos patrones en los datos. Este
algoritmo es algo que tú creas con técnicas Un experimento de machine learning en Machine
como aprendizaje profundo o aprendizaje Learning Studio consta de varios pasos que
supervisado. Encontrar patrones en los datos manipulan datos y ejecutan algoritmos de machine
utilizando el algoritmo de machine learning learning en ellos. Puedes crear estos pasos desde
también se llama “entrenar un modelo de cero, incluido el algoritmo, o puedes usar pasos
machine learning”. predefinidos disponibles en Studio.

• El entrenamiento produce un modelo de


La Figura 4-4 muestra un experimento en Machine
machine learning. Contiene los aprendizajes del
Learning Studio. Puedes ver el flujo de trabajo que
algoritmo de machine learning.
se ejecuta para entrenar un modelo y las categorías
• Las aplicaciones ahora pueden utilizar el de pasos predefinidos que pueden usarse en el flujo
modelo alimentando nuevos datos y trabajando de trabajo.
con los resultados. Los nuevos datos se analizan
según los patrones que se encuentran en los Después de desarrollar tus experimentos
datos. Por ejemplo, cuando entrenas un modelo y utilizarlos en tus datos para crear un modelo
de machine learning para reconocer perros en de machine learning, puedes publicarlos como
imágenes, debería identificar un perro en una servicios web. Cuando tus aplicaciones utilizan los
imagen que nunca haya visto. servicios web, pueden enviar datos a tu modelo
y recibir las predicciones de tu modelo.
La parte crucial de este proceso es que es un proceso
iterativo. El modelo de machine learning se mejora
constantemente al entrenarlo con nuevos datos y
ajustando el algoritmo o ayudándole a diferenciar los
resultados correctos de los incorrectos.

Uso de Azure Machine Learning Studio para


crear modelos
Puedes utilizar Azure Machine Learning Studio para
crear tus propios modelos de machine learning
personalizados y exponerlos mediante servicios web
para que tus aplicaciones pueda usarlos.

Machine Learning Studio es el lugar en Azure donde


Figura 4-4: Un flujo de trabajo de un experimento de
puedes crear proyectos y experimentos de machine machine learning en Azure Machine Learning Studio
learning, vincular conjuntos de datos, crear notas y
Agosto Agregar inteligencia a tu aplicación 41
2018

Al utilizar estos servicios juntos, puedes crear


Regístrate para utilizar Azure Machine Learning aplicaciones geoespaciales increíbles que funcionan
Studio con husos horarios y ubicaciones.

Mira demostraciones de estos servicios en la serie


Azure Maps Azure Friday:

Puedes utilizar Azure Maps para agregar a tus • Diseñando con Azure Maps
aplicaciones poderosas capacidades geoespaciales,
como la información de ubicaciones. Azure Maps es • Búsqueda en Azure Maps
un conjunto de servicios y controles de JavaScript que
• Novedades de Búsqueda en Azure Maps
facilitan el desarrollo de aplicaciones que manejan
mapas, tráfico, rutas, ubicaciones y husos horarios. • Husos horarios en Azure Maps
Azure Maps proporciona los siguientes servicios:
• Tráfico en Azure Maps

• Servicio de trazado que puedes utilizar para • Trazado de rutas con Azure Maps
trazar mapas de alta calidad en tu aplicación.
• Visualización de datos con Azure Maps Web
• Servicio de ruta que te permite calcular rutas Map Control
entre ubicaciones y mejorarlas agregando
modos de viaje, tales como viaje en automóvil, Lanza un mapa de búsqueda interactivo con
bicicleta o transporte de materiales peligrosos Azure Maps
(Figura 4-5).
Herramientas para
• Servicio de búsqueda que te permite
buscar lugares por dirección, nombre y otra desarrolladores de
información geográfica. inteligencia artificial
• Servicio de huso horario que te permite
obtener información histórica y actual sobre Además de los servicios que agregan inteligencia
husos horarios y correlacionarla con las a su aplicación, Azure proporciona poderosas
ubicaciones. herramientas que puede utilizar para trabajar con
esos servicios y crear e implementar recursos como
• Servicio de tráfico que puedes utilizar para modelos de machine learning.
obtener información sobre el flujo de tráfico
actual y los incidentes en un área determinada.
Herramientas de Visual Studio para IA
Las herramientas de Visual Studio para IA son
una extensión gratuita de Visual Studio. Puedes
utilizarlas para obtener acceso a diversos servicios
y marcos de trabajo de IA, tales como Microsoft
Cognitive Toolkit (CNTK), Google TensorFlow,
Keras y Caffe2.

Las herramientas de Visual Studio Tools para IA te


permiten crear algoritmos de machine learning de
manera similar a Azure Machine Learning Studio.
Figura 4-5: Una aplicación de enrutamiento utilizando Azure Maps
Agosto Agregar inteligencia a tu aplicación 42
2018

Puedes utilizar lenguajes como Python, C, C++ y C#,


o puedes aprovechar una de las muchas muestras
Usar eventos y mensajes en
en la galería de experimentos de machine learning. una aplicación
Con las herramientas de Visual Studio para IA, Las aplicaciones modernas distribuidas globalmente
puedes crear elementos de machine learning desde deben lidiar a menudo con grandes cantidades
Visual Studio. Puedes aprovechar el potencial de de mensajes y se deben diseñar pensando en la
Visual Studio para depurar algoritmos de machine desvinculación y el escalado. Azure proporciona
learning y entrenar los modelos de machine varios servicios para ayudar con la ingesta y el
learning. Desde Visual Studio, puedes crear tareas análisis de eventos y los patrones de mensajería.
de entrenamiento que puedan escalarse a muchas Estos servicios también son fundamentales para
máquinas virtuales en Azure. También puedes crear aplicaciones inteligentes que aprovechen la
supervisar el rendimiento del entrenamiento y inteligencia artificial.
luego generar un servicio web para utilizar el
modelo de machine learning en tus aplicaciones. Azure Service Bus
Puedes hacer todo esto sin salir de Visual Studio. En Azure, la base de la mensajería es Azure Service
Bus. El servicio Service Bus incluye una colección de
Descarga la extensión de herramientas de Visual
servicios que se pueden utilizar para los patrones de
Studio para IA
mensajería. Entre ellos destacan Colas y Temas de
Kit de herramientas de IA para Azure IoT Edge Azure Services Bus.
Utilizar modelos de machine learning de forma local
en dispositivos como tu teléfono (también llamado
Comienza a utilizar Azure Service Bus Queues y Topics
“en los extremos”) ofrece una poderosa ventaja. Te
permite utilizar la potencia de procesamiento local
Colas de Azure Service Bus
del dispositivo sin depender de una conexión a
Las colas de Azure Service Bus se usan para
Internet o incurrir en la latencia de una llamada de
desacoplar sistemas. Por ejemplo: una aplicación
servicio web para obtener resultados.
web recibe pedidos de los usuarios y tiene que
Considera que, en la sección Cognitive Services, vimos invocar un servicio web para procesar el pedido.
que el servicio Custom Vision ya es compatible con El servicio web tardará mucho tiempo, quizás
ejecutarse en los extremos. En el futuro, más servicios hasta cinco minutos, en procesar completamente
podrán ejecutarse en los extremos. el pedido. Por supuesto, es inaceptable para la
aplicación web esperar cinco minutos entre el
Para ejecutar modelos de machine learning en los momento en el que el usuario realiza el pedido y el
extremos, necesitamos las herramientas para ayudarte momento en el que se muestran los comentarios.
a implementar los modelos y los servicios web. El kit Una buena forma de solucionar este problema es
de herramientas de IA para Azure IoT Edge contribuye utilizar una cola para desacoplar la aplicación web
a este conjunto de herramientas al permitirte crear del servicio web.
paquetes de modelos de machine learning con La aplicación web recibe el pedido y lo escribe en
contenedores Docker compatibles con Azure IoT Edge un mensaje en una cola de Azure Service Bus. Una
y a exponer esos modelos como API REST. vez que lo ha hecho, puede informar al usuario
El kit de herramientas de IA para Azure IoT Edge de que se está tramitando el pedido. El servicio
contiene ejemplos para ayudarte a comenzar web toma los mensajes de la cola, uno por uno,
y es completamente de código abierto y está y los procesa. Cuando el servicio web termina de
procesar un pedido, envía una notificación por
disponible en GitHub.
correo electrónico al usuario para informarle de que
se ha pedido el artículo.
Agosto Agregar inteligencia a tu aplicación 43
2018

Al desacoplar los sistemas, la aplicación web puede Tabla 4-2: Una comparación de características entre las colas
de Service Bus y las colas de Azure Storage
funcionar a una velocidad diferente del servicio
web, y ambos pueden escalarse por separado para
Colas de Azure Service Colas de Azure Storage
ajustarse a las necesidades de las aplicaciones. Bus

La cola de Service Bus es un mecanismo sencillo. Duración del mensaje Duración del mensaje
> 7 días < 7 días
Varias aplicaciones pueden poner mensajes en
la cola, pero un mensaje de la cola solo puede
Orden garantizado Tamaño de la cola
procesarse en una aplicación cada vez. Incluye (el primero en entrar es > 80 GB
algunas características inteligentes para trabajar el primero en salir)
con los mensajes de la cola, como la detección de
duplicados y una subcola de mensajes fallidos a Detección de Registros de transacciones
duplicados
la que se transfieren los mensajes cuando no se
pueden procesar correctamente. Tamaño del mensaje Tamaño del mensaje
≤ 1 MB ≤ 64 KB

Temas de Azure Service Bus Azure Event Hubs


Al igual que las colas de Service Bus, los temas En un mundo como el nuestro, donde el software es
de Azure Service Bus proporcionan una forma de algo ubicuo, se generan datos desde innumerables
desacoplar aplicaciones. Estas son las diferencias aplicaciones, dispositivos y ubicaciones todo el
entre la cola y los temas: tiempo. Hoy en día, es cada vez más común para las
compañías capturar enormes cantidades de esos
• Con una cola, varias aplicaciones escriben datos para analizarlos o transformarlos y moverlos
mensajes en la cola, pero solo una aplicación para su uso posterior. Azure Event Hubs puede
puede procesar un mensaje en un momento ayudar con esto
dado.
Event Hubs se diseñó para la ingesta masiva de
• Con un tema, varias aplicaciones escriben datos. Puedes lanzar millones de mensajes por
mensajes en el tema y varias aplicaciones puede segundo al servicio y este gestionará los datos
procesar un mensaje al mismo tiempo. sin esfuerzo. Puedes retener mensajes hasta un
máximo de siete días o retenerlos indefinidamente
Los temas de Service Bus funcionan como una escribiéndolos en un almacén de datos mediante la
cola y varias aplicaciones pueden procesar el función de captura de Event Hubs.
mismo mensaje. Las aplicaciones pueden crear
Puedes utilizar Event Hubs para filtrar los datos con
una suscripción en el tema que indica qué tipo de
consultas en el momento en que llegan y enviarlos
mensajes les interesa. Al igual que las colas, los
a un almacén de datos como Azure Cosmos DB.
temas tienen características como la detección de
Puedes incluso reproducir mensajes si es necesario.
duplicados y una subcola de mensajes fallidos a la
que los mensajes se mueven cuando no pueden Empieza ahora a enviar mensajes a Azure Event
Hubs
procesarse correctamente.
Azure IoT Hub
Comparación entre las colas de Service Bus y las Al igual que Event Hubs, Azure IoT Hub está
colas de Azure Storage diseñado para la ingesta masiva de datos. Va
Hay colas de Service Bus, pero también hay colas dirigido en especial a la gestión del enorme
de Azure Storage. Básicamente hacen lo mismo, volumen de mensajes de datos procedentes de los
pero hay diferencias sutiles entre ellas. La tabla 4-2 dispositivos del Internet de las cosas (IoT), como
analiza los dos tipos de colas. los termostatos inteligentes o los sensores de los
Agosto Agregar inteligencia a tu aplicación 44
2018

coches. Tiene muchas de las mismas propiedades Da servicio dentro y fuera de los eventos de
que Event Hubs, como la capacidad de retener publicación de Azure (por ejemplo, cuando se
mensajes hasta un máximo de siete días y de agrega un nuevo Blob o cuando se agrega un nuevo
reproducirlos. usuario a una suscripción de Azure). Azure Event
Grid puede detectar estos eventos y hacer que estén
Lo que hace único a IoT Hub es que, además de disponibles para los controladores de eventos y
recibir mensajes de los dispositivos, puede enviarles servicios que se han suscrito a los eventos (Figura
mensajes. Tiene la capacidad de administrar toda 4-6). Los controladores de eventos pueden ser cosas
la infraestructura de IoT. Puedes usar IoT Hub para como Azure Functions o Azure Logic Apps, que
registrar dispositivos e informar de su estado y para pueden actuar sobre los datos del evento.
administrarlos protegiéndolos y reiniciándolos y
enviándoles datos. Otro aspecto importante de Event Grid es que es
un servicio sin servidor. Esto significa que, al igual
que Azure Logic Apps y Azure Functions, Event
Conecta tu dispositivo a tu centro de IoT
Grid ajusta su escala automáticamente y no es
necesario implementar una instancia. Solo tienes
que configurarlo y usarlo. Y solo se paga por lo que
Azure Event Grid
se usa, no por el hecho de que esté ahí.
Azure Event Grid ofrece un tipo diferente de
mensajería. Event Grid ofrece un servicio de
Aquí puedes ver un ejemplo de uso de Azure Event
publicación/suscripción totalmente administrado,
Grid: Quieres recibir una notificación por correo
que conecta con casi todos los servicios de Azure
electrónico cada vez que se agrega o elimina un
y puede conectar con suscriptores y publicadores
usuario de tu lista de correos en MailChimp. Azure
personalizados.
Event Grid se utiliza para activar una aplicación en
Azure Logic Apps y está configurado para escuchar
Esto es diferente de trabajar con las colas y los
los cambios que se producen en la lista de correo
temas de Service Bus, donde solo se necesita
de MailChimp. El siguiente paso es enviar un correo
sondear la cola o el tema para extraer nuevos
electrónico que contiene el nombre del usuario
mensajes. Event Grid envía automáticamente los
que se ha agregado o eliminado y la acción que
mensajes a los suscriptores, lo que lo convierte en
un servicio de eventos reactivo en tiempo real.

Publicadores Suscripciones Controladores


Temas
de eventos a eventos de eventos

Blob Storage
Azure Functions
Grupos de recursos
Aplicación lógica
Suscripciones a Azure
Azure Automation
Event Hubs
WebHooks
Temas personalizados

Figura 4-6: Información general de Azure Event Grid


Agosto Agregar inteligencia a tu aplicación 45
2018

se realizó (agregar o eliminar). Ahora, cuando un podría utilizar SignalR para actualizar la oferta
nuevo usuario se agrega a la lista de correo, Event más reciente tan pronto ocurra, sin necesidad de
Grid transmite una señal a Logic Apps, que envía un actualización toda la página ni tener que sondear
correo electrónico. por nueva información.
Supervisa los cambios de las máquinas
virtuales con Azure Event Grid y Logic Apps Hospedar un servidor de SignalR no es una tarea
sencilla y puede ser difícil escalar y protegerlo
Azure SignalR Service adecuadamente. Cuando utilizas el servicio Azure
Puedes utilizar Azure SignalR Service para SignalR completamente administrado, es fácil
añadir funcionalidades web en tiempo real a tus de configurar, y la seguridad, disponibilidad,
aplicaciones. El servicio se basa en ASP.NET Core rendimiento y escalabilidad son también
SignalR y se ofrece como un servicio totalmente completamente administrados.
administrado y autónomo en Azure.
Crea una sala de chat con SignalR
SignalR puede actualizar las aplicaciones
conectadas en tiempo real mediante HTTP,
¿Qué se usa en cada caso?
sin necesidad de que las aplicaciones busquen
Azure proporciona numerosas opciones para
actualizaciones o envíen nuevas solicitudes
realizar mensajería y para desacoplar aplicaciones.
HTTP. Esto te permite crear experiencias web
¿Cuál se debe utilizar y cuándo? La Tabla 4-3
transparentes que actualizan la información sobre
resume las diferencias para ayudarte a elegir.
la marcha. Por ejemplo, una aplicación de subastas

Tabla 4-3: Determinación de qué servicio de Azure utilizar para mensajes o eventos
SignalR Service

Event Grid

Event Hubs

IoT Hub

Temas

Bus
Colas de Service

Colas de Storage
Ingesta de eventos X X X

Administración de
X
dispositivos

Mensajería X X X X X X X

Varios consumidores X X X X X

Varios remitentes X X X X X X X

Uso para desacoplar X X X X X

Uso para publicar/


X X
suscribir

Tamaño máximo del


64 KB 64 KB 256 KB 256 KB 1 MB 1 MB 64 KB
mensaje
Agosto Trabajar y comprender IoT 46
2018

Trabajar y
Cada día, el mundo se conecta más y más. El
software se integra con el mundo físico mediante
los dispositivos inteligentes que conforman el

comprender IoT Internet de las cosas (IoT). Los dispositivos se


conectan entre sí y al Internet para obtener más
capacidades y ayudar a los usuarios y empresas
a añadir valor a cada aspecto de la vida.

Azure está ayudando a crear el Internet de las cosas


al proporcionar una plataforma de servicios para
conectar dispositivos al cloud, derivar conocimiento
de los datos y tomar acciones en el cloud y en el
perímetro. Exploremos los servicios de IoT que
Azure tiene para ofrecer.
Agosto Trabajar y comprender IoT 47
2018

Azure IoT Hub envíe mensajes y supervise el dispositivo; también


En el corazón del IoT de Azure se encuentra Azure permite que el centro proteja el dispositivo y las
IoT Hub, que es una plataforma de cloud abierta comunicaciones entre el dispositivo y el centro. Los
y flexible que se ofrece como servicio para conectar, dispositivos pueden requerir autenticación de IoT Hub
supervisar y administrar miles de millones de mediante varios protocolos de seguridad de prácticas
dispositivos de forma segura y escalable. Ya hemos recomendadas del sector, tales como certificados
hablado de Azure IoT Hub en la sección sobre X.509 y autenticación basada en token SAS. Puedes
eventos y mensajes, pero hay mucho más cosas de administrar la seguridad de cada dispositivo
qué hablar en el contexto de IoT. conectado y revocar los privilegios si ya no quieres
que un dispositivo en particular se conecte.
Ya sabes que puedes utilizar IoT Hub para ingerir
grandes cantidades de mensajes que por lo general
Cuando los dispositivos envían un mensaje a Azure
provienen de dispositivos de IoT, como los mensajes
IoT Hub, puedes decidir si almacenar el mensaje o
que contienen datos de los sensores de temperatura.
enrutarlo a otro servicio para realizar análisis o una
Pero además, IoT Hub es especial porque no solo
acción. Por ejemplo, puedes enrutar los mensajes
recibe mensajes, también los envía. Establece una
entrantes para que los maneje una Azure Function
comunicación bidireccional con los dispositivos e
que administre cada mensaje y active otros procesos.
incluso te permite ejecutar código en ellos. Esto
O puedes filtrar los mensajes con Azure Stream
es extremadamente poderoso porque te permite
Analytics y solo almacenar los que te sean relevantes,
administrar y controlar los dispositivos (por ejemplo,
como los cambios en la temperatura en lugar de la
enviar un mensaje para reiniciarlos o ejecutar un script
misma temperatura cada segundo.
de arranque). IoT Hub es el servicio fundamental que
permite una solución IoT completa en Azure.
Ejemplo de Azure IoT Hub
Para ayudarte a conectar dispositivos a IoT Una empresa que ofrece información sobre el
Hub, Azure proporciona el servicio IoT Hub movimiento y uso de camiones y personal quiere
Device Provisioning. Este servicio permite escalar su negocio. Anteriormente, la compañía
aprovisionamiento oportuno y sin intervención al había dado seguimiento a sus activos utilizando un
IoT Hub correcto sin necesidad de participación código personalizado en una app nativa de teléfono,
humana, lo cual te permite aprovisionar miles de la cual llama un servicio web personalizado, y
millones de dispositivos de forma segura y escalable. sondeando los GPS físicos que se encuentran en
El servicio te puede ayudar en muchas situaciones de los camiones. Esta solución era complicada de
aprovisionamiento, tales como conectar dispositivos mantener porque era difícil aprovisionar activos
a un IoT Hub y ejecutar sus scripts de configuración nuevos con nuevos dispositivos, y la compañía
inicial, equilibrar cargas de dispositivos en distintos quería inscribir a un nuevo cliente que tenía más de
centros y reaprovisionar con base en un cambio de 2.000 activos.
los dispositivos.
Ahora la empresa utiliza Azure IoT Hub para
También puedes conectar dispositivos que puedan
administrar los dispositivos y la comunicación.
ejecutar código en el “perímetro inteligente”.
Puede utilizar el servicio de aprovisionamiento
Hablaremos más sobre perímetro en la sección
de dispositivos de IoT Hub para incorporar 2.000
acerca de Azure IoT Edge. Lo importante es saber
nuevos dispositivos y quizás conectarlos a un IoT
que IoT Hub puede conectarse a los dispositivos que
Hub específico para ese cliente. La app telefónica
ejecutan módulos y operaciones de IoT Edge.
ahora utiliza Node.js y Azure IoT Device SDK para
Cuando un dispositivo está conectado a IoT Hub, interactuar con IoT Hub. Es notable que ahora
el centro reconoce el dispositivo y mantiene un la compañía tiene control sobre la seguridad
registro de su identidad. Esto permite que IoT Hub de sus dispositivos y puede detectar su estado y
Agosto Trabajar y comprender IoT 48
2018

reiniciarlos, de ser necesario. Además, la compañía Este es un ejemplo de una plantilla de solución:
enruta los datos de sus aparatos GPS mediante
Azure Stream Analytics, así que solo conserva los
datos de cambios en los GPS. Esto reduce en gran
medida la acumulación de datos, dado que los
aparatos envían su ubicación cada segundo.

Al usar este servicio central único, Azure IoT Hub,


le permitió a esta compañía escalar y madurar su
negocio al proporcionar seguridad y administración
de dispositivos de primer nivel. También abrió nuevas
posibilidades para lograr con los dispositivos de la
compañía más de lo que nunca creyeron posible.

Azure IoT Central


Conecta y supervisa tus dispositivos con control
Azure IoT Central es una oferta SaaS completamente
remoto.
administrada que te permite crear una solución de
Obtén mayor visibilidad de tus dispositivos, activos
IoT con solo hacer clic. No es necesario crear código
y sensores, dondequiera que estos se encuentren.
ni realizar ninguna configuración complicada:
Recopila y analiza datos de los dispositivos en tiempo
IoT Central se hace cargo de todo. Navegas por
real con un acelerador de soluciones preconfigurado
asistentes y Azure IoT Central aprovisiona y configura
remoto que activa alertas y acciones automáticas,
los servicios que necesitas (como Azure IoT Hub).
todo desde diagnósticos remotos a solicitudes de
mantenimiento.
Obtienes las mismas capacidades que obtendrías si
hubieses creado la solución desde cero, pero sin la
Además de la supervisión remota, hay muchos
necesidad de años de experiencia en programación.
otros aceleradores de soluciones de IoT, tales como
Si quieres tener más control sobre ciertas áreas de tu
mejorar las eficiencias industriales con una fábrica
solución, puedes profundizar en cualquier momento
conectada, aumentar la fiabilidad del equipo con
y ajustar la solución a tus necesidades.
mantenimiento predictivo y desarrollar y probar tu
solución de IoT con simulación de dispositivos.
Aceleradores de soluciones de Azure IoT
Un excelente lugar para comenzar a crear soluciones
Azure IoT Edge
de IoT son los aceleradores de soluciones de Azure
En las soluciones IoT modernas, el procesamiento de
IoT, que son plantillas para situaciones de IoT
datos puede ocurrir en el cloud o en los dispositivos.
comunes que puedes personalizar a tus propias
El procesamiento en los dispositivos se llama
necesidades. Estas plantillas completas hacen de
“computación periférica”. La computación periférica
todo, desde supervisar los dispositivos y protegerlos
se utiliza cuando no quieres (o no puedes) depender
hasta proporcionar una interfaz de usuario. También
de la conexión al cloud, cuando buscas mejorar el
te ayudan a conectar tus dispositivos existentes y los
rendimiento de tu aplicación eliminando la conexión
nuevos dispositivos.
al cloud o cuando no puedes comunicarte con el
cloud desde el dispositivo por razones de seguridad
o reglamentarias.
Agosto Trabajar y comprender IoT 49
2018

Para situaciones como estas, puedes utilizar Azure • IoT Hub expone interfaces específicas para
IoT Edge. Azure IoT Edge funciona con base en IoT supervisar y administrar de forma remota
Hub, lo cual te permite mover partes de tu carga dispositivos IoT Edge disponibles mediante
de trabajo a la periferia para reducir el tiempo que Azure Portal, Azure CLI o SDK.
invierten los dispositivos en enviar mensajes al cloud,
permitiendo así reacciones más veloces a los cambios Estos tres componentes funcionan conjuntamente
de estado. en el dispositivo y en el cloud para ejecutar tus
cargas de trabajo en la periferia inteligente.
Azure IoT Edge tiene tres componentes:
Actualmente, puedes ejecutar muchos servicios
• IoT Edge Modules son contenedores que
de Azure en la periferia para ayudarte en ciertas
ejecutan servicios de Azure, servicios de
situaciones, y la lista de servicios disponibles sigue
terceros y tu propio código. Se implementan
aumentando. La Tabla 5-1 enumera solo algunos
en dispositivos de IoT Edge y se ejecutan
de ellos.
localmente en esos dispositivos.

• El tiempo de ejecución de IoT Edge se ejecuta Cuando comiences a utilizar la periferia, podrás
crear soluciones increíblemente rápidas que
en cada dispositivo de IoT Edge y administra los
ejecuten algoritmos de machine learning
módulos implementados en cada dispositivo.
localmente y ofrezcan comentarios instantáneos
sobre sus descubrimientos.

Obtener más información acerca de Azure IoT


Tabla 5-1: Ejecutar servicios de Azure en el perímetro Los servicios de Azure IoT son fáciles de utilizar y hay
mucha documentación sobre ellos. Además, muchos
Usarlo en Azure IoT otros recursos pueden guiarte durante el proceso de
Si quieres
Edge
aprendizaje de Azure IoT. Echa un vistazo:
Desarrollar e
implementar modelos de Machine learning • Azure IoT School: Esta academia online gratuita
inteligencia artificial ofrece cursos integrales sobre Azure IoT. Puedes
tomar diversos cursos; los hay para principiante
Personalizar modelos de
visión de computadora Custom Vision Service o más avanzados.
para el caso de uso
• Creación de soluciones de IoT con Azure: Una
Procesamiento de flujos guía para el desarrollador: Este curso online te
Stream Analytics
de datos en tiempo real
guía a través de los principales conceptos de
Procesamiento de Azure IoT a tu propio ritmo.
eventos con código sin Functions
servidor
• Página de desarrollo de aplicaciones de Azure
Implementar una base IoT: Este recurso te proporciona información
Base de datos SQL
de datos SQL Server en el general de los servicios de Azure IoT y un
Server
perímetro
ejemplo de cómo puedes utilizarlos.
Cumplir con los
estándares de Arquitectura unificada • Aceleradores de soluciones de Azure IoT:
interoperabilidad de de OPC Puedes utilizar estas plantillas para comenzar
Industria 4.0
fácilmente a utilizar los servicios de Azure IoT.
Desarrollar lógica Módulo personalizado
personalizada
Agosto Trabajar y comprender IoT 50
2018

• Azure IoT Hub

• Azure IoT Edge

• Vídeos técnicos de Azure IoT en Channel9

¿Qué se usa en cada caso?


Ahora que has visto los servicios de Azure IoT que
están disponibles, ¿cómo sabes qué servicio debes
utilizar para tu situación? La Tabla 5-2 muestra las
opciones de IoT en Azure y cuándo debes utilizar
cada una.

Tabla 5-2: ¿Qué servicio de Azure IoT se debe usar en cada caso?

Aceleradores
Azure IoT Azure IoT
Azure IoT Hub de soluciones
Central Edge
de Azure IoT

Crear una solución de IoT con mucho control y código


X
personalizado

Crear una solución de IoT sin preocuparte por el código ni


X
la administración del servicio de Azure

Crear una solución de IoT para una situación común con


X
mínima configuración y escritura de código

Ejecutar localmente cargas de trabajo de inteligencia


X* X
artificial en dispositivos de IoT

* Necesitas Azure IoT Hub para administrar implementaciones y dispositivos de Azure IoT Edge.
Agosto Dónde y cómo implementar los servicios 51
2018 de Azure

Dónde y cómo
Los servicios de Azure con los que elijas trabajar
determinan tus opciones de implementación y
viceversa. Por tanto, es importante entender las

implementar opciones de implementación que hay en Azure y


saber cuáles son sus ramificaciones.

los servicios de
Azure
Agosto Dónde y cómo implementar los servicios 52
2018 de Azure

La mentalidad de entrega son archivos JSON que describen lo que se


desea implementar y especifican los parámetros
continua correspondientes.

Entregar rápido y reiterar rápido son aspectos


Puedes crear plantillas de Resource Manager
cruciales para crear un gran software. Por tanto, el
en Visual Studio y Visual Studio Code usando la
nuevo código debe fusionarse con el código de tu
plantilla de proyecto de Grupo de recursos de
equipo, y eso hay que implementarlo y probarlo tan
Azure. También puedes generar plantillas de
deprisa y tan a menudo como sea posible para ver
Resource Manager desde Azure Portal haciendo
si todo funciona y si lo que se ha creado es lo que
clic en el botón Script de automatización, que
necesita el usuario.
está disponible en la barra de menús de todos los
recursos disponibles en Azure Portal. Esto genera la
Muchos de los servicios de Azure que hemos plantilla de Resource Manager para el recurso dado
analizado hasta ahora en este libro admiten la e incluso código para crear el recurso utilizando
entrega automática de código, a menudo a través la interfaz de la línea de comandos (CLI) de Azure,
de un proceso de entrega continua (CD) que se Windows PowerShell, .NET y Ruby.
configura dentro del servicio.
Una vez que tengas una plantilla de Resource
Además de las funcionalidades nativas de los Manager, puedes implementarla en Azure usando
servicios de Azure, puedes utilizar Visual Studio PowerShell, la CLI de Azure o Visual Studio. También
Team Services para crear, probar e implementar puedes automatizar tu implementación en un
la aplicación. Puedes crear fácilmente nuevos proceso de CD usando Visual Studio Team Services.
procesos de compilación e implementación en
Visual Studio Team Services y hacer cosas como
Utiliza plantillas de Resource Manager para
automatizar las pruebas de carga y cambiar las
implementar aplicaciones de modo que se ejecuten
ranuras de implementación a la producción.
en la plataforma Azure, ya sea en el cloud público
u on-premises, en Azure Stack.
Empieza a usar Visual Studio Team Services
Un gran ejemplo de implementación de recursos
en el cloud con Resource Manager es usar el botón
Si ya utilizas herramientas de integración continua
Implementar en Azure que se puede encontrar en
como Jenkins, puedes traer tus desarrollos
muchos repositorios de GitHub, como se muestra
y procesos a Azure y aprovechar los complementos
en la Figura 6-1.
de agente dinámico para reducir los requisitos
y costes de infraestructura.
Además de utilizar Azure Resource Manager para
infraestructura como código, puedes incorporar
Infraestructura como código
las herramientas y habilidades que ya posees, tales
La infraestructura como código (IaC) captura
como Ansible, Chef y Terraform para aprovisionar y
definiciones del entorno como código declarativo,
administrar la infraestructura de Azure directamente.
tales como JSON o YAML, para aprovisionamiento
y configuración automatizadas. Todos los servicios
de Azure presentados en esta guía se basan en
Azure Resource Manager, el cual puedes usar para
documentar tu entorno como IaC, gracias a las Figura 6-1: Implementación con un solo
plantillas de Resource Manager. Estas plantillas botón de un proyecto de Azure en GitHub
Agosto Dónde y cómo implementar los servicios 53
2018 de Azure

Azure Service Fabric Después de implementar tu aplicación en Azure


Otra forma de ejecutar tus aplicaciones es ejecutarlas Service Fabric, puedes aprovechar beneficios tales
en Azure Service Fabric. Service Fabric es la base como equilibrio de carga, escalamiento automático,
que Microsoft utiliza para ejecutar muchos recursos alta disponibilidad, auto reparación, replicación y
de Azure y lograr que tengan un alto grado de conmutación por error, actualizaciones continuas
disponibilidad y de rendimiento y que se reparen de y recuperación automática. Además, Azure Service
forma automática. Ahora puedes usar Service Fabric Fabric recientemente se volvió de código abierto,
tú mismo para hospedar tus propios servicios. lo cual te permite participar en el desarrollo y
dirección de la plataforma.
Puedes utilizar el SDK de Azure Service Fabric para
crear aplicaciones para Service Fabric. También
Contenedores de Azure
puedes ejecutar cualquier archivo ejecutable en
“Contenedores” es una de esas palabras
Service Fabric e incluso usarlo para hospedar
tecnológicas de moda que aparecen en todas
contenedores.
las noticias. Pero no es solo una palabra, son de
Service Fabric tiene la capacidad de hacer que hecho muy útiles para ejecutar las aplicaciones. Un
tus aplicaciones disfruten del mismo nivel de contenedor es básicamente una máquina virtual
rendimiento, fiabilidad y seguridad que muchos ligera que se inicia y se detiene mucho más deprisa
servicios de Azure y puedes usarlo en cualquier que una máquina virtual y por tanto es mucho más
lugar: puedes implementar Service Fabric en Azure, útil para desarrollar, probar y ejecutar aplicaciones
on-premises, en tu propio equipo e incluso en en producción.
máquinas virtuales (VM) de otros clouds.

Tabla 6-1: Elegir el servicio de Azure que se debe usar para los contenedores

Servicio de Azure
Azure Service Web App para Contenedores
Kubernetes Container
Fabric contenedores en Azure Batch
Azure Instances

Para las implementaciones de producción


de sistemas complejos (con un X X
orquestador de contenedores)

Para ejecutar configuraciones sencillas


X X
(posiblemente sin orquestador)

Para cargas de trabajo con tiempos de


X X X
ejecución largos en los contenedores
Para cargas de trabajo con tiempos de
X X
ejecución cortos en los contenedores

Para organizar un sistema basado en


X X
contenedores

Coordinar con orquestadores de código


X
abierto Kubernetes

Organizar con orquestador integrado X

Utilizar características de App Service


X
como ranuras de implementación
Agosto Dónde y cómo implementar los servicios 54
2018 de Azure

El mayor beneficio que se deriva de los Puedes ejecutar cosas como Azure App Service y
contenedores es que un contenedor es siempre Azure Virtual Machines en Azure Stack. Todo es
igual. Un contenedor se ejecuta localmente al exactamente igual que en el cloud público, pero
desarrollar la aplicación y se utiliza la misma ahora se ejecuta on-premises. Y si decides cambiar
configuración del contenedor en el cloud o en al cloud público, solo tienes que transferir los
cualquier otro lugar. Tu equipo utiliza exactamente servicios de Azure Stack a Azure.
la misma configuración de contenedor, así que
sabes que la infraestructura es la misma para todo Ejemplo de Azure Stack
el mundo y en producción. Con los contenedores, la Una empresa que ofrece vacaciones en crucero de
excusa típica de los desarrolladores, “en mi equipo lujo ha desarrollado diversos software para ayudar
sí funciona”, ahora significa que también funcionará con las tareas de los cruceros. Por ejemplo, una
en producción. app para administrar los camarotes, una app para
administrar a los pasajeros, etc. De hecho, todo el
Hay muchas tecnologías para ejecutar contenedores; crucero depende de estas aplicaciones.
una de ellas es Docker. Azure puede ejecutar y
administrar los contenedores con Azure Container Anteriormente, las aplicaciones todavía se
Instances y Azure Kubernetes Service, e incluso ejecutaban en servidores a bordo de los cruceros.
en Services Fabric y Azure App Service en Linux. La empresa estaba obligada a hacerlo así porque
Además, puedes ejecutar contenedores en Azure los cruceros no tenían conexión a Internet durante
todo el trayecto.
App Service Web App para contenedores y en
Azure Batch. La Tabla 6-1 muestra qué servicio La empresa descubrió que ejecutar sus
podrías elegir en cada caso cuando trabajas con aplicaciones on-premises implicaba demasiada
contenedores. carga, dado que tenía que mantener las máquinas
virtuales y sistemas operativos al mismo tiempo
Nota: Recuerda que, al usar contenedores, utilizas que debía lidiar con importantes problemas
un producto de infraestructura como servicio (IaaS) de disponibilidad. Ahora la empresa ejecuta
y eres responsable del sistema operativo (SO), las sus aplicaciones en Azure Stack, que se ejecuta
revisiones, el equilibrio de carga, etc. on-premises en los cruceros. Azure Stack ofrece
los mismos servicios que Azure, así que la
implementación y administración de aplicaciones
Azure Stack
es mucho más fácil. La compañía también utiliza
Si necesitas que tus aplicaciones y datos
App Service para ejecutar sus aplicaciones, lo cual
permanezcan on-premises, pero quieres aprovechar
permite enfocarse en las aplicaciones en lugar de
la capacidad de Azure, Azure Stack es el producto en mantener las máquinas virtuales y los sistemas
que necesitas. Azure Stack, único en el sector, es una operativos. Por último, los usuarios disfrutaron de
extensión de Azure que se hospeda en el entorno del la mayor disponibilidad que, al ser parte de Azure,
usuario. Esencialmente, es Azure en una caja. es también parte de Azure Stack.

Azure Stack se usa del mismo modo que Azure, con


la misma experiencia de Azure Portal y las mismas
API, con las que puedes usar la CLI de Azure,
Windows PowerShell o tu IDE favorito.
Agosto Dónde y cómo implementar los servicios 55
2018 de Azure

Tabla 6-2: Comparación de opciones de implementación de Azure • Service Fabric (cuando utiliza contenedores,
dado que Service Fabric también se ejecuta en
Azure IoT Hub Azure IoT Central el cloud público)

Si quieres implementar servicios basados en PaaS


(donde tienes menos control, pero la plataforma
Azure Stack
Azure Stack realiza el trabajo pesado), considera las siguientes
On-premises Contenedores opciones:
Service Fabric.
Service Fabric.
On-premises o en cualquier otro lugar (como
tu PC local u otro cloud), puedes elegir de entre las
Service Fabric. siguientes opciones:
Contenedores
Cloud público Plantillas de
Service Fabric. Resource • Azure Stack (dado que puedes implementar
Manager
servicios PaaS como App Service en Azure
Stack)

• En Service Fabric (cuando utilizas el modelo de


Dónde y cuándo implementar programación de Service Fabric)
La Tabla 6-2 resume las opciones de implementación
para Azure. Ten en cuenta que usar todos los servicios En el cloud público de Azure, puedes elegir de las
de PaaS descritos en esta guía solo es posible cuando siguientes opciones:
se usa el cloud público con plantillas de Resource
• Service Fabric (cuando utilizar el modelo de
Manager u on-premises con Azure Stack.
programación de Service Fabric, dado que
Si quieres implementar servicios basados en IaaS Service Fabric también se ejecuta en el cloud
(donde tienes control del sistema operativo), público)
considera estas opciones:
• Cualquier servicio Azure PaaS que definas como
On-premises o en cualquier otro lugar (como una plantilla en Resource Manager
tu PC local u otro cloud), puedes elegir de entre las
siguientes opciones:

• Azure Stack (donde implementas servicios


como máquinas virtuales)

• Cualquiera de los servicios de contenedores


de Azure (dado que los contenedores pueden
ejecutarse en cualquier lugar)

• En Service Fabric (cuando utilizas contenedores)

En el cloud público de Azure, puedes elegir de las


siguientes opciones:

• Contenedores (dado que los contenedores


también pueden ejecutarse en cualquier
servicio de contenedores de Azure)
Agosto Microsoft Azure en acción 56
2018

Microsoft Azure
Ahora que ya sabes lo que es Azure y conoces los
servicios que ofrece, vamos a empezar a utilizarlo.

en acción

Nombre de los autores


Job title lorem ipsum dolor,
Ubicación
Agosto Microsoft Azure en acción 57
2018

01 / En este tutorial, vamos a implementar una


aplicación sencilla de .NET Core que se
conecte con una base de datos SQL y vamos
a hospedarla en Azure. Vamos a hospedar la
aplicación en una app Azure Web y a utilizar
Tutorial: una base de datos Azure SQL como nuestra
base de datos.

Desarrollar una Para continuar, necesitarás Git (v2 o superior),


.NET Core y Visual Studio Code instalados en tu

aplicación web ordenador. También utilizaremos una muestra


de la aplicación ASP.NET Core MVC que puedes

y una base de utilizar para administrar la lista de pendientes.

datos en Azure
Agosto Microsoft Azure en acción 58
2018

Crear la aplicación web y Para hospedar la base de datos, crearemos un base


de datos SQL de Azure. Esta funciona de igual manera
la base de datos con Azure que una base de datos de SQL Server local y ahora se

Portal ejecuta completamente administrada en Azure.

1. En Azure Portal, haz clic en el botón Crear un


Para hospedar la aplicación de .NET Core, vamos a nuevo servicio.
crear una nueva aplicación web en el portal de Azure.
2. Busca SQL Database. Haz clic en SQL Database
1. En Azure Portal, haz clic en el botón Crear un en los resultados para abrir la hoja de la base de
nuevo servicio. datos SQL. Haz clic en Crear para comenzar.

2. Busca Aplicación web. Se abre la hoja de 3. Se abre la hoja de creación de la base de datos
Aplicación web. Haz clic en Crear para comenzar. SQL.

a. Escribe un nombre para la base de datos.


3. Se abre la hoja de creación de aplicación web.
b. Selecciona el grupo de recursos que
a. Escribe un nombre para la aplicación web. creaste para la aplicación web.
b. Crea un nuevo grupo de recursos c. Deja la fuente como Base de datos en
asignándole un nombre. blanco.
c. Deja la selección de sistema operativo en d. Haz clic en Servidor para crear un nuevo
Windows. servidor de base de datos SQL de Azure:
d. Selecciona o crea un plan de App Service y
haz clic en Crear. i. Escribe un nombre para el servidor.
ii. Ingresa el inicio de sesión
Aplicación web se ejecuta con planes de App
administrativo del servidor. Este es el
Service nombre de usuario del servidor.
App Services, al igual que Aplicación web, se iii. Escribe la contraseña que utilizarás
ejecuta con planes de Azure App Service. Los para iniciar sesión en el servidor.
planes de App Service son una abstracción de iv. Confirma la contraseña.
recursos y características, como la CPU y la v. Elige una ubicación. Elige la misma
memoria, y se representan por medio de niveles ubicación que seleccionaste para el
de precios. Los planes de App Service también plan de App Service.
están vinculados a la región geográfica que elijas. vi. Haz clic en Seleccionar para enviar la
Puedes, por ejemplo, ejecutar la aplicación de
configuración del nuevo servidor.
Aplicación web en un plan de App Service del nivel
de precios S1 (consulta la Figura 7-1), que tiene
e. Selecciona un nivel de precios. Para fines
1 núcleo y 1,75 GB de RAM.
de pruebas y desarrollo, el nivel Básico es
Puedes ejecutar tantos App Services como quieras suficiente.
en un plan de App Service, siempre y cuando seas f. Haz clic en Crear. Ahora se creará la base
consciente de que tienes que compartir los recursos de datos.
entre todos los App Services.
4. Desplázate hasta la base de datos SQL de Azure
Figura 7-1: Explicación de un plan de Azure App Service y haz clic en Mostrar cadena de conexión a la
base de datos.

Nivel de precios: S1
Región: Centro de 5. Copia la cadena de conexión a algún lugar
Estados Unidos
seguro. La necesitarás más adelante en este
tutorial.
Agosto Microsoft Azure en acción 59
2018

Ejecuta la aplicación .NET Figura 7-2: La aplicación de tareas en ejecución local

Core localmente
Vamos a ejecutar la app localmente antes
de ejecutarla en Azure. La aplicación puede
ejecutarse localmente debido a que, de forma
predeterminada, utiliza una base de datos SQLite, la
cual es un motor de base de datos SQL autónomo.

1. Abre una línea de comando y dirígete al


directorio que quieras utilizar como directorio
para el código fuente en este proyecto.

2. Ejecuta los siguientes comandos para obtener


el código fuente y navega hasta la carpeta del
proyecto:
5. Puedes cerrar la aplicación si cierras la ventana
de comandos o al presionar CTRL + C.
git clone https://github.com/azure-samples/
dotnetcore-sqldb-tutorial

cd dotnetcore-sqldb-tutorial Conectar la aplicación de


web local a la base de datos
3. El proyecto utiliza Entity Framework Core para que se ejecuta en Azure
rellenar su base de datos. Para asegurar que
la base de datos esté actualizada y ejecutar la
aplicación de forma local, ejecuta los siguientes Ahora tienes una aplicación funcional que se
comandos: ejecuta localmente. Antes de implementarla en
Azure, cambiaremos el código fuente para que
dotnet restore pueda conectarse a la base de datos SQL de Azure.

dotnet ef database update 1. En tu repositorio de código fuente, encuentra


dotnet run
el archivo Startup.cs y localiza el siguiente
código:

4. La aplicación debería estar ahora en ejecución


y la URL a la app encontrarse en la salida de la servicesAddDbContext<MyDatabaseContext>
(options => options.UseSqlite
ventana de comandos. Dirígete a la URL (como (“Data Source=localdatabase.db”));
http://localhost:5000) en un navegador. Esto
cargará la aplicación, lo cual se verá como
en la Figura 7-2. Ahora puedes crear nuevos
elementos seleccionando el enlace crear
nuevo.
Agosto Microsoft Azure en acción 60
2018

2. Reemplaza el código con el siguiente código, Ahora, necesitamos configurar la variable de la


el cual se puede conectar con la base de datos cadena de conexión en Azure.
SQL de Azure:
4. En Azure Portal, dirígete hasta la aplicación
web que creamos anteriormente.
// Use SQL Database if in Azure, otherwise,
use SQLite 5. Desplázate hasta Configuración de la
if(Environment.
aplicación.
GetEnvironmentVariable(“ASPNETCORE_
ENVIRONMENT”) == “Production”) 6. Crea una nueva cadena de conexión. El
nombre debe ser MyDbConnection y el
services.
AddDbContext<MyDatabaseContext>(options => valor debe ser la cadena de conexión a la base
de datos SQL de Azure (incluidos el nombre
options.UseSqlServer(Configuration.
GetConnectionString(“MyDbConnection”))); de usuario y la contraseña) que guardaste
else
anteriormente para crear la base de datos.
services.
AddDbContext<MyDatabaseContext>(options => 7. Haz clic en Guardar. La configuración de
la aplicación en el portal se verá como la
options.UseSqlite(“Data
Source=localdatabase.db”)); Figura 7-3.

// Automatically perform database migration


services.BuildServiceProvider().
GetService<MyDatabaseContext>().Database.
Migrate();

Este código observa el entorno en que se ejecuta y


cambia su conexión de base de datos en función a Figura 7-3: Configuración de la aplicación web en el portal
ello. Cuando se ejecuta en el entorno de producción de Azure

(que en nuestro caso es Azure), obtendrá la cadena


de conexión para la base de datos desde la variable Ahora estamos listos para implementar la aplicación
MyDbConnection, que configuraremos en Azure. en Azure.

Además, el código ejecuta el método Database.


Implementar la aplicación
Migrate(), que ejecuta las migraciones de Entity
Framework Core que ejecutamos anteriormente de web en Azure
forma manual. Con este método, no tenemos que
preocuparnos por ello. Vamos a utilizar la Git para transferir la aplicación
a Azure. Para ello, tenemos que conectar nuestro
3. Guarda los cambios y ejecuta los siguientes repositorio Git local a Azure. Para conectar el Git
comandos para enviar los cambios al local con Azure, debes tener configurado un usuario
repositorio Git local: de implementación en el servidor (Azure Web
App) con el fin de autenticar la implementación.
git add . Este usuario de implementación tiene nivel de
git commit -m “connect to SQLDB in Azure” cuenta y es distinto de tu cuenta de suscripción de
Azure. Solo tienes que configurar este usuario de
implementación una vez.
Agosto Microsoft Azure en acción 61
2018

1. En Azure Portal, dirígete hasta Azure Cloud c. Utiliza la URL para ejecutar el siguiente
Shell. Puedes hacerlo si haces clic en el botón comando:
en la barra superior que tiene la siguiente
apariencia: git remote add azure
<deploymentLocalGitUrl>

2. Azure Cloud Shell te permite utilizar Azure CLI


en el cloud y se hace cargo de la autenticación. 6. Ahora que el destino remoto se agregó al
Cuando Cloud Shell está completamente repositorio Git, puedes insertar tu código al
cargada, ejecuta el siguiente comando para ejecutar el siguiente comando. Se te pedirá
crear al usuario de implementación. Cambia introducir las credenciales para insertar el
los valores <usuario> y <contraseña> en el código a Azure. Utiliza el nombre de usuario y
comando con los que hayas creado. Asegúrate la contraseña del usuario de implementación
de escribir el nombre de usuario y la que habías creado.
contraseña. Los necesitaremos después.

git push azure master


az webapp deployment user set --user-name
<username> --password <password>
7. Insertar el código fuente a Azure podría tomar
algunos minutos la primera vez. Cuando haya
3. El comando dará como resultado una salida finalizado, dirígete a la URL de tu Azure Web
JSON. Si aparece un error ‘Conflict’. Details: App, la cual se verá de esta forma: http://<app_
409 , cambia el nombre de usuario. Si aparece name>.azurewebsites.net
un error ‘Bad Request’. Details: 400, debes
crear una contraseña más segura. 8. Agrega algunos elementos pendientes en la
app para probar que la conexión a la base de
Ahora, necesitamos enviar el código fuente desde datos sea funcional.
nuestro repositorio local Git hasta Azure Web App.

4. Abre la línea de comandos en tu equipo local. ¡Ya está! Ahora tienes una aplicación funcional que
se ejecuta en Azure.
5. Agrega un remoto de Azure a tu repositorio
Git local. Puedes hacerlo si utilizas la dirección
URL remota de Git, que tiene este formato:
https://<username>@<app_name>.scm.
azurewebsites.net/<app_name>.git

a. Cambia el <usuario> con el nombre de


usuario que utilizamos al crear al usuario de
implementación.
b. Cambia el <nombre_de_la_app> con el
nombre de la Azure Web App.
Agosto 7
Capítulo La guía deAzure
Microsoft Azureen
para
acción
desarrolladores 62
2018

02 /
Una característica de gran alcance de nuestra
aplicación es la capacidad de analizar el contenido
de las tareas pendientes y luego crear una cita
automáticamente en el calendario para las tareas
que requieren atención en una fecha específica, si

Tutorial: se detecta alguna. Por ejemplo, si un usuario crea


un nuevo elemento de tareas pendientes con el

Expandir las
texto “cena familiar siguiente viernes 7:00 PM”, la
aplicación creará un elemento de calendario para
ese viernes específico a las 7:00 PM con el tema

aplicaciones “comida familiar”.

con Azure
Configuraremos esta características utilizando
una aplicación lógica de Azure y Language
Understanding Cognitive Service. Esto funcionará

Logic Apps de la siguiente forma:

y Cognitive La aplicación .NET Core escribe la lista de tareas


pendientes en la base de datos SQL.

Services La aplicación lógica se activa por cada nueva fila


que se crea en la base de datos.

La aplicación lógica toma el texto de la lista de


tareas pendientes y lo pasa al servicio Language
Understanding.

El servicio Language Understanding analiza el


texto y crea un elemento de calendario en tu
calendario de Office 365, si el elemente contiene
fecha y hora.

Lo divertido es que no tenemos que cambiar


nuestra aplicación de ninguna forma para añadir
esta funcionalidad. La aplicación lógica y el
servicio cognitivo son servicios adicionales que
simplemente analizan los datos que ya existen.

¡Manos a la obra!
Agosto Microsoft Azure en acción 63
2018

Crear un servicio de 6. Haz clic en Crear nueva app:

comprensión de idiomas a. Escribe un nombre.


b. Haz clic en Listo.

Primero crearemos el servicio de comprensión


7. Ahora estamos en el portal de Language
de idiomas para poder usarlo después en nuestra
Understanding. Aquí podemos desarrollar
app de Azure Logic. El servicio de comprensión de
un modelo de lenguaje. Queremos poder
idiomas es un servicio cognitivo de Azure que puede
comprender la frase “cena familiar siguiente
comprender lo que quiere decir un texto con base en
viernes 7 PM.” Para ello, primero agregaremos
un modelo que hayamos provisto nosotros mismos.
algunas entidades, que son elementos que
En este ejemplo, mantendremos el modelo simple
el servicio reconocerá en el texto. Haz clic en
y no desarrollaremos nada sobre él para que esté
Entidades:
listo para cada variación que los usuarios puedan
necesitar para una fecha en el elemento pendiente. a. Haz clic en Administrar entidades
Si quieres, puedes agregar el modelo por ti mismo.
predesarrolladas.
b. Selecciona DatetimeV2 y keyPhrase.
1. En Azure Portal, haz clic en el botón Crear un
c. Haz clic en Listo.
nuevo servicio.
8. Ahora tenemos dos entidades que reconocerán
2. Busca Comprensión de idiomas Haz clic en texto por nosotros. Ahora haz clic en
Comprensión de idiomas en los resultados de Intenciones.
búsqueda para abrir la hoja sobre comprensión
de idiomas. Haz clic en Crear para comenzar. 9. Haz clic en Crear nueva intención:

3. Se abre la hoja para crear comprensión de a. Escribe un nombre, como “Agregar


idiomas. pendiente al calendario”, que es la intención
que intentamos detectar en el texto.
a. Escribe un nombre. b. Haz clic en Listo.
b. Selecciona un nivel de precios (cualquiera
funciona para este tutorial). 10. Ahora puedes escribir Expresiones. Son textos
c. Crea un nuevo grupo de recursos llamado de muestra que representan la intención que
deteccióndedatos. tratamos de detectar. Así que, en nuestro caso,
d. Haz clic en Crear. queremos que el texto “cena familiar siguiente
viernes 7 PM” represente la intención de agregar
4. Se creará el servicio de Language un pendiente al calendario. Adelante, escríbelo.
Understanding, Cuando esté listo, dirígete al 11. Como ya hemos agregado dos entidades, el
servicio. texto en la expresión se analiza y se reconoce
como tales entidades. En este caso, se ve como
5. De forma predeterminada, el servicio se abrirá la Figura 7-4:
en la hoja de Inicio rápido. Ahí, seleccionas
Language Understanding Portal para
dirigirte hasta el portal.

a. De ser necesario, inicia sesión con el botón Figura 7-4: Entidades reconocidas
a partir del texto de una expresión
Iniciar sesión en la esquina superior
derecha.
Agosto Microsoft Azure en acción 64
2018

a. El texto “cena familiar” se reconoce como


una keyPhrase. El texto “siguiente viernes
Crear la aplicación lógica
7 PM” se reconoce como datetimev2; es
La aplicación lógica de Azure que creamos se
decir, un objeto de fecha y hora.
activará cuando se escriban nuevas filas en la
12. Esto funciona por ahora. Utilicemos este base de datos SQL; es decir, cuando se agreguen
modelo para entrenar al servicio y publicarlo. nuevos elementos a la lista de pendientes. Después
Haz clic en el botón Entrenar en la esquina tomará el valor del elemento y lo enviará al servicio
superior derecha de la pantalla. de Language Understanding para analizarlo.
Si encuentra una fecha en el elemento, creará
a. Esto realiza entrenamiento de machine un nuevo evento de calendario en tu cuenta de
learning y desarrolla un modelo de Office365. Manos a la obra.
machine learning basado en lo que
acabamos de ingresar. 1. En Azure Portal, haz clic en el botón Crear un
b. Puedes comprobar si el servicio funciona nuevo servicio.
como se esperaba probándolo en la
ventana de Prueba (junto al botón 2. Busca Aplicación lógica. Haz clic en Aplicación
Entrenar). Escribe “cena familiar siguiente lógica en los resultados de la búsqueda y abre
la hoja Aplicación lógica. Haz clic en Crear para
viernes 7 PM” y mira el resultado.
comenzar.

13. Ahora que tenemos un servicio funcional, 3. Se abre la hoja de creación de aplicación lógica.
necesitamos publicar el modelo para que
producción pueda utilizarlo. Haz clic en a. Escribe un nombre.
Publicar en el menú (junto al botón Entrenar). b. Selecciona el grupo de recursos que
Esto muestra la página Publicar: creaste cuando creaste el servicio de
Language Understanding.
a. De forma predeterminada, ofrece varios c. Elige una ubicación.
espacios de publicación. Deja los espacios d. Haz clic en Crear.
marcados como Producción.
b. Haz clic en Publicar. 4. Ahora se creará la aplicación lógica. Después de
c. El modelo se publicará a producción. crearla, verás una página de inicio rápida que te
Desplázate para ver Recursos y claves. preguntará si quieres crear la aplicación lógica
Aquí, copia la cadena clave, ya que la a partir de una plantilla, como en la Figura 7-5.
necesitaremos en nuestra aplicación lógica.
Elige Aplicación lógica en blanco para que
podamos comenzar desde cero.
¡Ya está! Ahora necesitamos crear la aplicación
lógica que utiliza el servicio Language
Understanding

Figura 7-5: Creación de una aplicación lógica a partir de


una plantilla
Agosto Microsoft Azure en acción 65
2018

5. Ahora podemos empezar a crear un 6. Haz clic en el signo de más en la tarea SQL y
desencadenador para la aplicación lógica. Es después selecciona Agregar una acción para
una acción que inicia el proceso. agregar la siguiente acción (Figura 7-7).

a. Busca SQL.
b. Selecciona la tarea Cuando se crea un
elemento. Pedirá la conexión a la base de
datos SQL de Azure (Figura 7-6).

Figure 7-7: Agregar una acción para la aplicación lógica

7. Busca LUIS. Esto abrirá el servicio de Language


Figura 7-6: Finalizar la tarea Cuando se crea un elemento
Understanding. Ahora selecciona la acción
LUIS Get prediction. Pedirá una conexión al
c. En este caso, el SQL Server correcto ya está
servicio de Language Understanding.
seleccionado, dado que solo tengo uno por
el momento. Quizá debas seleccionar el a. Escribe un nombre para la conexión.
servidor adecuado.
b. Pega la clave de conexión que habías
d. Escribe un nombre para la conexión y
guardado cuando publicamos el modelo de
después escribe el nombre de usuario y la
Language Understanding.
contraseña para la base de datos SQL de
c. Haz clic en Crear.
Azure que habíamos creado.
e. Haz clic en Crear. Esto crea la conexión y d. Selecciona la Id. de aplicación que creaste
la guarda en tu suscripción de Azure. Si en el portal de Language Understanding.
así lo quieres, puedes volver a utilizar esta e. Selecciona Descripción de la tareas SQL
conexión en otras aplicaciones lógicas. como entrada para el campo Texto de la
f. Selecciona la tabla que queremos expresión.
supervisar. En nuestro caso, es la tabla f. Selecciona el elemento Agregar
Pendientes. pendiente al calendario como la
g. Selecciona un intervalo y una frecuencia, Intención deseada. Este será el resultado
como 5 segundos. Esto indica al si la tarea contiene una fecha o no.
desencadenante que compruebe si hay
nuevas filas cada 5 segundos. Algunos
8. Haz clic en el signo de más y después haz clic
desencadenantes de aplicaciones lógicas son
en agregar una condición. Probaremos para
así: tienen que sondear para activarse. Otros
ver si el texto contiene una fecha al confirmar si
obtienen la información que se les envía.
la intención deseada era verdadera. Si contenía
una fecha, continuamos y crearemos un evento
¡Ya está! Ahora la aplicación lógica se iniciará cada
de calendario. Si no, no hacemos nada.
vez que ingresemos un nuevo elemento de la lista
de pendientes.
Agosto Microsoft Azure en acción 66
2018

a. En la condición, selecciona el valor d. En el campo Tema, selecciona el valor de


Es intención deseada desde la tarea la entidad de la acción donde filtraste la
Language Understanding para el valor. entidad keyPhrase.
b. No modifiques la declaración es igual que.
c. Después, agrega verdadero en el cuadro 11. Guarda el flujo de la aplicación lógica. Desde
de texto del valor. el cuadro si sí, debe aparecer algo como esto
9. La condición termina en dos cuadros, uno para (Figura 7-8):
si verdadero, otro para si falso. En el cuadro
“si verdadero”, crea una nueva acción.
a. Busca LUIS.
b. Selecciona la acción Obtener entidad
por tipo. Esta es una acción de Language
Understanding que extrae una entidad
con base en su tipo de los resultados de
Language Understanding.
c. Selecciona la Id. de aplicación como
hicimos anteriormente.
d. Selecciona builtin.datetimeV2 para
Entidad deseada.
e. Selecciona el objeto LUIS Prediction del
campo luisPredictionObject.
f. Debajo de esta acción, agrega otra del tipo
Obtener entidad por tipo.
g. Selecciona la Id. de aplicación.
h. Selecciona builtin.keyPhrase para
Entidad deseada.
i. Selecciona el objeto LUIS Prediction del Figure 7-8: Guardar el flujo de la aplicación lógica

campo luisPredictionObject.
12. Dirígete a la URL de la aplicación de tareas, que
10. Todavía en el cuadro si verdadero, crea una
es la URL de tu aplicación web de Azure del
nueva acción. Busca Office 365 y selecciona la
tutorial anterior.
acción Crear evento V2. Esta puede crear un
evento en tu calendario de Office 365. 13. Crea un nuevo elemento pendiente con el texto
a. Requiere una conexión a Office 365. “cena familiar siguiente viernes 7 PM.” Esto
Haz clic en agregar nueva conexión y deberá crear un evento en tu calendario.
aparecerá un cuadro de diálogo de inicio
de sesión. Inicie sesión con tus credenciales 14. Además de comprobar tu calendario, puedes
de Office 365. Después de hacerlo, la ver cómo se ejecutó la aplicación lógica si
aplicación lógica mantendrá la conexión en revisas el Historial de ejecuciones. Puedes
tu suscripción de Azure. obtener acceso al historial de ejecuciones al
b. Selecciona el Calendario para crear un abrir la aplicación lógica desde el portal de
evento. Azure. A partir de ahí, puedes incluso reenviar
c. En los campos Hora de finalización y el valor para ejecutarlo nuevamente a través de
Hora de inicio, selecciona el Valor de la aplicación lógica.
entidad de la acción donde filtraste la
entidad datetimeV2.
Agosto Microsoft Azure en acción 67
2018

Este ejemplo muestra que puedes ampliar una


aplicación con los servicios de Azure solo mediante
la configuración y sin cambiar el código. Hicimos
este ejemplo simple para que sea fácil seguir
el tutorial. En una situación real, el modelo de
comprensión del idioma debe ser más robusto
para poder comprender más expresiones. Además,
podrías tener el desencadenante de la aplicación
lógica en las ediciones a los elementos de tareas, no
solo durante su creación.
Agosto 7
Capítulo La guía deAzure
Microsoft Azureen
para
acción
desarrolladores 68
2018

03 /
Con tu aplicación ya creada y en ejecución, ahora
puedes utilizar Azure para mejorarla y hacerla más
fácil de actualizar.

Tutorial: Listo
para producción
Agosto Microsoft Azure en acción 69
2018

Configuración de entrega b. Ejecuta el siguiente comando:

continua con GitHub git push github

Hasta ahora hemos estado enviando código desde c. Ejecuta el siguiente comando para insertar
nuestro repositorio local de Git a Azure. Esto está el código en GitHub:
bien si se trabaja solo, pero si se trabaja en un equipo
Con eso, el código está en GitHub y se puede
se necesita otro tipo de control del código fuente, compartir con el equipo. A continuación, vamos a
como Visual Studio Team Services o GitHub. configurar CD. Usaremos la característica Opciones
de implementación de Aplicación web a través
Vamos a usar GitHub para transferir nuestro código de Azure Portal. Ten en cuenta que también
y después enlazarlo a nuestra aplicación web para podríamos haber usado la característica Entrega
que los cambios se implementen automáticamente continua de Aplicación web, pero eso requiere una
en un proceso de entrega continua (CD). cuenta de Visual Studio Team Services y hemos
preferido simplificar el proceso.
1. Crea un nuevo repositorio en GitHub yendo
a https://github.com/new. (Necesitarás iniciar 1. En Azure Portal, ve a la aplicación web que
sesión). hospeda la aplicación de tareas de .NET Core.

a. Escribe un nombre para el repositorio. 2. En la barra de menús, haz clic en Opciones de


b. Deja los otros ajustes como están implementación.
(repositorio público, no crear un archivo
3. Es posible que esto ya esté configurado para el
LÉAME).
repositorio local de Git. De ser así, haz clic en
c. Crea el repositorio. Al hacerlo, aparece
Desconectar.
una pantalla similar a la figura 7-9:
4. En Elegir origen, selecciona GitHub.

5. En la sección Autorización, autoriza a Azure


para usar GitHub haciendo clic en Autorizar y
otorgando el permiso.

6. En la sección Elegir proyecto, elige el


Figura 7-9: Enlace del repositorio en GitHub repositorio de GitHub que acabas de crear.

7. Deja Rama definida como maestra.


2. Usa la dirección URL que aparece en la pantalla
para establecer un destino remoto para el 8. Haz clic en Aceptar y espera unos segundos.
repositorio local de Git. Puedes hacerlo en la
9. Vuelve al menú Opciones de implementación.
ventana de comandos.
Ahora puedes ver que GitHub está conectado.
A partir de ahora, cada vez que insertes una
a. Ejecuta cd para cambiar al directorio del
nueva versión de código fuente en GitHub,
código fuente de la aplicación. se compilará e implementará en la aplicación
web automáticamente, como se muestra en la
git remote add github https://github.com/ figura 7-10. También puedes forzar este proceso
bmaluijb/test.git haciendo clic en el botón Sincronizar.
Agosto Microsoft Azure en acción 70
2018

Además, puedes probar la versión final en una


ranura de implementación y, cuando estés
satisfecho, intercambiarla con la ranura de
producción. Esto prepara la aplicación antes
del intercambio, lo que se traduce en una
Figura 7-10: Hoja Opciones de implementación de Aplicación
web
implementación sin tiempo de inactividad.

Veamos cómo crear una ranura de implementación


y cómo intercambiarla.
Configuración de entornos 1. En Azure Portal, ve a la aplicación web que
de ensayo hospeda la aplicación de .NET Core.

2. En la barra de menús, haz clic en Ranuras de


Con las aplicaciones web de Azure App Service, implementación. Se abre la hoja Ranuras de
puedes configurar una ranura de ensayo para probar implementación.
la nueva versión de tu aplicación. Puedes usar las
ranuras de implementación para esto. Las ranuras 3. Haz clic en el signo más (+) para crear una
de implementación son App Services completos nueva ranura de implementación.
que puede utilizar para probar el código antes de
a. Escribe un nombre para la ranura (por
promoverlo a la siguiente ranura.
ejemplo, ensayo).
b. Elige la aplicación web de .NET Core como
Puedes tener ranuras de implementación para el el Origen de configuración. (Esto copia la
ensayo, las pruebas de carga y la producción (que configuración de la aplicación en la nueva
es siempre el App Service original; en nuestro caso, ranura.)
la aplicación web de ,NET Core). De hecho, puedes c. Haz clic en Aceptar para crear la ranura.
tener tantas ranuras de implementación como
desees sin incurrir en costes adicionales. Todas las 4. Una vez creada la ranura, es similar a la
ranuras de implementación se ejecutan en el mismo aplicación web original.
plan de App Service, y eso es lo que se paga. Debes
recordar que tener ranuras de implementación a. Configura CD para la ranura como lo
adicionales en un plan de App Service consumirá hiciste en el procedimiento anterior para la
recursos como CPU y memoria. Puedes crear nuevas aplicación web.
ranuras de implementación desde el elemento b. Desconecta la conexión de CD en la
de menú Ranuras de implementación de la aplicación web original de .NET Core. Así,
aplicación web. Asegúrate de que estás ejecutando cuando se inserta nuevo código, se entrega
la aplicación web en el nivel de precios Estándar o solamente en la ranura de ensayo.
Premium, ya que el plan gratuito no incluye ranuras
de implementación. 5. Haz un cambio en la aplicación de .NET Core.

a. Cambia parte del texto en el archivo Index.


En cada ranura de implementación que crees,
cshtml. (Lo encontrarás en la carpeta
puedes configurar las opciones de implementación
Views/Home).
como lo hicimos antes para implementar el código
b. Confírmalo en Git e insértalo en GitHub, tal
automáticamente. Puedes incluso trabajar en
diferentes ramas de código fuente para distintos como al implementar la aplicación de .NET
entornos e implementar automáticamente ramas Core.
concretas en ranuras de implementación específicas.
Agosto Microsoft Azure en acción 71
2018

La nueva versión está ya en la ranura de ensayo y Verás un registro cuando utilices la aplicación en la
no en la aplicación web original (lo que llamamos aplicación web para generar tráfico.
ranura de producción). Puedes comprobarlo yendo
a la dirección URL de la aplicación web de .NET Core
y a la dirección URL de la ranura de ensayo (que Configuración de alertas y
puedes encontrar en la hoja Información general supervisión
de la ranura, al igual que en la hoja Información
general de la aplicación web).
Application Insights proporciona otra poderosa forma
Vamos a poner la nueva versión en producción. de dar seguimiento al rendimiento de las aplicaciones.
Esta herramienta de supervisión de Azure puede
1. En Azure Portal, ve a la aplicación web de .NET
mantenerte informado de muchas cosas en tu
Core.
aplicación, desde cuántos visitantes la han usado al
2. En la barra de menús, haz clic en Ranuras de número de excepciones que se han producido y el
implementación para abrir la hoja Ranuras de punto del código en el que ocurrieron. A diferencia
implementación. de los registros de diagnóstico, Application Insights
3. Haz clic en el botón Intercambiar para abrir la requiere una tarifa nominal.
hoja Intercambiar.
Puedes configurar Application Insights en Azure
a. Deja todos los ajustes como están.
Portal desde la aplicación web.
b. Haz clic en Aceptar para iniciar el
intercambio. 1. Ve a Azure Portal y a la aplicación web que
hospeda la aplicación de .NET Core.
Después de finalizar el intercambio, la nueva versión
de la aplicación web de .NET Core se encontrará en 2. En la barra de menús, haz clic en Application
producción. (Puedes probarla si te diriges a la URL Insights.
de la aplicación web de Node.js.) Usar las ranuras
3. Selecciona Crear recurso nuevo.
de implementación de este modo es altamente
beneficioso porque permite probar la nueva a. Escribe un nombre y selecciona una
versión antes de que entre en producción. Después, ubicación para la instancia de Application
puedes implementarla en producción sin tiempo de Insights.
inactividad. b. Haz clic en Aceptar. Application Insights se
implementará y empezará a recopilar datos
Uso de registros de para la aplicación.
diagnósticos Es necesario configurar la aplicación para que
empiece a enviar datos a Application Insights. Para
Cuando se ejecuta la aplicación, es vital saber cómo
nuestra aplicación de ejemplo de .NET Core, haz lo
está funcionando. Una forma excelente de supervisar
siguiente:
la aplicación es usar registros de diagnóstico para ver
el registro de diagnóstico en directo de la aplicación 4. Escalar una aplicación web a través de Azure
web. Puedes incluso insertar los registros en la Portal
ventana de la consola. Para ello, ejecuta el siguiente
comando en la Azure Cloud Shell: 5. En el menú VS Code, selecciona Proyecto >
Agregar telemetría de Application Insights…

az webapp log tail --name <app_name> 6. Esto abrirá el asistente de Application Sights.
--resource-group <myResourceGroup>
Inicia sesión con tu cuenta de Azure.
Agosto Microsoft Azure en acción 72
2018

7. Selecciona un plan de precios de Application Ten en cuenta que debes ejecutar la aplicación web
Insights. en el nivel de precios Estándar o Premium para
utilizar esta función.
8. Haz clic en Registro. Esto automáticamente
agrega todo al proyecto de .NET Core y crea el
La aplicación web tiene un elemento de menú
recurso de Application Insights en Azure.
denominado Escalar horizontalmente, como
9. Desarrolla el proyecto e inserta los cambios se muestra en la Figura 7-12. Puedes usarlo para
en GitHub para que puedan implementarse ampliar la escala manual o automáticamente.
en la aplicación web. Una vez terminada la
implementación, la aplicación enviará datos a
Application Insights.

De manera predeterminada, Application Insights


realiza detección inteligente. Esta función inteligente
detecta cuando algo está mal y le avisa. Puede
detectar cosas como un aumento repentino de las
solicitudes con error o si la aplicación funciona con
una lentitud inusual. También puedes crear tus propios
eventos personalizados para todo tipo de métricas Figura 7-12: Escalar una aplicación web a través de Azure Portal

y condiciones en el menú Alertas de Application


Insights, como se muestra aquí (Figura 7-11): Escalar horizontalmente significa agregar más
instancias de la aplicación para gestionar la carga.
Cuando se escala o se reduce horizontalmente de
forma automática, se puede hacer en función de
determinadas métricas, como el porcentaje de uso
Figura 7-11: Alertas de Application Insight de la CPU o la memoria, o según una programación
(todos los días a las 17:00) o con una mezcla de
ambos. Es muy fácil de configurar y supervisar.
10. Ve a Azure Portal, busca el recurso de
Application Insights y haz clic en él. Allí verás Agregar Capa de sockets
la información general, que muestra métricas
básicas como el tiempo de respuesta del
seguros (SSL)
servidor, el tiempo de carga de visualización Ahora que la aplicación está lista para la producción,
de las páginas y la cantidad de solicitudes del debes confirmar que es segura. Además de la
servidor y de solicitudes fallidas. Si ves datos autenticación y la autorización, suministrar la
aquí, significa que Application Insights está aplicación web a través de HTTPS es una de las cosas
funcionando. más importantes que puedes hacer. El motivo es que,
sin HTTPS, los intrusos podrían ver el tráfico entre tus
Escalado de la aplicación web recursos y utilizarlo con propósitos maliciosos (como
iniciar sesión en tu aplicación). Además, HTTPS es
Cuando se tienen muchos usuarios, es necesario que obligatorio para características avanzadas como los
la aplicación web ajuste su escala para dar cabida services workers.
al aumento de tráfico. Cuando no está ocupada,
conviene que la escala se reduzca de nuevo para Suministrar tráfico a tu aplicación web a través de
ahorrar costes. Puedes hacerlo con la función de Capa de sockets seguros (SSL) es posible mediante
escalado automático de App Service. la importación de un certificado SSL en la aplicación
Agosto Microsoft Azure en acción 73
2018

web y su enlace con uno de tus nombres de dominio


(personalizados). Puedes importar tu propio
certificado SSL, comprado por ti o por la compañía,
o comprar uno nuevo a través de Certificados
de Azure App Service, que facilita la compra y la
validación del certificado. Después de importar el
certificado, debes asociarlo a uno de los enlaces de
nombres de dominio de tu aplicación web. Puedes
hacer todo esto desde el menú Certificados SSL de
la aplicación web.

Notificar a los usuarios sobre


nuevas versiones
Su empresa se beneficiará de concientizar a los
usuarios sobre sus más recientes lanzamientos.
Al ampliar el proceso de CI/CD en desarrollos de
Azure, es posible utilizar WebHooks en eventos de
PostDeployment para activar un flujo de trabajo de
Azure Logic Apps que coordine las publicaciones en
las redes sociales, como enviar mensajes por Twitter
o publicar las notas de las versiones.
Agosto 7
Capítulo La guía deAzure
Microsoft Azureen
para
acción
desarrolladores 74
2018

04 /
Hoy en día, la mayoría de las empresas necesitan
interactuar con servicios online de alguna forma.
La compañía podría desarrollarlos y mantenerlos
o se podrían consumir como servicios de terceros.
Ofrecer funcionalidad es el objetivo genuino,

Tutorial: Usar pero hay otras tareas incluidas en publicar una API
(por ejemplo, pruebas de seguridad y control de

Azure API
versiones) que deben existir para garantizar que
una aplicación sea segura y confiable.

Management En este ejemplo, utilizaremos una API web de


Node.JS para ayudar a nuestro negocio de

para controlar
conversión de unidades a crecer. La API web se
implementará en Azure y utilizaremos los servicios
de Azure API Management para:

las API y generar • Lanzar versiones de la API.

documentación • Limitar el acceso con una versión de


evaluación del producto API.

• Revisar la documentación de API generada


automáticamente.

Para completar este tutorial, asegúrate de que has


iniciado sesión en Azure con una suscripción válida
para crear los recursos necesarios. Si no tienes una
cuenta de Azure, puedes crear una gratis.
Agosto Microsoft Azure en acción 75
2018

Configuración de Azure Crear y configurar un


Portal Web API servicio de API Management
para API web
Cuando planificamos ofrecer acceso a nuestra
herramienta de conversión de unidades, decidimos Con la API web publicada, es momento de agregar
que nuestro servicio de conversión interno debía un nuevo servicio de API Management a nuestra
implementarse en Azure para que nuestros clientes solución.
pudieran consumirlo.
1. Haz clic en el botón + Agregar, busca API
1. El código fuente de nuestra API está Management y selecciona el servicio de API
Management que agregarás.
hospedado en GitHub. Puedes obtener acceso
e implementarla rápidamente en Azure al hacer 2. Escribe la información en la hoja Crear y
clic en el botón Implementar en Azure (Figura asegúrate de seleccionar el mismo grupo de
7-13) (enlace al repositorio: https://github.com/ recursos creados en este tutorial para el servicio
mbcrump/converter-api). de API Management.

Este proceso por lo general requiere tiempo para


completarse. Recibirás un correo electrónico
cuando se haya creado el servicio de API
Management. Puedes encontrarlo fácilmente
dentro del grupo de recursos seleccionado.

Lanzamiento de versiones
de la API web
Figura 7-13: Botón Implementar en Azure
1. Selecciona el servicio de API Management
2. Tu navegador te redirigirá a la página de que has creado. A continuación, crea un nuevo
configuración de Implementación de Azure proxy API al seleccionar APIs del menú en el
API. Sigue las instrucciones del asistente para panel izquierdo.
completar el proceso de publicación de API. El
2. Se te presentarán algunas opciones, tales
proceso de implementación debe tomar unos
como especificación de OpenAPI, WADL,
minutos.
WSDL y aplicaciones lógicas. Para este tutorial,
3. Después de implementar la API, entra al portal crearemos una API en blanco.
de Azure y dirígete al grupo de recursos que
3. Completa el formulario que se presenta:
creaste. Después, verifica que la aplicación web
esté en ejecución. a. Define el nombre como API de conversión
de unidades de medida.
4. Asegúrate de guardar la recién creada URL de b. Define el nombre interno como API-
API web. La necesitarás más adelante cuando conversión-unidades-medida.
configures el servicio de API Management. c. Establece el esquema de URL como
Ambos.
d. Para habilitar el control de versiones, marca
la bandera de ¿Versiones de esta API?
Agosto Microsoft Azure en acción 76
2018

e. Define el esquema de versiones como Ruta.


f. Establece el identificador de versiones
como v1.
g. Deja todos los demás campos en sus
valores predeterminados.

Considera que el esquema de versiones es Ruta,


Figura 7-14: Agregar parámetros a la pestaña Consultar
y así es como enrutaremos las solicitudes a
distintas versiones de nuestra API. Otras opciones
disponibles para el esquema de versiones son Antes de poder acceder a nuestra API, necesitamos
Consultar parámetros de cadenas y Solicitar asociarla con un producto, que es la forma de
información del encabezado. controlar el acceso a una API. En este ejemplo,
crearemos un producto de evaluación para nuestra
Se te debe mostrar una pantalla de configuración API, el cual permitirá que los usuarios envíen una
del servicio de API Management. Aquí es donde cantidad limitada de solicitudes en un marco de
vincularemos API Management al código de API tiempo específico. Esto asegurará que puedan
web desarrollado por Azure agregando el back end probar nuestra aplicación antes de decidir si
de conversión a v1. aceptarán el plan de suscripción.

1. Para editar el back end: 1. En la hoja de API Management, selecciona


Producto y después haz clic en el botón +
a. Haz clic en el botón Editar en la esquina Agregar.
superior derecha.
b. Marca invalidación y después escribe la 2. Completa la siguiente información:
URL de API web que habíamos creado al a. Define el nombre como Versión de
publicar la API web en Azure. evaluación.
c. Define las credenciales de la puerta de b. Define el ID como versión-evaluación.
enlace a Ningunay haz clic en Guardar. c. Agrega una descripción y marca el Estado
como Publicada.
2. Crea la operación de punto de entrada para d. Desmarca la opción Requiere la
que el servicio de API la exponga al hacer clic suscripción.
en el botón + Agregar operación y escribir la
siguiente información: 3. Haz clic en Crear.

a. Nombre y nombre interno de la operación: 4. Deberás ver el producto recién creado en la


Medidas lista de productos. Haz clic en él para ver la
b. Método de acceso HTTP: GET relación con nuestro servicio de API:

3. Dirígete a la pestaña Consultar y agrega a. Haz clic en el menú API.


los parámetros para que la API calcule las b. Haz clic en el botón + Agregar.
conversiones. Deja todos los demás campos c. Selecciona API de medidas.
y pestañas en sus valores predeterminados
(Figura 7-14). En este punto, deberías poder obtener acceso
a la API de conversión desde tu navegador
4. Al terminar, haz clic en el botón Crear para al seguir la URL: http://YOUR-API-URL/v1/
guardar la configuración del punto de conexión measures?from=meters&to=yards&value=10
de API. (Figura 7-15).
Agosto Microsoft Azure en acción 77
2018

Revisar la documentación
de API generada
automáticamente
Figura 7-15 Obtener acceso a la API de conversión desde un
navegador Ahora que hemos configurado nuestros puntos de
entrada y back ends de la API , echemos un vistazo a
Ahora es momento de limitar la cantidad de la documentación que nuestro servicio de Azure API
solicitudes anónimas de un cliente específico para Management ha creado automáticamente.
asegurar que a nuestra versión de evaluación no se
le de un uso indebido.
Desde la hoja de Información general de API, puedes
1. Regresa a la información general del servicio obtener acceso fácilmente al portal del desarrollador
Medidas de API Management. al hacer clic en el botón Portal del desarrollador
en la barra superior o en el enlace etiquetado como
2. Haz clic en el menú Producto y después URL del portal del desarrollador.
selecciona Versión de evaluación de la lista de
productos. La documentación generada es un recurso útil
para que los desarrolladores estudien nuestra
3. En la página de detalles de la versión de
API, aprendan sobre cómo desarrollar solicitudes
evaluación, haz clic en Políticas del menú a la
de prueba y vean ejemplos de comunicación en
izquierda.
distintos lenguajes, tales como Ruby, C# y JavaScript
4. Define la configuración de cuota de la política (Figura 7-17).
entrante:

<quota calls=”1000” renewal-period=”3600” />

Esto garantiza que ningún cliente pueda enviar más


de 1000 solicitudes al servicio en un periodo de 30
minutos a partir de la primera solicitud. Esta medida
debería ser suficiente para garantizar un uso de
evaluación adecuado de nuestra API de conversión
de unidades de medida. Tan pronto como el conteo
de solicitudes alcance el límite establecido para
cuotas entrantes, todas las solicitudes subsiguientes
se rechazarán hasta que la cuota límite se
restablezca después de 30 minutos (Figura 7-16). Figura 7-17: Documentación generada automáticamente
mediante Azure API Management

Figura 7-16: Definir cuotas para limitar las solicitudes


Agosto Resumen y siguientes pasos 78
2018

Resumen y
En esta guía, hemos analizado las capacidades que
Azure puede aportar a tus aplicaciones. Con Azure,
puedes hacer cosas increíbles con tus apps: utilizar

siguientes pasos reconocimiento facial y de voz, administrar tus


dispositivos del Internet de las cosas en el cloud,
ajustar la escala como gustes y solo pagar por lo
que usas.

Has visto que, sea cual sea el lenguaje de


programación que uses o la plataforma para la que
escribas aplicaciones, Azure puede ayudarte con
servicios para prácticamente cualquier situación.
Esperamos que sigas usando este libro electrónico
para familiarizarte un poco más con la amplia gama
de servicios de Azure y determinar cuáles se ajustan
mejor a tus necesidades.

Se acabaron los días en que tenías que escribir


complicadas secuencias de código; ahora puedes
aprovechar una extensa oferta de soluciones
predefinidas. Libérate de trabajo para concentrarte
en las cosas que importan y deja que Azure se
encargue de los problemas solucionados.
Agosto Resumen y siguientes pasos 79
2018

Los autores
de este libro
se apasionan
por Azure y te Michael Crump trabaja en
Microsoft en la plataforma
Barry Luijbregts es un
arquitecto de software

invitan a que
Azure y es programador, independiente y desarrollador
bloguero y orador apasionado del cloud.
internacional sobre diversos También es uno de los autores
temas relacionados con de Pluralsight. Ha trabajado

te comuniques el desarrollo en el cloud.


Le encanta ayudar a los
desarrolladores a entender los
en muchas empresas a lo
largo de los últimos diez
años y le encanta compartir

con ellos si
beneficios del cloud de una sus conocimientos con la
forma clara y sencilla. comunidad. Tiene un extenso
conocimiento de la oferta
de Microsoft, con especial

tuvieses cualquier
Puedes comunicarte con
énfasis en la tecnología web
Michael en Twitter @mbcrump
y el cloud. Barry colabora
o siguiendo su blog en https://
con un grupo de usuarios
www.michaelcrump.net.

pregunta
centrado en los conocimientos
tecnológicos y de software
llamado .NET Zuid (South) y
actualmente imparte cursos
sobre los beneficios del cloud.
Vive en los Países Bajos con
su preciosa esposa y su hija
pequeña y le encanta jugar
con sus dos huskies siberianos.

Puedes comunicarte con


Barry en Twitter @AzureBarry
o mediante su sitio web en
https://www.azurebarry.com/.

PUBLICADO POR Microsoft Press, Una división de Microsoft Corporation


One Microsoft Way, Redmond, Washington 98052-6399 (Estados Unidos)

Copyright © 2018 de Microsoft Corporation. Todos los derechos reservados.


El contenido de este libro no puede reproducirse ni transmitirse de ninguna
forma ni por ningún medio sin la autorización previa por escrito de la
editorial.

Los libros de Microsoft Press están a la venta en librerías y distribuidores de todo


el mundo. Si tienes necesitas ayuda en relación con este libro, envía un correo
electrónico a Microsoft Press Support a mspinput@microsoft.com. Permítenos
saber tu opinión sobre este libro al realizar esta encuesta.

Este libro se proporciona “tal cual” y expresa los puntos de vista y opiniones de
los autores. Los puntos de vista, las opiniones y la información vertidos en este
libro, incluidas las direcciones URL y otras referencias a sitios web de Internet,
pueden cambiar sin previo aviso. Algunos ejemplos recogidos en este libro tienen
un carácter únicamente ilustrativo y son ficticios. No debe suponerse ni derivarse
ninguna asociación o conexión real.

Microsoft y las marcas comerciales enumeradas en www.microsoft.com en la


página web de marcas comerciales, son marcas comerciales del grupo empresarial
Microsoft. Todas las demás marcas son propiedad de sus respectivos titulares.
Agosto Resumen y siguientes pasos 80
2018

Sigue
Regístrate para obtener una cuenta gratuita de
Azure y recibe:

aprendiendo • Un crédito de $200 para utilizar con cualquier


producto de Azure durante 30 días.

con Azure • Acceso gratuito durante 12 meses a la


mayoría de nuestros productos más
populares de distintas categorías, como
computación, almacenamiento, redes
y bases de datos

• Más de 25 productos que siempre son


gratuitos.

• No te pierdas el seminario web Introducción


a Azure, el cual ofrece una demostración
de los fundamentos de Azure y te da acceso
a expertos continuamente.

• Visita Azure.Source para mantenerte al


día sobre lo que ocurre en Azure, incluido
el contenido de preview, disponibilidades
generales, noticias, actualizaciones y mucho más.

• No dejes de ver Sugerencias y trucos de Azure,


una colección de útiles ideas para ayudarte
a obtener los mejores resultados con Azure.

http://www.azure.com/gratis

También podría gustarte