CMMi SM – Modelo de madurez de Arquitecturas orientadas a servicios usando Microsoft Azure

Múltiples organizaciones requieren que su negocio ofrezca nuevas líneas de negocio, para responder a los cambios del mercado y llegar a nuevos clientes, por tal motivo la base operacional debe ser adaptable a dichos cambios de negocio para incrementar la productividad del negocio.

Muchas compañías requieren tener un estándar o base arquitectónica alineada a una estrategia de mejora continua para tener una adaptación ágil de negocio y tecnológica. Una de las respuestas a esta situación se basa en construir una arquitectura empresarial orientada a servicios para responder las necesidades del negocio.

Uno de estos modelos de madurez que nos permiten establecer una estrategia arquitectónica de nuestro ecosistema de aplicaciones empresariales es SOA MM (Service Oriented Architecture Maturity Model), en este artículo explicaremos que herramientas y tecnologías de Microsoft Azure se pueden utilizar para aprovechar las ventajas de este modelo.

Primero explicaremos en que consiste el modelo de madurez, SOA MM es un marco de referencia común que permite definir y revisar la mejora continua de proceso de desarrollo de software. Implementando SOA en un framework similar al de CMMI podemos mostrar los objetivos, características, prerrequisitos para medir el impacto progresivo en el negocio de SOA a través de diferentes niveles de madurez.

Los principales objetivos en cada una de las etapas de modelos de madurez son:

 

image001

 

SOA MM establece 5 niveles de madurez, donde cada nivel se tiene objetivos, características, componentes, alcance organizacional y beneficios específicos. Es importante señalar que los artefactos arquitectónicos de cada nivel de madurez deben ser acompañados de un proceso de mejora continua del proceso de desarrollo de software. Cada nivel de madurez de este modelo tiene un impacto de negocio progresivo que busca la cuantificación y optimización de los servicios de la arquitectura de software de la organización.

 

image003

 

En cada uno de los niveles se especifica un conjunto de pre requisitos, metas y orientación sobre como el marco de referencia tiene un impacto cada vez más positivo en la empresa.

Es necesario implementar los componentes mencionados en cada nivel de madurez para poder avanzar al siguiente.

A continuación, se explican los principales objetivos, alcance, beneficios y componentes (Se hace una comparativa con los ofrecidos por Microsoft) requeridos para alcanzar dicho el nivel de madurez:

 

Nivel de Madurez 1 – Servicios Iniciales

Fase en la que aún no se ha producido un lineamiento con las necesidades del negocio, simplemente se implementa tecnológicamente cierta funcionalidad para cubrir las primeras necesidades del negocio. Los principales objetivos del equipo de desarrollo son:

  • Aprender y estructurar sus aplicaciones SOA a través de la implementación de proyectos piloto.
  • Aplicar tecnología SOA a las necesidades inmediatas de la organización.
  • Definir las mediciones iniciales de ROI para proyectos SOA y aplicarla a los proyectos iniciales.

 

Principales beneficiospara la empresa

Alcance

Factores críticos deéxito

Tecnología

Gente y Organización

Nueva Funcionalidad

R&Dexperimentación,Proyectos piloto, Sitio Web, Portal,Integraciones personalizadas,Numero pequeñode servicios

Estándares, integraciónde aplicaciones legacy

Los desarrolladoresaprenden la implementación de servicios.

 

Los componentes para la implementación de SOA nivel de madurez 1 son:

 

Requerimiento

Descripción

Tecnología Microsoft

Enterprise Service BUS (ESB)

Proporciona un modelo de interacción estándar para componentes SOA incluidos los servicios Web y bases de datos relacionales como una infraestructura escalable e implementación distribuida fácil.

Biztalk, Azure Service Bus

Service Level ManagementService

Proporciona visibilidad del rendimiento de los servicios Web y las métricas a nivel de servicio.

Application Insights

Services Registry

Proporciona un almacén central de definiciones de servicios a través de losproyectos iniciales y proporciona un único punto de referencia para los desarrolladores de servicios para obtener las definiciones de los servicios.

Swagger

 

Nivel de Madurez 2 – Servicios con Arquitectura

En esta etapa se definen los límites que evitan un crecimiento descontrolado de los servicios de negocio implementados en la fase anterior del modelo. En esta fase crece la consistencia, la fiabilidad y el control de los servicios al institucionalizar el uso de SOA.

