Sei sulla pagina 1di 67

Guía para

desarrolladores
sobre Azure
Segunda edición
PUBLICADO POR
Microsoft Press
Una división de Microsoft Corporation
One Microsoft Way
Redmond, Washington 98052-6399

Copyright © 2018 por Microsoft Corporation

Todos los derechos reservados. Ninguna parte del contenido de este libro se podrá reproducir ni
transmitir de ninguna forma ni por ningún medio sin el consentimiento previo por escrito de la
editorial.

Los libros de Microsoft Press están disponibles en librerías y a través de distribuidores en todo el
mundo. Si necesita asistencia relacionada con este libro, envíe un correo electrónico al soporte de
Microsoft Press en mspinput@microsoft.com. Envíenos su opinión acerca de este libro a
http://aka.ms/tellpress.

Este libro se entrega “tal cual” y expresa las visiones y las opiniones de los autores. Las visiones, las
opiniones y la información expresadas en este libro, incluidas las direcciones URL y otras referencias
a sitios web de Internet, están sujetas a cambios sin previo aviso.

Algunos ejemplos mencionados aquí tienen un carácter únicamente ilustrativo y son ficticios. No debe
suponerse ni derivarse ninguna asociación o conexión reales.

Microsoft y las marcas comerciales que aparecen en http://www.microsoft.com en la página web


“Marcas Registradas” son marcas comerciales del grupo de empresas de Microsoft. Todas las demás
marcas son propiedad de sus titulares correspondientes.
Capítulo 1: Guía para desarrolladores sobre Azure ............................................................................... 1
Introducción ............................................................................................................................................................................... 2
Tecnología de la información como servicio, no como carga .......................................................................... 2
La informática como servicio .......................................................................................................................................... 2
Tipos de implementación de informática en la nube................................................................................................ 4
La nube pública.................................................................................................................................................................... 4
La nube privada ................................................................................................................................................................... 4
La nube híbrida .................................................................................................................................................................... 4
Desmitificar los tipos de informática en la nube ......................................................................................................... 5
Infraestructura como servicio ......................................................................................................................................... 5
Plataforma como servicio ................................................................................................................................................ 6
Función como servicio ...................................................................................................................................................... 6
Software como servicio..................................................................................................................................................... 6
¿Por qué Azure? ....................................................................................................................................................................... 7
Azure tiene alcance global .............................................................................................................................................. 9
Azure es extremadamente resistente .......................................................................................................................... 9
Azure es compatible con casi todas las industrias ................................................................................................ 9
Azure se centra en las capacidades para los desarrolladores ........................................................................ 10
Azure es abierto y compatible con los marcos de su elección ...................................................................... 10
Puede monitorear sus servicios Azure en funcionamiento ............................................................................. 10
Estamos aquí si necesita ayuda ....................................................................................................................................... 11
Capítulo 2: Introducción a Azure............................................................................................................ 12
Sus IDE y editores son bienvenidos ............................................................................................................................... 12
Utilice la interfaz de línea de comandos de Azure para scripting ..................................................................... 12
Ejecute lo que sea en Azure ............................................................................................................................................. 13
¿Qué ocurre con los costos? ........................................................................................................................................ 13
Seleccionar los servicios de Azure indicados ............................................................................................................. 13

ii Contenido
Dónde hospedar la aplicación .................................................................................................................................... 13
Qué usar y en qué momento ...................................................................................................................................... 19
Acelerar la aplicación .......................................................................................................................................................... 20
Azure Content Delivery Network ............................................................................................................................... 20
Azure Redis Cache ........................................................................................................................................................... 20
Azure Traffic Manager .................................................................................................................................................... 21
Dónde almacenar los datos .............................................................................................................................................. 22
Capítulo 3: Añadir inteligencia a la aplicación ..................................................................................... 27
Azure Search ........................................................................................................................................................................... 27
Azure Cognitive Services.................................................................................................................................................... 28
Azure Bot Service .................................................................................................................................................................. 28
Uso de eventos y mensajes en la aplicación .............................................................................................................. 29
Azure Service Bus ............................................................................................................................................................. 29
Azure Event Hubs ............................................................................................................................................................. 30
Azure IoT Hub .................................................................................................................................................................... 30
Azure Event Grid ............................................................................................................................................................... 31
Qué usar y en qué momento ...................................................................................................................................... 32
Capítulo 4: Asegurar la aplicación.......................................................................................................... 33
Azure Active Directory ........................................................................................................................................................ 33
Azure API Management................................................................................................................................................. 34
Azure Key Vault ................................................................................................................................................................. 34
Protección contra DDoS de Azure............................................................................................................................. 34
Firewall de aplicaciones web Azure .......................................................................................................................... 35
Encriptación de datos por defecto ............................................................................................................................ 35
Capítulo 5: Dónde y cómo implementar los servicios de Azure ........................................................ 36
La mentalidad de DevOps ................................................................................................................................................. 36
Plantillas de Azure Resource Manager .................................................................................................................... 37
Azure Service Fabric ........................................................................................................................................................ 37
Contenedores en Azure ................................................................................................................................................. 38
Azure Stack ......................................................................................................................................................................... 39
¿Dónde y cuándo implementar?..................................................................................................................................... 39
Capítulo 6: Un recorrido por Azure ........................................................................................................ 40
Tutorial N. 1: el portal de Azure ...................................................................................................................................... 40
Mosaicos en el portal de Azure .................................................................................................................................. 40
Creación de una nueva máquina virtual ................................................................................................................. 42
Tutorial n. 2: desarrollo de una aplicación web de Node.js con MongoDB en Azure ............................... 46
Crear la aplicación web y base de datos mediante el portal de Azure ...................................................... 46
Tutorial n. 3: crear un back-end para la aplicación móvil con Azure ............................................................... 55

iii Contenido
Crear una aplicación móvil a través del portal de Azure .................................................................................. 55
Características adicionales y paso a producción ................................................................................................. 59
Capítulo 7: Cómo usar Azure Marketplace ........................................................................................... 60
¿Cómo puede ayudarme Azure Marketplace si soy desarrollador? ................................................................. 60
Soluciones de Azure........................................................................................................................................................ 60
Resumen y pasos siguientes ................................................................................................................ 61
Siga aprendiendo con una cuenta gratuita de Azure ...................................................................... 61
Acerca de los autores ............................................................................................................................... 62

iv Contenido
1

La demanda de software y servicios relacionados es mayor que nunca


y esta tendencia aumentará (a una tasa exponencial) a medida que las
diversas aplicaciones se integran cada vez más a todos los aspectos de
nuestra vida cotidiana. Usted, como desarrollador, es el “mago” que lleva
esta revolución digital a los usuarios, y esa no es una tarea sencilla.
Además de crear las características tangibles únicas que ofrece el software,
hay muchos elementos detrás de escena de los que deben hacerse cargo:
las aplicaciones deben tener alta disponibilidad; funcionar en todo el
mundo, sin problemas y en una amplia gama de dispositivos; ser seguras y
poder ejecutarse a escala masiva y por un precio razonable. Estos desafíos
son comunes en la mayoría de los software y sectores. Sin embargo, las
soluciones son elementos efímeros que seguimos reinventando y su
construcción y mantención pueden resultar difíciles y costosas.

Creamos la Guía para desarrolladores sobre Azure para ayudarlo en el recorrido hacia la nube, ya sea
que solo esté considerando dar el paso o ya haya tomado la decisión y esté en marcha. Este libro
electrónico fue escrito por desarrolladores para desarrolladores. Está especialmente diseñada para
brindar a usted, como desarrollador, un conocimiento fundamental sobre Azure, lo que les ofrece
a usted y a su organización y cómo aprovecharlo.

1 CA P Í TU LO 1 | Guía para desarrolladores sobre Azure


La segunda mitad de la guía le presenta escenarios tales como un recorrido por el portal de Azure y la
creación de una máquina virtual. También tratamos el desarrollo y la implementación de una aplicación
web que utiliza Node.js y MongoDB. Cubrimos las tareas típicas como CI/CD (integración continua e
implementación continua) mediante la preparación de entornos, escalado, registro y supervisión.
Concluimos con la creación de un back-end para la aplicación móvil, que incluye autenticación y
sincronización sin conexión.

Introducción
Existen innumerables libros, artículos, documentos, publicaciones de blogs y más sobre las virtudes de la
informática en la nube y puede encontrar zetabytes de información que explica la informática en la nube
desde el punto de vista técnico. Pero antes de profundizar eso, hágase algunas preguntas simples: ¿por
qué tengo que migrar a la nube? ¿En qué nos beneficiaría a mí, a mi equipo y a mi empresa?

Tecnología de la información como servicio, no como carga


La informática en la nube representa a la informática como un servicio. ¿Qué queremos decir? Para
comprender mejor este concepto, considere otro elemento omnipresente en su vida: la electricidad.
Quién pensaría, hoy en día, que tener una miniplanta de generación fuera de cada casa y negocio
sería un modelo eficiente de distribución de energía eléctrica. Estamos acostumbrados a presionar un
interruptor para encender la luz y, luego, hacer lo que tenemos que hacer. Sin dudas, sería impensable
tener que comprar, instalar y mantener todo el equipo necesario para iluminar su hogar u oficina.
En cambio, le paga a la compañía eléctrica local por la electricidad que consume cada mes y no se
tiene que preocupar nunca por la física de la generación de electricidad, el gasto de capital, el
mantenimiento del equipo, la reparación después de las tormentas, ni nada. Solo presiona el
interruptor y dedica la productividad a otra actividad.
Así como no necesita ni quiere saber con exactitud cómo llega la electricidad a su casa, no necesita
saber exactamente cómo es que tiene a su disponibilidad la capacidad y los servicios informáticos
que utiliza en la nube. Otros se encargan de eso en lugar suyo. Por eso, la ventaja principal de migrar
la informática, el almacenamiento y la red a la nube es que ofrece facilidad de uso, al igual que
encender una lámpara. Solo se paga por lo que utiliza, de la misma manera que solo paga por la
electricidad que usa en su casa.
Por supuesto que, más allá de esta analogía, la nube ofrece muchos beneficios más específicos para
sus operaciones de TI, como la escalabilidad y la capacidad para utilizar servicios inteligentes como
el reconocimiento facial y la búsqueda en diferentes aplicaciones, entre muchos otros.

La informática como servicio


Es por ello que, en última instancia, puede pensar en los servicios en la nube, tales como Azure, como
informática como servicio. Claro que Azure ofrece mucho más que la compañía eléctrica local en el
camino de productos y servicios, por eso la informática en la nube a veces puede ser difícil de definir
con claridad. De hecho, algunos dicen que la nube utiliza los equipos de otros, lo cual es técnicamente
cierto; sin embargo, la nube es mucho más.
La nube es un sistema que proporciona servicios y recursos de informática
inteligentes, sólidos y resistentes a una escala mundial, elástica, e infinita.

Analicemos esto:

La nube y Azure ofrecen servicios que lo ayudan a lograr muchas cosas: desde lo rutinario, como
agregar la función de búsqueda a una aplicación, hasta lo más exótico, como la implementación
de flujos de trabajo de integración continua (CI) e implementación continua (CD). Puede ajustar
automáticamente la base de datos o configurar notificaciones push para los dispositivos móviles de

2 CA P Í TU LO 1 | Guía para desarrolladores sobre Azure


forma fácil y rápida. Estos son solo algunos ejemplos de elementos comunes que los desarrolladores
crearon para sí mismos una y otra vez, pero que ahora están disponibles como servicio. Esto le
permite utilizar estos servicios con muy poco esfuerzo, casi como un interruptor de luz. Así puede
concentrarse en las piezas de la aplicación que la hacen única, las características que aportan
verdadero valor agregado para los usuarios.
Además de servicios, la nube ofrece recursos de informática en forma de máquinas virtuales (VM),
contenedores, bases de datos y más. Puede utilizar estos recursos para hospedar aplicaciones o
proporcionar una infraestructura completa para los usuarios.
Como dijimos hace un momento, la capacidad de la nube radica en que los servicios y los recursos
son increíblemente sólidos y resistentes. Es muy improbable que haya fallas en la ejecución. Esto se
debe a que la nube es inteligente Se repara automáticamente y, como es el caso de Azure, hay
centros de datos en todo el mundo, con decenas de miles de servidores. Si un servidor falla, otro
toma el control. Si un centro de datos entero fallara (un escenario de por sí muy poco probable),
otro tomaría el control. Todo esto es posible debido a la escala masiva de la nube.
Uno de los argumentos más convincentes a favor de la nube es que es le permite escalar sus servicios
y recursos casi hasta el infinito y a un grado que sin dudas es imposible lograr con recursos locales,
a menos que esté dispuesto a gastar enormes sumas de dinero en capital de equipo y personal para
administrar todo. Además, puede escalar a nivel mundial. Puede ofrecer sus servicios en cualquier
lugar del mundo para proporcionarles una experiencia de alto rendimiento a los usuarios, sin importar
dónde estén. También significa que puede guardar los datos donde los necesite.
Quizás lo más importante, es que al usar recursos en la nube, puede reducir la escala de los servicios
y recursos cuando la demanda baja. Volvamos a nuestra analogía de la electricidad: si hay una fiesta
en su casa con muchas personas, será necesario encender muchas luces dentro y fuera de la casa,
usar el horno microondas con frecuencia; escucharán música y, por lo general, consumirán más
electricidad. Pero, cuando se termina la fiesta y se van los invitados, el consumo de electricidad vuelve
a la normalidad y así también lo hace la facturación. Lo mismo sucede cuando aprovecha la nube
y Azure: solo paga por lo que usa, no por lo que podría usar si el consumo aumenta.

Más información Para conocer más sobre el portal de Azure y crear la primera VM, diríjase
a https://docs.microsoft.com/azure/virtual-machines/windows/quick-create-portal.

Además de escalabilidad masiva, servicios inteligentes listos para implementar y la eficiencia del pago
por uso, la nube ofrece más seguridad.
Millones de personas usan la nube en forma permanente y en todo el mundo; del mismo modo,
muchas personas atacan la nube. Los proveedores de servicios en la nube con buena reputación
y experiencia como Microsoft saben distinguir entre los patrones de uso de los usuarios normales
y los de los agentes maliciosos. Es decir que sabemos cómo protegerlo de los ataques más comunes
y más extraños. Las herramientas de monitoreo inteligentes, los algoritmos de “machine learning”
y la inteligencia artificial les dan a los proveedores de servicios en la nube la capacidad de detectar
y detener ataques en tiempo real.
Las décadas de experiencia en seguridad y el tráfico a escala masiva combinados con la mayor
experiencia en seguridad del sector hacen que la nube sea un entorno mucho más seguro que
cualquier centro de datos local.

Más información: Para leer más acerca de cómo Azure protege las aplicaciones
y los datos, consulte Cómo Azure Security Center detecta ataques DDoS mediante la
inteligencia contra ciberamenazas, Descripción general sobre la seguridad de Azure
y Cómo aborda Microsoft los delitos informáticos.

Analizamos brevemente el motivo por el que debe comenzar la migración a la nube y Azure. Ahora vamos
a examinar los componentes principales de la nube, qué hacen y cómo se articulan en el panorama general.

3 CA P Í TU LO 1 | Guía para desarrolladores sobre Azure


Tipos de implementación de informática en la nube
La nube ofrece varios niveles de productos y servicios, tales como infraestructura como servicio (IaaS)
y plataforma como servicio (PaaS), pero antes vamos a retroceder y analizar los tres tipos básicos de
plataformas en nube: pública, privada e híbrida. Estos conceptos se convirtieron con rapidez en
palabras de moda de la tecnología moderna. Vamos a desmitificarlos.

La nube pública
En el modelo de nube pública, usted no tiene ningún hardware; el proveedor de servicios en la nube
es responsable de adquirir y mantener todo el hardware. La nube pública consta de todos los servicios
y recursos de informática que usted no tiene, sino que utiliza de su proveedor de servicios en la nube.
El proveedor es responsable de que todo funcione y de cumplir con los contratos de nivel de servicio
(SLA). Paga por lo que usa, no por lo que tiene.

La nube privada
Con una nube privada, posee todo el hardware o al menos lo controla por completo. El hardware que
ejecuta sus servicios y almacena sus datos está en algún lugar del centro de datos local. Por supuesto,
este control completo tiene un precio: debe comprar y mantener todo. Paga por lo que tiene, no por lo
que usa.

Pero, ¿cómo establecer una plataforma de nube privada en un centro de datos local tradicional? Por
fortuna, Azure proporciona una solución única diseñada específicamente para funcionar en este
entorno: Azure Stack. En resumen, Azure Stack es una instancia privada e integral de Azure que puede
ejecutar en su centro de datos local.

Ejecutar servicios en una nube privada no es lo mismo que ejecutar servicios en su centro de datos
local. Azure Stack ofrece todas las ventajas de Azure, que incluyen servicios inteligentes que puede
utilizar en las aplicaciones, dentro de los límites de su centro de datos local. De este modo, si por
razones administrativas o de seguridad especiales necesita mantener ciertas operaciones “cerca de
casa”, en su centro de datos local, puede disfrutar de todos los beneficios que Azure y el paradigma
de la nube ofrecen.

La nube híbrida
El modelo de nube híbrida es, como su nombre lo indica, una combinación entre la nube pública y la
privada. Puede utilizar servicios de nube pública que emplean recursos de su nube privada y viceversa.
En Azure, podría ejecutar una aplicación en una aplicación web de Azure que se conecta a una base
de datos local utilizando conexiones híbridas de Azure. Esto abre muchas posibilidades. Usted
controla dónde están sus aplicaciones y datos al mismo tiempo que obtiene los beneficios de usar
servicios en la nube inteligentes.

Azure ofrece soluciones para todos los tipos de implementación de informática en la nube. Esto les da
a los negocios más libertad para usar Azure donde y como quieran. Además, pueden determinar la
cantidad de control que quieren tener sobre las aplicaciones y los datos.

4 CA P Í TU LO 1 | Guía para desarrolladores sobre Azure


Desmitificar los tipos de informática en la nube
Dentro de la informática en la nube, podemos categorizar los servicios y recursos en tipos. Hay
muchas definiciones diferentes de tipos de informática en la nube. Las diferencias entre los tipos son
la cantidad de control y las responsabilidades que tiene frente a la cantidad de tiempo y esfuerzo que
puede dedicar al agregado de valor para su negocio o sus clientes. La figura 1-1 y la figura 1-2
ilustran cómo definir los tipos de informática en la nube de Azure.

