SensediaSensediaSensediaSensedia
  • API Products
    • API Platform
    • API Governance
    • Event-Driven Architecture
    • PCI
    • Flexible Actions
  • API Services
    • Sensedia Professional Services
  • Solutions
    • APIs para Aseguradoras​
    • Open Banking
    • Retail & E-commerce
  • Blog
  • Contacto
    • Contacto
    • Clientes
  • Carrera
  • Español
    • Portugués, Brasil
    • Inglés

Arquitectura de Microservicios habilitando APIs

By Rafael Rocha | APIs | 0 comment | 3 enero, 2018 | 1

Contexto

Actualmente la arquitectura de Microservicios se convirtió en hype dentro del segmento de desarrollo de software. Ese modelo de arquitectura es un enfoque que determina el despliegue de aplicaciones en una gama de servicios. El equipo de desarrollo puede adoptar las tecnologías más adecuadas para solucionar problemas específicos. La arquitectura de Microservicios aumenta también la escalabilidad por permitir el uso de enfoques como auto-scaling y micro-container.

APIs y microservicios están muy relacionados, pues el estándar es utilizar una interfaz de APIs totalmente dirigida a RESTful. Sin embargo, actualmente todavía enfrentamos algunos problemas cuando necesitamos integrar con sistemas legados para externalizar funcionalidades como servicios, pues la mayoría de los sistemas no tienen protocolos como WebServices o interfaces RESTful, por lo tanto, vamos a explorar ese tema.

El Problema y el enfoque de Microservicios

La mayoría de las empresas desean exponer APIs de forma interna (dentro de la corporación) y/o externa (a socios o clientes), sin embargo, sus sistemas o aplicaciones no se diseñaron para ese propósito. La mayoría de las aplicaciones están basadas en la siguiente arquitectura:

  • Aplicaciones monolíticas para web usando una base de datos única. Ej: Java (JSF) con base de datos Oracle.
  • Producto o plataforma como, por ejemplo, ERP SAP.
  • Aplicaciones de alto nivel en escritas en Cobol
  • Aplicaciones Cliente-Servidor implementadas en VB6 y SQL Server.

Cuando enfrentamos ese tipo de escenario, la solución común es construir un adaptador para exposición de un protocolo estándar. Ese componente debe parecerse con el diagrama presentado a continuación:

Adapters

El adaptador es el componente principal para la solución, pues permitirá la externalización del servicio. Para promover esa estandarización, deben utilizarse algunos estándares:

  • Compatibilidad total con estándar RESTful
  • Organización por dominios de negocio
  • Ser fácilmente escalable
  • Paquetes livianos y con inicialización rápida.

Para tener una aplicación con un modelo de integración sencillo y escalable es necesario tener un estilo de arquitectura que cumpla todos esos requisitos y el estilo de arquitectura que más se acerca de esas características es el de Microservicios.

Recuerde que esa recomendación se aplica cuando su backend no es expuesto con el protocolo HTTP, porque la mayoría de las soluciones de API Gateways logrará enrutar y transformar fácilmente los mensajes para comunicación con backend.

Otros escenarios en los cuales la arquitectura de Microservicios es muy recomendada son:

  • Orquestación: en algunos casos es necesario enrutar y/o ejecutar otros servicios dependiendo de alguna condición específica.
  • Composición: algunas veces es necesario ejecutar más de un servicio para componer y devolver una respuesta.
  • Transformación de Mensajes Complejos: cuando es necesario utilizar algoritmos más complejos para lograr devolver un mensaje al consumidor del servicio.

Finalmente, fíjese que los microservicios necesitan organizarse dentro de los dominios de su negocio. De esta manera, podemos ver que ese estilo de arquitectura es una oportunidad de romper los monolíticos de su negocio y suministrar una mejor arquitectura, como el diseño presentado a continuación:

Arquitetura Microserviços

Un artículo muy interesante de Microservicios es este.

Estrategia de Implementación de Microservicios

Después de decidir que la implementación del adaptador se basará en una arquitectura de Microservicios, son necesarias algunas características:

  • Paquetes livianos y bajo consumo de memoria
  • La inicialización de la aplicación debe ser rápida para crear rápidamente nuevas instancias de contenedores o servidores.
  • Desarrollo rápido y sencillo basado en la especificación Swagger
  • Features de seguridad como OAuth2

Algunos de los frameworks que indicamos son:

Java:

  • Spring boot
  • Spark Framework
  • Play Framework
  • Dropwizard
  • Apache Camel

JavaScript:

  • js

Otra característica crucial cuando implementamos APIs usando Microservicios es la capacidad de integración con sistemas legados. Ese tipo de feature requiere un framework específico que implementa los estándares de integración empresarial (EAI patterns), la recomendación en ese caso es utilizar el framework Java Apache Camel.

