Inteligencia artificial 

Acelerador de productividad. Catalizador de innovación. Colaborador creativo. Sea cual sea su visión de la IA, Unisys proporciona las soluciones, la experiencia y las herramientas para realizar todo el potencial empresarial de su organización.
Explorar

Ciberseguridad

Unisys ofrece soluciones empresariales con seguridad integrada para defender sus activos digitales, contrarrestar las amenazas, ganarse la confianza de los clientes y cumplir con los estándares de cumplimiento.
Leer más

Consultoría

La naturaleza del trabajo cambia. Hagamos evolucionar su negocio juntos. Prepare su organización para el futuro con los servicios de consultoría de Unisys y avance como una entidad centrada en lo digital.
Explorar

Historias de clientes

Explore vídeos e historias donde Unisys ha ayudado a empresas y gobiernos a mejorar las vidas de sus clientes y ciudadanos.
Explorar

Investigación

Embárquese en un viaje hacia un futuro resiliente con acceso a la investigación integral de Unisys, desarrollada en colaboración con los principales analistas del sector y empresas de investigación.
Explorar

Centro de recursos

Encuentre, comparta y explore activos para apoyar sus objetivos operativos clave.
Explorar

Carreras

Curiosidad, creatividad y un deseo constante de mejorar. Nuestros asociados dan forma al mañana yendo más allá de la experiencia para dar vida a las soluciones.
Explorar

Relaciones con los inversionistas

Somos una empresa global de soluciones tecnológicas dedicada a impulsar el progreso para las organizaciones líderes del mundo.
Explorar

Socios

Colaboramos con un ecosistema de socios para ofrecer a nuestros clientes productos y servicios de vanguardia en muchas de las industrias más grandes del mundo.
Explorar

Opciones de idiomas

Idioma seleccionado:

Español
15 Min Read

Microservicios para la empresa: Diseño, desarrollo e implementación

febrero 28, 2022 / Unisys Corporation

¿Tiene poco tiempo? Conozca estos puntos clave:

  • Al diseñar una arquitectura de microservicios, es importante:
    • Desglosar la aplicación en capacidades empresariales.
    • Construya los servicios con las herramientas y técnicas adecuadas.
    • Diseñar la arquitectura para exponer las partes necesarias de los servicios.
    • Utilice los protocolos adecuados para la comunicación.
    • Descentralizar la arquitectura.
    • Despliegue los servicios con contratos orientados al consumidor.
  • Las herramientas y marcos utilizados para implementar microservicios incluyen REST, Consul, Oracle Helidon y Kubernetes.
  • Las ventajas de los microservicios incluyen una mayor flexibilidad, escalabilidad y capacidad de mantenimiento.
  • Los retos de los microservicios pueden incluir una mayor complejidad y dificultad en la depuración y las pruebas.
  • Para implementar con éxito los microservicios, es importante tener una estrategia empresarial clara y protocolos de comunicación bien definidos.
  • También es importante contar con las herramientas y tecnologías adecuadas, así como con un equipo de desarrollo cualificado y experimentado.

Los microservicios son cada vez más comunes, especialmente en el desarrollo de aplicaciones nativas en la nube.

Ha surgido como un patrón arquitectónico popular porque permite construir grandes aplicaciones como un conjunto de pequeños servicios independientes que se comunican entre sí a través de una red. Este enfoque facilita el diseño, desarrollo e implementación de sistemas de software complejos porque puede actualizar y modificar servicios individuales sin afectar a todo el sistema, lo que lo hace más flexible y escalable que los métodos tradicionales.

Los microservicios se pueden implementar utilizando una variedad de enfoques y tecnologías. Estos pueden incluir diseños basados en dominios, entrega continua, plataformas escalables, automatización de infraestructuras y uso de diferentes lenguajes de programación. Los microservicios reflejan cómo los líderes empresariales quieren organizar sus equipos y procesos de desarrollo de aplicaciones.

Primeros pasos con la arquitectura de microservicios

Al diseñar la arquitectura de microservicios, no existe un conjunto definitivo de principios estándar. Sin embargo, hay algunos temas y técnicas de diseño utilizados por varias organizaciones para comenzar con las etapas iniciales de la construcción de una arquitectura de microservicios eficiente.

Desmantelamiento

