Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

Arquitecturas de microservicios: intentando no ...

Arquitecturas de microservicios: intentando no morir en el intento

La implantación de soluciones de arquitectura basadas en microservicios se ha extendido de forma imparable.
Grandes empresas como *Netflix* o *Amazon* abanderan estas arquitecturas como la solución a sus enormes sistemas, convirtiéndose en la referencia para miles de empresas que anhelan las capacidades que estos dos gigantes demuestran.

¿En qué momento implementar esta maravilla tecnológica puede llegar a hundir tu negocio? ¿cómo las capacidades de escalabilidad o resiliencia de estas arquitecturas pueden llegar a ser contraproducentes?

En esta charla vamos a hablar sobre análisis, definición y diseño de una arquitectura de microservicios. Intentaremos trocear un monolito a través patrón de estrangulamiento y analizar sus consecuencias.

Avatar for Alberto Grande

Alberto Grande

November 22, 2019
Tweet

More Decks by Alberto Grande

Other Decks in Technology

Transcript

  1. ¿Qué son los microservicios? “Microservices is a software architecture style,

    in which complex applications are composed of small, independent processes communicating with each other using language-agnostic APIs. These services are small, highly decoupled and focus on doing a small task.”
  2. Si tu única herramienta es un martillo, tiendes a tratar

    cada problema como si fuera un clavo Abraham H. Maslow Psicólogo estadounidense ‘ ‘
  3. Punto de partida Europe North America Asia Equity 15% 10%

    5% Bonds 0% 0% 20% Funds 10% 20% 20% Google 15% Boeing 35% Cisco 10% Nike 40%
  4. Punto de partida Datos Negocio Vista La madre de todos

    los Oracle Datos Negocio Vista Balanceador Sticky session
  5. Diseño de la arquitectura - Definición de los dominios Instruments

    Positions Portfolios Proposals Prices Volatilities Correlations
  6. Diseño de la arquitectura - Definición de los dominios Positions

    Portfolios Proposals Clients Users Instruments Prices Volatilities Correlations
  7. Diseño de la arquitectura - Definición de los dominios Positions

    Portfolios Proposals Clients Strategies Restrictions Users Instruments Prices Volatilities Correlations
  8. Diseño de la arquitectura - Definición de los dominios Positions

    Portfolios Proposals Clients Model_positions Model_portfolios Asset_allocs Strategies Restrictions Users Instruments Prices Volatilities Correlations
  9. Diseño de la arquitectura - Definición de los dominios Instruments

    Prices Volatilities Correlations Positions Portfolios Proposals Clients Model_positions Model_portfolios Asset_allocs Strategies Restrictions Reports Notifications Users
  10. Patrón estrangulamiento Instruments Prices Volatilities Correlations Positions Portfolios Proposals Clients

    Model_positions Model_portfolios Asset_allocs Strategies Restrictions Reports Notifications Users
  11. Patrón estrangulamiento Instruments Prices Volatilities Correlations Positions Portfolios Proposals Clients

    Model_positions Model_portfolios Asset_allocs Strategies Restrictions Reports Notifications
  12. Patrón estrangulamiento Cálculo de volatilidades? • El servicio llama a

    la API de prices, para obtener el histórico de precios de un instrumento • El servicio calcula y almacena en su base de datos • Salto al siguiente instrumento Users Datos Negocio Vista Prices La madre de todos los Oracle
  13. Patrón estrangulamiento Cálculo de correlaciones? • El servicio llama a

    la API de prices, para obtener el histórico de precios del instrumento 1 • El servicio llama a la API de prices, para obtener el histórico de precios del instrumento 2a • El servicio calcula y almacena en su base de datos • El servicio llama a la API de prices, para obtener el histórico de precios del instrumento 2b • ... Users Datos Negocio Vista Prices La madre de todos los Oracle
  14. Patrón estrangulamiento Instruments Prices Volatilities Correlations Positions Portfolios Proposals Clients

    Model_positions Model_portfolios Asset_allocs Strategies Restrictions Reports Notifications ¿Por qué hemos fallado? Nos hemos centrado únicamente en el modelo de datos, sin darle sentido al uso que se le está dando.
  15. Patrón estrangulamiento Users Datos Negocio Vista Prices Volatilities Correlations Cálculo

    de volatilidades? • El servicio llama a la API de prices, para obtener el histórico de precios de un instrumento • El servicio calcula • El servicio llama a la API de volatilities para almacenar el dato • Salto al siguiente instrumento La madre de todos los Oracle
  16. Patrón estrangulamiento Users Datos Negocio Vista Prices Volatilities Correlations Cálculo

    de volatilidades? • El servicio de forma paralela, con un paralelismos de X llama a la API de prices, para obtener el histórico de precios de un instrumento • El servicio calcula • El servicio llama a la API de volatilities para almacenar el dato • Salto al siguiente instrumento La madre de todos los Oracle
  17. Patrón estrangulamiento Users Datos Negocio Vista Prices Volatilities Correlations Cálculo

    de volatilidades? • “Algo” invoca de forma paralela a la API calculator que de forma paralela inicie los cálculos • El servicio calculator llama a la API de prices, para obtener el histórico de precios de un instrumento • ... Calculator La madre de todos los Oracle
  18. Patrón estrangulamiento Users Datos Negocio Vista Prices Volatilities Correlations Cálculo

    de volatilidades? • “Algo” invoca de forma paralela a la API calculator que de forma paralela inicie los cálculos • El servicio calculator llama a la API de prices, para obtener el histórico de precios de un instrumento • ... Calculator ¿PUNTOS CRÍTICOS? La madre de todos los Oracle
  19. Patrón estrangulamiento Users Datos Negocio Vista Prices Volatilities Correlations Cálculo

    de volatilidades? • “Algo” invoca de forma paralela a la API calculator que de forma paralela inicie los cálculos • El servicio calculator llama a la API de prices, para obtener el histórico de precios de un instrumento • ... Calculator ¿PUNTOS CRÍTICOS? : Debemos compensar las latencias a base de paralelismo La madre de todos los Oracle
  20. Patrón estrangulamiento Users Datos Negocio Vista Prices Volatilities Correlations Cálculo

    de volatilidades? • “Algo” invoca de forma paralela a la API calculator que de forma paralela inicie los cálculos • El servicio calculator llama a la API de prices, para obtener el histórico de precios de un instrumento • ... Calculator ¿PUNTOS CRÍTICOS? : La BD del servicio Prices, “rinde como la madre de todos los Oracles”? La madre de todos los Oracle
  21. Patrón estrangulamiento Users Datos Negocio Vista Prices Volatilities Correlations Cálculo

    de volatilidades? • “Algo” invoca de forma paralela a la API calculator que de forma paralela inicie los cálculos • El servicio calculator llama a la API de prices, para obtener el histórico de precios de un instrumento • ... Calculator ¿PUNTOS CRÍTICOS? : ¿Y si pensamos en la correlaciones? La madre de todos los Oracle
  22. Patrón estrangulamiento Instruments Prices Volatilities Correlations Positions Portfolios Proposals Clients

    Model_positions Model_portfolios Asset_allocs Strategies Restrictions Reports Notifications
  23. Patrón estrangulamiento Instruments Prices Volatilities Correlations Positions Portfolios Proposals Clients

    Model_positions Model_portfolios Asset_allocs Strategies Restrictions Reports Notifications
  24. Patrón estrangulamiento Users Datos Negocio Vista Prices y asociados La

    madre de todos los Oracle Cálculo de volatilidades? • “Algo” invoca de forma paralela a la API ‘prices y asociados’ • ‘Prices y asociados’ debe contener la lógica para el cálculo además del acceso a datos • ...
  25. Patrón estrangulamiento Users Datos Negocio Vista Prices y asociados La

    madre de todos los Oracle Cálculo de volatilidades? • “Algo” invoca de forma paralela a la API ‘prices y asociados’ • ‘Prices y asociados’ debe contener la lógica para el cálculo además del acceso a datos • ... ¿PUNTOS CRÍTICOS? : La BD del servicio Prices y asociados, “rinde como la madre de todos los Oracles”?
  26. Punto de partida Datos Negocio Vista La madre de todos

    los Oracle Datos Negocio Vista Balanceador
  27. Punto de partida Datos Negocio Vista La madre de todos

    los Oracle Datos Negocio Vista Balanceador
  28. Punto de partida Datos Negocio Vista La madre de todos

    los Oracle Datos Negocio Vista Balanceador
  29. Punto de partida Datos Negocio Vista La madre de todos

    los Oracle Datos Negocio Vista Balanceador • • • •
  30. Patrón estrangulamiento Instruments Prices Volatilities Correlations Positions Portfolios Proposals Clients

    Model_positions Model_portfolios Asset_allocs Strategies Restrictions Reports Notifications Users
  31. Patrón estrangulamiento Datos Negocio Vista Prices y asociados La madre

    de todos los Oracle Los precios se ingestan desde los datos del broker y se cachean El último precio proporcionado por el broker será el precio de cierre de mercado Los servicios de negocio pedirán ‘Prices y asociados’ el precio en tiempo real cuando haga falta, manteniendo los cálculos con precio de cierre
  32. Punto de partida Datos Negocio Vista La madre de todos

    los Oracle Datos Negocio Vista Balanceador
  33. Patrón estrangulamiento Instruments Prices Volatilities Correlations Positions Portfolios Proposals Clients

    Model_positions Model_portfolios Asset_allocs Strategies Restrictions Reports Notifications Users
  34. Punto de partida Datos Negocio Vista La madre de todos

    los Oracle Datos Negocio Vista Balanceador
  35. Punto de partida Datos Negocio Vista La madre de todos

    los Oracle … Datos Negocio Vista Balanceador
  36. Acceso a datos - Definición de los dominios Instruments Prices

    Volatilities Correlations Positions Portfolios Proposals Clients Model_positions Model_portfolios Asset_allocs Strategies Restrictions Reports Notifications Users
  37. Acceso a datos - Definición de los dominios Instruments Prices

    Volatilities Correlations Positions Portfolios Proposals Clients Model_positions Model_portfolios Asset_allocs Strategies Restrictions Reports Notifications Users RT_Prices
  38. Acceso a datos - Definición de los dominios Instruments Prices

    Volatilities Correlations Positions Portfolios Proposals Model_positions Model_portfolios Asset_allocs Strategies Reports Notifications RT_Prices Clients Restrictions Users Información básica de cliente, principalmente de lectura. Acceso muy esporádico, no contiene información necesaria para el estado inicial del cliente.
  39. Acceso a datos - Definición de los dominios Prices Volatilities

    Correlations Positions Portfolios Proposals Model_positions Model_portfolios Asset_allocs Strategies Reports Notifications Clients Restrictions Users Instruments RT_Prices La información de instrumentos es, en principio, muy poco cambiante. Por lo general, junto con el precio se suele necesitar obtener el precio para poder realizar las evaluaciones
  40. Acceso a datos - Definición de los dominios Positions Portfolios

    Proposals Model_positions Model_portfolios Asset_allocs Strategies Reports Notifications Clients Restrictions Users Instruments RT_Prices Prices Volatilities Correlations La información d-1 y el histórico se utiliza principalmente para el análisis avanzado de las carteras (VaR, simulaciones…). No contiene información necesaria para el estado inicial del cliente
  41. Acceso a datos - Definición de los dominios Model_positions Model_portfolios

    Asset_allocs Strategies Reports Notifications Clients Restrictions Users Instruments RT_Prices Prices Volatilities Correlations Positions Portfolios Proposals Es el centro de la información útil del cliente. Las carteras y propuestas en un único dominio permite obtener una lista de posiciones sobre las que consultar de forma agrupada el conjunto de instrumentos asociados
  42. Acceso a datos - Definición de los dominios Reports Notifications

    Clients Restrictions Users Instruments RT_Prices Prices Volatilities Correlations Positions Portfolios Proposals Model_positions Model_portfolios Asset_allocs Strategies Útil / necesaria cuando se aplica sobre las carteras / propuestas del usuario Si un cliente tiene una cartera, basada en la cartera modelo, los instrumentos coincidirán pudiendo variar los porcentajes de la composición.
  43. Acceso a datos - Definición de los dominios Instruments Prices

    Volatilities Correlations Positions Portfolios Proposals Clients Model_positions Model_portfolios Asset_allocs Strategies Restrictions Reports Notifications Users RT_Prices
  44. Conclusiones Instruments Prices Volatilities Correlations Positions Portfolios Proposals Clients Model_positions

    Model_portfolios Asset_allocs Strategies Restrictions Reports Notifications Users RT_Prices Sender Sender Sender Procesador Receptor
  45. 79