Estrategia de Implantación de Microservicios

Después de implementar el paquete Microservicios y éste esté listo, es necesario implantarlo para que esté disponible para uso. La estrategia más recomendada es utilizar servicios PaaS (Plataforma como servicio) para implantar los paquetes de Microservicios. Eso es porque este tipo de servicio ofrece algunas features muy interesantes como:

  • Uso de contenedores
  • Orquestación de contenedores
  • Almacenamiento (sistema de archivos y base de datos)
  • Monitoreo en tiempo real
  • Logging y rastreo

Otras dos características importantes son:

  • Ser capaz de escalar para soportar el transporte
  • Ofrecer APIs para automatizar el proceso de implantación

Deben evaluarse las principales ofertas de PaaS del mercado para una estrategia de implantación, son ellas:

  1. Pivotal Cloud Foundry
  2. Red Hat OpenShift
  3. SalesForce Heroku

Otras opciones que pueden considerarse son Amazon Elastic Beanstalk y Google App Engine. Las dos son muy interesantes porque cuentan con una integración nativa con los servicios de Cloud e Infraestructura y ofrecen también los servicios de infraestructura como servicio (IaaS).

Pero, en nuestra visión, la mejor alternativa para implantación de microservicios es aquella resultante de una integración completa con una plataforma de gestión APIs y, en este caso, Sensedia API Suite ofrece una funcionalidad denominada BaaS (Backend as a Service) que utiliza las mismas características de servicios PaaS y realiza esta integración.

Esa funcionalidad permite que usted realice la implantación y ejecute sus microservicios, exponiendo directamente las APIs de sus sistemas legados. Las tecnologías soportadas por BaaS son:

  • Java
  • js
  • Apache Camel

Es importante recordar que si usted puede utilizar esta plataforma para ejecutar sus microservicios que no sean solamente los que habilitan la integración con legados, podrá ser su plataforma oficial de ejecución de microservicios.

Microservicios y Plataformas de API Management

Después que los Microservicios se están ejecutando correctamente, las APIs que exponen los Microservicios deben ser bien administradas y algunas de las features esenciales para eso, que la mayoría de las plataformas de este tipo ofrecen son:

  • Seguridad y Resiliencias: necesario para proteger su backend de personas o aplicaciones no habilitadas para consumir esas APIs. Cuando una API se abre para socios, sus Microservicios deben estar protegidos contra los picos de transporte, para que no quede fuera de servicio y, para ello, es necesario tener control del límite de tráfico (Rate Limit y Spike Arrest) y límite de tamaño del cuerpo del mensaje (Payload Size).
  • Control de Acceso: los consumidores de la API deben estar bajo su control y, para ello, es necesario utilizar estándares de mercado como OAuth 2.0 o JSON Web Tokens.
  • Monitoreo y Rastreo: es necesario para lograr monitorear todos los tipos de solicitudes realizadas en su plataforma, además, es necesario contar con un mecanismo de log poderoso para encontrar los errores que ocurren en su API.

Todas las capacidades antedichas son comunes en una solución de API Gateway, pero algunas otras features cruciales para la gestión completa de sus APIs son:

  • Caching: debe ser capaz de evitar solicitudes innecesarias en su API, ofreciendo una latencia mucho mejor para sus solicitudes, ahorrando incluso el costo de su infraestructura de backend.
  • Analytics: el uso de la API monitoreada en tiempo real es muy importante, tanto para acompañar el consumo y para tener insights de cómo vender, monetizar y utilizar su API de la mejor manera.

Como antedicho, algunas Plataformas de Gestión de APIs ofrecen una integración total con la plataforma de ejecución de microservicios. Ese tipo de funcionalidad ofrece una gestión total de todas las partes de la solución, no siendo necesario una infraestructura separada. De esa manera, su arquitectura será como mostrado en la figura a continuación:

Arquitetura Microserviços e APIs

Conclusión

Utilizar arquitectura de Microservicios permite el desarrollo de interfaces RESTful que expondrán su legado que nativamente no cuenta con interfaz HTTP, pero el primer desafío es elegir las herramientas correctas para esa implementación. Existen muchos frameworks y lenguajes que pueden ayudar en la implementación de microservicios, la decisión depende mucho del escenario que se está enfrentando, pero algunas de las más utilizadas se mencionan en este artículo.

Después de elegir su kit de desarrollo, la próxima decisión que debe tomarse es determinar la plataforma de implantación y ejecución, una vez más, la decisión depende mucho del escenario que se está enfrentando, pero, en este caso, el principal objetivo es la exposición de RESTful APIs de forma consistente cumpliendo los requisitos funcionales y no funcionales.