Figura 1-1: Tipos de informática en la nube explicados

Figura 1-2: Ejemplos de ofertas basadas en la nube

Infraestructura como servicio


Con infraestructura como servicio (IaaS [pronunciado “aias”]), usted es responsable de todo, excepto el
hardware. Azure se encarga de todo el hardware, que incluye las unidades de estado sólido (SSD), los
cables de red, los enrutadores, las fuentes de alimentación, los generadores de respaldo, los sistemas
de refrigeración y más. Los servicios que entran en esta categoría incluyen Azure Virtual Machines,
Azure Virtual Networks y los contenedores Azure.

Usted se encarga de todo lo demás: La aplicación, los parches del sistema operativo (OS), la
configuración de red lógica y la mantención de los programas antivirus en los equipos actualizados.
Esto significa que usted tiene un control total sobre estos elementos. Pero también significa que
dedica mucho tiempo y esfuerzo a mantener los servicios y recursos en funcionamiento y menos
tiempo a trabajar en añadir valor de negocio a sus productos de aplicaciones principales.

5 CA P Í TU LO 1 | Guía para desarrolladores sobre Azure


Plataforma como servicio
Utilizando el modelo de plataforma como servicio (PaaS [pronunciado “paas”]), usted es responsable
de la aplicación y su configuración; Azure proporciona el sistema operativo y el hardware. Como se
demuestra en la figura 1-1, PaaS es un nivel de abstracción superior que IaaS. Tiene muchas menos
responsabilidades pero menos control directo sobre los recursos de hardware que con IaaS. Los
servicios que entran en la categoría de PaaS son Azure App Service, Azure SQL Databases, Azure Redis
Cache y Azure Batch.

Con PaaS, puede hospedar la aplicación, pero este nivel también ofrece capacidades adicionales que
puede utilizar de forma inmediata, como las notificaciones push para dispositivos móviles mediante
Azure Mobile App y el ajuste automático de una base de datos en Azure SQL Database.

Usted implementa la aplicación y la configura. También hace la configuración básica del servidor,
como escalar el nivel de precios o el número de instancias en que se ejecuta la aplicación. La
aplicación se ejecuta en un servidor en algún lugar, pero usted no es responsable de ese servidor
(ni tienen ningún control sobre él), lo que significa que puede dedicar mucho más tiempo a añadir
valor comercial a las aplicaciones y menos tiempo a mantener un servidor en funcionamiento.

Pruébelo Cree una aplicación de Node.js con MongoDB en Azure en este tutorial en
https://docs.microsoft.com/azure/app-service/app-service-web-tutorial-nodejs-
mongodb-app.

Función como servicio


En Función como servicio (FaaS [pronunciado “faas”]), usted solo es responsable de la aplicación y la
lógica del negocio. No tiene que preocuparse por el escalado, el sistema operativo ni el hardware.
A veces se llama FaaS a la informática sin servidor. Los servicios en la categoría de FaaS son
Azure Functions, Azure Logic Apps y Azure Event Grid.

En FaaS, todo lo que tiene que hacer es crear la aplicación o entretejer la lógica de negocio y
ejecutarla. El escalado ocurre de forma automática. Uno de los beneficios más destacables de FaaS es
que paga por los recursos que utiliza solo cuando se ejecuta la lógica, en lugar de pagar por un
servicio que está siempre encendido, esperando que alguien lo utilice.

Pero FaaS no solo aloja la aplicación: conecta la lógica con los desencadenantes y las fuentes. Fuera
de las fuentes tales como Azure Storage Queues o WebHooks, se puede iniciar Azure Functions o
Logic Apps y proporcionarles datos para procesar. No es necesario que escriba la lógica de activación
o ajuste la configuración para conectarse con los depósitos de datos o servicios externos, así que
puede enfocarse en la lógica y las características orientadas al cliente.

Software como servicio


Con el software como servicio (SaaS [pronunciado “saas”]), solo tiene que encargarse de la
configuración del software, nada más. De hecho, SaaS es el más alto nivel de abstracción de los tipos
de informática en la nube. Los servicios en la categoría SaaS incluyen Azure Cognitive Services y Azure
IoT Suite. Office 365 es otro ejemplo de un conjunto de aplicaciones de SaaS de Azure que ofrece
aplicaciones comerciales confiables tales como Microsoft Word, Excel, PowerPoint y más. Todo esto
está disponible sin tener que instalar ni mantener nada.

Con SaaS, el software está listo para usar. Lo único que tiene que hacer es configurar sus preferencias
y listo. No escribe el software y no tiene que pensar en la implementación, el escalado, los sistemas
operativos y el hardware.

6 CA P Í TU LO 1 | Guía para desarrolladores sobre Azure


¿Por qué Azure?
Entonces, está pensando en que la nube podría ser lo que necesita para que su empresa cree
productos de software increíbles y brinde el valor y la experiencia de usuario que sus clientes esperan.
Sin dudas, la plataforma de servicios en la nube Azure puede ayudarlo a lograrlo. Con sus vastos
recursos y capacidad informática, más una amplia gama de servicios inteligentes, puede crear
aplicaciones altamente escalables y dinámicas y pagar solo por lo que usa. Pero hoy en día hay
muchos proveedores de servicios en la nube, cada uno con capacidades y productos únicos. Entonces,
¿por qué elegir Azure?

Con Azure, obtendrá el conocimiento y la experiencia de Microsoft, una empresa que ha estado a la
vanguardia de la informática personal y empresarial y de las soluciones de TI durante más de 40 años.
Microsoft ha estado diseñando, creando y ejecutando operaciones del centro de datos de gran escala
y redes para sus propios fines durante décadas. Esa experiencia y ese conocimiento forman parte de
la esencia de Azure. Están entretejidos en lo más profundo.

¿Quién utiliza Azure?


Adobe, Jet.com, Geico, GeekWire y DocuSign son solo algunos ejemplos de clientes de todo el
mundo que eligen la plataforma de Azure para lograr sus objetivos de negocio y generar más valor
para sus clientes. Algunos de esos objetivos incluyen la solicitud de servicios de aplicaciones a
almacenamiento sin servidor, inteligencia artificial a Azure IoT e incluso streaming de multimedia.
Veamos algunas maneras interesantes en las que los clientes han utilizado la plataforma Azure para
satisfacer sus necesidades comerciales.
El gigante industrial de Corea del Sur Samsung crea todo, desde teléfonos hasta televisores,
lavadoras, electrodomésticos grandes y aires acondicionados. La empresa decidió utilizar Azure
para aumentar la eficiencia y la solidez de sus aires acondicionados realizando mantenimiento y
monitoreo remoto. La empresa utiliza Azure IoT Hubs para recoger grandes cantidades de datos
enviados desde sensores colocados en sus aires acondicionados, los cuales monitorean el estado
de las máquinas así como el entorno en el que se ejecutan. SQL Azure recopila esta información
para realizar un análisis en tiempo real. De ese modo, los ingenieros pueden utilizar la información
que se extrae para ajustar el funcionamiento de los aires acondicionados y así ahorrar energía para
sus clientes en un promedio de entre 15 % y 18 %.
La compañía Coca-Cola, una de las marcas más reconocidas del mundo, presentó su bebida
epónima en 1886 y, desde entonces, ha sido líder mundial. En 2012, la compañía lanzó Coca-Cola
Journey, un proyecto muy ambicioso y un sitio web cuyo propósito es ayudarle a Coca Cola a
conectarse mejor con una nueva generación de clientes que siguen cada vez más las señales de
compra de canales de comercialización no tradicionales. La empresa quería aprovechar los medios
de comunicación social y un servicio de Microsoft llamado How-Old.net para crear una experiencia
interactiva divertida y atractiva para los usuarios y, al mismo tiempo, obtener conocimiento sobre
los clientes. A partir de la tecnología de servicios cognitivos, How-Old.net analiza datos extraídos de
imágenes faciales para establecer la edad y el sexo de los individuos. Pero Coca-Cola solicitó al
equipo de Microsoft que diera un paso más allá del reconocimiento facial mediante el uso de
modelos de “machine learning” para detectar objetos individuales en imágenes. Durante un mes, el
sitio invita a los usuarios a enviar una foto de ellos con botella de Coca-Cola con un logotipo visible
para ver qué pasa. Si la aplicación web detecta una botella, aparece la edad de la botella y la página
se vuelve roja. Entonces, se alentó a los fanáticos de Coca-Cola a compartir su experiencia en las
redes sociales y explorar más el sitio de Coca-Cola Journey para conocer más sobre la botella de
contorno venerable.

7 CA P Í TU LO 1 | Guía para desarrolladores sobre Azure


CarMax, el minorista de autos usados más grande de los Estados Unidos, rediseñó su sitio web
utilizando los servicios de la plataforma Azure para entregar una respuesta más rápida a los
16 millones de personas que visitan su sitio por mes. En lugar de “elevar y cambiar” el sitio a un
entorno de IaaS de Azure, CarMax decidió reconstruir el sitio con la oferta de PaaS de Azure. Esta
decisión le permitió a CarMax modernizar el sitio con una nueva funcionalidad de servicios en la
nube, que hizo que fuera 100 % móvil y, lo más importante, que pasara a un paradigma de
desarrollo dinámico de DevOps. CarMax está avanzando rápidamente hacia una arquitectura
de microservicios que le dará la capacidad de escalar y actualizar partes de aplicaciones
independientemente de otras. Aunque llevará años lograr esto, la elección de Azure como base
para el desarrollo ayudará al minorista de autos a llegar a los microservicios más rápido.
NBC Sports trabaja con Microsoft para ofrecer megaeventos de difusión. En el año 2016, las dos
compañías colaboraron para transmitir los Juegos Olímpicos de Río de Janeiro. NBC utilizó Azure
Media Services para transmitir contenido de más de 50 eventos olímpicos al mismo tiempo,
proporcionando un perfil de 1080 p y cubriendo la asombrosa cantidad de 100 millones de
usuarios únicos que consumieron 2,71 mil millones de minutos de contenido desde una amplia
gama de dispositivos y formatos. Media Services proporcionó la escalabilidad y la solidez para
entregar este contenido a los espectadores, sin fallas.

Azure les da a las empresas, grandes y pequeñas, así como también a organizaciones
gubernamentales, instituciones educativas y cualquier usuario de servicios de TI, la capacidad de
manejar de forma más fácil y rentable sus mundos digitales, tanto para sí mismos como para sus
clientes. A continuación, resumimos cómo lo logra:

 Ofrecer experiencias de software multiplataforma, como experiencias móviles, de escritorio,


web e híbridas: Azure proporciona servicios con los que se pueden implementar estos
escenarios de inmediato, como Azure App Service, que incluye la aplicación web y la aplicación
móvil, y los servicios Mobile Center y Visual Studio Team para entregar y administrar todo tipo de
aplicaciones.

 Prestar servicios dondequiera que se necesiten: Azure es único en su clase por sus opciones
de implementación, que incluyen la nube pública, soluciones híbridas y Azure local, en su propio
centro de datos (a través de Azure Stack). Todas estas opciones pueden brindar escala masiva
a un precio asequible, al mismo tiempo que mantienen sus datos donde debe estar.

 Entregar una plataforma de datos inteligente, a escala masiva: Azure tiene muchos servicios
que puede utilizar para capturar, almacenar, analizar y presentar sus datos. Entre dichos servicios,
se encuentran Azure SQL Databases, Data Lake Store y Data Lake Analytics, HDInsight, Event
Hubs, Cognitive Services y muchos más. Todos estos servicios pueden crear una plataforma de
datos asequible, inteligente y con posibilidad de escalado a nivel masivo, que les da a las
empresas las herramientas para extraer información valiosa de la gran cantidad de datos que se
generan hoy en día.

 Entregar software de alta calidad, rápidamente: Para ofrecer software de calidad, necesita hacer
pruebas siempre y fallar con anticipación. Con Azure, puede hacerlo a través de mecanismos de CD
y CI integrados directamente en servicios como Web App, o a través de Visual Studio Team Services.
Características como App Services Deployment Slots le permiten la prestación de servicios más
rápida, sin tiempo de inactividad. Para saber que la aplicación está funcionando como se esperaba
en la producción, Azure proporciona servicios de monitoreo, como Application Insights, que le
permiten saber con exactitud cómo está la aplicación y qué puede mejorar.

8 CA P Í TU LO 1 | Guía para desarrolladores sobre Azure


Azure tiene alcance global
Con centros de datos en más de 42 países y regiones de todo el mundo, la cobertura increíble de
Azure ofrece muchos beneficios. En primer lugar, puede reducir cualquier tiempo de inactividad que
puedan experimentar las aplicaciones si un centro de datos entero fallara (una probabilidad, de por sí,
extremadamente baja), porque la aplicación puede conmutar por error a otro centro de datos y seguir
funcionando casi como si no hubiera pasado nada. Esto también puede reducir los costos de
recuperación ante desastres.

Si utiliza las redes de distribución de contenido (CDN) para reducir la latencia, lo más probable es que
haya un centro de datos Azure cerca de donde estén sus clientes y del lugar al que usted necesite
entregar el contenido. Otro beneficio que Azure puede ofrecer con tantas instalaciones en tantos
lugares es una gama más amplia de opciones para almacenamiento de datos. Esto puede ayudarlo a
garantizar que su empresa cumpla con las normativas locales o regionales y las leyes con respecto a la
soberanía de los datos.

Microsoft continúa realizando grandes inversiones en infraestructura de centros de datos e


innovación a través del desarrollo de hardware de código abierto y soluciones de centros de datos
novedosas, como los centros de datos submarinos del proyecto Natick.

Azure es extremadamente resistente


Azure es una plataforma inteligente, de monitoreo y reparación automáticos, en la que usted puede
confiar para resguardar la disponibilidad y el buen funcionamiento de las aplicaciones. Para respaldar
esas características, todos los servicios de Azure operan bajo SLA integrales que definen su
funcionamiento en términos específicos. Los SLA van desde un aumento del 99,9 % (tres nueves) a
uno del 99,99 % (cuatro nueves). Esto significa que los servicios Azure son extremadamente
resistentes y confiables. Si sus servicios no cumplen con las especificaciones del SLA correspondiente,
podría ser candidato para un descuento de hasta el 100 % de los costos de servicio en su factura de
Azure.

Para asegurarse de que el rendimiento de los servicios sea pleno en todo momento, Microsoft
monitorea el estado del servicio para cada servicio Azure individual en todos los centros de datos del
mundo. Estas métricas están disponibles para que las pueda controlar en la página pública de estado
de Azure.

Como mencionamos antes, Microsoft ha operado centros de datos y proporcionado servicios a gran
escala desde 1989. En ese tiempo, ha adquirido mucho conocimiento. Hoy en día, Microsoft tiene
algunas de las mejores mentes de la industria de TI trabajando continuamente para mantener a Azure
en marcha, a fin de que usted pueda confiar en Azure para hospedar sus servicios y almacenar sus
datos. Es por eso que todos los servicios Azure tienen SLA como respaldo.

Azure es compatible con casi todas las industrias


Azure ofrece un conjunto de ofertas de cumplimiento más completo que el de cualquier proveedor de
servicios en la nube. La lista de cumplimientos es enorme y está en constante crecimiento. Algunos de
los estándares que cumple Azure son ISO 27001, HIPAA y 3 SOC. Algunos marcos específicos por
región incluyen el Escudo de la privacidad de la UE y de EE. UU. y DJCP de China.

Por ejemplo, por cumplir con la certificación ISO 27001, Microsoft garantiza que implementa,
monitorea, mantiene y mejora continuamente sus estándares de seguridad para su red global de
centros de datos, así como para los servicios individuales en Azure.

9 CA P Í TU LO 1 | Guía para desarrolladores sobre Azure


Más información Para obtener una lista completa de las declaraciones de
conformidad, diríjase a
https://www.microsoft.com/trustcenter/compliance/complianceofferings.

Azure cuenta con una oferta específica para clientes del gobierno de los Estados Unidos llamada
Azure Government, que es básicamente una “edición especial” de la nube de Azure, que responde
a las necesidades únicas de las entidades gubernamentales. Azure Government se administra por
separado de la nube pública de Azure, en su propia instancia, es decir que funciona en servidores
separados y especiales, en una infraestructura completamente independiente y aislada.

Azure se centra en las capacidades para los desarrolladores


Azure lo ayuda a usted, como desarrollador, a ser más productivo porque le proporciona gran parte
de la “plomería” que, de lo contrario, tendría que construir. Con capacidades como el escalado
automático y las herramientas de autorización y autenticación, puede agregar características
y funciones avanzadas a las aplicaciones con muy poco esfuerzo. Puede integrar servicios como
Azure Search o Cognitive Services que mejoren las aplicaciones y satisfagan a los usuarios.

Azure es abierto y compatible con los marcos de su elección


Escriba aplicaciones en JavaScript e impleméntelas en Web App. O escríbalas en Ruby, Django, Java,
PHP o .NET: elija el entorno que prefiera. Azure es compatible con muchos lenguajes. Puede adaptar
una aplicación existente o escribir una desde cero y se ejecutará en Azure.

Además, puede elegir el ecosistema que prefiera. Azure soporta la mayoría de los sistemas operativos,
como Linux y Windows, y puede escribir todo a través de Bash. También puede ejecutar la aplicación
como quiera: con contenedores, Azure Service Fabric, App Services, Azure Stack u otros.

Una vez que haya aprendido a usar Azure con un conjunto de herramientas, puede usarlo con
cualquier otro. Los servicios y el portal de Azure funcionan de la misma manera para todo.

Puede monitorear sus servicios Azure en funcionamiento


¿Es el tipo de persona a la que le gusta controlar las operaciones de manera constante? Con Azure,
puede supervisar cómo funcionan sus servicios y solucionar los problemas que puedan surgir; todo
mediante el uso de la aplicación móvil de Azure. Esta útil aplicación está diseñada para permitirle ver
sus recursos, incluso cuando no está detrás del escritorio de su equipo principal. Puede realizar tareas
como el reinicio de una aplicación web y la detención de una máquina virtual. También proporciona
una experiencia completa de interfaz de línea de comandos (CLI) mediante Cloud Shell, que le permite
hacer básicamente todo lo que puede hacer con el portal de Azure.

