La adopción de La Nube es la primera fase de madurez en la Transformación Digital para una empresa. Al final de esta fase, los empleados de la organización podrán implementar cargas de trabajo simples.
Nosotros nos centraremos en la Nube de Microsoft, Microsoft Azure, la cual nos permitirá ir apoyándonos en ella de una forma integral para esta completa adopción tecnológica. Comenzamos.
Como ya hemos comentado en alguna ocasión, Microsoft Azure es un catálogo de servicios en la nube que los desarrolladores y profesionales de IT utilizamos para construir, desplegar y gestionar aplicaciones cloud a través de una red global de centros de datos de Microsoft ha creado para ello. En la actualidad, cuenta con más de 800 servicios que podéis comprobar en este enlace interactivo.
Cómo funciona Azure
Microsoft Azure es una plataforma de cloud privada y pública. Puede que estés familiarizado con los servicios de lo Azure. Pero, ¿cómo funciona?
Azure utiliza una tecnología conocida como virtualización, a priori, nada nuevo hasta aquí.
La virtualización separa el estrecho acoplamiento entre la CPU de un ordenador o servidor y su sistema operativo mediante una capa de abstracción denominada hipervisor. El hipervisor emula todas las funciones de un ordenador o servidor real y su CPU en una máquina virtual. Puede ejecutar múltiples máquinas virtuales al mismo tiempo y cada máquina virtual puede ejecutar cualquier sistema operativo compatible como Windows o Linux.
Azure toma esta tecnología de virtualización y la replantea a escala masiva en los centros de datos de Microsoft en todo el mundo.
Por lo tanto, la nube es un conjunto de servidores físicos en uno o varios centros de datos que ejecutan hardware virtualizado en nombre de los clientes.
Para comprenderlo, vamos a echar un vistazo a la arquitectura del hardware del centro de datos.
En cada centro de datos hay una colección de servidores que se encuentran en bastidores de servidores. Cada bastidor de servidor contiene muchos servidores Blades, así como un conmutador de red que proporciona conectividad de red y una unidad de distribución de energía (PDU) que suministra la alimentación. A veces, los bastidores se agrupan conjuntamente en unidades más grandes que se conocen como clústeres.
Entonces, ¿cómo crea, inicia, detiene y elimina la nube millones de instancias de hardware virtualizado para millones de clientes a la vez?
Cada servidor incluye un hipervisor para ejecutar múltiples máquinas virtuales.
Un conmutador de redes proporciona conectividad a los servidores. Un servidor en cada bastidor ejecuta un software especial llamado Fabric Controller. A su vez, Cada Fabric Controller está conectado a otra pieza especial de software conocida como el orquestador.
El orquestador es responsable de manejar todo lo que sucede en Azure, incluyendo responder a las peticiones de los usuarios. Asigna servicios, supervisa el mantenimiento del servidor y los servicios que se ejecutan en él, y recupera los servidores cuando se produce un error. Cada instancia del Fabric Controller se conecta a otro conjunto de servidores que ejecutan software de orquestación en la nube, conocido normalmente como front-end. El front-end hospeda los servicios web, las API RESTful y las bases de datos internas de Azure utilizadas para todas las funciones que realiza la nube.
Por ejemplo, el front-end hospeda los servicios que controlan las solicitudes de cliente para asignar recursos de Azure como redes virtuales, máquinas virtuales y servicios como Cosmos DB o Azure SQL. En un primer momento, el front-end valida el usuario y comprueba que esté autorizado para asignar los recursos solicitados. Si es así, el front-end consulta una base de datos para buscar un bastidor de servidor con una capacidad suficiente y, luego, indica al Fabric Controller del bastidor que asigne el recurso.
Los usuarios hacen la solicitud utilizando la API web del orquestador: la API web puede ser llamada por muchas herramientas incluyendo la interfaz de usuario del Portal Azure.
En estos procesos se basa Azure Service Fabric, un servicio avanzado e interesante que veremos en otro post más adelante.
Por lo tanto, y para simplificar, Azure es una inmensa colección de servidores y de hardware de red, junto con un complejo conjunto de aplicaciones distribuidas que orquesta la configuración, el funcionamiento del hardware virtualizado y del software de estos servidores. Y es esta orquestación la que hace que Azure sea tan eficaz: los usuarios ya no son responsables de mantener y actualizar el hardware, ya que de todo esto se encarga Azure en segundo plano.
En el próximo Post hablaremos de construir aplicaciones o servicios resistentes entendiendo la organización de los Data Center de Microsoft Azure.