Contenido


Desarrollo rápido de aplicaciones (parte 2): diseño de una arquitectura con microservicios

Comments

Tabla de contenidos

Introducción.
Capacidades comunes
DevOps
Opciones de computación de microservicios
Qué hacer a continuación

Introducion

En esta serie de 6 partes sobre el desarrollo de aplicaciones de microservicios, presentamos el contexto para la definición de un proyecto piloto basado en la nube que resulte ideal para las necesidades actuales y posibilite la preparación para una decisión de adopción de nube de largo plazo.

En la parte 2, determinaremos las capacidades comunes de una arquitectura para el rápido desarrollo de aplicaciones con base en microservicios. Usted necesitará estas capacidades, ya sea que esté transformando una aplicación monolítica o desarrollando una aplicación nativa de la nube.

Estas son las partes de la serie:

Capacidades comunes

Los componentes de la aplicación se ejecutan como microservicios en la nube, y se comunican entre sí por medio del tejido de microservicios. Aunque los patrones varían según el tipo de aplicación, todas las aplicaciones basadas en microservicios incluyen algunos componentes y capacidades comunes a mayor escala.

Al analizar este diagrama de la derecha a la izquierda, constatamos que los microservicios de backend se exponen mediante API y se consumen a través de una puerta de enlace API.

La puerta de enlace API puede ser tan sencilla como un proxy de extremos. Algunas puertas de enlace API son más sofisticadas: utilizan seguridad en el primer contacto, supervisión y control de versiones de API, y sistemas de gestión de API completos con un portal del desarrollador para el consumo por terceros.

DevOps

La creación de una arquitectura de microservicios exitosa exige una estrategia de automatización sólida que utilice DevOps. Su automatización de DevOps debe hacerse cargo del aprovisionamiento, así como de la implementación y el lanzamiento continuos.

  • Aprovisionamiento. Cada componente de microservicio de su aplicación se ejecuta en un contenedor propio y autosuficiente. La plataforma de nube crea una instancia de contenedor con cada uno de los microservicios y todas sus dependencias de software, y controla la manera en que la infraestructura subyacente se asigna al conjunto de contenedores. Si se ejecuta una infraestructura de contenedor sobre una capa de infraestructura como servicio utilizando motores de orquestación como Kubernetes o Docker Datacenter, por ejemplo, es posible automatizar la manera en que estos entornos aprovisionan software en contenedor sobre una máquina virtual o un servidor bare metal. Normalmente, un equipo de desarrollo de software y operaciones utiliza la plataforma como servicio (PaaS) de nube de un proveedor, que gestiona toda la complejidad del aprovisionamiento.
  • Implementación continua. Con el fin de iterar rápidamente una aplicación de microservicios, es necesario configurar un sistema eficiente para crear y controlar las versiones de Docker. Si se dispone de una estrategia de múltiples nubes, la automatización de creación e implementación necesita abstraerse de las diferencias relativas a la manera de hacer cosas tales como la escala automática y la aplicación de políticas de nube. Algunas plataformas de nube (como IBM Bluemix) proporcionan cadenas de herramientas listas para usar que permiten hacer ese tipo de cosas.
  • Lanzamiento continuo. Al igual que ocurre con la implementación continua, su plataforma de nube debe admitir un proceso de desarrollo basado en pruebas de unidades funcionales, pruebas de validación de entorno y pruebas funcionales y de rendimiento automatizadas de la aplicación general.

Opciones de computación de microservicios

Según lo que resulte más adecuado para su aplicación y carga de trabajo, podrá elegir diferentes opciones de computación en una plataforma como servicio. Por ejemplo, en IBM Bluemix, se dispone de una variedad de opciones para ejecutar microservicios:

  • Contenedores de Docker en Kubernetes administrado: los contenedores de Docker proporcionan la mayor portabilidad entre la nube y los entornos en las instalaciones, y Kubernetes ofrece una extraordinaria variedad de controles para gestionar la complejidad de las aplicaciones de microservicios que se ejecutan a escala.
  • Cloud Foundry: esta plataforma de código abierto posibilita la abstracción del software de microservicios de todas las operaciones de plataforma de niveles inferiores al nivel de tiempo de ejecución, brindando una poderosa ventaja para todos los equipos con diferentes niveles de habilidades de codificación poliglota que no desean gestionar ninguna operación de tiempo de ejecución.
  • Sin servidor: Apache OpenWhisk es una plataforma como servicio de programación de código abierto basada en eventos que proporciona una abstracción de las operaciones y admite la secuenciación de pequeñas funciones independientes que se ejecutan con base en eventos, reglas y desencadenadores definidos. Los desarrolladores implementan controladores de eventos simples para responder a eventos que se producen en la plataforma de nube. Se realiza la abstracción de toda la virtualización.
  • Máquinas virtuales o bare metal: si usted lo prefiere, puede crear aplicaciones basadas en microservicios y ejecutarlas en máquinas virtuales (VM). Esto requiere un aprovisionamiento más manual y DevOps para tener éxito. Las máquinas virtuales y bare metal ofrecen una mayor flexibilidad, a costa de

Qué hacer a continuación:

Roland Barcia


Recursos para Descargar


Comentarios

Inicie Sesión o Regístrese para agregar comentarios.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Big data y analytics
ArticleID=1051519
ArticleTitle=Desarrollo rápido de aplicaciones (parte 2): diseño de una arquitectura con microservicios
publish-date=10262017