Contenido


Desarrollo rápido de aplicaciones (parte 3): implementación de su proyecto de microservicios

Comments

Tabla de contenidos

Introducción
Evolución de una aplicación existente
Comprensión y definición de sus necesidades empresariales
Comprenda su cultura y su conjunto de habilidades
Comprenda la tecnología
Dimensionamiento del esfuerzo 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 3, le proporcionamos un método para la implementación de sus propios proyectos de microservicios.

Estas son las partes de la serie:

  • Visión general de los microservicios (parte 1), después de una contextualización de las presiones empresariales que exigen una entrega y un desarrollo más rápidos de aplicaciones, y de la presentación de las etapas del proceso que un equipo debe enfrentar al transformar una aplicación monolítica específica.
  • Diseño de una arquitectura con microservicios (parte 2), que presenta las capacidades comunes de una arquitectura para el rápido desarrollo de aplicaciones a partir de microservicios. Usted necesitará estas capacidades, ya sea que esté transformando una aplicación monolítica o desarrollando una aplicación nativa de la nube.
  • Implementación de una aplicación de microservicios (esta entrada de blog), que proporciona un método para la implementación de su propio proyecto de microservicios.
  • Uso de patrones de desarrollo de microservicios (parte 4), que presenta los patrones de desarrollo comunes que están disponibles para la implementación de aplicaciones de microservicios.
  • Uso de patrones de operaciones de microservicios para obtener resiliencia (parte 5), que presenta los patrones de operaciones comunes para la obtención de resiliencia en las aplicaciones de microservicios.
  • Webinar: Desarrollo rápido de aplicaciones con microservicios (parte 6)

Evolución de una aplicación existente

Ahora, profundizaremos en cómo trazar un plan para las trayectorias de diferente escala del desarrollo de una aplicación de microservicios específica, tomando en cuenta una posible evolución de transformaciones de una escala pequeña a una escala grande.

Aunque crear proyectos de microservicios sin una aplicación anterior es relevante o importante, al momento de crear microservicios se concierta un enfoque que parte de una aplicación monolítica.  En resumen, esto implica crear una aplicación de cualquier modo posible para validar una idea. A continuación, se aplican los principios indicados en esta serie de entradas de blog para realizar el escalamiento y la evolución de la aplicación monolítica inicial a un proyecto de microservicios. Resultaría inútil crear microservicios con una arquitectura pura que no aportaran valor al negocio.

Hay tres ámbitos que usted debe comprender para la implementación de un proyecto de microservicios exitoso: su negocio, su cultura y su conjunto de habilidades, y su tecnología.

Comprensión y definición de sus necesidades empresariales

¿Por qué está considerando realizar una transición a los microservicios? Muchas empresas necesitan prácticas de desarrollo y operación de software más eficientes para aportar más rápidamente valor al negocio y proporcionar una mejor experiencia del usuario.

Para que sea posible comprender el impacto de un proyecto de microservicios en las aplicaciones y en la infraestructura existentes, es necesario comprender qué partes del negocio están moviéndose demasiado lentamente como para dar resultados satisfactorios. En muchos casos, los sistemas de compromiso (SOE) de la organización son responsables por la desaceleración. Estos sistemas están disponibles a través de varios canales (Web, movilidad, API, etc.). La falta de velocidad es la principal razón para la transición a una arquitectura basada en microservicios.

Para poder adoptar un enfoque orientado hacia los microservicios, usted y las partes interesadas de su empresa deben comprender qué no se está lanzando al mercado a la velocidad necesaria. ¿Qué partes de la aplicación necesitan mejoras y modificaciones para volverse más rápidas? Responder a esta pregunta implica determinar qué partes de la aplicación monolítica existente se deberían someter a la evolución hacia los microservicios.

Use flujos de experiencia del usuario o diagramas de arquitectura para ayudar al equipo a destacar rápidamente secciones de la aplicación monolítica existente por medio de anotaciones de tipo "mapa de calor". Por ejemplo, con base en una escala de colores rojo, amarillo y verde para los aspectos prioritarios, presentamos a continuación un archivo de aplicación web para un escaparate:

En este punto, de manera no exhaustiva y con la posibilidad de realizar iteraciones, los objetivos clave de la evaluación son:

  • Identificar las funciones empresariales específicas que proporciona la aplicación monolítica
  • Comprender la velocidad relativa y la complejidad necesarias para cambiar las funciones empresariales
  • Comprender el deseo del propietario comercial de contar con ciclos de comentario más rápidos para estas funciones empresariales específicas

Comprenda su cultura y su conjunto de habilidades

Aunque no se trata de un aspecto exclusivo de las arquitecturas basadas en servicios, la comprensión profunda de los equipos, la cultura y el conjunto de habilidades de la organización es fundamental para una transformación digital exitosa.