Es a este nivel que las normas se establecen en cuanto a la gobernabilidad técnica de implementación de SOA, por lo general bajo el liderazgo de la organización encargada de la arquitectura y se cuenta con lo siguiente:

 

Principales beneficiospara la empresa

Alcance

Factores críticos deéxito

Tecnología

Gente y Organización

Control y Reducción de costos de TI (Azure provee dashboards de visualización ycontrol de costos)

Múltiples aplicacionesintegradas

Soporte para sistemas distribuidosy heterogeneidad, Mensajería fiable, Mediación, Facilidad de implementación, Integración de bases de datos, Control de versiones, Seguridad Interna, Gestión del Rendimiento.

Grupo de arquitecturaproporciona liderazgo, Competencia SOA, CIOPatrocinio

 

Los componentes para la implementación de SOA nivel de madurez 2 son:

 

Requerimiento

Descripción

Tecnología Microsoft

Serviciosy políticas de repositorio

Almacenamiento completo que contiene el gobierno de apoyo para SOA que incluye las políticas y definiciones de servicios con la gestión del ciclo de vida incluyendo notificaciones y aprobaciones.

DevOps, TFS VSTS

Servicio de gestión de excepciones

 

Proporciona un mecanismo para detectar, diagnosticar y remediar automáticamente errores de sistema y  de nivel de aplicación.

Application Insights

Transformación de Mensajes

 

Permitir la integración de servicios con las diferencias en contenido y formato de los mensajes esperados. Esto se suele hacer mediante la invocación de XSLT lo transforma y aplica a un mensaje XML, en este ejemplo como una función de "mediación" bajo el control de ESB.

Azure Service Bus

Single Sign-On

Este servicio es administrado por el ESB y por lo general es suministrado por un proveedor para el intercambio de información de autenticación y autorización

Azure OAuth, Azure Identity

 

Nivel de Madurez 3 – Servicios de Negocio

Se produce una consolidación de los procesos de negocio en forma de servicios, en esta fase la tecnología converge con las necesidades de negocio. SOA nivel de madurez 3 se define en dos vías:

 

Principales beneficiospara la empresa

Alcance

Factores críticos deéxito

Tecnología

Gente y Organización

Servicios de Negocio:

Capacidad de respuestadel Negocio – Cambiar los procesos denegocio de forma rápida y efectiva

Los procesos de negocio a travésde la unidad de negocio o empresa

Reutilizar, Facilidad de modificación,Disponibilidad, Reglas del proceso de negocio, Procesos impulsados por eventos, Aplicaciones compuestas

Asociación de TI con el negocio, Asociación entre organizaciones, Ciclo de vida SOA, Gobierno, Compromiso ejecutivo, habilidades de diseño dirigido por eventos, Unidad de negocio

Servicios de colaboración:

Negocio receptivo, Capacidad de respuesta del negocio, colaboración con socios de negocios y comerciales

 

Servicios disponiblespara los socios externos de toda la empresa

Habilitar serviciosexternos, Seguridad de toda la empresa, Traducción de los protocolos de todala empresa, Ejecución larga de transacciones.

 

Los principales objetivos de este nivel son:

Servicios de Negocio:

  • Crear asociación permanente entre las organizaciones empresariales y tecnológicas para el gobierno de SOA.
  • Apoyar los procesos de negocio completos a través de SOA
  • Demostrar rendimientos de reutilización de los servicios y la capacidad de respuesta al cambio

Servicios de Colaboración:

  • Crear asociación permanente entre las organizaciones empresariales y tecnológicas para el gobierno de SOA.
  • Extender los procesos de negocio de SOA a organizaciones externas
  • Demostrar rendimientos de uso de los servicios de colaboraciónLos componentes para la implementación de SOA nivel de madurez 3 son:

Los componentes para la implementación de SOA nivel de madurez 3 son:

 

Requerimiento

Descripción

Tecnología Microsoft

Business Process Management (BPM)

Implica la gestión de procesos de larga duración que involucran mensajes secuenciales entre los servicios.

Azure Service Bus, Web Jobs, Service Fabric

Mejora directa de procesos de negocio

Una ventaja principal de SOA es que puede habilitar la modificación de procesos de negocio a través de la configuración de los servicios.

DevOps, VSTS, TFS

Reutilizaciones de servicios

Reutilización de servicios a través de una aplicación multicanal

Microservices

Protocolos SOA que soporten la funcionalidad especifica business-to-business (B2B)

Incluir funciones de mensajería estándar XML para operaciones de toda la empresa.

