APIs Arquitectura de Software Testing
cabecera Microcks con sonar

Introducción a Microcks con sonar

Con la llegada de microservicios hemos tenido varios beneficios como tener:

  • Aplicaciones listas para comercializarse más rápidamente (Ciclos de desarrollo más cortos)
  • Gran capacidad de expansión (Implementaciones en distintos servidores)
  • Capacidad de recuperación (Si una parte falla, no afecta a toda la aplicación)
  • Facilidad de implementación (Son más modulares y más pequeñas)
    Entre otras

Mirando desde el punto de un proveedor existe la necesidad de implementar, escalar y administrar docenas o cientos de servicios y esto puede generar inquietudes sobre una documentación efectiva de la implementación de sus servicios/API, así como crear un conjunto completo de muestras de solicitud/respuesta, así como también reglas que puedan usarse como artefactos de validación para nuestro servicio/API durante el desarrollo.

Mas ahora que vivimos en un mundo ágil donde cada paso debe ser fluido, con un repetible ciclo de mejora continua, existe un desafío para insertar estos pasos sin consumir demasiado tiempo.

Metodología API First

La metodología API First, nos ayuda a solucionar parte de ello ya que prioriza la definición del contrato antes de empezar a lanzar el resto de procesos, como la implementación, testing, despliegue.

La metodología se implementa en 3 fases:

  • Fase de definición y mocking: Se define el contrato openapi, se valida y se genera un mocking para los clientes.
  • Fase de implementación: Gracias al contrato, desarrollamos tres actividades en paralelo:

-Definición de los tests
-Desarrollo e implementación de la API
-Consumo de la API

  • Fase de integración: Una vez implementada la API debemos apuntar la API del mockserver a la implementación realizada.

Y las herramientas que nos ayudan a implementar esta metodología son Microcks y Sonarqube

¿Qué es Microcks?

Mocks (Microcks) es una herramienta open source utilizada para el mocking y testing de APIs basada en kubernetes. Su principal objetivo es proporcionar una plataforma para referenciar,
implementar mocks y permitir la prueba de contratos de servicios y API. También se puede considerar una solución de virtualización de servicios porque le permitirá proporcionar una API falsa o una implementación de servicios antes de que se realice el desarrollo.

Características de Microcks

  • Facilita la colaboración y la reutilización
  • Una herramienta para varios servicios
  • Puede ser desplegado en cualquier proveedor de la nube
  • Despliegue continuo

Instalación de Microcks

  • Kubernetes (helm, operator)
  • Docker Compose
  • Podman Compose

Automatización

  •  Gitlab
  • Jenkins
  • Github
  • Tekton

Arquitectura Microcks

blog Microcks con sonar

Arquitectura Microcks con AsyncAPI

¿Qué es SonarQube?

SonarQube es una plataforma de código abierto para la inspección continua de la calidad del código a través de diferentes herramientas de análisis estático de código fuente. Proporciona métricas que ayudan a mejorar la calidad del código de un programa permitiendo a los equipos de desarrollo hacer seguimiento y detectar errores y vulnerabilidades de seguridad para mantener el código limpio

Principales características de SonarQube

  • Admite los lenguajes de programación más populares como Java, C / C ++, Objective-C, C #, PHP, Flex, Groovy, JavaScript, Python, PL / SQL, COBOL, etc.
  • Realiza revisiones automáticas con análisis de código estático detectando problemas que afectan la calidad del código.
  • Facilita informes ofreciendo información objetiva de la calidad actual de los proyectos utilizando métricas y gráficos de prueba de calidad avanzados. Esto incluye datos sobre código duplicado, estándares de codificación, pruebas unitarias, cobertura de código, complejidad del código, errores potenciales, comentarios, diseño y arquitectura.
  • Se integra con toda la cadena de herramientas de DevOps ayudando al flujo de trabajo productivo, incluidos los sistemas de compilación, los motores de CI, utilizando webhooks y su RestAPI integral.
    Es ampliable con el uso de complementos.

Beneficios

  • Alerta de manera automática a los desarrolladores de los errores de código para corregirlos previamente a la implementación en producción.
  • No sólo muestra los errores, también las reglas de codificación, la cobertura de las pruebas, las duplicaciones, la complejidad y la arquitectura, plasmando todos estos datos en paneles de control detallados.
  • Ayuda al equipo a mejorar en sus habilidades como programadores al facilitar un seguimiento de los problemas de calidad.
  • Permite la creación de paneles y filtros personalizables para centrarse en áreas clave y entregar productos de calidad a tiempo.
  • Favorece la productividad al reducir la complejidad del código acortando tiempos y costes adicionales al evitar cambiar el código constantemente.

Principales métricas

  • Complejidad
  • Duplicados
  • Evidencias
  • Mantenibilidad
  • Umbrales de calidad

 

¿Por qué Microcks con Sonar?

Debido a la metodología de API First las herramientas de microcks y sonar calzan de manera excelente en el flujo de esa metodología debido a que sonarqube puede validar un documento de definición en Open Api y de esa manera podemos ver si ese documento sigue las guías de estilos corporativa y con microcks podemos generar un mock server con el documento definido anteriormente de esa manera podemos asegurar una mejor calidad de nuestros servicios.

Do SonaAPI

  • Plugin de sonar que valida el estándar corporativo.
  • Permite autovalidar la definición del swagger y así reducir los tiempos de definición.
  • Se integra dentro del CI para juntarlo con la integración continua.
  • Más de 40 reglas implementadas.

Conceptos clave

Documentación definición

  •  Documento principal de la API
  •  Instrucciones
  •  Operaciones
  •  Datos entrada y salida
  •  Mecanismos de seguridad

Mock API

Los mocks de API son una herramienta muy potente que permite desarrollar y probar el front-end como un componente independiente del back-end, facilitando y reduciendo tiempos de desarrollo, lo que se traduce en el aumento de la productividad del equipo.

Pipeline

Una pipeline es una forma de trabajar en el mundo DevOps, bajo la Integración Continua, que nos permite definir el ciclo de vida completo de un desarrollo de software. Consiste en un flujo comprendido en varias fases que van en forma secuencial, siendo la entrada de cada una la salida de la anterior

Novedades de Microcks

Dentro de las novedades es que microcks se pueden implementar mocks de definiciones con Async API creando eventos y Graphql

novedades microcks son sonar

Conclusión

La calidad del software tiene cada vez más relevancia en el proceso de desarrollo. SonarQube y Microcks se convierten en una plataforma integral para la mejora de la calidad del código, reducir la deuda técnica y las vulnerabilidades. La implementación de estas herramientas completas de automatización es, gracias a su sencillez, una ayuda clave para desarrollar un software de calidad.

¿Quieres saber cómo implementar estas herramientas?

¡Contacta con nosotros!

Author

CloudAPPi

Leave a comment

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