Sensedia API Suite es una herramienta de gestión de APIs que logra ofrecer la funcionalidad de Backend as Services (BaaS) que puede sustituir las responsabilidades de un PaaS en la implantación y ejecución de los Microservicios. Además, la herramienta ofrece todas las funcionalidades clave para la gestión ideal de una API como, por ejemplo, API Gateway con Caching y Analytics.

En resumen, la recomendación es utilizar una o más plataformas integradas que logren permitir la gestión total de sus Microservicios y de las APIs que expondrán.

Referencias

[1] Microservices – http://www.martinfowler.com/articles/microservices.html

[2] Apache Camel – http://camel.apache.org/

[3] PaaS Comparator – https://paasfinder.org/compare

[4] Twelve Factor App – https://12factor.net/

[5] Sensedia API Management Platform

[6] API Gateway Pattern – https://www.nginx.com/blog/building-microservices-using-an-api-gateway/

API, APIs, Estratégia Digital, Exposición de APIs, MicroServices
Rafael Rocha

Rafael Rocha

Lead Solutions Architect - Sensedia API Platform

More posts by Rafael Rocha

Related Post

  • Microservicios y APIs

    De SOA a Microservicios: la evolución Arquitectural

    By Eike Malavasi | 0 comment

      Contextualizando: de SOA a Microservicios Día a día, en el universo tecnológico, se crean nuevas teorías y tendencias para conseguir construir y mantener un nuevo sistema e incluso un nuevo negocio. Habrá visto aquí,Read more

  • Open Banking

    ¿Qué es el Open Banking? Promoviendo el futuro de los bancos con APIs

    By Lucas Tempestini | Comments are Closed

    ¿Qué es Open banking y por qué marcará la diferencia? Recuérdate los principales bancos cuando comenzaron a ofrecer servicios digitales, como Internet Banking y las aplicaciones… ¿Cómo se sintió? ¿Fue cómodo, se sintió moderno, conRead more

  • Time Sensedia em Paris no APIDays

    3 Temas destacados en el APIdays Paris 2018

    By Rafael Rocha | 0 comment

    Quiero compartir aquí con ustedes algunos highlights y trendtopics que percibimos en el mayor evento de APIs del mundo, APIdays – por ahora, ¡porque nuestro APIX está arrasando! El evento ocurrió en Paris, entre el 11 y el 12/Diciembre, y Sensedia estuvoRead more

  • Modelo de Madurez para la Arquitectura de APIs

    By Rafael Rocha | 0 comment

    link para artículo original: https://www.linkedin.com/pulse/api-architecture-maturity-model-rafael-rocha/ ¿Su empresa está lista para la Economía de las APIs? Esta es la reflexión que los arquitectos y estrategas digitales deben hacer, en el caso que deseen que su empresa participeRead more

  • ¿Su empresa consume APIs? Reduzca costos y gane agilidad con Monitoreo y Caching

    By Nicholas Gimenes | 0 comment

    Muchos servicios externos se consumen a través de APIs por diferentes departamentos (Marketing, Financiero, I & D, Distribución, …) y muchas veces este consumo no es monitoreado o optimizado, lo que lleva a gastos innecesariosRead more

Leave a Comment

Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Categorías

  • Analytics
  • APIs
  • Eventos
  • Negocios Digitales
  • Publicaciones Externas
  • Sin categorizar

Etiquetas

API API Economy API Gateway API Management APIs Architecture Arquitectura design de APIs DevOps Ecosistema de Socios ESB estrategias digitales Estratégia Digital estratégias digitals Event-driven Eventos Exposición de APIs Gestión de APIs graphql gRPC Iinnovación Innovacion Abierta Innovación Insurtech Integraciones Integración MicroServices Microservicios Modelo de Negocio Monetización Negocios Digitales Notificacion omnicanalidad Open APIs open banking open insurance Plataforma REST RESTful seguridad Seguridad de APIs Service Mesh SOA Transformación Digital Transformación Digitale

Entradas recientes

  • Black Friday Post – La experiencia de Via Varejo
  • Intégrese con VR Beneficios de forma ágil, simple y segura
  • La importancia de una buena atención de soporte
  • Optimizando Arquitectura Event Driven en Java (desde el bajo nivel)
  • La importancia del uso de métricas en APIs
  • Política de Privacidad
Copyright © 2020 Sensedia | All Rights Reserved
  • API Products
    • API Platform
    • API Governance
    • Event-Driven Architecture
    • PCI
    • Flexible Actions
  • API Services
    • Sensedia Professional Services
  • Solutions
    • APIs para Aseguradoras​
    • Open Banking
    • Retail & E-commerce
  • Blog
  • Contacto
    • Contacto
    • Clientes
  • Carrera
  • Español
    • Portugués, Brasil
    • Inglés
Sensedia