Azure Container Service
En la pasada edición de la AzureCon, Microsoft presentó diferentes novedades de servicios en la nube. Uno de ellos es Azure Container Service, el cual, tendrá una versión preview para probarlo antes de final de año.
Para tener una visión general de lo que es Azure Container Service, es un nuevo servicio de almacenamiento que utiliza la tecnología de Apache Mesos y Docker. Este servicio va a permitir a los desarrolladores desplegar y configurar sus aplicaciones de manera Open-Source en sistemas de clusters y containers.
Por explicar ambas tecnologías, un sistema de cluster (racimo) consiste en desplegar un conjunto de máquinas unidas entre sí que actúan como una sola, para permitir almacenar datos y compartirlos en diferentes localización es de manera eficiente, rápida y segura.
Mientras que un container (contenedor) es un entorno de ejecución donde una aplicación junto con todas sus dependencias, bibliotecas y demás archivos binarios y archivos de configuración necesarios para su ejecución, son metidos en un único paquete. Esto resuelve el problema de cómo conseguir que un software funcione de forma fiable cuando se mueve de un entorno informático a otro.
Puede considerarse como una evolución de la virtualización, pero con diferencias notables. Una máquina virtual incluye un sistema operativo y una aplicación. Si se ejecutan tres máquinas virtuales en un servidor, se tendrá un visor para tres sistemas operativos separados.
Por el contrario, un servidor que ejecuta tres aplicaciones que están en contenedores, ejecuta un sistema operativo único y cada uno comparte contenedores del nucleó del sistema operativo con los otros dos contenedores. Las Partes compartidas del sistema operativo sólo se lee, mientras que cada contenedor tiene su propia forma de acceso al contenedor para la escritura.
Para ver un poco en qué consisten ambas tecnologías, vamos a explicar qué hacen Mesos y Docker:
Apache Mesos es un gestor Open Source de cluster desarrollado en la universidad de California. El sistema proporciona servicios de almacenamiento, aislamiento y movilidad de datos mediante diferentes frameworks como son Apache Aurora, Chronos o Marathon. Para entenderlo, Mesos crea una nueva capa de abstracción entre la capa de aplicación y el sistema operativo, pudiendo desplegar y gestionar de manera más fácil y eficiente aplicaciones. Imaginemos que tenemos desplegados varios sistemas en diferentes clusters. Mesos actúa entre ellos, situando todos esos sistemas en una misma interfaz permitiendo interactuar a todos los nodos entre sí.
Grandes empresas como Twitter, Airbnb, Ebay o Verizon utilizan diferentes frameworks basados en Apache Mesos.
Docker es una plataforma Open Source para desplegar aplicaciones de manera automática dentro de contenedores de software. Mediante el uso de estos contenedores, se pueden aislar recursos y restringir servicios de manera que los procesos pueden ser aislados del sistema operativo. Docker crea una capa de abstracción para la automatización de la virtualización de sistemas operativos. Permite empaquetar aplicaciones y sus dependencias en un contenedor virtual que se puede ejecutar en cualquier servidor Linux y próximamente en Windows Server 2016.
Docker implementa una API en un nivel alto de abstracción para proporcionar contenedores ligeros ejecutando los procesos de forma aislada. Además, se integra con multiples herramientas como Azure, AWS, Jenkins o GCP.
Con la creación de este nuevo servicio, se va a dar soporte para crear contenedores basados en Linux y próximamente se podrán crear contenedores para Windows, mediante el nuevo Windows Server 2016.
El primero objetivo que tiene Azure Container Service es la de simplificar la creación y configuración de un cluster. Para la portabilidad de código se utilizará Doker y Doker Swarm, mientras que para asegurarse de que estas aplicaciones se pueden escalar a miles de contenedores utilizará los frameworks de Mesos Marathon, Cronos y Apache.
Para escalar una aplicación es necesario que tanto Hardware como Software escalen, por ello, otro de los objetivos a cumplir es aprovechar los nuevos sets de escalado para Máquinas Virtuales (VMSS). Esto es el próximo servicio que nos va a permitir crear operaciones de CRUD para un grupo de VM idénticas y todo ello mediante una llamada a una API. Esta configuración supone actualmente miles de líneas de código, así como tener amplios conocimientos de todas las tecnologías involucradas. La reducción será importante, a unas decenas de líneas, así como la reducción de errores de configuración significativamente.
Para Azure Container Service, estas VM son los elementos sobre los que se alojan los contenedores. Al ser VM idénticas, VMSS realiza rápidamente un escalado de forma automática sobre las VM. Además, permitirá utilizar características de Azure como el etiquetado de recursos, el control de acceso basado en roles (RBAC) y el portal de gestión de Azure, por lo que a nivel empresarial será una mejora sustancial pero siempre manteniendo la portabilidad del código.
Como hemos comentado anteriormente, Azure Container Service estará disponible antes de final de 2015 en su versión preview, primero para Linux y posteriormente para Windows Server 2016.
|
Rubén Asensio García
@butcher086
Intern Technical Evangelist