En primer lugar, identificar las capacidades empresariales de las aplicaciones ayudará a los equipos a crear servicios en consecuencia. Una vez identificadas las capacidades, los equipos pueden decidir en qué servicio desean trabajar y empezar a construir de acuerdo con sus requisitos empresariales. Cada equipo puede convertirse en un experto en el campo en el que están trabajando y encontrar las técnicas y estrategias que mejor se adapten a la aplicación.

Construcción

Después de identificar las capacidades empresariales, los equipos pueden restringir las herramientas, técnicas, plataformas y enfoques necesarios para crear los servicios. Se pueden utilizar enfoques como Java con MySQL y Scala/Spark según la experiencia del equipo y los requisitos de la aplicación.

Diseño con

Al diseñar la arquitectura de microservicios, es imperativo analizar las partes de los servicios que deben exponerse y los protocolos que deben utilizarse para comunicarse con los servicios dados. Los detalles innecesarios y pesados provocarán confusión y pérdida de flexibilidad en los servicios.

Descentralizado

La arquitectura puede ser descentralizada por equipos que trabajen en servicios específicos. Un modelo de fuente interna permitirá a los desarrolladores realizar los cambios necesarios en el código y avanzar sin depender del propietario del servicio para rectificar los errores. Un modelo de servicio detallado simplificará el proceso para los desarrolladores, lo que se traducirá en un mejor rendimiento y desarrollo.

Implantación

Un contrato detallado orientado al consumidor ayudará a cada API de consumo a capturar los requisitos de la aplicación. Estos contratos se comparten con los proveedores de servicios para ayudarles a satisfacer las necesidades de cada cliente. Es esencial aprobar acuerdos orientados al consumidor antes de desplegar los servicios para ayudar a los proveedores a comprender la interdependencia de los servicios.

Algunas herramientas y marcos para implementar microservicios

RESTANTE

Representational State Transfer (REST) es una herramienta eficiente que permite que los microservicios se comuniquen directamente a través de HTTP y se utiliza para crear API RESTful. Las solicitudes y respuestas se gestionan utilizando formatos estándar como XML, HTML y JSON.

Cónsul

Consul, una tecnología de detección de servicios, ofrece soporte para API HTTP REST y DNS. Este marco permite a los desarrolladores generar automáticamente la configuración en archivos utilizando una plantilla de Consul. También realiza comprobaciones de estado y excluye ciertos microservicios del descubrimiento de servicios cuando fallan las comprobaciones de estado.

Oracle Helidon

Helidon es un marco de microservicios desarrollado y lanzado por Oracle. Es un repositorio de bibliotecas Java que los desarrolladores pueden utilizar para crear arquitecturas de microservicios. El Helidon está disponible en dos variantes: Helidon MP y Helidon SE. El primero es una opción viable para los desarrolladores de Java, ya que es una implementación de las especificaciones de MicroProfile. Este último actúa como un kit de herramientas compatible con las funciones de Java SE y las API fluidas.

Funda de muelle

Otro marco Java, Spring Boot, ofrece componentes colaborativos y permite construir sistemas a gran escala utilizando arquitecturas sencillas. Spring Boot es fácil de integrar con otras estructuras gracias a la inversión del control.

Veamos algunas opciones de implementación:

Para el despliegue de microservicios, los desarrolladores pueden elegir entre estos patrones de uso común:

Instancias multiservicio por host

Al utilizar las múltiples instancias de servicio por patrón de host, los desarrolladores pueden colocar uno o más hosts físicos o virtuales para ejecutar múltiples instancias de servicio. Cada servicio funciona en un puerto conocido en uno o varios puertos.

Hay dos variantes de este patrón. En primer lugar, cada instancia de servicio es un proceso o un grupo de procesos. Los desarrolladores pueden desplegar una instancia de servicio Java como aplicación web en un servidor Apache Tomcat. La otra variante implica ejecutar múltiples instancias de servicio en el mismo proceso o grupo de procesos, como desplegar múltiples aplicaciones web Java en el mismo servidor Apache Tomcat o ejecutar múltiples paquetes OSGi en el mismo contenedor.

El patrón tiene muchas ventajas, como el uso eficiente de los recursos. Esta eficiencia proviene del proceso o grupo de procesos que ejecuta múltiples instancias de servicio, como múltiples aplicaciones web que comparten el mismo servidor Apache Tomcat y JVM.

