Microservicios y tecnología de contenedores

La complejidad de la nube solo puede explicarse en la composición de la misma. Yo siempre me he imaginado un sistema complejo como una estructura hecha con Legos (las piezas del juego que usabas de pequeño para armar casi cualquier cosa).

Hoy en día, pensar en un sistema complejo solo puede verse como la composición de pequeñas piezas ordenadas y orquestadas de forma que conjuntan una sola aplicación empresarial compuesta de partes pequeñas que hoy se pueden llamar microservicios.

microservicios

Como definición, microservicios (Microservices) son un estilo de arquitectura que estructura una aplicación como una colección de servicios débilmente acoplados, que implementan capacidades de negocio.

Es decir, separar un sistema o una aplicación en partes pequeñas en las cuales cada integrante de un equipo de trabajo, o varios equipos de trabajo, pueden gestionar para implementar la aplicación con mayor rapidez y eficacia.

El tema no es sencillo, y surge la duda, ¿cómo desplegar los trabajos y desarrollos hechos en cada microservicio hacia la aplicación? Las soluciones propuestas para el despliegue en ocasiones son más complejas que el mismo desarrollo del microservicio.

Aquí es donde entran los "contenedores". En los últimos años, la tecnología de contenedores le ha dado otro sentido a este estilo de arquitectura, ya que ha vuelto muy atractivo el uso de estas tecnologías.

Los contenedores son piezas de software, bases de datos, aplicaciones, etc., que se encapsulan y que pueden ser portadas (transportadas) hacia otra infraestructura. Por ejemplo, un desarrollador puede trabajar en su código, y para probarlo, puede encapsularlo y enviarlo a la nube en forma de contenedor, donde está disponible para que otros miembros del equipo pueda probarlo o utilizarlo y posteriormente ponerlo a producción.

contenedores dockerDocker, una de las empresas que se ha dedicado en los últimos años a desarrollar la tecnología de contenedores, se ha vuelto muy popular en este tipo de arquitectura, sobre todo, cuando hablamos de servicios en nube.

Recordemos que el concepto de nube no es solamente para colocar aplicaciones disponibles en Internet. La nube también puede ser empresarial y gozar de todos estos beneficios en la empresa.

Los contenedores permiten encapsular una pieza de código,  una aplicación, o una base de datos, etc., que conformen un microservicio, de manera que esta arquitectura se convierte en el ideal cuando hablamos de un ambiente donde hay mucha gente desarrollando, muchas pruebas y que están constantemente subiendo códigos nuevos a una aplicación que no puede darse el lujo de tener interrupciones. Las tecnologías que ofrecen contenedores, además, permiten hacer modificaciones a los microservicios prácticamente sin interrupciones, dado que mientras se sube la imagen de un contenedor con el código nuevo, se mantiene el contenedor con la imagen anterior y hasta que el nuevo contenedor toma su lugar, el viejo contenedor se apaga, dejando el servicio prácticamente sin interrupción, ya que esto es imperceptible para los usuarios.

A los contenedores y microservicios también se les aplica semántica de versiones, lo que permite utilizar diferentes versiones de las imágenes que utilizan los contenedores, manteniendo un servicio con una versión anterior, mientras que se puede usar otro servicio con una versión nueva.

En ACL Systems utilizamos estas tecnologías para nuestros desarrollos, lo que nos permite ser muy elásticos al desarrollar y también al desplegar, haciendo que nuestros procesos "Dev-Ops" sean muy eficaces y prácticamente sin interrupción en los ambientes productivos.

¡Acércate a nosotros y pregúntanos cómo!

info@aclsystems.mx

Los comentarios estan cerrados