Desarrollo en la nube en Azure

Suponga que es un desarrollador de Python y está listo para desarrollar aplicaciones en la nube para Microsoft Azure. Para ayudarle a prepararse para una carrera larga y productiva, esta serie de tres artículos le orienta sobre el panorama básico del desarrollo en la nube en Azure.

¿Qué es Azure? Centros de datos, servicios y recursos

La directora general de Microsoft, Satya Nadella, a menudo se refiere a Azure como "el equipo del mundo". Un equipo, como ya sabe, es una colección de hardware administrado por un sistema operativo, que proporciona una plataforma sobre la que puede crear software que ayuda a los usuarios a aplicar la potencia informática del sistema a cualquier número de tareas. (Este es el motivo por el que usamos la palabra "aplicación" para describir dicho software).

En el caso de Azure, el hardware del equipo no es una máquina única, sino un grupo enorme de equipos de servidores virtualizados contenidos en cientos de centros de datos masivos de todo el mundo. El "sistema operativo" de Azure se compone de servicios que asignan y anulan las asignaciones dinámicamente de distintas partes de ese grupo de recursos a medida que las aplicaciones los necesitan. Esas asignaciones dinámicas permiten a las aplicaciones responder rápidamente a cualquier número de condiciones cambiantes, como la demanda de los clientes.

Cada asignación se llama recurso y a cada recurso se le asigna un identificador de objeto único (un GUID) y una dirección URL única. Entre los tipos de recursos se incluyen máquinas virtuales (núcleos de CPU y memoria), almacenamiento, bases de datos, redes virtuales, registros de contenedor, orquestadores de contenedor, hosts Web, motores de inteligencia artificial y análisis, etc.

Niveles de Azure, desde el centro de datos hasta los servicios de Azure para asignar recursos

Los recursos son los bloques de creación de una aplicación en la nube. Por tanto, el proceso de desarrollo en la nube comienza con la creación del entorno adecuado en el que puede implementar las distintas partes de la aplicación. En pocas palabras, no puede implementar ningún código o datos en Azure hasta que haya asignado y configurado (aprovisionado) los recursos de destino adecuados.

El proceso de creación del entorno de la aplicación incluye la identificación de los servicios y tipos de recursos pertinentes implicados y el aprovisionamiento de esos recursos. El proceso de aprovisionamiento es esencialmente el modo en que se construye el sistema informático en el que se implementa la aplicación. El aprovisionamiento es también el punto en el que comienza a alquilar esos recursos de Azure.

Hay cientos de tipos diferentes de recursos a su disposición, desde recursos básicos de "infraestructura" como máquinas virtuales, donde conserva el control total y la responsabilidad sobre el software que implementa, hasta servicios de "plataforma" de nivel superior que proporcionan un entorno más administrado en el que solo se preocupa por el código de la aplicación y los datos.

La búsqueda de los servicios adecuados para la aplicación y el equilibrio de sus costos relativos puede resultar un desafío, pero también forma parte de la diversión creativa del desarrollo en la nube. Para comprender las diversas opciones, consulte Guía de introducción para desarrolladores de Azure. Aquí vamos a explicar cómo puede trabajar realmente con todos estos servicios y recursos.

Nota

Probablemente haya visto, quizás en exceso, los términos IaaS (infraestructura como servicio), PaaS (plataforma como servicio), etc. La coletilla como servicio refleja la realidad de que normalmente no tiene acceso físico a los centros de datos en sí. En vez de eso, usará herramientas como Azure Portal, la CLI de Azure o la API REST de Azure para aprovisionar recursos de infraestructura, plataforma, etc. Como servicio, Azure siempre está a la espera de recibir sus solicitudes.

En este centro para desarrolladores, se va a evitar el uso de la coletilla "como servicio" ya que, para empezar, esto se considera consustancial a la nube.

Nota

Una nube híbrida hace referencia a la combinación de equipos y centros de datos privados con recursos en la nube como Azure y tiene sus propias consideraciones más allá de lo que se trata en la explicación anterior. Además, este debate presupone el desarrollo de nuevas aplicaciones. Los escenarios que implican el rediseño de la arquitectura y la migración de aplicaciones locales existentes no se describen aquí.

Nota

Puede que haya oído los términos aplicaciones nativas de la nube y habilitadas para la nube, que a menudo se tratan como la misma cosa. Sin embargo, hay diferencias. Una aplicación habilitada para la nube suele ser una aplicación que se ha migrado en su totalidad desde un centro de datos local a servidores basados en la nube. A menudo, estas aplicaciones conservan su estructura original y simplemente se implementan en máquinas virtuales en la nube (y, por lo tanto, en regiones geográficas). Este tipo de migración permite escalar la aplicación para satisfacer la demanda global sin tener que aprovisionar nuevo hardware en su propio centro de datos. Sin embargo, el escalado debe realizarse en el nivel de máquina virtual (o de infraestructura), incluso si solo una parte de la aplicación necesita un mayor rendimiento.

Por otro lado, una aplicación nativa de la nube se ha escrito desde el principio para aprovechar los numerosos servicios escalables independientes disponibles en una nube como Azure. Las aplicaciones nativas de la nube se estructuran de forma más desacoplada (con arquitecturas de microservicios, por ejemplo), lo que permite configurar con mayor precisión la implementación y el escalado para cada parte. Este tipo de estructura simplifica el mantenimiento y a menudo reduce drásticamente los costos, ya que solo necesita pagar por los servicios Premium cuando sea necesario.

Para más información, consulte Cree aplicaciones nativas de la nube en Azure y Diseño de aplicaciones .NET nativas en la nube para Azure, cuyos principios se aplican a las aplicaciones escritas en cualquier lenguaje.

Paso siguiente