Además, algunos servicios de Azure realizan detecciones y recomendaciones inteligentes para sus
servicios y pueden enviarle alertas sobre ellos. Pueden detectar que una aplicación web se ejecuta
más despacio de lo habitual o informarle que un App Service escaló automáticamente. Azure Security
Center y Azure Monitor son algunos de los servicios que pueden informarle sobre esto, para que
nunca se pierda nada importante.

10 CA P Í TU LO 1 | Guía para desarrolladores sobre Azure


Estamos aquí si necesita ayuda
Hay muchas maneras de obtener ayuda con Azure si la necesita.

Puede comprar un plan de soporte, que le da acceso a los equipos de soporte técnico de Azure y le
ofrece otros servicios, como la orientación basada en las prácticas recomendadas para el diseño en la
nube o la asistencia en la planificación de la migración. De acuerdo con sus necesidades, puede
comprar un plan de soporte que le garantiza una respuesta dentro de 15 minutos por parte de los
equipos de soporte técnico.

Además, puede recibir ayuda gratis y en forma permanente a través de muchos canales. Puede
enviarle un tweet a @AzureSupport o ponerse en contacto con los equipos técnicos a través de
los foros de MSDN, StackOverflow, Reddit o Microsoft Tech Community.

11 CA P Í TU LO 1 | Guía para desarrolladores sobre Azure


2

Luego de pensarlo bien, se unió a la comunidad Azure y ahora quiere


empezar a crear aplicaciones. ¿Qué necesita? En realidad, no mucho.
Lo más importante que debe tener es una conexión con Azure para
implementar la aplicación. Puede utilizar las herramientas, aplicaciones
y marcos de su elección.

Sus IDE y editores son bienvenidos


Con Azure, puede utilizar lo mismo que usa para crear o editar aplicaciones en su entorno local. Elija
lo que desee: desde el Bloc de notas hasta Visual Studio Code, Sublime Text, Visual Studio y los
editores de código de Azure Portal. ¡La decisión es suya!

Hay complementos disponibles para todos los entornos de desarrollo integrado (IDE) populares, que
le ofrecen funciones como publicar directamente en Azure. Incluso si prefiere utilizar una herramienta
simple, como el Bloc de notas, puede automatizar sus implementaciones en Azure mediante prácticas
de integración continua (CI) o entrega continua (CD).

Utilice la interfaz de línea de comandos de Azure


para scripting
Azure provee una potente interfaz de línea de comandos (CLI) con la que se puede hacer básicamente
todo en Azure. Puede utilizar Azure CLI para arrancar y detener máquinas virtuales (VM), implementar
la aplicación en una aplicación de Azure Web App, crear nuevos recursos y todo lo demás. También es
muy útil para automatizar tareas y ejecutarlas en sus procesos de CI/CD.

Puede utilizar Azure CLI, disponible en Azure Portal, en Azure Cloud Shell o localmente, en su
máquina,, a través de las herramientas de Azure CLI. Otra ventaja es que puede aplicar sus
conocimientos de Bash o Windows PowerShell existentes a Azure CLI.

12 CA P Í TU LO 2 | Introducción a Azure
Ejecute lo que sea en Azure
Azure es ideal para aplicaciones web y de API. También es ideal para hospedar aplicaciones de
escritorio y móviles. Por ejemplo, podría utilizar Azure para autenticar a los usuarios en la aplicación
de escritorio o enviar notificaciones push a la aplicación móvil. Azure puede agregarle valor
a cualquier escenario que tenga en mente.

¿Qué ocurre con los costos?


Claramente, es importante saber cuánto cuestan las cosas en Azure. Para ayudarlo, Microsoft ofrece la
calculadora de precios de Azure. Con esta herramienta práctica, selecciona los servicios que va a
utilizar y especifica cuánto tiempo prevé utilizarlos, y la calculadora le permite saber cuál será su
factura mensual y anual. Esto, junto con la cantidad de datos que usará, determina sus costos.

Nota: La calculadora de precios de Azure estima los costos de las suscripciones de


pago por uso. Existen otras opciones de pago para empresas, socios y suscriptores
a MSDN que pueden afectar los costos de los servicios.

También puede controlar los costos con las API de facturación de Azure y las alertas de precios. Puede
aprovecharlas para obtener información sobre las tendencias de costos y gastos, que lo ayudarán
a controlar sus costos.

Seleccionar los servicios de Azure indicados


Azure proporciona una gran cantidad de servicios para ayudarlo a compilar y ejecutar aplicaciones. De
hecho, hay tantos servicios que a veces puede ser un poco confuso elegir solo los servicios adecuados
para su situación. ¿Cuáles debería elegir como desarrollador? Analicemos algunas de las opciones.

Dónde hospedar la aplicación


La primera decisión que deberá tomar es dónde hospedar la aplicación. Azure ofrece varias opciones
de hospedaje.

Las VM
Una de las maneras de hospedar la aplicación es en una máquina virtual en Azure Virtual Machine.
Esto le proporciona mucho control sobre cómo hospeda la aplicación, pero usted es responsable de
mantener el entorno, y eso incluye crear parches del sistema operativo (OS) y mantener los programas
antivirus actualizados.

Por ejemplo, puede usar una VM para probar la última versión de vista previa de Visual Studio sin
“ensuciar” su máquina.

Azure Batch
Si necesita ejecutar aplicaciones de lotes a gran escala o de informática de alto rendimiento (HPC) en
las VM, puede elegir Azure Batch. Batch crea y administra una colección de hasta miles de VM, instala
las aplicaciones que desea ejecutar y programa los trabajos en las VM. No es necesario implementar
y administrar las VM individuales ni los clústeres de servidores. Batch programa, administra y escala
automáticamente sus trabajos, para que solo use las VM que necesita. Batch es un servicio gratuito;
solo paga por los recursos subyacentes consumidos, como las VM, el almacenamiento y la creación
de redes.

13 CA P Í TU LO 2 | Introducción a Azure
Batch es ideal para ejecutar cargas de trabajo paralelas a gran escala, como modelos de riesgos
financieros, transcodificación de medios, representación de VFX e imágenes 3D, simulaciones
de ingeniería y muchas otras aplicaciones de informática intensiva. Utilice Batch para escalar
horizontalmente una aplicación o un script que ya haya ejecutado en estaciones de trabajo o en un
clúster local, o desarrollar soluciones SaaS que utilicen batch como plataforma de informática.

Pruébelo Active Azure Batch en cinco minutos con estos tutoriales paso a paso.

Contenedores
Los contenedores son mucho más livianos que las VM y puede iniciarlos y detenerlos en pocos
segundos. También ofrecen una enorme portabilidad, que los hace ideales para desarrollar una
aplicación localmente, en su máquina, y luego hospedarla en la nube, durante las pruebas y, más
adelante, en la producción. Incluso puede ejecutar los contenedores de forma local o en otras nubes.
El medio que utilice en su máquina de desarrollo viaja con su contenedor, por lo que la aplicación
funciona siempre en el mismo entorno.

Al igual que las VM, los contenedores proporcionan un gran control sobre su entorno. Puede instalar
lo que necesite para ejecutar las aplicaciones. Pero, una vez más, usted es el responsable de crear
parches y de mantener el sistema operativo que se ejecuta en el contenedor, así como de los
accesorios tales como los programas antivirus.

Hospede contenedores con Azure Container Instances


Puede hospedar un contenedor con Azure Container Instances. Con este servicio, puede crear
rápidamente un contenedor sin necesidad de un orquestador de contenedores como Kubernetes y sin
tener que administrar los recursos que hospedan al contenedor.

El servicio de Container Instances se factura por segundo, por CPU virtual, por gigabyte o por
memoria.

Más información Para obtener más información sobre Container Instances, diríjase
a Introducción de Azure Container Instances.

Hospedar contenedores con Azure Container Service


Otra forma de hospedar contenedores es mediante el uso de Azure Container Service. Con este
servicio, puede escalar y administrar sus contenedores mediante orquestadores como Mesosphera
DC/OS, Docker Swarm o Kubernetes. Este servicio es una gran manera de comenzar a migrar los
contenedores a la nube.

Más información Para conocer más sobre Container Service, diríjase a Introducción
a Azure Container Service.

Azure Functions
Con Azure Functions, puede escribir solo el código que necesita para una solución, sin tener que
preocuparse por crear una aplicación completa o la infraestructura para ejecutarlo. Una función es una
unidad de lógica de código que se desencadena debido a una solicitud HTTP, un evento en otro
servicio Azure o en función de un calendario. Los enlaces de entrada y salida conectan el código de
función con un código mínimo a otros servicios como Azure Blob Storage, Azure Cosmos DB y Azure
Service Bus. Con Functions, puede construir pequeñas piezas de funcionalidad rápidamente y
hospedarlas en un medio elástico que gestiona la escala de modo automático.

14 CA P Í TU LO 2 | Introducción a Azure
Otro aspecto que hace que Azure Functions sea especial es que puede elegir pagar solo por las
funciones que se ejecutan, sin tener que mantener instancias de informática en ejecución todo el mes.
Esto también se llama sin servidor porque requiere solamente que usted cree una aplicación y no
tenga que ocuparse de ningún servidor ni del escalado de servidores.

Puede escribir funciones de Azure en C#, F#, Node.js, Java, PHP y una lista de lenguajes cada
vez mayor.

