Contenido


Desarrollo rápido de aplicaciones (parte 1): visión general de los microservicios

Comments

Tabla de contenidos

Introducción
Movilidad y ubicación en la experiencia del usuario
Comience a partir de su situación actual
Cómo hacer las preguntas correctas
Qué hacer a continuación

Este es el primer artículo de una serie de 6 partes sobre cómo hacer que su equipo avance hacia la mejor decisión de adopción de plataforma de nube a largo plazo.

Como la adopción de una plataforma de nube supone un compromiso significativo e implica la confirmación asociada al trabajo anterior en uno o más productos viables mínimos, el principal objetivo de esta serie es ayudarle a avanzar a la etapa de definir un proyecto piloto basado en la nube adecuado para su equipo.

He aquí un resumen de los temas abordados en esta serie:

Movilidad y ubicación en la experiencia del usuario

Desde o final do ano passado, uma maioria global agora acessa a Internet principalmente por meio de um dispositivo móvel.

Desde finales del año pasado, la mayoría de las personas en todo el mundo tienen acceso a Internet a través de dispositivos móviles.

Se suelen destacar las implicaciones empresariales de esta tendencia mediante historias aleccionadoras sobre cómo Uber y Airbnb provocaron con éxito una disrupción en sus respectivos mercados. Se ha hecho saber a las empresas ya establecidas de todos los mercados que pronto sus clientes tendrán a su disposición experiencias de usuario cada vez más innovadoras, lo cual cambiará sus expectativas. La exigencia de innovar rápidamente en el ámbito de la relación con el cliente por medio de aplicaciones móviles se ha convertido en un lugar común de la planificación empresarial.

Sin embargo, no basta con priorizar la movilidad: puede que sus clientes toleren durante algún tiempo una buena versión móvil de su sitio web existente, pero usted debe preguntarse durante cuánto tiempo podrán seguir esperando funciones que mejoren sus vidas cotidianas de manera contextualizada. En caso de que la implementación de sus ideas tome meses (como suele ocurrir con las aplicaciones monolíticas que exigen un trabajo coordinado entre varios equipos distintos), su innovación podría convertirse fácilmente en una copia de otras ofertas. Siempre habrá un competidor más ágil tratando de hacer que su empresa pierda a sus clientes.

Es incómodamente evidente que los equipos de desarrollo necesitan acelerar la manera de entregar nuevos beneficios a los usuarios. Como nadie es capaz de predecir completamente el comportamiento de los usuarios, incluso el programa de DevOps más rápido y efectivo debe estar preparado para eventuales fracasos en el ámbito de la experiencia real del cliente. La capacidad de rediseñar, reemplazar y mejorar rápidamente partes de la experiencia del usuario es una prioridad absoluta y se basa en el análisis de datos de uso claros.

Es por eso que el modelo de microservicios para el desarrollo de aplicaciones basadas en la nube es tan poderoso. Este modelo permite que un pequeño equipo específico controle el ciclo completo (concepto, desarrollo, implementación, supervisión) de cada componente de la aplicación, brindando la flexibilidad necesaria para iterar de manera exacta las partes de la experiencia del usuario que presentan un rendimiento deficiente, como se refleja en los datos recopilados al supervisar el comportamiento de los usuarios. De esta manera, el proceso de DevOps se convierte en una interacción dinámica, casi una conversación con los usuarios en su contexto.

Comience a partir de su situación actual

Fallas e iteraciones rápidas: estos son los requisitos de DevOps para una entrega de aplicaciones competitiva en la era de los servicios móviles. Esto implica contar con arquitecturas de aplicación que separan los diversos servicios en un ciclo continuo de desarrollo y entrega, asegurando a la vez interacciones de alto rendimiento con los usuarios.

Mientras que startups disponen de la ventaja de poder desarrollar aplicaciones nativas para la nube desde cero (utilizando un enfoque de microservicios, así como herramientas y prácticas de DevOps), las compañías ya establecidas en el mercado con frecuencia necesitan realizar una refactorización de sus aplicaciones monolíticas existentes.

Analicemos un ejemplo específico.