Normalmente, al diseñar aplicaciones monolíticas, la mayor parte de las organizaciones se dividen en silos, con equipos que participarán según sea necesario a lo largo del ciclo de vida de desarrollo de software. Esto suele crear límites claramente definidos, con funciones y responsabilidades restrictivas basadas en dichos límites.

Las arquitecturas de microservicios solo pueden tener éxito cuando los equipos tienen la capacidad de controlar todo el ciclo de vida de desarrollo de software y operaciones. Crear equipos interdisciplinarios que representen todas las funciones y responsabilidades es fundamental para la implementación de arquitecturas basadas en microservicios. Todos (desde las áreas de diseño y desarrollo hasta las áreas de operaciones y el propietario comercial) trabajan en estrecha colaboración, de manera conjunta.

Como cada parte interesada se ve representada en el equipo durante el desarrollo, la implementación y las operaciones, el trabajo puede avanzar de manera más rápida y eficiente, con una clara orientación hacia la mejora de la experiencia del usuario, para alcanzar los objetivos empresariales.

Un equipo interdisciplinario también puede respaldar un rápido incremento de las habilidades individuales de todos los miembros.  Cuando un equipo controla todos los aspectos por los cuales el microservicio es responsable (desde el diseño y las operaciones hasta los datos de tiempo de ejecución), ningún miembro del equipo realiza tareas únicas. Con frecuencia, los ingenieros de frontend desarrollan habilidades de gestión de bases de datos, mientras que los miembros del equipo que se orientan hacia las operaciones aprenden más sobre las diferencias de los marcos de interfaz de usuario. De esta manera, la expansión del conjunto de habilidades ayuda a toda la organización de TI a tener éxito con los microservicios, ya que resulta más fácil crear nuevos equipos con miembros competentes, en lugar de buscar incesantemente especialistas para funciones muy específicas.

Comprenda la tecnología

A menos que usted se haga cargo del problema empresarial y de la cultura y el conjunto de habilidades de su equipo, no será capaz de implementar de manera efectiva la tecnología de microservicios, manteniendo los mismos procesos y estructuras.

El análisis adecuado de las pilas de tecnología existentes varía ampliamente entre las organizaciones, pero el enfoque simplificado que describimos ayuda a asegurar tanto el éxito inicial como el éxito a largo plazo en sus proyectos de microservicios. Empezar de a poco y definir éxitos iterativos y progresivos es un enfoque mucho más viable y efectivo que el pretencioso enfoque de transformar todo de una sola vez.

La primera etapa de la comprensión de su tecnología consiste en identificar los servicios generales de la aplicación monolítica existente.  La identificación de dichos servicios le ayudará a comprender la complejidad de las estructuras de datos, el nivel de acoplamiento entre los componentes existentes, los equipos responsables por los servicios, etc. Una correcta revisión de los servicios generales brinda una comprensión clara de los límites de datos, tanto dentro de un determinado servicio como en diversos servicios.

Una vez que usted haya identificado los servicios generales, deberá crear un plan que especifique cómo evolucionar de los servicios generales a los microservicios pormenorizados. Estos microservicios, que se basan en trabajo anterior, deben funcionar con datos similares, disponer de datos "propios" y comprender cuáles datos deben leer a partir de otros lugares o escribir en otros servicios. De este punto en adelante, usted podrá identificar e implementar la resiliencia, escalabilidad y agilidad de los microservicios pormenorizados individuales.

Las API y los microservicios son dos partes de un todo más amplio.  Una vez que comprenda mejor sus microservicios pormenorizados, también podrá comprender mejor sus interfaces, cuáles interfaces se encuentran en un camino crítico, cuáles interfaces son opcionales y cuáles interfaces ya no son necesarias.  Si usted no puede asignar una interfaz existente o API a uno de sus microservicios generales o pormenorizados, lo más probable es que pueda eliminarla.

Dimensionamiento del esfuerzo de microservicios

El difícil trabajo de comprender el negocio, la estructura del equipo y la tecnología asegura que sus equipos y la organización completa estén preparados para entender toda la evolución de los microservicios de cualquier aplicación monolítica, ya sea dentro del alcance de una prueba de concepto, de un piloto o de una evolución a gran escala.

Con todo el trabajo de análisis y planificación completo, el paso siguiente consiste en la definición de los plazos, velocidades de entrega y resultados esperados.

En la próxima entrada de blog, analizaremos los patrones de desarrollo y operaciones que usted puede aplicar al llevar a cabo una transformación de microservicios.

Qué hacer a continuación:

Kyle Brown


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=1051522
ArticleTitle=Desarrollo rápido de aplicaciones (parte 3): implementación de su proyecto de microservicios
publish-date=10272017