Un ejemplo de aplicación que utiliza Functions es aquella que activa una función todas las veces que
se carga un archivo de imagen nuevo a Azure Blob Storage. En ese momento la función cambia el
tamaño de la imagen y la escribe en otra cuenta de Blob Storage. La firma de la función de este
ejemplo sería así (en script de C#):
public static void Run(Stream myBlob, string name, TraceWriter log, BlockBlob outputBlob) { }

Los datos de Blob que activaron la función se pasan a la función como el parámetro myBlob, que
incluye la URL de Blob. Puede utilizar el parámetro del enlace de salida outputBlob para especificar el
Blob al que se debe escribir el resultado. No es necesario escribir la “plomería” para la conexión con
Blob Storage; solo tiene que configurarla.

Pruébelo Cree la primera Función de Azure mediante Azure Portal.

Azure Logic Apps


Puede organizar la lógica de negocio con Logic Apps y automatizar un proceso de negocios o
integrarlo con aplicaciones de software como servicio (SaaS). Al igual que Azure Functions, a Logic
Apps lo puede activar una fuente externa (por ejemplo, un nuevo mensaje en Azure Storage Queue).
Une llamadas de API a los conectores para crear un flujo de trabajo (posiblemente complejo) que
puede involucrar recursos en la nube y locales. Logic Apps tiene muchos conectores a API disponibles,
como uno para la conexión con Azure SQL Databases, otro para SalesForce, para SAP y así
sucesivamente. También puede exponer sus propias API o Azure Functions como conectores para
utilizar en una Logic App, lo cual le permite realizar acciones fácilmente contra sistemas externos en
un flujo de trabajo o lograr que uno de ellos active Logic App.

Al igual que Azure Functions, Logic Apps no tiene servidor, escala automáticamente y solo paga
cuando las usa.

A continuación, un ejemplo del flujo de trabajo en Logic Apps:


1. Un correo electrónico que contiene una orden de envío que llega a Office 365 activa Logic App.

2. Mediante los datos del correo electrónico, Logic App comprueba la disponibilidad del artículo
ordenado en SQL Server.

3. Logic App envía un mensaje de texto al teléfono del cliente utilizando Twilio (el número de
teléfono también estaba en el correo electrónico), indicando que se recibió el pedido y se envió
el artículo.

Pruébelo Introducción a Azure Logic Apps.

15 CA P Í TU LO 2 | Introducción a Azure
Azure App Service
Como alternativa, puede hospedar las aplicaciones en una de las principales ofertas de Azure:
Azure App Service. Azure App Service es una colección de servicios de hospedaje y orquestación
que comparte características y capacidades. Por ejemplo, todos los servicios de aplicación tienen la
capacidad de asegurar una aplicación utilizando Azure Active Directory y pueden utilizar dominios
personalizados.
Azure App Service consta de lo siguiente:
 Web App: Web App es uno de los servicios más utilizados de Azure. Puede usarla para hospedar
las aplicaciones web o API. Una Web App es básicamente una abstracción de un servidor web,
como Internet Information Services (IIS) o Tomcat, que se utiliza para hospedar aplicaciones
basadas en HTTP.
Web App puede hospedar aplicaciones que están escritas en .NET, Node.js, PHP, Java o Python,
y existen extensiones que puede utilizar para ejecutar incluso más lenguajes.

Pruébelo En la sección de ejemplos hay una aplicación de muestra en Node.js y MongoDB.

 Web App para contenedores: Web App para contenedores lo ayuda a implementar y ejecutar
fácilmente aplicaciones web en contenedores, a gran escala. Solo saque imágenes de contenedor
de Docker Hub o de un Azure Container Registry privado y Web App para contenedores
implementará la aplicación en contenedores con sus dependencias seleccionadas y estará en
producción en segundos. La plataforma se encarga automáticamente de los parches para el
sistema operativo, el abastecimiento de capacidad y el equilibrio de carga.

Pruébelo Le explicaremos cómo implementar una aplicación web con un contenedor


con formato de Docker en nuestra sección de ejemplo.

 Mobile App: Mobile App proporciona un back-end para las aplicaciones móviles. Usted recibe
una API en Mobile App con la que las aplicaciones móviles se conectan a través del cliente SDK
multiplataforma. Esto está disponible para iOS, Android, Windows y Xamarin para iOS, Android
y Xamarin. Mobile App ofrece características únicas como la sincronización sin conexión y las
notificaciones push, que lo ayudan a crear una experiencia móvil segura, moderna y de alto
rendimiento.
Puede escribir el back-end de la aplicación móvil en .NET o Node.js.

Pruébelo: le explicamos cómo crear un back-end móvil en nuestra sección de ejemplo.

Características de Azure App Service


Azure App Service es uno de los principales servicios de Azure que puede utilizar para hospedar las
aplicaciones. Cada uno de estos servicios aportan capacidades únicas, pero todos comparten algunas
características comunes:

Escalado
Azure App Service se ejecuta en App Service Plans, que son abstracciones de VM. Una o más VM
ejecutan Azure App Service, pero no hace falta que sepa cuáles, porque Azure se encarga de ellas. Sin
embargo, puede, ampliar los recursos que ejecutan Azure App Service. Puede elegir un nivel de precios
superior (desde gratis hasta premium) o aumentar el número de instancias de la aplicación que se
ejecutan. Inclusive puede hacer que Azure App Service escale automáticamente el número de instancias
para usted, en función de un calendario o métricas como la longitud de cola de CPU, memoria o HTTP.

16 CA P Í TU LO 2 | Introducción a Azure
Ranuras de implementación
Esta es una característica muy útil de Azure App Service. Puede implementar una nueva versión de la
aplicación a una ranura de implementación, donde luego podrá probar si funciona como se espera
y pasarla a la ranura de la producción. Inclusive puede utilizar Testing in Production, una función
de Azure para enrutar un porcentaje del tráfico desde la aplicación de producción hasta la ranura de
implementación. Por ejemplo, podría desviar al 10 % de los usuarios a la nueva versión de la
aplicación en la ranura de implementación para ver si las nuevas características están funcionando
como se esperaba y si los usuarios realmente las están utilizando.

Cuando esté satisfecho con el funcionamiento de la nueva versión de la aplicación en la ranura de


implementación, puede llevar a cabo un intercambio de la aplicación en la ranura de implementación
con la de la ranura de producción. También puede intercambiar una ranura de desarrollo a una
ranura de preparación y, luego, a la ranura de producción, como se ilustra en la figura 2-1. Antes de
hacer esto, la operación de intercambio verifica que la nueva versión de su sitio web esté lista y en
funcionamiento. Una vez que eso se confirma, la operación de intercambio cambia las ranuras y ahora
los usuarios ven la nueva versión de la aplicación, sin tiempo de inactividad. Si lo desea, también
puede hacer el intercambio de nuevo y revertir la implementación de la nueva versión.

Figura 2-1: Intercambio a una ranura de implementación

Utilice ranuras de implementación en un entorno de desarrollo, prueba o producción. No utilice


ranuras de implementación como entornos, porque residen en el mismo App Service Plan y es mejor
que estén separados por motivos de seguridad, escalado, rendimiento y facturación.

Puede intercambiar las ranuras de implementación manualmente, a través de la interfaz de la línea de


comandos (CLI) de Azure y a través de la API de administración de Azure. Esto permite que
herramientas como Visual Studio Team Services realice operaciones de intercambio durante un
lanzamiento.

Una ranura de implementación es otro elemento de Azure App Service (como una aplicación web)
que se ejecuta en el mismo Azure App Service Plan, junto al Azure App Service original. Como las
ranuras de implementación se ejecutan en el mismo Azure App Service Plan que el Azure App Service
original, el uso de estas no tiene ningún costo adicional.

Entrega continua
Para publicar la aplicación en App Services, puede utilizar servicios externos como Visual Studio Team
Services, Jenkins u Octopus Deploy. También puede utilizar la característica de entrega continua (CD)
de App Services. Esto le permite crear un proceso de creación-prueba-publicación en App Service.
El proceso hace lo siguiente:

1. Recupera el último código fuente del depósito que usted le indique.

17 CA P Í TU LO 2 | Introducción a Azure
2. Crea el código según una plantilla que usted elija (ASP.NET, Node.js u otras).

3. Implementa la aplicación en un entorno de ensayo y realiza una prueba de carga.

4. Implementa la aplicación en producción después de la aprobación (usted puede elegir usar una
ranura de implementación).

Conectarse a recursos locales


Puede conectar recursos externos, como depósitos de datos, a App Services. No es necesario que
estos recursos estén en Azure. Pueden estar en cualquier parte, incluso de forma local, en su propio
centro de datos. Puede conectarse a servicios locales a través de muchos mecanismos, dependiendo
de sus necesidades. Puede utilizar Azure Hybrid Connections, Azure Virtual Networks y Azure
ExpressRoute para conectarse a los recursos locales.

Dominios personalizados y certificados de Azure App Service


Cuando publica una aplicación en Azure App Service, expone una URL, por ejemplo,
https://myazurewebsite.azurewebsites.net. Lo más probable es que tenga que utilizar su propio
dominio personalizado, lo cual puede hacer mediante la asignación de ese nombre de dominio a App
Services. Aquí le mostramos cómo hacerlo.

Además, puede asegurarse de que la aplicación esté en HTTPS mediante el uso de un certificado
de Secure Sockets Layer (SSL). Puede traer su propio certificado o comprar uno directamente desde
Azure Portal. Cuando compra un certificado SSL desde el portal de Azure, compra un certificado de
Azure App Service, que puede configurar para que lo usen sus vínculos de dominio personalizado.

Pruébelo Vea cómo comprar y configurar un certificado en esta guía.

App Service Environment


En una aplicación web de varios niveles, a menudo tiene una base de datos o servicios que utiliza la
aplicación en Web App. Lo ideal sería que estos servicios solo estén expuestos a la aplicación y no
a Internet. Por supuesto, la aplicación en sí misma suele estar orientada a Internet, ya que brinda el
punto de entrada para los usuarios.

Para aislar estos servicios de soporte de Internet, puede utilizar una red virtual de Azure. Este servicio
aborda sus servicios de soporte y los conecta a la aplicación en Web App de tal manera que los
servicios de apoyo están expuestos solamente a la aplicación, no a Internet. Este artículo describe este
servicio con más detalle y le muestra cómo utilizarlo.

Es posible que a veces necesite aún más control. Tal vez desea que la aplicación esté en una red
virtual, para que usted pueda controlar el acceso a ella. Tal vez desea que otra aplicación la llame en
Web App y hacer que sea parte de su back-end. En este caso, puede utilizar Azure App Service
Environment. Esto le brinda una escala muy alta y le otorga control sobre el aislamiento y el acceso
a la red. Sin embargo, hay que tener en cuenta que App Service Environment está disponible para
App Services solo en los niveles de precios premium.

Nota: App Service Environment actualmente no funciona con Web App para
contenedores.

18 CA P Í TU LO 2 | Introducción a Azure
Qué usar y en qué momento
Si bien App Service, Functions y Logic Apps a menudo trabajan en conjunto, cada uno está diseñado
pensando en necesidades de aplicaciones específicas.

La tabla 2-1 describe brevemente el propósito de la categoría de las necesidades que pueda tener.
Tabla 2-1: Qué App service usar y en qué momento

Categoría Propósito Tipo de Azure App


Service
Aplicaciones de Hospedar aplicaciones web y API Web App o Web App para
hospedaje contenedores de App
Service
Hospedar back-end para Mobile App de App
aplicaciones móviles Service
Procesos de Organizar un paso de un proceso Funciones
organización Organizar un proceso completo Logic Apps

19 CA P Í TU LO 2 | Introducción a Azure
Acelerar la aplicación
Una vez que la aplicación está funcionando en Azure, lo ideal es que rinda lo más posible. Azure
proporciona una gama de servicios que lo pueden ayudar con eso.

Azure Content Delivery Network


Uno de los servicios de Azure que lo pueden ayudar acelerar la aplicación es Azure Content Delivery
Network. Puede subir sus archivos estáticos, videos, imágenes, JavaScript, CSS y hasta archivos HTML
estáticos a un depósito de datos como Blob Storage de Azure y luego emparejar Azure Content
Delivery Network a ese contenido. Content Delivery Network luego tomará esos archivos estáticos
y los replicará a cientos de puntos de presencia (PoP) en todo el mundo. Lo único que tiene que hacer
en la aplicación es cambiar la referencia de los archivos estáticos a una URL diferente. Por ejemplo, si
antes la referencia era ~/images/image.png, ahora será https://example.azureedge.com/image.png.
Esto es muy fácil de hacer y mejora el rendimiento de la aplicación de las siguientes maneras:

 Descarga contenido de servidores de la aplicación. Ahora utiliza Content Delivery Network como
servidor y, por lo tanto, libera ciclos de procesamiento para la aplicación.

 Acerca el contenido estático físicamente a los usuarios distribuyéndolo a los PoP de todo el
mundo.

Puede beneficiarse de Content Delivery Network en aplicaciones web, pero también en


aplicaciones móviles y de escritorio.

Por ejemplo, Content Delivery Network se puede usar como servidor de videos para una aplicación
móvil. Los videos pueden ser pesados y no quiere almacenarlos en el dispositivo móvil (¡los usuarios
tampoco quieren!). Si usa Content Delivery Network, se alojan en un PoP, lo cual también mejora el
rendimiento, porque está cerca del usuario.

Pruébelo Introducción a Azure Content Delivery Network.

Azure Redis Cache


Toda aplicación moderna trabaja con datos. Al recuperar datos de un depósito de datos como una
base de datos, por lo general es necesario analizar múltiples tablas o documentos en algún servidor
distante, reunir los resultados y, luego, enviar el resultado al dispositivo solicitante. Esto, por supuesto,
lleva tiempo y puede frustrar y molestar a los usuarios.

Para eliminar algunos de estos “circuitos”, puede almacenar datos que no cambian a menudo. De esta
manera, en lugar de consultar la base de datos todas las veces, se podrían recuperar algunos de los
datos de una memoria caché, como Azure Redis Cache. El beneficio de la memoria caché es que
almacena los datos en un formato simple como valores con clave. No tiene que ejecutar una consulta
compleja para obtener estos datos, basta con saber la clave para recuperar el valor. Esto puede
mejorar el rendimiento de la aplicación en forma drástica. Así funciona el flujo de trabajo:

1. La aplicación necesita algunos datos e intenta recuperarlos de la caché.

2. Si los datos no están, obténgalos de la base de datos y también almacénelos en la


memoria caché.

3. La próxima vez que la aplicación esté en busca de esos datos, los encontrará en la memoria caché
y se ahorrará un viaje a la base de datos.

20 CA P Í TU LO 2 | Introducción a Azure
Azure proporciona memoria caché como servicio con Redis Cache. Esto se basa en el proyecto
de fuente abierta de Redis y ahora está respaldado por los ingenieros y los SLA de Microsoft. Es
altamente eficaz y tiene opciones avanzadas como la agrupación en clústeres y la georeplicación.

Pruébelo Introducción a Azure Redis Cache.

Azure Traffic Manager


Muchas aplicaciones modernas tienen usuarios en todo el mundo. Proporcionar una experiencia de
alto rendimiento para todos es, como mínimo, un reto. El problema más obvio del que tiene que
ocuparse es la latencia. La latencia es el tiempo que tarda una señal o una solicitud en llegar al
usuario. Cuanto más alejados están los usuarios de la aplicación, mayor latencia experimentan.

Azure Traffic Manager escala en todas las regiones y eso ayuda a reducir la latencia y proporcionarles
a los usuarios una experiencia eficaz, independientemente de dónde estén. Traffic Manager es un
mecanismo de enrutamiento inteligente que usted coloca por delante, por ejemplo, de las
aplicaciones de Web App, en todo el mundo. Web App actúa como extremos, que Azure Traffic
Manager monitorea en cuanto a estado y rendimiento. Como se demuestra en la figura 2-2, cuando
un usuario accede a su solicitud, Traffic Manager lo dirige a la aplicación de Web App que es más
eficaz en su proximidad.

Incluir Traffic Manager en su arquitectura es una gran manera de mejorar el rendimiento de la


aplicación.

Figura 2-2: Azure Traffic Manager dirige el tráfico al extremo geográfico de más alto rendimiento.

21 CA P Í TU LO 2 | Introducción a Azure
Dónde almacenar los datos
Los datos representan un aspecto muy importante de cualquier aplicación moderna y vienen en todas
las formas y tamaños. Azure proporciona muchos tipos de depósitos de datos que pueden ayudarlo
a mantener y recuperar datos en cualquier escenario. La tabla 2-2 presenta las opciones de
almacenamiento disponibles en Azure.
Tabla 2-2: Opciones de almacenamiento en Azure

Data Lake Store


SQL Database

PostgreSQL

Cosmos DB

Warehouse
SQL Data
Archivo
MySQL

Disco
Tabla
Blob

Cola
Datos relacionales X X
Datos relacionales de objetos X
Datos no estructurados X X
Datos semiestructurados X
Mensajes en cola X
Archivos en disco X
Archivos de alto rendimiento
en disco X
Depósito de datos de gran
tamaño X X X X X
Depósito de datos de tamaño
pequeño X X X X X X X X
Replicación de datos
geográficos X X

Nota Puede utilizar casi todas las opciones de almacenamiento mencionadas en esta
sección como activadores y enlaces para Azure Functions.

Analicemos con mayor detalle cada opción de almacenamiento.

Azure SQL Database


Si desea utilizar tablas con filas y columnas para almacenar datos, Azure SQL Database es una gran
opción. Es un sistema de base de datos relacional similar a Microsoft SQL Server local. Como
SQL Database se ejecuta en la nube, está completamente gestionado, es de alto rendimiento,
escalable y de respaldo automático, y tiene muchas características avanzadas.

Puede utilizar SQL Database con sus herramientas favoritas, incluidas SQL Server Management Studio
y Entity Framework.

Estas son algunas de sus características más avanzadas:

 Georeplicación, que replica los datos a otras regiones geográficas en tiempo real (Introducción
a la georeplicación)

22 CA P Í TU LO 2 | Introducción a Azure
 Enmascaramiento de datos dinámicos, que enmascara dinámicamente datos sensibles para
determinados usuarios en tiempo de ejecución (Introducción al enmascaramiento de datos
dinámicos)

 Auditoría, que proporciona una auditoría completa de todas las acciones que les suceden a los
datos (Introducción a la auditoría de Azure SQL Database)

Las bases de datos de SQL Database son extremadamente confiables y sólidas y ofrecen un acuerdo
de nivel de servicio (SLA) que garantiza un tiempo de actividad del 99,9 %.

Azure Database para MySQL


MySQL es un sistema de base de datos relacional de código abierto utilizado por millones de
aplicaciones como WordPress, Joomla y Drupal. Ahora, está disponible como un servicio administrado
de base de datos en el servicio Azure Database for MySQL. Esto significa que puede ponerse en
funcionamiento rápidamente, sin necesidad de configurar ni mantener servidores. Azure lo hace por
usted. Obtiene seguridad y escalabilidad de inmediato. Además, el servicio Database for MySQL goza
de la misma confiabilidad que SQL Database, es decir que ofrece un SLA de tiempo de actividad del
99,9 % líder en la industria.

Al igual que con SQL Database y Azure Database for PostgreSQL, se realizan copias de seguridad
incrementales cada cinco minutos y copias de seguridad completas cada hora, que puede utilizar para
recuperar los datos a un estado anterior, hasta 35 días antes.

Pruébelo Cree y conéctese a una base de datos MySQL en Azure.

Azure Database para PostgreSQL


Basado en la popular tecnología de base de datos PostgreSQL, Azure Database for PostgreSQL ofrece
un servicio de base de datos relacional de objetos. Esto es ligeramente diferente a los servicios de
base de datos relacional, porque las bases de datos relacionales de objetos pueden almacenar tipos
de datos más complejos, como tipos de datos anidados, y, por lo tanto, están más estrechamente
alineadas con los lenguajes de programación orientada a objetos que utilizamos en nuestras
aplicaciones.

Database for PostgreSQL es un servicio gestionado que tiene las mismas características que Database
for MySQL. Usted puede escalar hacia arriba y hacia abajo, tiene alta disponibilidad (SLA de 99,99 %)
y cuenta con copias de seguridad de generación automática.

Pruébelo Cree una base de datos de Azure para PostgreSQL mediante la CLI de Azure.

Azure Cosmos DB
Azul Cosmos DB es la nueva versión y marca de DocumentDB (y mucho más que eso). Cosmos DB es
un nuevo tipo de base de datos que está realmente diseñado para la nube. Estas son algunas de sus
características fundamentales:

 Tiene un SLA del 99,99 % que incluye bajas latencias (menos de 10 ms en lecturas; menos de
15 ms en escrituras).

 Cuenta con georeplicación, que replica los datos a otras regiones geográficas en tiempo real
(Cómo se distribuyen datos globalmente con Azure Cosmos DB).

 Cuenta con administración del tráfico, que envía a los usuarios a la réplica de datos que más
cerca tienen.

23 CA P Í TU LO 2 | Introducción a Azure
 La escala global no tiene límites y solo paga por el rendimiento de procesamiento y
almacenamiento que necesita.

 La indexación de los datos es automática. Ya no es necesario mantener ni ajustar la base de datos.

Además de estas características, Cosmos DB ofrece diferentes API con las que puede almacenar
y recuperar datos, incluidas SQL, JavaScript, Gremlin, MongoDB y Azure Table Storage. Diferentes
API manejan los datos de diferentes maneras. Puede utilizar documentos como datos, como también
tablas no estructuradas, gráficos, blobs y más. Utiliza la API que se adapta mejor a sus necesidades
y Cosmos DB se encarga del resto. Puede aprovechar el rendimiento, la escalabilidad y la fiabilidad
del nivel de la nube, pero aun así utilizar el modelo de programación al que está acostumbrado.

Pruébelo Introducción a Azure Cosmos DB DocumentDB API.

Azure Storage
Otra opción que tiene para almacenar datos es Azure Storage. Este es uno de los servicios más
antiguos, confiables y de alto rendimiento de Azure. Azure Storage ofrece cinco tipos de
almacenamiento de los que todos se benefician, que tienen las siguientes características comunes:

 Georedundancia, que replica los datos a diferentes centros de datos para que pueda recuperarlos
en caso de que un desastre genere el fallo de un centro de datos individual

 Cifrado de datos en tiempo de ejecución

 Dominios personalizados

Los cuatro tipos de Azure Storage son blob, cola, archivo y disco (Figura 2-3).

Figura 2-3: Descripción general de los servicios de Azure Storage

Blob Storage
Puede utilizar Azure Blob Storage para almacenar datos no estructurados de gran tamaño, es decir
blobs de datos. Pueden ser videos, imágenes, audio, texto o incluso archivos de disco duro virtual
(VHD) para VM.

Hay dos tipos de blobs: de página y de bloque. Los blobs de página están optimizados para leer y
escribir operaciones al azar. Son perfectos para el almacenamiento de un disco duro virtual. Los blobs
de bloque están optimizados para cargar grandes cantidades de datos con eficiencia. Son perfectos
para almacenar grandes archivos de video que no cambian a menudo.

Pruébelo Introducción a Azure Blob Storage.

24 CA P Í TU LO 2 | Introducción a Azure
Queue Storage
Azure Queue Storage es un tipo inusual de almacenamiento que se utiliza para almacenar pequeños
mensajes de datos, pero su principal objetivo es actuar como cola. Pone mensajes en la cola y otros
procesos los recogen. Este patrón desempareja el remitente del procesador de mensajes y eso resulta
en beneficios de rendimiento y confiabilidad. Azure Queue Storage se basa en Microsoft Message
Queueing, que puede encontrar en versiones anteriores de Windows.

Pruébelo Introducción a Azure Queue Storage.

File Storage
Usted puede utilizar Azure File Storage como una unidad desde la cual compartir archivos. Usa el
protocolo de Bloque de mensajes del servidor (SMB), que significa que puede utilizarlo con Windows
y Linux, y puede acceder a él desde la nube o desde sistemas locales. Al igual que los otros tipos de
Azure Storage, el almacenamiento en archivos es escalable y barato.

Pruébelo Introducción a Azure File Storage.

Almacenamiento en disco
Azure Disk Storage es similar al almacenamiento de archivos, pero está específicamente diseñado
para rendimiento de E/S alto. Es perfecto para usar como disco en una máquina virtual que necesita
alto rendimiento, como una máquina virtual que ejecuta SQL Server. Sin embargo, hay que tener en
cuenta que el almacenamiento en disco está disponible solamente en el nivel de precios premium de
Azure Storage.

Azure Data Lake Store


Los depósitos de datos anteriores estaban destinados al uso de aplicaciones corrientes o al uso con
máquinas virtuales. Azure Data Lake Store funciona como almacenamiento para aplicaciones de
macrodatos. Se usa para almacenar grandes cantidades de datos en su formato nativo: estructurados,
no estructurados o de cualquier otro tipo. El objetivo de Data Lake Store es tratar de conservar sus
datos sin formato para que pueda analizarlos o transformarlos y moverlos. Las siguientes son las
principales características de Azure Data Lake:

 Capacidad de almacenamiento ilimitada. Un solo archivo puede ser más grande que un petabyte
en tamaño; 200 veces mayor que otras ofertas de los proveedores de servicios en la nube.

 Rendimiento escalable para alojar análisis paralelos de forma masiva.

 Puede almacenar datos en cualquier formato, sin un esquema.

Este es un enfoque muy diferente al depósito de datos tradicional, en el que se definen esquemas de
datos por adelantado.

Por ejemplo, podría utilizar Data Lake Store para almacenar todos los datos que obtiene de sus
dispositivos de Internet de las cosas (IoT) que están recopilando datos de temperatura. Puede dejar
los datos en la tienda y luego filtrar en esta para crear una vista de los datos por hora o por semana.
Almacenar los datos en Data Lake Store es bastante barato, así que puede guardar datos durante
mucho tiempo a un costo muy bajo.

Pruébelo Introducción a Azure Data Lake Store mediante Azure Portal.

25 CA P Í TU LO 2 | Introducción a Azure
Azure SQL Data Warehouse
Se utiliza Azure SQL Data Warehouse cuando se necesita una solución tradicional de almacenamiento
de datos totalmente administrada, escalable en tamaño, de alto rendimiento y segura. Puede
almacenar datos en esquemas predefinidos y consultarlos utilizando el dialecto SQL de SQL Server.

Debido a que SQL Data Warehouse se ejecuta en Azure, puede utilizar funciones avanzadas, como la
detección de amenazas automática que utiliza “machine learning” para entender los patrones de su
carga de trabajo y sirven como un sistema de alarma para avisarle acerca de un posible
incumplimiento.

Un ejemplo de uso de Azure SQL Data Warehouse es cuando sabe qué informes desea mostrarles a
los usuarios y cuál es el esquema de datos de estos informes. Luego, puede crear esquemas en SQL
Data Warehouse y rellenarlo con datos para que los usuarios puedan navegar a través de ellos.

Pruébelo Cree un Azure SQL Data Warehouse.

26 CA P Í TU LO 2 | Introducción a Azure
3

Resulta agradable poder hospedar la aplicación y los datos y que estos


estén seguros, sean escalables y tengan alto rendimiento; sin embargo,
¿no sería fantástico si, además, pudiera agregarles funciones inteligentes?

Azure Search
La búsqueda es una característica común en la mayoría de las aplicaciones y, sin embargo, ha sido
tradicionalmente una función difícil de implementar. Azure Search ofrece gran parte del trabajo de
“plomería” que requieren las búsquedas. Lanza una instancia de Azure Search, crea un índice que lo
ayuda a buscar y lo rellena con datos. Eso es todo. Hay muchas opciones que puede utilizar para
ajustar Azure Search y hay un montón de grandiosas características que les facilitarán la búsqueda a
los usuarios:

 Geobúsqueda, que les permite a los usuarios explorar datos basados en la proximidad que tiene
un resultado de búsqueda con una localización física.

 Analizadores de lenguaje de Lucene, así como procesadores de lenguaje natural de Microsoft


(NLP), disponibles en 56 idiomas para manejar lingüística específica de cada idioma con
inteligencia, que incluye tiempos verbales, género, sustantivos plurales irregulares (por ejemplo,
“mouse” versus “mice”), descomposición de palabras, división de palabras (para los idiomas que
no tienen sílabas) y mucho más.

 Seguimiento y generación de informes que le avisarán qué se buscó y qué tan rápida y exitosa fue
la búsqueda.

27 CA P Í TU LO 3 | Añadir inteligencia a una aplicación


 Características de experiencia de usuario, como la clasificación y compaginación de los resultados
de la búsqueda y el filtrado inteligente, y la opción de sugerencias de búsqueda.

Puede implementar Azure Search para ayudar a los usuarios a buscar en su catálogo de productos en
una aplicación de comercio electrónico.

Pruébelo Cree su primer índice de Azure Search en el portal.

Azure Cognitive Services


Con Azure Cognitive Services, puede agregarle a las aplicaciones una inteligencia asombrosa.
Cognitive Services es una colección de API que puede utilizar para lograr lo que a veces parece
mágico. Hay más de 25 API en las categorías de visión, habla, lenguaje, conocimiento y búsqueda.
Aquí le damos un vistazo a las API que puede utilizar:

 Con Face API, puede realizar reconocimiento e identificación facial e incluso puede determinar el
color de ojos de una persona, incluso si esa persona está usando gafas.

 Emotion API determina qué emociones muestra un individuo en una imagen.

 Language Understanding Intelligent Services API (o LUIS) puede comprender texto, en función del
modelo que use para entrenarla.

 Translator Speech API convierte la voz en texto y lo traduce en tiempo real.

Cognitive Services obtiene conocimientos a través de “machine learning” y la inteligencia artificial, que
puede entrenar con sus propios conjuntos de datos. Estos servicios son simplemente increíbles
y abren posibilidades que no podíamos ni soñar hace tan solo unos años.

Azure Bot Service


Azure Bot Service lo ayuda a crear un bot, es decir, un software que puede interactuar con los usuarios
de forma automática y autónoma.

Crear un bot no es tarea sencilla. Es necesario registrar el contexto de su interacción con el usuario
y debe estar preparado para responder a una multitud de parámetros de interacción posibles. Bot
Service lo ayuda con esta tarea de las siguientes maneras:

 Lo ayuda a mantener un seguimiento del contexto de interacción y le proporciona plantillas para


comenzar desde el marco de bot.

 Tiene integraciones estrechas con Cognitive Services y eso hace que su bot sea más “inteligente”.

 Lo ayuda a integrarse con servicios como Facebook, Slack, Microsoft Teams, Telegram y más.

 Ofrece todos los beneficios de un servicio gestionado en Azure: escala masiva, entrega continua
incorporada (CD) y pago por uso.

Un ejemplo de un bot que puede construir Bot Service es uno que ofrece a los usuarios respuestas
a sus preguntas más frecuentes. La interfaz del bot puede ser un cuadro de chat que esté en su sitio
de Internet.

Pruébelo Introducción al bot de chat con Azure Bot Service.

28 CA P Í TU LO 3 | Añadir inteligencia a una aplicación


Uso de eventos y mensajes en la aplicación
Las aplicaciones modernas, globalmente distribuidas, a menudo deben lidiar con grandes cantidades
de mensajes y tienen que estar diseñadas teniendo en cuenta la desacoplación y el escalado. Azure
proporciona varios servicios que lo ayudan con la ingesta de eventos y los patrones de mensajería
y análisis.

Azure Service Bus


La base de la mensajería en Azure es Azure Service Bus. El servicio Service Bus abarca una colección
de servicios que puede utilizar para patrones de mensajería. Los más importantes entre ellos son las
colas y los temas de Azure Services Bus.

Pruébelo Introducción a Azure Service Bus: colas y temas.

Colas de Azure Service Bus


Las colas de Azure Service Bus se utilizan para separar sistemas entre sí. P. ej.: una aplicación web
recibe pedidos de los usuarios y necesita invocar un servicio web para procesar el pedido. Al
servicio web le llevará mucho tiempo, quizás hasta cinco minutos, procesar el pedido por completo.
Claro que es inaceptable que la aplicación web espere cinco minutos entre el pedido del usuario
y la aparición del resultado. Una buena manera de solucionar esto es utilizar una cola para
desvincular la aplicación web del servicio web.
La aplicación web recibe el pedido y lo escribe en un mensaje en una cola de Azure Service Bus.
Luego, puede informarle al usuario que el pedido se está procesando. El servicio web toma los
mensajes de la cola, uno por uno, y los procesa. Cuando el servicio web termina el procesamiento
de un pedido, le envía una notificación por correo electrónico al usuario en la que le avisa que el
elemento ya se ha pedido.
Al desacoplar los sistemas, la aplicación web puede funcionar a una velocidad diferente del servicio
web y ambos pueden escalar individualmente en relación con las necesidades de las aplicaciones.
La cola de Services Bus es un mecanismo simple. Múltiples aplicaciones pueden colocar mensajes
en la cola, pero un mensaje de la cola puede procesarse por una única aplicación a la vez. Tiene
algunas funciones inteligentes para trabajar con mensajes en la cola, como la detección de
duplicados y una subcola de letra muerta a la que los mensajes se mueven cuando no se procesan
correctamente.

Temas de Azure Service Bus


Al igual que con las colas de Service Bus, los temas de Azure Service Bus son una forma de
desacoplación de la aplicación. Estas son las diferencias entre la cola y los temas:

 Con una cola, múltiples aplicaciones escriben mensajes en la cola, pero solo una aplicación a la
vez puede procesar un mensaje.

 Con un tema, varias aplicaciones escriben mensajes en el tema y múltiples aplicaciones pueden
procesar un mensaje al mismo tiempo.

Los temas de Service Bus funcionan como una cola y múltiples aplicaciones pueden procesar el
mismo mensaje. Las aplicaciones pueden crear una suscripción en el tema, que indica qué tipo de
mensajes les interesa. Al igual que las colas, los temas tienen características como la detección de
duplicados y una subcola de letra muerta a la que los mensajes se mueven cuando no se procesan
correctamente.

29 CA P Í TU LO 3 | Añadir inteligencia a una aplicación


Comparación de las colas de Service Bus y las colas de Azure Storage
Existen las colas de Service Bus, pero también existen las de Azure Storage. Básicamente hacen lo
mismo, pero hay diferencias sutiles entre ellas. En la tabla 3-1 analizamos ambas.
Tabla 3-1: Comparación de características entre las colas de Service Bus y las de Azure Storage

Colas de Azure Service Bus Colas de Azure Storage


Ciclo de vida de los mensajes: más de Ciclo de vida de los
7 días mensajes: menos de 7 días
Orden garantizado (primero en entrar, Tamaño de la cola: más de
primero en salir) 80 GB
Detección de duplicados Registros de transacciones
Tamaño de los mensajes: menor o igual Tamaño de los mensajes:
a 1 MB menor o igual a 64 KB

Azure Event Hubs


En nuestro mundo del software omnipresente, se generan datos en muchas aplicaciones, dispositivos
y ubicaciones, todo el tiempo. Hoy en día, es cada vez más común para las empresas captar enormes
cantidades de esos datos para analizarlos o transformarlos y moverlos para su uso posterior. Azure
Event Hubs puede ayudarlo.

Event Hubs está diseñado para la ingesta masiva de datos. Puede lanzarle millones de mensajes por
segundo y manejará los datos por usted sin ningún esfuerzo. Puede retener mensajes hasta por siete
días o retenerlos indefinidamente al escribirlos en un depósito de datos mediante la función Event
Hubs Capture.

Puede utilizar Event Hubs para filtrar los datos con consultas, a medida que llegan, y enviar los
resultados a un depósito de datos como Azure Cosmos DB. Incluso puede reproducir mensajes si es
necesario.

Pruébelo Introducción al envío de mensajes a Azure Event Hubs en .NET Standard.

Azure IoT Hub


Al igual que Event Hubs, Azure IoT Hub está construido para la ingesta masiva de datos. Está
específicamente configurado con una orientación hacia el manejo de un enorme volumen de
mensajes de datos de dispositivos con Internet de las cosas (IoT; consultar la barra lateral en el
capítulo 1, “¿Quién usa Azure?” para ver un ejemplo), como termostatos inteligentes o sensores en los
autos. Tiene muchas de las mismas propiedades que Event Hubs, como la capacidad de retener
mensajes hasta por siete días y reproducirlos.

Lo que hace único a IoT Hub es que, además de recibir mensajes de los dispositivos, también puede
enviarles mensajes. Tiene la capacidad de administrar por completo su infraestructura de IoT. Puede
usar IoT Hub para registrar dispositivos e informar su estado, administrarlos al asegurarlos y
reiniciarlos y enviar datos a los dispositivos.

Pruébelo Conecte su dispositivo a su IoT Hub con .NET.

30 CA P Í TU LO 3 | Añadir inteligencia a una aplicación


Azure Event Grid
Azure Event Grid ofrece otro tipo de mensajería. Event Grid ofrece un servicio de
publicación/suscripción totalmente gestionado, que conecta casi todos los servicios de Azure y puede
conectarse con suscriptores y editores personalizados.

Esto es diferente a trabajar con las colas y los temas de Service Bus, porque para ellos es necesario
sondear la cola o los temas para buscar nuevos mensajes. Event Grids les envía automáticamente los
mensajes a los suscriptores, lo que lo convierte en un servicio de eventos en tiempo real, reactivo.

Los servicios dentro y fuera de Azure publican eventos (por ejemplo, cuando se agrega un nuevo blob
o cuando un nuevo usuario se agrega a una suscripción de Azure). Azure Event Grid puede detectar
estos eventos y hacer que estén disponibles para los controladores de eventos y los servicios que se
suscribieron a los eventos (Figura 3-1). Los controladores de eventos pueden ser cosas como Azure
Functions o Azure Logics Apps, que luego pueden actuar sobre los datos en el evento.

Figura 3-1: Descripción general de Azure Event Grid

Otro aspecto importante de Event Grid es que funciona sin servidor. Esto significa que, al igual que
Azure Logic Apps y Azure Functions, Event Grid escala automáticamente y no necesita que se
implemente una instancia. Solo lo configura y utiliza. Además, paga solo cuando se utiliza, no por el
simple hecho de tenerlo.

Este es un ejemplo de uso para Azure Event Grid:

Desea que le notifiquen por correo electrónico cada vez que se añade o elimina un usuario de su lista
de correo en MailChimp.

Azure Event Grid se utiliza para activar una aplicación en Azure Logic Apps y está configurado para
escuchar los cambios en la lista de correo de MailChimp. El siguiente paso es enviar un correo
electrónico que contiene el nombre del usuario que se ha añadido o eliminado y la acción que se
realizó (agregar o eliminar). Ahora, cuando un nuevo usuario se agrega a la lista de correo, Event Grid
indica esto a Logic Apps, que envía un correo electrónico.

Pruébelo Monitoree los cambios de la máquina virtual con Azure Event Grid
y Logic App.

31 CA P Í TU LO 3 | Añadir inteligencia a una aplicación


Qué usar y en qué momento
Azure proporciona múltiples opciones de mensajería y desacoplación de aplicaciones. ¿Cuál debe
utilizar y cuándo? La tabla 3-2 resume las diferencias que lo ayudarán a descubrirlo.
Tabla 3-2: Cuándo utilizar qué servicio Azure para mensajes o eventos

Event Event Colas de Colas de


Grid Hubs IoT Hub Temas Service Bus Storage
Ingesta de eventos X X X
Administración de X
dispositivos
Envío de mensajes X X X X X X
Múltiples consumidores X X X X
Múltiples remitentes X X X X X X
Uso para desacoplación X X X X X
Uso para X
publicar/suscribir
Tamaño máximo del 64 KB 256 KB 256 KB 1 MB 1 MB 64 KB
mensaje

32 CA P Í TU LO 3 | Añadir inteligencia a una aplicación


4

Hoy en día, la seguridad es uno de los aspectos más importantes de


cualquier aplicación y no es fácil que funcione bien. Afortunadamente,
Azure ofrece muchos servicios para ayudarlo a proteger la aplicación.
Analizamos algunos en este capítulo.

Azure Active Directory


Una parte importante de la seguridad de la aplicación es la autenticación de usuarios antes de que
puedan usarla. La autenticación no es algo fácil de implementar. Es necesario guardar las identidades
de los usuarios y las credenciales en algún lugar, implementar la gestión de contraseñas, crear un
protocolo de seguridad de autenticación y más.

Azure Active Directory proporciona todo esto y mucho más, de inmediato. Guarda las identidades de
los usuario en Azure Active Directory y hace que los usuarios las autentiquen, ya que los redirige a la
aplicación solo después de que se autentican. Azure Active Directory se encarga de la gestión de
contraseñas, incluidos los escenarios comunes como “Olvidé mi contraseña”.

Millones de aplicaciones utilizan Azure Active Directory a diario, entre ellas, Azure Portal, Outlook.com
y Office 365. Debido a esto, es capaz de detectar comportamiento malicioso más fácilmente y abordarlo.
Por ejemplo, si un usuario iniciara sesión en una aplicación desde una ubicación en Europa y, luego,
un minuto más tarde, en Australia, Azure Active Directory marcaría esto como comportamiento
malintencionado y le preguntaría al usuario las credenciales adicionales a través de la autenticación
multifactorial.

33 CA P Í TU LO 4 | Asegurar la aplicación
Azure API Management
Las API deben estar seguras. Es necesario tanto para las API que crea por su cuenta, como para las
que consume de terceros. Para ayudarlo a que sus API estén seguras, puede utilizar Azure API
Management. Esto es básicamente un proxy que pone delante de sus API o de las de terceros,
que añade características como el almacenamiento en memoria caché, la regulación y la
autenticación/autorización.

Para asegurar su API con API Management, pídales como requisito a los consumidores que creen una
suscripción a su API. De esta forma, las llamadas aplicaciones tienen que autenticarse antes de poder
usar su API. Puede utilizar varios métodos de autenticación, como tokens, autenticación básica
y certificados. Además, puede rastrear quién llama a su API y bloquear llamadas no deseadas.

Pruébelo Introducción a Azure API Management.

Azure Key Vault


Como parte de su arquitectura de seguridad, necesita un lugar seguro para almacenar certificados,
llaves y otros secretos. Azure Key Vault le ofrece eso. Con Key Vault, tiene una ubicación central
donde se guardan los secretos que utilizan las aplicaciones.

Pueden ser credenciales en un connectionstring que utiliza la aplicación. La aplicación obtendría el


connectionstring de Key Vault, en lugar de hacerlo desde el sistema de configuración. De esta
manera, los administradores pueden controlar los secretos y los desarrolladores nunca se tienen que
ocupar de ellos.

También utiliza Key Vault para almacenar certificados, como los certificados de Secure Sockets Layer
(SSL) que utiliza para asegurar el tráfico hacia y desde las aplicaciones HTTPS.

Pruébelo Introducción a Azure Key Vault.

Protección contra DDoS de Azure


Lo escuchó muchas veces en las noticias y no quiere que esto le ocurra a su empresa: la aplicación
recibe un ataque de denegación de servicio distribuido (DDoS). Estos tipos de ataques son cada vez
más comunes y pueden abrumar la aplicación hasta el punto de que nadie más pueda usarla.

Azure lo protege de ataques de DDoS con su capa de protección contra DDoS de Azure. Esta es una
capa de la red física de Azure a la que los clientes no tienen acceso. Esto es parte de la plataforma
Azure y lo obtiene gratis con todos los servicios. No tiene que hacer ni configurar nada para usarlo.
Siempre está ahí para protegerlo.

Más información Lea más sobre protección contra DDoS de Azure.

34 CA P Í TU LO 4 | Asegurar la aplicación
Firewall de aplicaciones web Azure
Necesita asegurar la aplicación contra muchas amenazas posibles, entre las que se incluyen las
definidas en la especificación del Proyecto de seguridad de aplicaciones web abierto (OWASP), como
la inyección SQL y el scripting multisitios (XSS). El Firewall de aplicaciones web Azure puede ayudarlo
con eso. El Firewall de aplicaciones web, una característica del servicio Azure Application Gateway,
proporciona protección en tiempo real para la aplicación.

Puede detectar un ataque malicioso, tal como se define en el Conjunto de reglas base OWASP
y bloquear el ataque para que no llegue a la aplicación. También informa sobre los ataques que se
intentaron o están en curso para que pueda ver qué amenazas están tratando de llegar a la aplicación.
Esto proporciona una capa adicional de seguridad que protege las aplicaciones.

Encriptación de datos por defecto


Protege sus depósitos de datos lo mejor posible asegurando connectionstrings y configurando
las reglas del firewall. Pero si, de alguna manera, un atacante es capaz de acceder a sus datos, lo
mejor es evitar que pueda usarlo mediante el cifrado.

Sus datos están cifrados por defecto si los almacena en Azure SQL Database, Azure SQL Data
Warehouse, Azure Database for MySQL, Azure Database for PostgreSQL, Azure Storage, Azure
Cosmos DB o Azure Data Lake Store. Además, todo esto funciona automáticamente; no tiene que
hacer nada para configurarlo ni para cifrar o descifrar datos cuando los utilice.

35 CA P Í TU LO 4 | Asegurar la aplicación
5

Los servicios de Azure en los que desee trabajar determinan sus opciones
de implementación y viceversa. Por lo tanto, es importante entender las
opciones de implementación que tiene en Azure y cuáles son sus
ramificaciones.

La mentalidad de DevOps
La entrega rápida y la reiteración rápida son cruciales para crear gran software. Por lo tanto, su nuevo
código debería fusionarse con el código de su equipo y eso debería implementarse y probarse lo más
rápido posible y con la mayor frecuencia posible, para ver si todo funciona y si lo que creó es lo que
necesita el usuario.

Muchos de los servicios de Azure que hemos analizado hasta ahora en este manual son capaces de
recibir código automáticamente, a menudo a través de un flujo de entrega continua (CD) que se
configura dentro del servicio.

36 CA P Í TU LO 5 | Dónde y cómo implementar los servicios de Azure


Además de las funcionalidades nativas de los servicios Azure, puede utilizar Visual Studio Team
Services para construir, probar e implementar la aplicación. Puede crear fácilmente nuevas líneas de
implementación de Visual Studio Team Services y también hacer cosas como automatizar pruebas de
carga y cambiar las ranuras de implementación en producción.

Pruébelo Empezar a trabajar con Visual Studio Team Services.

Plantillas de Azure Resource Manager


Todos los servicios de Azure presentados en esta guía se basan en Azure Resource Manager.
Podemos utilizar esto para pasar nuestro entorno a infraestructura como código (IaC), utilizando
Plantillas de Resource Manager. Estas plantillas son archivos JSON que describen lo que desea
implementar y cuáles son los parámetros.

Puede crear plantillas de Resource Manager en Visual Studio y Visual Studio Code utilizando la
plantilla del proyecto Azure Resource Group. También puede generar plantillas de Resource Manager
en el portal de Azure haciendo clic en el botón de secuencia de comandos de automatización, que
está disponible en la barra de menús de todos los recursos disponibles en el portal de Azure. Esto
genera la plantilla de Resource Manager para el recurso dado e incluso genera código para crear el
recurso utilizando la interfaz de línea de comandos (CLI) de Azure, Windows PowerShell, .NET y Ruby.

Después de tener una plantilla de Resource Manager, se puede implementar en Azure mediante
Windows PowerShell, la CLI de Azure o Visual Studio. O bien, puede automatizar su implementación
en un proceso de entrega continua mediante Visual Studio Team Services.

Utiliza plantillas de Resource Manager para implementar aplicaciones para que se ejecuten sobre
la plataforma Azure, en la nube pública o en el entorno local, en Azure Stack.

Un gran ejemplo de implementación de recursos en la nube utilizando Resource Manager es el botón


Deploy To Azure que se puede encontrar en muchos repositorios GitHub, tal como se ilustra en la
figura 5-1.

Figura 5-1: Implementación con un botón de una Azure Logic App mediante una plantilla de Resource Manager
en GitHub

Azure Service Fabric


Otra forma de ejecutar las aplicaciones es ejecutarlas en Azure Service Fabric. Service Fabric es la base
que Microsoft utiliza para ejecutar muchos recursos de Azure y para que tengan alta disponibilidad,
con alto rendimiento y recuperación automática. Ahora usted puede utilizar Service Fabric para
hospedar sus propios servicios.

Puede utilizar el SDK de Azure Service Fabric para crear aplicaciones para Service Fabric. También
puede ejecutar cualquier archivo ejecutable en Service Fabric e incluso usarlo para hospedar
contenedores.

Service Fabric logra que las aplicaciones tengan tanto rendimiento, confiabilidad y seguridad como
muchos servicios de Azure, y puede utilizarse en cualquier lugar: puede implementar Service Fabric en
Azure, en un entorno local, en su propia computadora e incluso en máquinas virtuales en otras nubes.

37 CA P Í TU LO 5 | Dónde y cómo implementar los servicios de Azure


Una vez que haya implementado la aplicación en Azure Service Fabric, le ofrece beneficios como estos:

 Equilibro de cargas
 Escalado automático
 Alta disponibilidad
 Recuperación automática
 Replicación y conmutación por errores
 Actualizaciones graduales
 Reversión automática

Contenedores en Azure
“Contenedores” es una de esas palabras de moda de tecnología que circulan por las noticias. Pero
son más que moda: son realmente muy útiles para ejecutar las aplicaciones. Un contenedor es
básicamente una máquina virtual liviana que se inicia y se detiene mucho más rápido que una
máquina virtual y, por lo tanto, es mucho más útil para el desarrollo, la prueba y la ejecución de
aplicaciones en producción.
El mayor beneficio que ofrecen los contenedores es que un contenedor individual es siempre igual.
Puede ejecutar un contenedor localmente cuando desarrolla la aplicación y utilizar la misma
configuración del contenedor en la nube o en cualquier otro lugar. Todo su equipo utiliza la misma
configuración exacta del contenedor, así que usted sabe que la infraestructura es la misma para todo
el mundo y en la producción. Con los contenedores, la frase histórica que usan los desarrolladores
(“funciona en mi máquina”) ahora significa que también funcionará en la producción.
Hay muchas tecnologías para ejecutar contenedores y Docker es una de ellas. Azure puede ejecutar
y gestionar contenedores para usted con Azure Container Instances y Azure Container Service,
e incluso en Services Fabric y Azure App Service en Linux.
La tabla 5-1 muestra qué servicio puede utilizar para un escenario dado al utilizar contenedores.
Tabla 5-1: Elegir qué servicio Azure usar para contenedores

Azure Container Azure Container Azure Service


Services Instances Fabric
Para las implementaciones de producción
de sistemas complejos (con un X
organizador de contenedores)
Para ejecutar configuraciones simples
X
(posiblemente sin organizador)
Para cargas de trabajo de larga duración
X
en los contenedores
Para cargas de trabajo de corta duración
X
en los contenedores
Para organizar un sistema basado en
X X
contenedores
Organizar con los organizadores de
código abierto (DC/OS, Docker Swarm, X
Kubernetes)
Organizar con organizador integrado X

38 CA P Í TU LO 5 | Dónde y cómo implementar los servicios de Azure


Nota: Tenga en cuenta que cuando utiliza contenedores, utiliza un producto de
infraestructura como servicio (IaaS) y que usted es responsable por el sistema operativo
(SO), los parches, el equilibrio de carga y demás aspectos.

Azure Stack
Si necesita que las aplicaciones y los datos permanezcan en un entorno local, pero igual quiere
aprovechar la capacidad que Azure tiene para ofrecer, Azure Stack es el producto para usted. Azure
Stack, producto único en la industria, es una extensión de Azure que se hospeda en su propio
entorno. En esencia, es una versión compacta de Azure.

Azure Stack se utiliza de la misma manera que Azure, con la misma experiencia que el portal de Azure
y las mismas API con las que puede utilizar el CLI de Azure, Windows PowerShell o su IDE favorito.

Puede ejecutar cosas como Azure App Service y máquinas virtuales de Azure en Azure Stack. Todo es
exactamente igual que en la nube pública, solo que ahora lo ejecuta en un entorno local. Además, si
usted decide migrar a la nube pública, solo tiene que insertar los servicios de Azure Stack en Azure.

¿Dónde y cuándo implementar?


La tabla 5-2 resume las opciones de implementación para Azure. Tenga en cuenta que solo es posible
usar todos los servicios de plataforma como servicio (PaaS) mencionados en esta guía cuando se usa
la nube pública con plantillas de Resource Manager o en un entorno local con Azure Stack.
Tabla 5-2: Comparar opciones de implementación de Azure

IaaS PaaS
En entorno Azure Stack Azure Stack
local Contenedores Service Fabric
Service Fabric
Nube pública Contenedores Service Fabric
Service Fabric Plantillas de Resource Manager

39 CA P Í TU LO 5 | Dónde y cómo implementar los servicios de Azure


6

Ahora que ya sabe qué es Azure y ha aprendido acerca de los servicios


que ofrece, vamos a empezar a utilizarlo.

Tutorial N. 1: el portal de Azure


Una de las herramientas más importantes de Azure es Azure Portal, que se puede encontrar en
https://portal.azure.com/. Este es su centro de Azure, donde hace todo lo que desea hacer con Azure.
La mayoría de las cosas que usted puede hacer en el portal de Azure las puede hacer también a través
de la API de Azure, la interfaz de la línea de comando (CLI) de Azure y Azure PowerShell.

Puede utilizar una vista previa de Azure Portal visitando https://preview.portal.azure.com. La vista
previa contiene características que no están disponibles para el público general, pero que puede
probar y comentar. El resto de esta guía se centrará en la versión general del portal, no en la
vista previa.

Lo primero que usted verá en el portal de Azure es un panel con mosaicos. Puede crear y personalizar
paneles y compartirlos con los miembros del equipo o conservarlos para usted mismo.

Mosaicos en el portal de Azure


Los paneles contienen mosaicos que muestran información para un servicio o actúan como un acceso
directo a un servicio. Puede encontrar estos mosaicos, que se muestra en la figura 6-1, en todo el
portal, en las páginas de todos los servicios. Pueden ser muy útiles para obtener una vista rápida del
estado de un servicio.

Figura 6-1: Mosaicos informativos en el portal de Azure

40 CA P Í TU LO 6 | Un recorrido por Azure


Por ejemplo, el servicio Application Insights, de forma predeterminada, muestra mosaicos que le
informan si hay alguna alerta activa, si ingresan datos en vivo, cuántos usuarios han estado activos en
las últimas 24 horas, cuál ha sido la disponibilidad, y otros datos. Se trata de información muy útil en
un formato muy consumible. Puede personalizar el tamaño y la información de los mosaicos. También
puede personalizar el aspecto de los gráficos mediante el ajuste de las líneas de tiempo, y hacer que
muestren datos en diferentes formatos como líneas o barras.

También puede fijar los mosaicos (figura 6-2) directamente a sus paneles para que sean lo primero
que vea cuando entre en el portal. Por ejemplo, puede fijar mosaicos de todas las métricas de servicio
que le interesan, para crear un panel de control que usted comparta con su equipo, o mostrarlos en
un monitor en la sala de equipo.

Figura 6-2: Puede fijar mosaicos a un panel de control

Encontrar servicios
Los servicios Azure son el tema central del portal de Azure. Puede agregarlos y buscarlos de varias
maneras.

Para crear nuevos servicios, en la esquina superior izquierda de la ventana del portal, haga clic en el
signo más (“+”). Esto abre el cuadro de búsqueda de Marketplace, donde encontrará desde Web App
hasta servidores de Linux, como se muestra en la figura 6-3.

Figura 6-3: El botón “Nuevo recurso”, en el Portal de Azure

Cuando haya encontrado el servicio que desea (Figura 6-4), un asistente lo guiará para configurarlo
e implementarlo.

Figura 6-4: Resultados de la búsqueda de recursos

41 CA P Í TU LO 6 | Un recorrido por Azure


Cuando tenga algunos recursos, puede encontrarlos a través de la búsqueda. Puede utilizar el
buscador en la parte superior del portal (figura 6-5) para buscar en todos sus recursos e ir
directamente a ellos.

Figura 6-5: El menú de favoritos en el portal de Azure

En el panel en el lado izquierdo del portal se encuentra el menú de favoritos. Este menú muestra las
categorías de recursos (representadas por sus íconos), como Azure App Service. Puede reorganizar los
iconos arrastrándolos hacia arriba y abajo. También puede seleccionar cuáles quiere ver expandiendo
el menú de favoritos y haciendo clic en las estrellas de esas categorías.

Explicación sobre las hojas


Las páginas en Azure también se llaman hojas. Las hojas están en todas partes, e incluso puede fijarlas
a sus paneles. Cuando abra una aplicación web, primero verá la hoja de resumen. Esta hoja en
particular le proporciona herramientas para detener, iniciar y reiniciar la aplicación web, y muestra
mosaicos con sus métricas, como cantidad de peticiones y errores. Si elige otro elemento del menú,
se abre una nueva hoja. Las hojas se abren siempre en contexto. Por lo tanto, si abre la hoja Ranuras
de implementación y hace clic en el botón Crear nueva ranura de implementación, aparece una nueva
hoja a la derecha de la hoja Ranuras de implementación, conservando el contexto en el que está.

Creación de una nueva máquina virtual


Vamos a utilizar el portal de Azure para crear una nueva máquina virtual que ejecuta Red Hat Linux.
Después de crearla, veremos cómo apagarla y eliminarla para que ya no tenga que pagar por ella.

Acerca de los grupos de recursos


La máquina virtual se implementará en un grupo de recursos. Todos los recursos de Azure se alojan
dentro de los grupos de recursos. Un grupo de recursos es un contenedor lógico donde se
encuentran sus recursos. Puede gestionar la seguridad de un grupo de recursos y ver el costo de
los recursos del grupo. Es una práctica común agrupar los servicios relacionados en un grupo de
recursos para que sean fáciles de proteger y usted pueda saber fácilmente cuánto cuestan.

1. En el portal de Azure, en la esquina superior izquierda, haga clic en el botón Crear un nuevo
servicio.
2. En el cuadro Buscar, escriba máquina virtual Linux.

Obtendrá muchos resultados de búsqueda, incluido Red Hat Enterprise Linux. Vamos a probar su
última versión.

42 CA P Í TU LO 6 | Un recorrido por Azure


3. Haga clic en la última versión de Red Hat Enterprise Linux.

4. Haga clic en Crear.


Se abre el asistente para crear la máquina virtual.

a. Elija un nombre para la máquina virtual.

b. Elija el tipo de unidad. SSD proporciona una máquina virtual más rápida, pero también es
más caro. Para este tutorial, seleccione SSD.
c. Escriba un nombre de usuario.

d. Seleccione la contraseña para el tipo de autenticación.

e. Escriba una contraseña y confírmela.

f. En el cuadro de grupo de recursos, escriba un nuevo nombre.

g. Elija la ubicación de la máquina virtual y haga clic en Aceptar.

5. Elija el tamaño de la máquina virtual.

El rendimiento de la máquina virtual determina cuánto paga por ella. Hay muchas opciones
de tamaño para máquinas virtuales, algunas pequeñas, algunas muy grandes. Puede utilizar el
asistente para seleccionar cuántos núcleos y cuánta memoria quiere, y elegir opciones basadas
en esa información. Además, hay otras características que vienen con opciones de tamaño:

a. Tipo de disco duro (SSD o disco duro normal).

b. La cantidad de IOPS máximas (operaciones de entrada/salida por segundo). Esto


determina el rendimiento de la máquina virtual de forma significativa, en especial si las
aplicaciones que ejecuta leen y escriben mucho en el disco duro.

c. La cantidad de unidades de datos que pueden instalarse en la máquina virtual.

d. La capacidad de equilibrio de cargas.

e. La tarjeta gráfica que está instalada en la máquina virtual. Esto es útil si necesita hacer un
montón de procesamiento de gráficos o pesadas cargas de trabajo computacionales.

6. Una vez que haya seleccionado el tamaño, puede especificar configuraciones adicionales como la
dirección IP y la red virtual, e instalar extensiones en la máquina. Por ahora, deje todo como está
y haga clic en Aceptar.

7. Revise el resumen, acepte los términos y haga clic en Comprar.

Ahora se implementará la máquina virtual. Generalmente esto toma pocos minutos.

Conectarse a la máquina virtual mediante el uso de Secure Shell


Ahora que ha creado una máquina virtual con Red Hat Linux en ella, puede conectarse y empezar a
usarla. Puede utilizar varias herramientas como Secure Shell (SSH) o incluso el escritorio remoto en la
máquina virtual. Vamos a utilizar SSH para conectarnos a la máquina virtual utilizando Cloud Shell en
el portal de Azure.

Cloud Shell es la CLI de Azure en el navegador: ya no hay necesidad de instalar nada en la PC.
Cloud Shell utiliza la CLI de Azure versión 2.0. Puede utilizar Bash o PowerShell en Cloud Shell para
interactuar con sus recursos de Azure.

43 CA P Í TU LO 6 | Un recorrido por Azure


Para iniciar Cloud Shell, en la parte superior derecha del portal de Azure, haga clic en el botón que se
muestra a continuación:

Para conectarse a la máquina virtual, necesita la dirección IP. Encuentre la máquina virtual en el
portal de Azure (buscándola o navegando hasta ella). En la hoja Resumen de la máquina virtual, en la
esquina superior izquierda, haga clic en el botón Conectar (ver figura 6-6). Al hacer clic en ella, la hoja
muestra la dirección IP que debe usar para conectarse con la máquina virtual, como se muestra en la
figura 6-6. Copie la dirección IP.

Figura 6-6: Conectarse a una máquina virtual en el portal de Azure

Ahora puede utilizar este comando directamente en Cloud Shell: simplemente péguelo y presione
Entrar. Verá una advertencia de que no hay ninguna clave de autenticación. Esto es porque, en lugar
de eso, elegimos trabajar con una contraseña. Elija Sí, escriba su contraseña y ya habrá ingresado.
Ahora está conectado a Red Hat Enterprise Linux y puede comenzar a utilizarlo. La figura 6-7 muestra
que hemos ingresado a la máquina virtual a través de Cloud Shell y estamos atravesando el sistema
de archivos.

Figura 6-7: Atravesar el sistema de archivos de Linux utilizando Cloud Shell en el portal de Azure

44 CA P Í TU LO 6 | Un recorrido por Azure


Añadir almacenamiento adicional a la máquina virtual
Si está usando su máquina virtual como un servidor de base de datos, a menudo le convendrá
tener espacio de almacenamiento adicional para el conjunto de los datos. Puede crear espacio de
almacenamiento adicional mediante la adición de una unidad adicional a través del portal de Azure.

1. Vaya a la máquina virtual, seleccione la pestaña Discos y haga clic en Agregar disco de datos,
como se muestra en la figura 6-8.

Figura 6-8: Pestaña Discos de una máquina virtual en el portal de Azure

Dado que no tenemos discos existentes para conectar, seleccione Crear disco.

2. Se abre el asistente para crear un disco administrado. Utilice este asistente para crear una unidad
administrada (en lugar de una unidad no administrada).

Los discos administrados están totalmente gestionados por Azure; no necesita crear ni mantener
una cuenta de almacenamiento subyacente para ellos. De manera opcional, puede elegir el
tamaño de la unidad y lo que debería contener, pero vamos a dejar todo como está. Escriba un
nombre y a continuación haga clic en Crear. Ahora dispone de una unidad adicional conectada
a la máquina virtual.

También puede crear y conectar una nueva unidad mediante Cloud Shell o el CLI Azure con este
comando:
az vm disk attach -g myResourceGroup --vm-name myVM --disk myDataDisk --new --size-gb 50

Si necesita ayuda con la CLI de Azure, puede escribir az -h. Todos los comandos del CLI de Azure
siguen la misma estructura: az sustantivo(s) (por ejemplo:, vm) verbo (por ejemplo: attach)
opciones.

Luego de crear una nueva unidad para la máquina virtual, necesita inicializarla en Linux. Este
documento lo guía en el proceso.

Crear unidades adicionales para almacenamiento extra de máquina virtual es simple. Los pasos
siguientes pueden ser más complicados, dependiendo del sistema operativo que utilice.

Eliminar los recursos del tutorial


Si terminó de usar la máquina virtual, puede cerrarla y eliminarla borrando el grupo de recursos que
creamos al principio de la creación de la máquina virtual. Esto contiene la máquina virtual y todos los
recursos que se crean automáticamente. Una vez que se haya eliminado el grupo de recursos, usted
ya no paga por ninguno de los recursos que ha utilizado en este tutorial.

45 CA P Í TU LO 6 | Un recorrido por Azure


Tutorial n. 2: desarrollo de una aplicación web de
Node.js con MongoDB en Azure
En este tutorial, implementamos una sencilla aplicación de Node.js que se conecta con MongoDB y la
hospedamos en Azure. Vamos a hospedar la aplicación en Azure Web App y utilizar Azure Cosmos DB
como nuestra base de datos, ya cuenta con una interfaz de MongoDB.

Para seguir las instrucciones, tiene que tener la CLI de Azure (v2.0 o superior), Git (v2 o superior),
Node.js y MNP (v6 o superior) y MongoDB (3.4 o superior) instalados en su computadora.
Vamos a utilizar una aplicación de ejemplo que utiliza el marco web MEAN.js.

Crear la aplicación web y base de datos mediante el portal de Azure


Para hospedar la aplicación de Node.js, vamos a crear una nueva aplicación web en Azure Web App.

1. En el portal de Azure, haga clic en el botón Crear un nuevo servicio.

2. Busque Web App. Se abre la hoja Web App. Haga clic en Crear para comenzar.
3. Se abre la hoja Crear de Web App.

a. Escriba un nombre para la Web App.

b. Cree un nuevo grupo de recursos al darle un nombre.


c. Seleccione el sistema operativo con el cual trabajará (Windows o Linux).

d. Seleccione o cree un App Service Plan y, a continuación, haga clic en Crear.

Web App se ejecuta con un App Service Plan.


Los App Service, como Web App, se ejecutan con un App Service Plan. Un App Service Plan es una
abstracción de los recursos y funciones, como la CPU y la memoria, representados en niveles de
precios. Los App Service Plan también están limitados a una región geográfica específica que usted
elija. Usted puede, por ejemplo, ejecutar la aplicación Web App en un App Service Plan de precios
nivel S1 (ver figura 6-9), que tiene 1 núcleo y 1,75 GB de RAM.

Figura 6-9: Explicación de Azure App Service Plan

Puede ejecutar todos los App Service que quiera en un App Service Plan, siempre y cuando
comprenda que es necesario compartir los recursos entre todos los App Service.

46 CA P Í TU LO 6 | Un recorrido por Azure


Para hospedar la base de datos, vamos a crear una base de datos Cosmos DB que utiliza la API de
MongoDB. Esto funciona exactamente igual que MongoDB y tiene todas las ventajas que ofrece
Cosmos DB.

1. En el portal de Azure, haga clic en el botón Crear un nuevo servicio.


2. Busque Cosmos DB. Se abre la hoja de Cosmos DB. Haga clic en Crear para comenzar.

a. Escriba un nombre (ID) de la cuenta de base de datos.

b. Elija la API de MongoDB.


c. Seleccione el grupo de recursos que ha creado para la aplicación web.

d. Seleccione la ubicación. Preferentemente, una ubicación que sea igual o cercana a la de la


aplicación web.

e. Haga clic en Crear.

Ejecutar la aplicación de Node.js y la base de datos de MongoDB localmente


Vamos a ejecutar la aplicación localmente, antes de ejecutarla en Azure.

Si aún no lo ha hecho, instale MongoDB Community Edition:

1. Abra un símbolo del sistema en su computadora y navegue hasta el directorio bin de su


instalación de MongoDB. Podría ser algo como C:\Program Files\MongoDB\Server\3.4\bin.
2. Escriba mongo para conectarse al servidor local de MongoDB.

3. Si no funciona, asegúrese de que la base de datos MongoDB se haya iniciado. A menudo,


necesitará iniciarla ejecutando mongod.

Ahora para clonar la aplicación de arranque de Node.js y ejecutarla:

4. En la ventana de comandos, desplácese a un directorio donde desee descargar la fuente de la


aplicación.

5. Ejecute git clone https://github.com/Azure-Samples/meanjs.git para clonar la


aplicación.

6. Inicie la aplicación ejecutando los siguientes comandos:


cd meanjs
npm install
npm start

7. Cuando se haya cargado completamente, verá un mensaje que contiene la URL de la aplicación.
Abra un navegador y vaya a la dirección del servidor (algo así como http://localhost:3000). Esto se
debe ver similar a la figura 6-10.

47 CA P Í TU LO 6 | Un recorrido por Azure


Figura 6-10: Aplicación de Mean.JS modelo

8. En la barra de menú, haga clic en Sign Up y luego pruebe crear un nuevo usuario. Si funciona, la
aplicación tiene acceso a la base de datos MongoDB local, y la utiliza para escribir los usuarios.

Implementar la aplicación de Node.js en Azure


Ahora tiene una aplicación en funcionamiento que se ejecuta localmente. Vamos a implementarla en
Azure. Empezaremos por implementar la aplicación de Node.js en la aplicación web en Web App que
creamos anteriormente.

Vamos a utilizar la CLI de Azure para insertar la aplicación de Git en Azure. Asegúrese de tener el CLI
2.0 de Azure o más reciente instalado en su computadora. Cuando lo haya hecho, debe ejecutar el
siguiente comando az login para acceder a su suscripción de Azure. Esto abre una página web
donde puede autenticar y autorizar el uso de su suscripción de Azure en la CLI.

Para FTP y Git local, debe tener un usuario de implementación configurado en el servidor para
autenticar su implementación. Este usuario de implementación es al nivel de la cuenta y es diferente
de su cuenta de suscripción de Azure. Es necesario configurar este usuario de implementación
solamente una vez. En la CLI de Azure, ejecute el siguiente comando, donde username y password
son valores que usted inventa y completa (no incluya los caracteres < ni >):
az webapp deployment user set --user-name <username> --password <password>

Luego, asociamos el repositorio Git local con la aplicación web mediante la ejecución de lo siguiente:
az webapp deployment source config-local-git --name <app_name> --resource-group
<resource_group_name>

Esto devolverá una dirección URL en la forma de:


https://<username>@<app_name>.scm.azurewebsites.net:443/<app_name>.git

Ahora usaremos este URL para insertar la aplicación en Azure. En primer lugar, agregamos un acceso
remoto de Azure al repositorio Git local. cd al directorio meanjs del código fuente de la aplicación.
Ahora ejecute:
git remote add azure <url_for_deployment>

Para implementar la aplicación, ejecute git push azure master. Este le solicita las credenciales
que creó anteriormente. La implementación puede tomar un tiempo. Le notificará cuando haya
terminado.

Una vez que haya terminado, puede navegar hasta la aplicación con
http://<app_name>.azurewebsites.net.

Ahora, la aplicación se implementa en la aplicación web y tenemos una base de datos Cosmos DB con
la API de MongoDB, pero todavía no están conectadas. Hagamos eso a continuación.

48 CA P Í TU LO 6 | Un recorrido por Azure


Conectar la aplicación y la base de datos
Para conectar la aplicación a la base de datos, necesita saber dónde está la base de datos. Lo
podemos hacer mediante el establecimiento de la variable de entorno MONGODB_URI en la aplicación
web. Podemos hacerlo mediante la CLI de Azure ejecutando el siguiente comando:
az webapp config appsettings update \
--name <app_name> \
--resource-group myResourceGroup \
--settings
MONGODB_URI="mongodb://<cosmosdb_name>:<primary_master_key>@<cosmosdb_name>.documents.azure.com:102
50/mean?ssl=true"

Usted puede encontrar la cadena de conexión de Cosmos DB que necesita utilizar para el valor
MONGODB_URI en el portal de Azure. Allí, puede encontrarla en el menú Connection String en la
cuenta de Cosmos DB.

Después de ejecutar el comando con la CLI de Azure, la configuración de la aplicación web se verá
como la figura 6-11.

Figura 6-11: Configuración de la aplicación de la Azure Web App

En lugar de ejecutar el comando de la CLI de Azure, podría también haber agregado la configuración
mediante el portal de Azure.

Ahora, desplácese hasta la aplicación web otra vez web utilizando


http://<app_name>.azurewebsites.net. Pruebe registrar un nuevo usuario. Cuando eso funciona
correctamente, la aplicación se está comunicando con la base de datos. Ahora tiene una aplicación de
Node.js con una Azure Cosmos DB a través de la API de MongoDB.

Configuración de entrega continua con GitHub


Hasta ahora, hemos estado insertando código de nuestro repositorio de Git local en Azure. Esto está
bien si trabaja por su cuenta, pero si trabaja en un equipo, necesita otro tipo de control de fuente,
como Visual Studio Team Services o GitHub.

Usaremos GitHub para insertar nuestro código y vincularlo con nuestra aplicación web para que los
cambios se implementen automáticamente en un proceso de entrega continua.

1. Vaya a https://github.com/ y cree un nuevo repositorio.

Necesita iniciar sesión o crear una nueva cuenta para ello.

2. Cree un nuevo repositorio en https://github.com/new.

a. Escriba un nombre para el repositorio.


b. Deje las otras configuraciones como están (repositorio público, no crear un README).

49 CA P Í TU LO 6 | Un recorrido por Azure


c. Cree el repositorio. Aparece una pantalla que debe asemejarse a la figura 6-12.

Figura 6-12: Enlace del repositorio en GitHub

3. Use la URL para establecer un destino remoto para el repositorio de Git local. Puede hacerlo en la
ventana de comandos.

a. cd al directorio meanjs del código fuente de la aplicación.

b. Ejecute el siguiente comando:


git remote add github https://github.com/bmaluijb/test.git

c. Ejecute el siguiente comando para insertar el código en GitHub:


git push github

Ahora, nuestro código está en GitHub, y usted puede compartirlo con su equipo. A continuación,
vamos a configurar la entrega continua. Vamos a utilizar la función de opciones de implementación
de Web App a través del portal de Azure. También podríamos haber utilizado la función de entrega
continua en Web App, pero requiere una cuenta de Visual Studio Team Services, y necesitamos
realizar algo simple.

1. En el portal de Azure, vaya a la aplicación web que hospeda la aplicación de Node.js.

2. En la barra de menú, haga clic en Opciones de implementación.

3. Es posible que esto ya esté configurado para el repositorio de Git local. Si este es el caso, debe
hacer clic en Desconectar.

4. En Elegir origen, seleccione GitHub.

5. En la sección Autorización, autorice a Azure a usar GitHub haciendo clic en Autorizar y otorgando
el permiso.

6. En la sección Elegir proyecto, elija el repositorio de GitHub que acaba de crear.

7. Deje el conjunto Rama como maestra.

8. Haga clic en Aceptar y espere unos segundos.

Vuelva al menú Opciones de implementación. Ahora puede ver que está conectado. Desde este
punto, cada vez que inserte una nueva versión de código fuente en GitHub, se compilará y se
insertará en la aplicación web automáticamente, como se muestra en la figura 6-13. También puede
forzar este proceso haciendo clic en el botón Sincronizar.

50 CA P Í TU LO 6 | Un recorrido por Azure


Figura 6-13: La hoja Opciones de implementación de Web App

Creación de entornos de ensayo


Con Web App, puede configurar una ranura de ensayo en la que probar la nueva versión de la
aplicación. Puede utilizar ranuras de implementación para esto. Las ranuras de implementación
son Servicios de aplicaciones integrales que puede utilizar para probar el código fuente antes de
promoverlo a la siguiente ranura.

Pueden tener ranuras de implementación para ensayos, pruebas de carga y producción (que es
siempre el App Service original, la aplicación web de Node.js en nuestro caso). De hecho, usted puede
tener tantas ranuras de implementación como desee, sin incurrir en costos adicionales. Las ranuras de
implementación se ejecutan todas en el mismo App Service Plan, y eso es lo que paga. Usted debe
tener en cuenta que tener ranuras de implementación adicionales en un App Service Plan consumirá
recursos como CPU y memoria.

Puede crear nuevas ranuras de implementación desde el elemento de menú Ranura de


implementación, en la aplicación web. Asegúrese de que está ejecutando la aplicación web en el nivel
de precio Estándar o Premium, porque el plan gratuito no viene con ninguna ranura de
implementación.

En cada ranura del implementación que cree, puede configurar las opciones de implementación como
lo hicimos anteriormente para implementar el código automáticamente. Incluso puede trabajar en
diferentes ramas de código fuente para diferentes entornos y automáticamente implementar ramas
específicas para ranuras de implementación específicas.

Además, puede probar la versión final en una ranura de implementación, y cuando esté satisfecho,
intercambiarla con la ranura de la producción. Esto prepara la aplicación antes de que se la
intercambie, lo que se traduce en una implementación sin tiempo de inactividad.

Vamos a ver cómo crear una ranura de implementación e intercambiarla.


1. En el portal de Azure, vaya a la aplicación web que hospeda la aplicación de Node.js.

2. En la barra de menú, haga clic en Ranuras de implementación. Se abre la hoja de las ranuras de
implementación.

3. Haga clic en el signo más (+) para crear una nueva ranura de implementación.
a. Escriba un nombre para la ranura (por ejemplo: ensayo).

b. Seleccione la aplicación web de Node.js como la fuente de configuración (esto copia la


configuración de la aplicación en la nueva ranura).

c. Haga clic en Aceptar para crear la ranura.


4. Una vez creada la ranura, es similar a la aplicación web original.

a. Configure la entrega continua para la ranura al igual que en el procedimiento anterior


para la aplicación web.

51 CA P Í TU LO 6 | Un recorrido por Azure


b. Desconecte la entrega continua en la aplicación web original de Node.js. De esta forma,
cuando inserte nuevo código, se entrega solo a la ranura de ensayo

5. Realice un cambio a la aplicación de Node.js.

a. Cambiar algo de texto en el archivo home.client.view.html (lo puede encontrar en la


carpeta meanjs\modules\core\client\views).

b. Confírmelo en Git e insértelo en GitHub, al igual que cuando implementó la aplicación


de Node.js.

La nueva versión está ahora en la ranura de ensayo y no en la aplicación web original (lo que
llamamos la ranura de la producción). Puede verificar esto desplazándose al URL de la aplicación web
de Node.js y al URL de la ranura de ensayo (que puede encontrar en la hoja de resumen de la ranura,
al igual que en la hoja de resumen de la aplicación web).

Pongamos la nueva versión en producción.

1. En el portal Azure, vaya a la aplicación web de Node.js.

2. En la barra de menú, haga clic en Ranuras de implementación para abrir la hoja de ranuras de
implementación.
3. Haga clic en el botón Intercambiar para abrir la hoja de intercambio.

a. No modifique la configuración.

b. Haga clic en Aceptar para iniciar el intercambio.

Una vez finalizado el intercambio, la nueva versión de la aplicación web de Node.js está en
producción (pruébela yendo a la URL de la aplicación web de Node.js). Utilizar las ranuras de
implementación de este modo es muy cómodo porque le permite probar la nueva versión antes
de que esté en producción y luego implementarla en la producción sin tiempo de inactividad.

Diagnósticos adicionales mediante registros de diagnóstico


Cuando la aplicación se está ejecutando, saber cómo es su desempeño es fundamental. Una gran
forma de controlar la aplicación es mediante el uso de registros de diagnóstico para ver diagnósticos
de la aplicación web en tiempo real. Incluso puede enviarlos a la ventana de consola. Para ello, ejecute
el siguiente comando en el CLI de Azure:
az webapp log tail --name <app_name> --resource-group myResourceGroup

Verá registros cuando se utilice la aplicación en la aplicación web para generar algo de tráfico.

Cómo configurar controles y alertas sofisticados


Otra gran manera de realizar un seguimiento del rendimiento de la aplicación es mediante el uso
de Application Insights. Se trata de una herramienta de control en Azure que puede mantenerlo
informado acerca de todo el desempeño de la aplicación, desde cuántos visitantes la utilizaron
hasta cuántas excepciones ocurrieron y en qué lugar del código. A diferencia de los Registros de
diagnóstico, Application Insights tiene un precio módico.

Puede configurar Application Insights en el portal Azure de la aplicación web.


1. Vaya al portal de Azure y luego a la aplicación web que aloja la aplicación Node.js.

2. En la barra de menú, haga clic en Application Insights.

52 CA P Í TU LO 6 | Un recorrido por Azure


3. Seleccione Crear nuevo recurso.

a. Escriba un nombre y seleccione una ubicación para la instancia de Application Insights.

b. Haga clic en Aceptar. Application Insights se implementa y comienza a recopilar datos


para la aplicación.

Es necesario configurar la aplicación para que comience a enviar datos a Application Insights. Para
nuestra aplicación Node.js de ejemplo, es necesario hacer lo siguiente:

1. En el símbolo del sistema, cd a la carpeta meanjs de la aplicación de Node.js.


2. Ejecute npm install applicationinsights –save.

3. Vaya al portal de Azure y recupere la clave de la instrumentación de Application Insights.

Esto se encuentra en la instancia de Application Insights, debajo de Propiedades.


4. Abra el archivo server.js de la aplicación web de Node.js.

5. Añada estas tres líneas de código JavaScript antes de la línea:


var app = require('./config/lib/app');
const appInsights = require("applicationinsights");
appInsights.setup("<instrumentation_key>");
appInsights.start();

6. Envíe los cambios a GitHub e inicie la implementación automática. Desde el símbolo del sistema,
ejecute lo siguiente:
git commit -a -m "added Application Insights support"

7. Ejecute git push github y los cambios se enviarán a GitHub y se implementarán


automáticamente en la aplicación web.

Una vez terminada la implementación, la aplicación enviará datos a Application Insights.

Application Insights realiza por defecto una detección inteligente. Es una herramienta muy ingeniosa
que detecta y le avisa cuando algo no funciona como debería. Por ejemplo, puede detectar un
aumento repentino de las solicitudes fallidas y si la aplicación funciona más lento de lo normal.
También puede crear sus propios eventos personalizados para todo tipo de mediciones y condiciones
desde el menú de alertas de Application Insights, como se muestra en la figura 6-14.

Figura 6-14: Alertas de Application Insights

Ahora vaya al portal de Azure y haga clic en el recurso de Application Insights. Una vez allí, verá la
descripción, que muestra indicadores básicos tales como el tiempo de respuesta del servidor, el
tiempo de carga de vista de página y la cantidad de solicitudes de servidor y solicitudes fallidas. Si hay
datos ahí, Application Insights está en funcionamiento.

Nota Puede recopilar información adicional para enviar a Application Insights


mediante esta guía.

53 CA P Í TU LO 6 | Un recorrido por Azure


Escalado de la aplicación web
Cuando tiene muchos usuarios, necesita ampliar la escala de la aplicación web para poder aceptar el
tráfico. Cuando no está ocupado, necesitamos disminuir la escala para ahorrar costos. Puede hacerlo
con la función de escalamiento automático de App Service. Tenga en cuenta que para utilizar esta
función necesita ejecutar la aplicación web en el plan de tarifas Básico o Premium.

La aplicación web tiene un elemento del menú denominado Escalar, como se muestra en la figura 6-15.
Puede usar esto para escalar de forma manual o automática.

Figura 6-15: Escalar una aplicación Web a través del portal de Azure

Escalar significa que añade más instancias de la aplicación para manejar la carga. Puede realizar un
escalado o una reducción automáticamente, basándose en métricas tales como el porcentaje de
utilización de la CPU o de la memoria, en un cronograma (todos los días a las 17:00), o una mezcla
de ambos. Esto es muy fácil de configurar y controlar.

Todo listo para la producción: añada una capa de Sockets seguros


Ahora que la aplicación está lista para la producción, debería confirmar que es segura. Además de la
autenticación y la autorización, utilizar el protocolo HTTPS para servir la aplicación web es una de las
cosas más importantes que puede hacer. Esto es porque sin HTTPS, los intrusos podrían ver el tráfico
entre sus recursos y utilizarlos para hacer cosas malas (como iniciar sesión en la aplicación). Además,
el protocolo HTTPS es un requisito para características innovadoras, como services workers.

Es posible servir el tráfico a la aplicación web mediante una Capa de sockets seguros (SSL) si se importa
un certificado SSL a la aplicación web y se enlaza a uno de sus nombres de dominio (personalizados).
Puede importar su propio certificado SSL adquirido por usted o su empresa, o comprar uno nuevo
a través de Azure App Service Certificates, lo cual facilita la compra y la validación del certificado.
Después de importar el certificado, emparéjelo a uno de los enlaces de nombre de dominio de la
aplicación web. Puede hacer todo esto desde el menú de certificados SSL en la aplicación web.

54 CA P Í TU LO 6 | Un recorrido por Azure


Tutorial n. 3: crear un back-end para la aplicación
móvil con Azure
Hoy en día casi todos tienen un dispositivo móvil. El tráfico predominante para la mayoría de las
aplicaciones es de dispositivos móviles y esa tendencia sigue creciendo. Crear una aplicación móvil
para su empresa es una cosa, pero proporcionar una experiencia sólida y confiable es diferente. Azure
puede contribuir con eso proporcionando un back-end avanzado con Azure App Service Mobile App.

Las aplicaciones de Azure Mobile App tienen dos partes:

 Un back-end que proporciona API para comunicarse con una base de datos y realizar tareas como
autenticación, sincronización offline y notificaciones push

 SDK para todo tipo de plataformas para conectarse fácilmente al back-end

Puede crear el back-end para la aplicación de Mobile App en Node.js y C#. El cliente SDK está
disponible para prácticamente todas las plataformas móviles en uso. Para aplicaciones móviles
multiplataforma, nativas e híbridas. Está disponible para Android, Cordova, iOS, Windows,
Xamarin.Android, Xamarin.Forms y Xamarin.IOS.

En este tutorial, crearemos un nuevo back-end de aplicación móvil en C# que utilizamos con una
aplicación Android construida con Xamarin.Android.

Para seguir, es necesario instalar la carga de trabajo de Desarrollo móvil con .NET a través del
instalador de Visual Studio 2017. Esto instala Xamarin para las herramientas de Android y los SDK
necesarios.

Puede hacer lo mismo cuando está trabajando en una Mac en Visual Studio for Mac.

Crear una aplicación móvil a través del portal de Azure


Empezar es fácil. Creemos el back-end móvil y una aplicación inicial para el cliente mediante el portal
de Azure.

1. En el portal de Azure, haga clic en Crear un nuevo servicio y, en el cuadro Buscar, escriba
Mobile App Quickstart.

2. Seleccione el resultado Mobile App Quickstart y luego haga clic en Crear.

Se abre el Asistente para la creación de la aplicación de móvil.


a. Escriba un nombre para la aplicación móvil.

b. Cree un nuevo grupo de recursos.

c. Cree un App Service Plan nuevo para que funcione la aplicación móvil. Puede usar el plan
de tarifa gratis para este tutorial.
d. Deje desactivada la configuración de Application Insights.

e. Haga clic en Crear. ¡Listo! Ahora se implementará la aplicación móvil.

Una vez que se implemente la aplicación móvil, puede comenzar a utilizarla. En el portal de Azure, en
la aplicación móvil, haga clic en el menú Quickstart y luego seleccione Xamarin.Android. Se abre el
Asistente de Quickstart.

55 CA P Í TU LO 6 | Un recorrido por Azure


Paso 1: Conectarse a una base de datos
Necesita conectarse a una base de datos para almacenar datos. Haga clic en el ícono de información
para comenzar. En la pestaña Conexiones de datos que acaba de abrirse, haga clic en Crear un nuevo
servicio. En el Asistente para agregar datos de conexión que se abre, haga lo siguiente:

1. Para Tipo, seleccione SQL Database.


2. Cree una base de datos nueva con un servidor de destino nuevo.

3. Deje la cadena de conexión como está.

4. Haga clic en Aceptar.


Se crea la conexión de datos.

Paso 2: Crear una API de tabla


Para comunicarse con la base de datos, necesita una API. Se puede crear un back-end de API alojado
en la aplicación móvil siguiendo estos pasos:

1. En el área del paso 2, seleccione C# y luego haga clic en Descargar. Esto descarga el proyecto de
back-end que se va a implementar en la aplicación móvil.

2. Descomprima el archivo que acaba de descargar y luego ábralo con Visual Studio 2017 o Visual
Studio para Mac.

3. En Visual Studio, haga clic derecho en el archivo de proyecto y seleccione Publicar.

4. Seleccione App Service, seleccione Existente y haga clic en Publicar.

5. Busque la aplicación móvil y luego haga clic en Aceptar para comenzar a publicar. ¡Listo! El back-
end móvil está en marcha.

Deje el paso 3 para Crear una nueva aplicación y haga clic en descargar.

Descomprima el archivo que acaba de descargar y luego ábralo en Visual Studio 2017 o Visual Studio
para Mac.

Ejecute la aplicación presionando F5. Esto inicia el emulador de Android e implementa la aplicación
cliente. La aplicación del cliente es una lista de tareas. Puede agregar un elemento en el cuadro de
texto y se escribirá en el back-end de la aplicación móvil.

Agregar autenticación a la aplicación


Ahora que tiene una aplicación móvil que funciona con un back-end, debe revisar que sea segura.
Agreguemos autenticación mediante Azure Active Directory. Para completar este proceso, primero
necesitará registrar la aplicación móvil para la autenticación con Azure Active Directory. (Este tutorial
le muestra cómo hacerlo).

56 CA P Í TU LO 6 | Un recorrido por Azure


Asegurar la aplicación
En las API del back-end, debe definir cuáles son las que desea asegurar.

1. Vaya a su proyecto de back-end de aplicaciones móviles en Visual Studio 2017 o Visual Studio
para Mac.

2. Vaya a Controladores > TodoItemController.cs.


3. Agregue el atributo [Authorize] a la clase TodoItemController.

Esto restringe cualquier uso no autenticado de este controlador.

4. Haga clic derecho en el archivo de proyecto y luego publíquelo en la aplicación móvil.

Agregar autenticación a la aplicación móvil


El back-end está asegurado. Ahora tiene que hacer que la aplicación móvil sea consciente de ello así
puede iniciar sesión. Tenemos que pedirles a los usuarios que se autentiquen para poder usar la
aplicación.
1. En Visual Studio, vaya al proyecto de aplicación móvil de Xamarin.

2. Agregue el siguiente código a la clase TodoActivity:


// Define a authenticated user.
private MobileServiceUser user;
private async Task<bool> Authenticate()
{
var success = false;
try
{
// Sign in with AAD login using a server-managed flow.
user = await client.LoginAsync(this,
MobileServiceAuthenticationProvider. WindowsAzureActiveDirectory);
CreateAndShowDialog(string.Format("you are now logged in - {0}",
user.UserId), "Logged in!");

success = true;
}
catch (Exception ex)
{
CreateAndShowDialog(ex, "Authentication failed");
}
return success;
}

[Java.Interop.Export()]
public async void LoginUser(View view)
{
// Load data only after authentication succeeds.
if (await Authenticate())
{
//Hide the button after authentication succeeds.
FindViewById<Button>(Resource.Id.buttonLoginUser).Visibility = ViewStates.Gone;

// Load the data.


OnRefreshItemsSelected();
}
}

Esto crea un nuevo método para autenticar un usuario y un controlador de método para un
nuevo botón de inicio de sesión.
3. En el método OnCreate , elimine o anule la siguiente línea de código:
OnRefreshItemsSelected();

57 CA P Í TU LO 6 | Un recorrido por Azure


4. En el archivo Activity_To_Do.axml, agregue la siguiente definición del botón LoginUser antes del
botón AddItem actual:
<Button
android:id="@+id/buttonLoginUser"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="LoginUser"
android:text="@string/login_button_text" />

5. Agregue el siguiente elemento al archivo de recursos Strings.xml :


<string name="login_button_text">Sign in</string>

6. Ejecute la aplicación.

Ahora aparece un botón de inicio de sesión al lado del botón Agregar No podrá añadir elementos sin
iniciar sesión porque todas las acciones en el TodoItemController ahora tienen seguridad. Al hacer
clic en Iniciar sesión, se lo dirige a la pantalla de autenticación de Azure Active Directory. Aquí utilice
la cuenta que utiliza para iniciar sesión el portal de Azure. Esta se agrega por defecto al Azure Active
Directory. Inicie sesión y, como se muestra en la figura 6-16, verá que ingresó con éxito y puede
comenzar a agregar elementos pendientes.

Figura 6-16: Autenticación en la aplicación móvil en el emulador

Agregar sincronización sin conexión a la aplicación


En muchas situaciones móviles, los usuarios no siempre tienen acceso a Internet. Sin embargo, el
usuario debe poder seguir trabajando incluso sin conexión. Para adaptarse a esto, pueden utilizar
la función de sincronización sin conexión en Azure Mobile App. Activemos la función para nuestra
aplicación:

1. En Visual Studio 2017 o Visual Studio para Mac, vaya a la aplicación de cliente de Xamarin
Android.

2. En la clase ToDoActivity, elimine los comentarios de la siguiente línea:


#define OFFLINE_SYNC_ENABLED

3. ¡Listo! Ejecute la aplicación para implementarla en el emulador de Android.

58 CA P Í TU LO 6 | Un recorrido por Azure


Ahora la aplicación funciona exactamente igual que antes, pero con algunos cambios. Utiliza un
objeto IMobileServiceSyncTable en vez de IMobileServiceTable. También utiliza el paquete
SQLite NuGet. Esto inicia una base de datos SQLite en el dispositivo Android, que la aplicación
utilizará para guardar los datos cuando no esté en línea. Cuando se restaura el acceso a Internet, los
cambios de la base de datos local SQLite se envían a la aplicación móvil y los cambios potenciales
que ocurrieron en el back-end se sincronizan a la aplicación en el dispositivo Android. Probemos eso:

1. Ejecute la aplicación en el emulador de Android.


2. Inicie sesión como lo hizo antes.

3. Agregue un elemento.

4. Desconéctese de Internet. En el emulador de Android, puede hacerlo desde los controles


extendidos configurando la Intensidad de la señal de la red a Ninguna.

5. Agregue otro elemento y complete uno con una marca de verificación. La aplicación sigue
funcionando en la base de datos SQLite local.

Puede verificar que los elementos no están en la base de datos del back-end si se conecta a la
base de datos de SQL Azure que creamos antes mediante una herramienta como SQL Server
Management Studio. Puede encontrar la connectionstring para la base de datos Azure SQL
cuando se navega en el portal de Azure.

6. Vuelva a conectar el dispositivo Android a Internet. En el emulador de Android, vaya a los


controles extendidos y luego ajuste la Intensidad de la señal a Grande.

7. En la aplicación móvil, haga clic en el botón Actualizar. Los cambios locales se sincronizarán a la
aplicación móvil de Azure.

Compruebe la Azure SQL Database para ver los cambios que ahora están sincronizados al back-end.

Características adicionales y paso a producción


Es fácil configurar una aplicación mediante Mobile App e incluir características avanzadas como
Autenticación y Sincronización sin conexión.

Como la aplicación móvil es un servicio de Azure App, tiene las mismas características que los demás
App Service. Esto significa que aplicación móvil también puede escalar automáticamente, tener los
mismos controles y alertas y hacer diagnósticos adicionales con registros de streaming, e inclusive
incorporar depuración de aplicaciones.

Al mover la aplicación a la producción, puede proporcionar seguridad adicional mediante App Service
Certificates. También puede configurar el símbolo del sistema, igual que para la aplicación de Node.js.
Puede utilizar ranuras de implementación para implementar sin tiempo de inactividad.

Configurar todo esto solía ser difícil; ahora son problemas resueltos. Deje que Azure se ocupe del
trabajo pesado y concéntrese en lo que realmente importa.

59 CA P Í TU LO 6 | Un recorrido por Azure


7

El ecosistema Azure no solo lo ayuda a crear aplicaciones dinámicas


de forma más rápida y eficaz, sino que con Azure Marketplace puede
encontrar todo tipo de soluciones para contribuir a los esfuerzos de
desarrollo. De esta forma, puede ayudarlo a conectar un producto con
usuarios de todo el mundo.

¿Cómo puede ayudarme Azure Marketplace si soy


desarrollador?
Azure Marketplace le proporciona configuraciones de todo tipo de productos, listas para ejecutarse,
desde Windows Server Octopus Deploy y Oracle Database hasta instancias de WordPress y servidores
de Minecraft. Solo tiene que hacer clic en una solución, configurarla, implementarla y comenzar a
utilizarla. Marketplace tiene muchos productos y soluciones de Microsoft y de socios de Microsoft.
También hay muchas soluciones de código abierto.

La ventaja de Marketplace es que es fácil de usar. Las soluciones se implementan listas para
ejecutarse, junto con todas las piezas necesarias. Esto puede ser una máquina virtual con software
instalado, una red virtual configurada y una licencia integrada instalada o una licencia provista por
usted. Puede ser un servicio que adquiere, como una suscripción a la API de Bing Maps para
empresas. Puede usar Marketplace para probar software nuevo fácilmente y para usar soluciones de
nivel empresarial. En Marketplace puede encontrar soluciones para casi cualquier cosa que necesite.

Soluciones de Azure
Puede aprender de las empresas que usan Azure con éxito a través de Azure Solutions. Estas le
muestran documentación de productos, estudios de caso y las mejores prácticas de arquitectura para
casos de uso comunes de Azure, como Marketing Digital, SharePoint en Azure, aplicaciones de línea
de negocio y aplicaciones móviles.

60 CA P Í TU LO 7 | Cómo usar Azure Marketplace


Lo más valioso de Azure Solutions para los desarrolladores son las arquitecturas de soluciones. Ellas le
proporcionan arquitecturas de referencia para problemas comunes y explican por qué debería utilizar
ciertos productos en ciertos escenarios.

Resumen y pasos siguientes


En esta guía, le presentamos la capacidad que Azure ofrece para mejorar las aplicaciones. Si utiliza
Azure, puede hacer cosas increíbles con las aplicaciones: reconocimiento facial y de voz,
administración en la nube de sus dispositivos conectados a Internet de las cosas, escalar cuanto usted
quiera y pagar únicamente por lo que usa.

Pudo ver que no importa qué lenguaje de programación use o para qué plataforma escriba
aplicaciones: Azure puede ayudarlo con servicios para casi cualquier situación.

Esperamos que siga usando este libro electrónico para conocer mejor la amplia gama de servicios de
Azure y determinar cuáles son los más aplicables a su situación.

Ya no es necesario realizar los complicados trabajos de instalación por cuenta propia: ahora puede
aprovechar una amplia variedad de soluciones prediseñadas. Tendrá más tiempo para trabajar en lo
que importa al dejar que Azure se ocupe de problemas que ya tiene resueltos.

Siga aprendiendo con una cuenta gratuita de


Azure
Cree una cuenta gratuita de Azure y obtenga:

 MXN$3,900 de crédito para utilizar en cualquier producto Azure por 30 días

 Acceso gratuito por 12 meses a nuestros productos más populares, incluidos los procesos, el
almacenamiento, las redes y las bases de datos

 Más de 25 productos que son siempre gratuitos

61 CA P Í TU LO 7 | Cómo usar Azure Marketplace


Michael y Barry son entusiastas de Azure y los invitan a contactarlos en Twitter para hacerles
preguntas acerca de este libro.

Michael Crump trabaja en Microsoft en la plataforma Azure y es programador,


bloguero y conferencista internacional sobre diversos temas de desarrollo de la
nube. Lo apasiona ayudar a que los desarrolladores comprendan los beneficios de
la nube en forma clara y precisa.

Puede encontrarlo en Twitter buscando @mbcrump o en su blog:


https://www.michaelcrump.net.

Barry Luijbregts es arquitecto de software independiente y desarrollador, y es un


apasionado de la nube. También es autor de Pluralsight. Ha trabajado para muchas
empresas en los últimos 10 años y está dispuesto a compartir su conocimiento con
la comunidad. Tiene un conocimiento amplio y profundo sobre la pila de Microsoft
y un interés particular por la tecnología web y la nube. Barry es codirector de un
grupo de usuarios enfocado en la tecnología y en las habilidades blandas llamado
.NET Zuid (South) y actualmente instruye acerca de los beneficios de la nube. Vive
en los Países Bajos con su bella esposa y su hija y le encanta jugar con sus dos
huskies siberianos.

Puede encontrar a Barry en Twitter como @AzureBarry y a través de su sitio web:


https://www.azurebarry.com/.

Potrebbero piacerti anche