En este caso, una empresa de comercio minorista en línea deseaba transformar una aplicación monolítica en microservicios para obtener más información sobre sus clientes y poder actualizar e introducir rápidamente nuevas funciones.

Como la navegación por el catálogo en línea presentaba problemas empresariales urgentes por resolver, la transformación de toda la aplicación comenzó como se describe a continuación:

Tarea piloto: determinar e implementar una forma mejor de manejar el catálogo

La aplicación existente no era capaz de ayudar a los clientes a encontrar con facilidad la información sobre los productos e impedía que la empresa presentara datos a otros sitios.

Como prueba de concepto del enfoque de microservicios, el equipo desarrolló un microservicio único para el catálogo empresarial siguiendo estos pasos:

  • Establecer un nuevo modelo continuo de desarrollo de integración/continuación para realizar el trabajo.
  • Importar los datos a una búsqueda elástica para obtener nuevas maneras de buscar datos e identificar nuevos datos.
  • Vincular el sitio web existente a la nueva búsqueda.

En este momento, el catálogo continuaba integrado con los componentes de pedido existentes, que ejecutaban una lógica empresarial básica y eran demasiado complejos como para poder separarse sin trabajo adicional. Sin embargo, con un piloto exitoso, el equipo quedó convencido del valor de los microservicios y decidió expandir el ámbito de la transformación de la aplicación.

Tarea 2: obtener más información sobre el cliente

Para obtener más información sobre el cliente, el equipo creó un microservicio de cuenta determinando una manera de hacer que el negocio se centrara en los clientes, no en el inventario.

Cuando se estableció que la experiencia del cliente podría mejorar a lo largo del tiempo con base en análisis de datos, marketing y datos cognitivos, se hizo evidente la opción de utilizar una base de datos no estructurada. Por lo tanto, el equipo diseñó un nuevo modelo de cliente y adoptó una base de datos NOSQL (como Mongo DB o Cloudant) para gestionar los datos sin estructurar.

Tarea 3: innovar la experiencia del usuario

El equipo desarrolló una nueva aplicación móvil nativa y creó un nuevo frontend para el acceso web y móvil. Aunque el catálogo depende del código de pedido heredado, la experiencia general del usuario mejoró significativamente:

Tarea 4: actualizar el acceso al microservicio de pedido

El equipo creó nuevas API de pedido para dispositivos móviles y las integró a las transacciones existentes. La compañía decidió crear un microservicio de adaptador que se conecta al sistema de pedido existente del registro en las instalaciones. Además, se utilizó el adaptador para posibilitar la integración con nuevos métodos y sistemas de pago.

Próxima tarea: crear una nueva función de subasta

En el ámbito de la nueva arquitectura flexible, el equipo pretende agregar esta innovación a los próximos sprints.

Cómo hacer las preguntas correctas

Al pensar sobre el ejemplo presentado, tome en cuenta estas preguntas:

  • ¿Qué esperan sus clientes ahora y para el futuro?
  • ¿Los usuarios de dispositivos móviles están satisfechos con la experiencia que proporcionan sus aplicaciones?
  • En lo que respecta a la entrega de lo que los usuarios desean, ¿cómo los procesos y prácticas de DevOps de su organización de TI resultan útiles o perjudiciales?
  • Considerando sus obstáculos a DevOps y suponiendo que su compañía cuenta con una aplicación monolítica que se debe modernizar, ¿sabe usted exactamente por dónde empezar?
  • ¿Qué experimentos con plataformas de nube deberían realizar los miembros individuales de su equipo de desarrollo de aplicaciones?
  • ¿Qué piloto se podría utilizar para evaluar un enfoque de microservicios y las plataformas de nube para su implementación?

La próxima entrada de esta serie analizará de manera más detallada el diseño de la arquitectura de una aplicación en un modelo de microservicios.

Qué hacer a continuación:

[Roland Barcia (ingeniero distinguido de IBM/CTO) y Kyle Brown (ingeniero distinguido de IBM/CTO) colaboraron con Rick en esta entrada de blog.–Ed.]

Rick Osowski
Arquitecto principal de solución


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=1051516
ArticleTitle=Desarrollo rápido de aplicaciones (parte 1): visión general de los microservicios
publish-date=07102017