Microservices, Azure Service Bus

Servidor decolaboración

Implementa los protocolos B2B y admite transformaciones necesarias entre los mensajes internos de la empresa y los necesarios para los procesos externos.

Azure Service Bus

ECN connection

Pasa de un protocolo propietario a un protocolo estándar de la industria de servicios y por lo tanto se gestiona a través del servidor de colaboración.

Azure Service Bus

 

Nivel de Madurez 4 – Medición de los Servicios de Negocio

Se analizan los resultados de los servicios mediante el uso de métricas definidas y analizadas a nivel de negocio, donde se el principal objetivo es definir, implementar y obtener información de métricas de los servicios que soportan la operación del negocio en tiempo real.

Principales beneficiospara la empresa

Alcance

Factores críticos deéxito

Tecnología

Gente y Organización

Transformación delnegocio para reaccionar en tiempo real, Conocer las métricas de rendimiento en el negocio

Unidad de negocio o empresa

Supervisión de las actividades del negocio, Procesamiento del flujo de eventos, Procesamiento de eventos complejos, cuadro de mando y alertas controladas por eventos

Evaluación continua delos procesos de negocio

Los componentes requeridos para alcanzar este nivel de madurez son:

 

Requerimiento

Descripción

Tecnología Microsoft

Procesamiento en tiempo de real de eventos

Filtra los eventos significativos en base a las reglas de negocio y las redirige para su uso en otros servicios.

Azure Service Bus, Event Hub,

Monitoreo de actividad de negocio

Proporciona retroalimentación a la administración como a las métricas de rendimiento de negocio en tiempo real.

Power BI

 

Nivel de Madurez 5 – Optimización de los Servicios de Negocio

SOA nivel de madurez 5 añade respuestas de forma automática a las mediciones realizadas en el nivel 4. De esta manera el sistema de información SOA se convierte en el “sistema nervioso de la empresa” y toma decisiones de negocio de acuerdo a los acontecimientos que ocurren a nivel de negocio.

 

Principales beneficiospara la empresa

Alcance

Factores críticos deéxito

Tecnología

Gente y Organización

Optimización de negocio –reaccionar y responder de forma automática

Unidad de negocio oempresa

Automatización controladapor eventos.

Cultura de mejoracontinua CEO

Azure notification hubs

 

Microsoft Azure para habilitar la madurez de una arquitectura orientada a servicios

La utilización y propósito de las herramientas y tecnologías de Microsoft pueden variar de acuerdo a las necesidades de negocio; adicionalmente es importante establecer una estrategia tecnológica en donde se considere dichas herramientas alineadas con un marco de referencia.

Específicamente para el desarrollo de aplicaciones en Azure, tecnologías como Microservices, Service Fabric, Service Bus, Azure AD, Azure Authentication and Autorization, Service fabric, Application Insights, VSTS – TFS, entre otras, permiten alcanzar el nivel de madurez empresarial requerido por una organización, para dar soporte a su negocio y adaptarse a diferentes marcos de referencia.

Uno de los principales factores de éxito a considerar en la adopción de un marco de referencia es la integración del equipo desarrollo, pruebas y operaciones de TI; ya que el principal fundamento de este marco de referencia es la mejora continua de procesos y dar valor de negocio.

A través de la implantación de DevOps con Team Foundation Server o Visual Studio Team Services permite alinear metodología de desarrollo ágil (Scrum, SAFe, XP, etc.) con las tecnologías anteriormente descritas ayudando a la integración de procesos metodológicos, gestión de versiones de código, gestión de características de producto (features de software), validación de políticas de desarrollo (estilo de codificación, cobertura de código, políticas de rendimiento, pruebas unitarias), automatización de pruebas de UI, automatización de integración continua, automatización y gestión de los ambientes de desarrollo e instrumentación de nuestro código productivo para obtener todos los datos concernientes a rendimiento, errores, quien utiliza nuestras aplicaciones, etc. eliminando las barrera de colaboración y permitiendo la integración de las tecnologías descritas anteriormente y de terceros.

Habilitando la integración de nuestro proceso de desarrollo y la definición arquitectónica de cualquier marco de referencia de arquitecturas orientadas a servicios.

Si desea mayor información acerca de cómo los podemos ayudar a obtener, implementar este tipo de tecnologías, modernización de sus aplicaciones para su implementación en la nube, mejora de su proceso de desarrollo a través de DevOps, aplicaciones móviles o IoT; no dude en contactarnos.