Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
desarrolladores
sobre Azure
Segunda edición
PUBLICADO POR
Microsoft Press
Una división de Microsoft Corporation
One Microsoft Way
Redmond, Washington 98052-6399
Todos los derechos reservados. Ninguna parte del contenido de este libro se podrá reproducir ni
transmitir de ninguna forma ni por ningún medio sin el consentimiento previo por escrito de la
editorial.
Los libros de Microsoft Press están disponibles en librerías y a través de distribuidores en todo el
mundo. Si necesita asistencia relacionada con este libro, envíe un correo electrónico al soporte de
Microsoft Press en mspinput@microsoft.com. Envíenos su opinión acerca de este libro a
http://aka.ms/tellpress.
Este libro se entrega “tal cual” y expresa las visiones y las opiniones de los autores. Las visiones, las
opiniones y la información expresadas en este libro, incluidas las direcciones URL y otras referencias
a sitios web de Internet, están sujetas a cambios sin previo aviso.
Algunos ejemplos mencionados aquí tienen un carácter únicamente ilustrativo y son ficticios. No debe
suponerse ni derivarse ninguna asociación o conexión reales.
ii Contenido
Dónde hospedar la aplicación .................................................................................................................................... 13
Qué usar y en qué momento ...................................................................................................................................... 19
Acelerar la aplicación .......................................................................................................................................................... 20
Azure Content Delivery Network ............................................................................................................................... 20
Azure Redis Cache ........................................................................................................................................................... 20
Azure Traffic Manager .................................................................................................................................................... 21
Dónde almacenar los datos .............................................................................................................................................. 22
Capítulo 3: Añadir inteligencia a la aplicación ..................................................................................... 27
Azure Search ........................................................................................................................................................................... 27
Azure Cognitive Services.................................................................................................................................................... 28
Azure Bot Service .................................................................................................................................................................. 28
Uso de eventos y mensajes en la aplicación .............................................................................................................. 29
Azure Service Bus ............................................................................................................................................................. 29
Azure Event Hubs ............................................................................................................................................................. 30
Azure IoT Hub .................................................................................................................................................................... 30
Azure Event Grid ............................................................................................................................................................... 31
Qué usar y en qué momento ...................................................................................................................................... 32
Capítulo 4: Asegurar la aplicación.......................................................................................................... 33
Azure Active Directory ........................................................................................................................................................ 33
Azure API Management................................................................................................................................................. 34
Azure Key Vault ................................................................................................................................................................. 34
Protección contra DDoS de Azure............................................................................................................................. 34
Firewall de aplicaciones web Azure .......................................................................................................................... 35
Encriptación de datos por defecto ............................................................................................................................ 35
Capítulo 5: Dónde y cómo implementar los servicios de Azure ........................................................ 36
La mentalidad de DevOps ................................................................................................................................................. 36
Plantillas de Azure Resource Manager .................................................................................................................... 37
Azure Service Fabric ........................................................................................................................................................ 37
Contenedores en Azure ................................................................................................................................................. 38
Azure Stack ......................................................................................................................................................................... 39
¿Dónde y cuándo implementar?..................................................................................................................................... 39
Capítulo 6: Un recorrido por Azure ........................................................................................................ 40
Tutorial N. 1: el portal de Azure ...................................................................................................................................... 40
Mosaicos en el portal de Azure .................................................................................................................................. 40
Creación de una nueva máquina virtual ................................................................................................................. 42
Tutorial n. 2: desarrollo de una aplicación web de Node.js con MongoDB en Azure ............................... 46
Crear la aplicación web y base de datos mediante el portal de Azure ...................................................... 46
Tutorial n. 3: crear un back-end para la aplicación móvil con Azure ............................................................... 55
iii Contenido
Crear una aplicación móvil a través del portal de Azure .................................................................................. 55
Características adicionales y paso a producción ................................................................................................. 59
Capítulo 7: Cómo usar Azure Marketplace ........................................................................................... 60
¿Cómo puede ayudarme Azure Marketplace si soy desarrollador? ................................................................. 60
Soluciones de Azure........................................................................................................................................................ 60
Resumen y pasos siguientes ................................................................................................................ 61
Siga aprendiendo con una cuenta gratuita de Azure ...................................................................... 61
Acerca de los autores ............................................................................................................................... 62
iv Contenido
1
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.
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?
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
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.
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.
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.
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.
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.
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.
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.
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:
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.
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.
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.
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.
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.
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.
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.
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.
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).
Puede utilizar Azure CLI, disponible en Azure Portal, en Azure Cloud Shell o localmente, en su
máquina,, a través de las herramientas de Azure CLI. Otra ventaja es que puede aplicar sus
conocimientos de Bash o Windows PowerShell existentes a Azure CLI.
12 CA P Í TU LO 2 | Introducción a Azure
Ejecute lo que sea en Azure
Azure es ideal para aplicaciones web y de API. También es ideal para hospedar aplicaciones de
escritorio y móviles. Por ejemplo, podría utilizar Azure para autenticar a los usuarios en la aplicación
de escritorio o enviar notificaciones push a la aplicación móvil. Azure puede agregarle valor
a cualquier escenario que tenga en mente.
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.
Las VM
Una de las maneras de hospedar la aplicación es en una máquina virtual en Azure Virtual Machine.
Esto le proporciona mucho control sobre cómo hospeda la aplicación, pero usted es responsable de
mantener el entorno, y eso incluye crear parches del sistema operativo (OS) y mantener los programas
antivirus actualizados.
Por ejemplo, puede usar una VM para probar la última versión de vista previa de Visual Studio sin
“ensuciar” su máquina.
Azure Batch
Si necesita ejecutar aplicaciones de lotes a gran escala o de informática de alto rendimiento (HPC) en
las VM, puede elegir Azure Batch. Batch crea y administra una colección de hasta miles de VM, instala
las aplicaciones que desea ejecutar y programa los trabajos en las VM. No es necesario implementar
y administrar las VM individuales ni los clústeres de servidores. Batch programa, administra y escala
automáticamente sus trabajos, para que solo use las VM que necesita. Batch es un servicio gratuito;
solo paga por los recursos subyacentes consumidos, como las VM, el almacenamiento y la creación
de redes.
13 CA P Í TU LO 2 | Introducción a Azure
Batch es ideal para ejecutar cargas de trabajo paralelas a gran escala, como modelos de riesgos
financieros, transcodificación de medios, representación de VFX e imágenes 3D, simulaciones
de ingeniería y muchas otras aplicaciones de informática intensiva. Utilice Batch para escalar
horizontalmente una aplicación o un script que ya haya ejecutado en estaciones de trabajo o en un
clúster local, o desarrollar soluciones SaaS que utilicen batch como plataforma de informática.
Pruébelo Active Azure Batch en cinco minutos con estos tutoriales paso a paso.
Contenedores
Los contenedores son mucho más livianos que las VM y puede iniciarlos y detenerlos en pocos
segundos. También ofrecen una enorme portabilidad, que los hace ideales para desarrollar una
aplicación localmente, en su máquina, y luego hospedarla en la nube, durante las pruebas y, más
adelante, en la producción. Incluso puede ejecutar los contenedores de forma local o en otras nubes.
El medio que utilice en su máquina de desarrollo viaja con su contenedor, por lo que la aplicación
funciona siempre en el mismo entorno.
Al igual que las VM, los contenedores proporcionan un gran control sobre su entorno. Puede instalar
lo que necesite para ejecutar las aplicaciones. Pero, una vez más, usted es el responsable de crear
parches y de mantener el sistema operativo que se ejecuta en el contenedor, así como de los
accesorios tales como los programas antivirus.
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.
Más información Para conocer más sobre Container Service, diríjase a Introducción
a Azure Container Service.
Azure Functions
Con Azure Functions, puede escribir solo el código que necesita para una solución, sin tener que
preocuparse por crear una aplicación completa o la infraestructura para ejecutarlo. Una función es una
unidad de lógica de código que se desencadena debido a una solicitud HTTP, un evento en otro
servicio Azure o en función de un calendario. Los enlaces de entrada y salida conectan el código de
función con un código mínimo a otros servicios como Azure Blob Storage, Azure Cosmos DB y Azure
Service Bus. Con Functions, puede construir pequeñas piezas de funcionalidad rápidamente y
hospedarlas en un medio elástico que gestiona la escala de modo automático.
14 CA P Í TU LO 2 | Introducción a Azure
Otro aspecto que hace que Azure Functions sea especial es que puede elegir pagar solo por las
funciones que se ejecutan, sin tener que mantener instancias de informática en ejecución todo el mes.
Esto también se llama sin servidor porque requiere solamente que usted cree una aplicación y no
tenga que ocuparse de ningún servidor ni del escalado de servidores.
Puede escribir funciones de Azure en C#, F#, Node.js, Java, PHP y una lista de lenguajes cada
vez mayor.
Un ejemplo de aplicación que utiliza Functions es aquella que activa una función todas las veces que
se carga un archivo de imagen nuevo a Azure Blob Storage. En ese momento la función cambia el
tamaño de la imagen y la escribe en otra cuenta de Blob Storage. La firma de la función de este
ejemplo sería así (en script de C#):
public static void Run(Stream myBlob, string name, TraceWriter log, BlockBlob outputBlob) { }
Los datos de Blob que activaron la función se pasan a la función como el parámetro myBlob, que
incluye la URL de Blob. Puede utilizar el parámetro del enlace de salida outputBlob para especificar el
Blob al que se debe escribir el resultado. No es necesario escribir la “plomería” para la conexión con
Blob Storage; solo tiene que configurarla.
Al igual que Azure Functions, Logic Apps no tiene servidor, escala automáticamente y solo paga
cuando las usa.
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.
15 CA P Í TU LO 2 | Introducción a Azure
Azure App Service
Como alternativa, puede hospedar las aplicaciones en una de las principales ofertas de Azure:
Azure App Service. Azure App Service es una colección de servicios de hospedaje y orquestación
que comparte características y capacidades. Por ejemplo, todos los servicios de aplicación tienen la
capacidad de asegurar una aplicación utilizando Azure Active Directory y pueden utilizar dominios
personalizados.
Azure App Service consta de lo siguiente:
Web App: Web App es uno de los servicios más utilizados de Azure. Puede usarla para hospedar
las aplicaciones web o API. Una Web App es básicamente una abstracción de un servidor web,
como Internet Information Services (IIS) o Tomcat, que se utiliza para hospedar aplicaciones
basadas en HTTP.
Web App puede hospedar aplicaciones que están escritas en .NET, Node.js, PHP, Java o Python,
y existen extensiones que puede utilizar para ejecutar incluso más lenguajes.
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.
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.
Escalado
Azure App Service se ejecuta en App Service Plans, que son abstracciones de VM. Una o más VM
ejecutan Azure App Service, pero no hace falta que sepa cuáles, porque Azure se encarga de ellas. Sin
embargo, puede, ampliar los recursos que ejecutan Azure App Service. Puede elegir un nivel de precios
superior (desde gratis hasta premium) o aumentar el número de instancias de la aplicación que se
ejecutan. Inclusive puede hacer que Azure App Service escale automáticamente el número de instancias
para usted, en función de un calendario o métricas como la longitud de cola de CPU, memoria o HTTP.
16 CA P Í TU LO 2 | Introducción a Azure
Ranuras de implementación
Esta es una característica muy útil de Azure App Service. Puede implementar una nueva versión de la
aplicación a una ranura de implementación, donde luego podrá probar si funciona como se espera
y pasarla a la ranura de la producción. Inclusive puede utilizar Testing in Production, una función
de Azure para enrutar un porcentaje del tráfico desde la aplicación de producción hasta la ranura de
implementación. Por ejemplo, podría desviar al 10 % de los usuarios a la nueva versión de la
aplicación en la ranura de implementación para ver si las nuevas características están funcionando
como se esperaba y si los usuarios realmente las están utilizando.
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:
17 CA P Í TU LO 2 | Introducción a Azure
2. Crea el código según una plantilla que usted elija (ASP.NET, Node.js u otras).
4. Implementa la aplicación en producción después de la aprobación (usted puede elegir usar una
ranura de implementación).
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.
Para aislar estos servicios de soporte de Internet, puede utilizar una red virtual de Azure. Este servicio
aborda sus servicios de soporte y los conecta a la aplicación en Web App de tal manera que los
servicios de apoyo están expuestos solamente a la aplicación, no a Internet. Este artículo describe este
servicio con más detalle y le muestra cómo utilizarlo.
Es posible que a veces necesite aún más control. Tal vez desea que la aplicación esté en una red
virtual, para que usted pueda controlar el acceso a ella. Tal vez desea que otra aplicación la llame en
Web App y hacer que sea parte de su back-end. En este caso, puede utilizar Azure App Service
Environment. Esto le brinda una escala muy alta y le otorga control sobre el aislamiento y el acceso
a la red. Sin embargo, hay que tener en cuenta que App Service Environment está disponible para
App Services solo en los niveles de precios premium.
Nota: App Service Environment actualmente no funciona con Web App para
contenedores.
18 CA P Í TU LO 2 | Introducción a Azure
Qué usar y en qué momento
Si bien App Service, Functions y Logic Apps a menudo trabajan en conjunto, cada uno está diseñado
pensando en necesidades de aplicaciones específicas.
La tabla 2-1 describe brevemente el propósito de la categoría de las necesidades que pueda tener.
Tabla 2-1: Qué App service usar y en qué momento
19 CA P Í TU LO 2 | Introducción a Azure
Acelerar la aplicación
Una vez que la aplicación está funcionando en Azure, lo ideal es que rinda lo más posible. Azure
proporciona una gama de servicios que lo pueden ayudar con eso.
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.
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.
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:
3. La próxima vez que la aplicación esté en busca de esos datos, los encontrará en la memoria caché
y se ahorrará un viaje a la base de datos.
20 CA P Í TU LO 2 | Introducción a Azure
Azure proporciona memoria caché como servicio con Redis Cache. Esto se basa en el proyecto
de fuente abierta de Redis y ahora está respaldado por los ingenieros y los SLA de Microsoft. Es
altamente eficaz y tiene opciones avanzadas como la agrupación en clústeres y la georeplicación.
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.
Figura 2-2: Azure Traffic Manager dirige el tráfico al extremo geográfico de más alto rendimiento.
21 CA P Í TU LO 2 | Introducción a Azure
Dónde almacenar los datos
Los datos representan un aspecto muy importante de cualquier aplicación moderna y vienen en todas
las formas y tamaños. Azure proporciona muchos tipos de depósitos de datos que pueden ayudarlo
a mantener y recuperar datos en cualquier escenario. La tabla 2-2 presenta las opciones de
almacenamiento disponibles en Azure.
Tabla 2-2: Opciones de almacenamiento en Azure
PostgreSQL
Cosmos DB
Warehouse
SQL Data
Archivo
MySQL
Disco
Tabla
Blob
Cola
Datos relacionales X X
Datos relacionales de objetos X
Datos no estructurados X X
Datos semiestructurados X
Mensajes en cola X
Archivos en disco X
Archivos de alto rendimiento
en disco X
Depósito de datos de gran
tamaño X X X X X
Depósito de datos de tamaño
pequeño X X X X X X X X
Replicación de datos
geográficos X X
Nota Puede utilizar casi todas las opciones de almacenamiento mencionadas en esta
sección como activadores y enlaces para Azure Functions.
Puede utilizar SQL Database con sus herramientas favoritas, incluidas SQL Server Management Studio
y Entity Framework.
Georeplicación, que replica los datos a otras regiones geográficas en tiempo real (Introducción
a la georeplicación)
22 CA P Í TU LO 2 | Introducción a Azure
Enmascaramiento de datos dinámicos, que enmascara dinámicamente datos sensibles para
determinados usuarios en tiempo de ejecución (Introducción al enmascaramiento de datos
dinámicos)
Auditoría, que proporciona una auditoría completa de todas las acciones que les suceden a los
datos (Introducción a la auditoría de Azure SQL Database)
Las bases de datos de SQL Database son extremadamente confiables y sólidas y ofrecen un acuerdo
de nivel de servicio (SLA) que garantiza un tiempo de actividad del 99,9 %.
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.
Database for PostgreSQL es un servicio gestionado que tiene las mismas características que Database
for MySQL. Usted puede escalar hacia arriba y hacia abajo, tiene alta disponibilidad (SLA de 99,99 %)
y cuenta con copias de seguridad de generación automática.
Pruébelo Cree una base de datos de Azure para PostgreSQL mediante la CLI de Azure.
Azure Cosmos DB
Azul Cosmos DB es la nueva versión y marca de DocumentDB (y mucho más que eso). Cosmos DB es
un nuevo tipo de base de datos que está realmente diseñado para la nube. Estas son algunas de sus
características fundamentales:
Tiene un SLA del 99,99 % que incluye bajas latencias (menos de 10 ms en lecturas; menos de
15 ms en escrituras).
Cuenta con georeplicación, que replica los datos a otras regiones geográficas en tiempo real
(Cómo se distribuyen datos globalmente con Azure Cosmos DB).
Cuenta con administración del tráfico, que envía a los usuarios a la réplica de datos que más
cerca tienen.
23 CA P Í TU LO 2 | Introducción a Azure
La escala global no tiene límites y solo paga por el rendimiento de procesamiento y
almacenamiento que necesita.
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.
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
Dominios personalizados
Los cuatro tipos de Azure Storage son blob, cola, archivo y disco (Figura 2-3).
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.
24 CA P Í TU LO 2 | Introducción a Azure
Queue Storage
Azure Queue Storage es un tipo inusual de almacenamiento que se utiliza para almacenar pequeños
mensajes de datos, pero su principal objetivo es actuar como cola. Pone mensajes en la cola y otros
procesos los recogen. Este patrón desempareja el remitente del procesador de mensajes y eso resulta
en beneficios de rendimiento y confiabilidad. Azure Queue Storage se basa en Microsoft Message
Queueing, que puede encontrar en versiones anteriores de Windows.
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.
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.
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.
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.
25 CA P Í TU LO 2 | Introducción a Azure
Azure SQL Data Warehouse
Se utiliza Azure SQL Data Warehouse cuando se necesita una solución tradicional de almacenamiento
de datos totalmente administrada, escalable en tamaño, de alto rendimiento y segura. Puede
almacenar datos en esquemas predefinidos y consultarlos utilizando el dialecto SQL de SQL Server.
Debido a que SQL Data Warehouse se ejecuta en Azure, puede utilizar funciones avanzadas, como la
detección de amenazas automática que utiliza “machine learning” para entender los patrones de su
carga de trabajo y sirven como un sistema de alarma para avisarle acerca de un posible
incumplimiento.
Un ejemplo de uso de Azure SQL Data Warehouse es cuando sabe qué informes desea mostrarles a
los usuarios y cuál es el esquema de datos de estos informes. Luego, puede crear esquemas en SQL
Data Warehouse y rellenarlo con datos para que los usuarios puedan navegar a través de ellos.
26 CA P Í TU LO 2 | Introducción a Azure
3
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.
Seguimiento y generación de informes que le avisarán qué se buscó y qué tan rápida y exitosa fue
la 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.
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.
Language Understanding Intelligent Services API (o LUIS) puede comprender texto, en función del
modelo que use para entrenarla.
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.
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:
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.
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.
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.
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.
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.
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.
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.
Azure Active Directory proporciona todo esto y mucho más, de inmediato. Guarda las identidades de
los usuario en Azure Active Directory y hace que los usuarios las autentiquen, ya que los redirige a la
aplicación solo después de que se autentican. Azure Active Directory se encarga de la gestión de
contraseñas, incluidos los escenarios comunes como “Olvidé mi contraseña”.
Millones de aplicaciones utilizan Azure Active Directory a diario, entre ellas, Azure Portal, Outlook.com
y Office 365. Debido a esto, es capaz de detectar comportamiento malicioso más fácilmente y abordarlo.
Por ejemplo, si un usuario iniciara sesión en una aplicación desde una ubicación en Europa y, luego,
un minuto más tarde, en Australia, Azure Active Directory marcaría esto como comportamiento
malintencionado y le preguntaría al usuario las credenciales adicionales a través de la autenticación
multifactorial.
33 CA P Í TU LO 4 | Asegurar la aplicación
Azure API Management
Las API deben estar seguras. Es necesario tanto para las API que crea por su cuenta, como para las
que consume de terceros. Para ayudarlo a que sus API estén seguras, puede utilizar Azure API
Management. Esto es básicamente un proxy que pone delante de sus API o de las de terceros,
que añade características como el almacenamiento en memoria caché, la regulación y la
autenticación/autorización.
Para asegurar su API con API Management, pídales como requisito a los consumidores que creen una
suscripción a su API. De esta forma, las llamadas aplicaciones tienen que autenticarse antes de poder
usar su API. Puede utilizar varios métodos de autenticación, como tokens, autenticación básica
y certificados. Además, puede rastrear quién llama a su API y bloquear llamadas no deseadas.
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.
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.
34 CA P Í TU LO 4 | Asegurar la aplicación
Firewall de aplicaciones web Azure
Necesita asegurar la aplicación contra muchas amenazas posibles, entre las que se incluyen las
definidas en la especificación del Proyecto de seguridad de aplicaciones web abierto (OWASP), como
la inyección SQL y el scripting multisitios (XSS). El Firewall de aplicaciones web Azure puede ayudarlo
con eso. El Firewall de aplicaciones web, una característica del servicio Azure Application Gateway,
proporciona protección en tiempo real para la aplicación.
Puede detectar un ataque malicioso, tal como se define en el Conjunto de reglas base OWASP
y bloquear el ataque para que no llegue a la aplicación. También informa sobre los ataques que se
intentaron o están en curso para que pueda ver qué amenazas están tratando de llegar a la aplicación.
Esto proporciona una capa adicional de seguridad que protege las aplicaciones.
Sus datos están cifrados por defecto si los almacena en Azure SQL Database, Azure SQL Data
Warehouse, Azure Database for MySQL, Azure Database for PostgreSQL, Azure Storage, Azure
Cosmos DB o Azure Data Lake Store. Además, todo esto funciona automáticamente; no tiene que
hacer nada para configurarlo ni para cifrar o descifrar datos cuando los utilice.
35 CA P Í TU LO 4 | Asegurar la aplicación
5
Los servicios de Azure en los que desee trabajar determinan sus opciones
de implementación y viceversa. Por lo tanto, es importante entender las
opciones de implementación que tiene en Azure y cuáles son sus
ramificaciones.
La mentalidad de DevOps
La entrega rápida y la reiteración rápida son cruciales para crear gran software. Por lo tanto, su nuevo
código debería fusionarse con el código de su equipo y eso debería implementarse y probarse lo más
rápido posible y con la mayor frecuencia posible, para ver si todo funciona y si lo que creó es lo que
necesita el usuario.
Muchos de los servicios de Azure que hemos analizado hasta ahora en este manual son capaces de
recibir código automáticamente, a menudo a través de un flujo de entrega continua (CD) que se
configura dentro del servicio.
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.
Figura 5-1: Implementación con un botón de una Azure Logic App mediante una plantilla de Resource Manager
en GitHub
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.
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 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.
IaaS PaaS
En entorno Azure Stack Azure Stack
local Contenedores Service Fabric
Service Fabric
Nube pública Contenedores Service Fabric
Service Fabric Plantillas de Resource Manager
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.
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.
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.
Cuando haya encontrado el servicio que desea (Figura 6-4), un asistente lo guiará para configurarlo
e implementarlo.
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.
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.
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.
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:
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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>
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.
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.
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.
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.
3. Use la URL para establecer un destino remoto para el repositorio de Git local. Puede hacerlo en la
ventana de comandos.
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.
3. Es posible que esto ya esté configurado para el repositorio de Git local. Si este es el caso, debe
hacer clic en Desconectar.
5. En la sección Autorización, autorice a Azure a usar GitHub haciendo clic en Autorizar y otorgando
el permiso.
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.
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.
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.
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).
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).
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.
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.
Verá registros cuando se utilice la aplicación en la aplicación web para generar algo de tráfico.
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:
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"
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.
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.
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.
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.
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
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.
1. En el portal de Azure, haga clic en Crear un nuevo servicio y, en el cuadro Buscar, escriba
Mobile App Quickstart.
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.
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.
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.
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.
1. Vaya a su proyecto de back-end de aplicaciones móviles en Visual Studio 2017 o Visual Studio
para Mac.
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;
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();
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.
1. En Visual Studio 2017 o Visual Studio para Mac, vaya a la aplicación de cliente de Xamarin
Android.
3. Agregue un elemento.
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.
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.
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.
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.
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.
Acceso gratuito por 12 meses a nuestros productos más populares, incluidos los procesos, el
almacenamiento, las redes y las bases de datos