Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA...

67
Guía para desarrolladores sobre Azure Segunda edición

Transcript of Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA...

Page 1: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

Guía para desarrolladores sobre Azure Segunda edición

Page 2: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

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 [email protected]. 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.

Page 3: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

ii Contenido

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

Page 4: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

iii 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

Page 5: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

iv 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

Page 6: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

1 CAPÍTULO 1 | Guía para desarrolladores sobre Azure

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.

Page 7: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

2 CAPÍTULO 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

Page 8: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

3 CAPÍTULO 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.

Page 9: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

4 CAPÍTULO 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.

Page 10: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

5 CAPÍTULO 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.

Page 11: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

6 CAPÍTULO 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.

Page 12: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

7 CAPÍTULO 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.

Page 13: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

8 CAPÍTULO 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.

Page 14: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

9 CAPÍTULO 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.

Page 15: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

10 CAPÍTULO 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.

Page 16: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

11 CAPÍTULO 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.

Page 17: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

12 CAPÍTULO 2 | Introducción a 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.

Page 18: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

13 CAPÍTULO 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.

Page 19: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

14 CAPÍTULO 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.

Page 20: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

15 CAPÍTULO 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.

Page 21: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

16 CAPÍTULO 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.

Page 22: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

17 CAPÍTULO 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.

Page 23: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

18 CAPÍTULO 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.

Page 24: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

19 CAPÍTULO 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

hospedaje

Hospedar aplicaciones web y API Web App o Web App para

contenedores de App

Service

Hospedar back-end para

aplicaciones móviles

Mobile App de App

Service

Procesos de

organización

Organizar un paso de un proceso Funciones

Organizar un proceso completo Logic Apps

Page 25: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

20 CAPÍTULO 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.

Page 26: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

21 CAPÍTULO 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.

Page 27: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

22 CAPÍTULO 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

SQ

L D

ata

base

MySQ

L

Po

stgre

SQ

L

Co

smo

s DB

Blo

b

Tab

la

Co

la

Arc

hiv

o

Disc

o

Data

Lake S

tore

SQ

L D

ata

Ware

ho

use

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)

Page 28: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

23 CAPÍTULO 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.

Page 29: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

24 CAPÍTULO 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.

Page 30: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

25 CAPÍTULO 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.

Page 31: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

26 CAPÍTULO 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.

Page 32: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

27 CAPÍTULO 3 | Añadir inteligencia a una aplicación

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.

Page 33: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

28 CAPÍTULO 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.

Page 34: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

29 CAPÍTULO 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.

Page 35: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

30 CAPÍTULO 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

7 días

Ciclo de vida de los

mensajes: menos de 7 días

Orden garantizado (primero en entrar,

primero en salir)

Tamaño de la cola: más de

80 GB

Detección de duplicados Registros de transacciones

Tamaño de los mensajes: menor o igual

a 1 MB

Tamaño de los mensajes:

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.

Page 36: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

31 CAPÍTULO 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.

Page 37: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

32 CAPÍTULO 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

Grid

Event

Hubs IoT Hub Temas

Colas de

Service Bus

Colas de

Storage

Ingesta de eventos X X X

Administración de

dispositivos

X

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

publicar/suscribir

X

Tamaño máximo del

mensaje

64 KB 256 KB 256 KB 1 MB 1 MB 64 KB

Page 38: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

33 CAPÍTULO 4 | Asegurar la 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.

Page 39: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

34 CAPÍTULO 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.

Page 40: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

35 CAPÍTULO 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.

Page 41: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

36 CAPÍTULO 5 | Dónde y cómo implementar los servicios de Azure

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.

Page 42: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

37 CAPÍTULO 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.

Page 43: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

38 CAPÍTULO 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

Services

Azure Container

Instances

Azure Service

Fabric

Para las implementaciones de producción

de sistemas complejos (con un

organizador de contenedores)

X

Para ejecutar configuraciones simples

(posiblemente sin organizador) X

Para cargas de trabajo de larga duración

en los contenedores X

Para cargas de trabajo de corta duración

en los contenedores X

Para organizar un sistema basado en

contenedores X X

Organizar con los organizadores de

código abierto (DC/OS, Docker Swarm,

Kubernetes)

X

Organizar con organizador integrado X

Page 44: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

39 CAPÍTULO 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

local

Azure Stack

Contenedores

Service Fabric

Azure Stack

Service Fabric

Nube pública Contenedores

Service Fabric

Service Fabric

Plantillas de Resource Manager

Page 45: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

40 CAPÍTULO 6 | Un recorrido por 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

Page 46: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

41 CAPÍTULO 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

Page 47: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

42 CAPÍTULO 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.

Page 48: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

43 CAPÍTULO 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.

Page 49: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

44 CAPÍTULO 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

Page 50: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

45 CAPÍTULO 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.

Page 51: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

46 CAPÍTULO 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.

Page 52: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

47 CAPÍTULO 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.

Page 53: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

48 CAPÍTULO 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.

Page 54: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

49 CAPÍTULO 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:10250/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).

Page 55: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

50 CAPÍTULO 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.

Page 56: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

51 CAPÍTULO 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.

Page 57: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

52 CAPÍTULO 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.

Page 58: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

53 CAPÍTULO 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.

Page 59: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

54 CAPÍTULO 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.

Page 60: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

55 CAPÍTULO 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.

Page 61: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

56 CAPÍTULO 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).

Page 62: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

57 CAPÍTULO 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();

Page 63: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

58 CAPÍTULO 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.

Page 64: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

59 CAPÍTULO 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.

Page 65: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

60 CAPÍTULO 7 | Cómo usar Azure Marketplace

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.

Page 66: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

61 CAPÍTULO 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

Page 67: Guía para desarrolladores sobre Azuredownload.microsoft.com/download/C/A/9/CA9FDD2C-0840-4475-B9BA … · Azure Service Bus ... comprender mejor este concepto, ... y recursos casi

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