Instancia de servicio por patrón de host

Este patrón permite a los desarrolladores ejecutar cada servicio de forma aislada en su host personal. Hay dos especializaciones en este enfoque:

- Instancia de servicio por máquina virtual
- Instancia de servicio por contenedor

Instancia de servicio por patrón de máquina virtual

Este enfoque implica empaquetar cada servicio como una imagen de máquina virtual (VM), como una AMI de Amazon EC2. Un buen ejemplo es Netflix, ya que han utilizado este enfoque para implementar su servicio de transmisión de vídeo empaquetando cada servicio como un AMI EC2 utilizando Aminator e implementando cada servicio como una instancia EC2.

Hay muchas herramientas disponibles para crear máquinas virtuales, como Aminator, Jenkins y Packer.io. Aminator agrupa los servicios como un AMI EC2, mientras que Packer.io automatiza la creación de imágenes de máquinas virtuales y admite tecnologías de virtualización como DigitalOcean, VirtualBox, VMware y EC2.

Al utilizar la instancia de servicio según el patrón de la máquina virtual, los equipos pueden disfrutar de los beneficios de una infraestructura en la nube madura y no preocuparse por agotar los recursos y la memoria de la CPU, ya que los servicios se ejecutan de forma aislada, lo que hace que la implementación sea más sencilla y fiable.

Instancia de servidor por patrón de contenedor

Como su nombre indica, este patrón implica desplegar instancias de servicio en sus contenedores. Los contenedores tienen un sistema de archivos raíz y un espacio de nombres de puertos dedicados, lo que permite a los equipos limitar la memoria y los recursos de la CPU de un contenedor. Algunos ejemplos de tecnologías de contenedores incluyen Solaris Zones y Docker. Los equipos también pueden utilizar Kubernetes y Marathon para gestionar la colocación de contenedores alineada con los recursos necesarios y los recursos disponibles en cada host.

Los beneficios de los contenedores son similares a los de las máquinas virtuales, ya que ambos enfoques implican el aislamiento de los servicios y permiten supervisar los recursos consumidos por cada contenedor. Los contenedores son ligeros y más fáciles de construir, ya que no existen mecanismos de arranque de SO pesados.

Implementación sin servidor

AWS Lambda es un excelente ejemplo de un patrón de implementación sin servidor. La tecnología admite los servicios Node.js, Java y Python. Los equipos pueden empaquetar los microservicios en un archivo ZIP y cargarlo en AWS Lambda para ejecutar instancias y gestionar solicitudes automáticamente.

Existen cuatro formas de implementar la función AWS Lambda:

  • Invocación de la función directamente mediante una solicitud de servicio web
  • Implementación automática en respuesta a eventos generados por servicios de AWS, incluidos DynamoDB, Kinesis, S3 o Simple Email Service
  • Uso de AWS API Gateway para gestionar las solicitudes HTTP de los clientes de la aplicación
  • Siguiendo un programa similar a cron periódicamente

AWS Lambda es una de las formas más cómodas de implementar microservicios. Ofrece la ventaja de los precios basados en solicitudes que permiten a las organizaciones pagar por el mundo que prestan los servicios, lo que permite a los equipos centrarse más en el desarrollo de la aplicación en lugar de preocuparse por la infraestructura de TI.

Resolución

El éxito es un objetivo móvil, y cuando se trata de escalar la tecnología, no hay una bala de plata. Los microservicios son un enfoque relativamente nuevo, pero muestran resultados incomparables cuando se ejecutan correctamente. Los microservicios ayudan a dividir aplicaciones más significativas en partes más pequeñas que son más fáciles de gestionar. El proceso también permite que la cultura de una organización sea más abierta y adaptable a los cambios y las mejoras.

Los actores globales, como Coca-Cola, Netflix, Amazon y Etsy, han resuelto sus problemas más complicados relacionados con el escalado y la expansión utilizando la arquitectura de microservicios. Este cambio ha permitido a estas organizaciones y a otras ganar flexibilidad, durabilidad y un mayor compromiso dentro de los equipos.

Con los microservicios, las organizaciones más jóvenes pueden aprovechar el poder del software heredado y las tecnologías modernas y simplificar la curva de aprendizaje para los equipos y la próxima generación de desarrolladores, guiándoles hacia la transformación digital.