El componente central del servicio CaaS de Microsoft es Azure Container Engine, cuyo código fuente está disponible en GitHub con licencia open source. Azure Container Engine funciona como generador de plantillas para el Azure Resource Manager (ARM), las cuales pueden gestionarse vía API con una de estas herramientas de orquestación: Docker Swarm, DC/OS o Kubernetes (desde febrero de 2017).
Las funciones que pueden utilizar los usuarios del ACS a la hora de operar aplicaciones-contenedor en la nube de Microsoft dependen sobre todo del orquestador que se utilice.
En el seno de ACS, el gestor de clústeres DC/OS de Mesosphere se utiliza en combinación con la plataforma de orquestación Marathon y ofrece el siguiente abanico de funciones:
- Interfaz web de usuario: los clústeres de contenedores se pueden gestionar en la interfaz web de Marathon.
- Alta disponibilidad: Marathon se ejecuta como clúster activo/pasivo. Por cada nodo activo existe un nodo pasivo redundante que se hace cargo de sus tareas en caso de fallo.
- Service discovery y balanceo de carga: DC/OS ofrece con Marathon-LB un balanceador de carga basado en HAProxy y con Mesos DNS una herramienta de descubrimiento de servicio basada en DNS.
- Chequeos de salud: Marathon consulta el estado de las aplicaciones con HTTP o TCP. Las funciones de monitorización están disponibles en una API REST, por líneas de comando o en la interfaz web.
- Métricas: Marathon entrega métricas detalladas vía API en formato JSON que pueden enviarse a programas de monitorización como Graphite, statsD o Datadog.
- Servicio de notificación: los usuarios que utilizan DC/OS con Marathon en la nube Azure tienen la opción de reservar un punto de destino HTTP para notificaciones relacionadas con eventos.
- Grupos de aplicaciones: los contenedores pueden agruparse en los denominados “Pods” y gestionarse como unidades cerradas.
- Despliegue basado en reglas: diversas regulaciones permiten definir exactamente dónde y cómo se reparten las aplicaciones en el clúster.
En la versión Docker Swarm, ACS se apoya en la pila Docker y utiliza las mismas tecnologías open source que en Dockers Universal Control Plane, un componente fundamental del centro de datos Docker. Implementado en el servicio CaaS de Azure, Docker Swarm ofrece el siguiente espectro de funciones para orquestar y escalar aplicaciones-contenedor:
- Docker Compose: la solución de Docker para aplicaciones multicontenedor permite conectar varios contenedores entre sí y ejecutarlos con un solo comando. Se pueden definir tantos contenedores como sea necesario, incluyendo todas las dependencias, en un archivo de control basado en YAML.
- Control por líneas de comando: la interfaz de líneas de comando de Docker, Docker CLI, y el programa para aplicaciones multicontenedor, Docker Compose, permiten gestionar los clústeres de contenedores con líneas de comando.
- API REST: la API remota de Docker permite acceder a diversos programas externos del ecosistema de Docker.
- Despliegue basado en reglas: la distribución de los contenedores en el clúster puede administrarse por medio de etiquetas y reglas.
- Service discovery: Docker Swarm ofrece diversas funciones de descubrimiento de servicios.
Desde febrero de 2017, los usuarios de ACS pueden recurrir a Kubernetes para automatizar la administración, el despliegue y el escalado de aplicaciones-contenedor en clústeres Azure. Kubernetes ofrece también aquí todas las funciones básicas enumeradas en el apartado sobre el servicio de Google.
ACS también está integrado directamente en la nube de Microsoft con otros servicios del proveedor:
- Azure Portal y Azure CLI 2.0: los usuarios configuran clústeres de contenedores en el portal de Azure, la interfaz central de usuario de la plataforma en la nube, o en la interfaz de líneas de comando Azure CLI 2.0.
- Azure Container Registry: con el registro de Azure, los usuarios de Microsoft también cuentan con un repositorio privado para la realización de imágenes Docker.
- Operations Management Suite (OMS): la Microsoft Operations Management Suite (OMS) ofrece funciones de monitorización y análisis de logs para servicios de contenedores.
- Azure Stack: esta extensión es necesaria para operar contenedores en entornos híbridos.
Microsoft ha ampliado el ACS con funciones CI/CD (integración y despliegue continuos) para aplicaciones multicontenedor desarrolladas con Visual Studio, Visual Studio Team Services o la herramienta open source Visual Studio Code.
La gestión de identidad y acceso (IAM) está regulada por el Active Directory, cuyas funciones fundamentales están disponibles gratuitamente hasta un límite de 500.000 objetos directorio. Como en Amazon ECS, en el servicio de Microsoft el uso de las herramientas también es gratuito y solo se paga por utilizar la infraestructura subyacente.
Características principales del Microsoft Azure Container Service