Patrones Cloud: Intro

Aprovechando esa arrancada que ha tenido Cecilio sobre patrones, voy a aportar mi granito de arena ya que leer, escribir, hablar sobre patrones siempre es algo divertido e interesante.

Cecilio no llega a dar una definición, y aunque debería de estar claro con la catalogación y los ejemplos que él ha puesto, pongámosle nombre a las cosas para los que no lo tengáis claro aun: “patrones” es como se llama a las formas de resolver problemas que se repiten. Por ejemplo para un ingeniero de obras públicas que está construyendo una carretera habrá un patrón “puente” que puede usar cuando se encuentra cosas como ríos, vías de tren y otras carreteras, y habrá otro patrón túnel que se emplea casi siempre cuando se encuentra montañas, pero que también se puede usar en otros casos.

Patrones: túnel

Oresund Line, es un puente/túnel entre Dinamarca y Suecia

En el caso de la informática es exactamente lo mismo. Hay problemas que se repiten con más o menos asiduidad y que mucha gente ya ha resuelto. Alguna de esa gente al ver que se repetía cierto problema lo ha documentado para que el siguiente que se lo encuentre no tenga que perder tiempo, ni cometer errores para llegar a la solución óptima.

Por seguir su trabajo podría hablaros sobre alguno de los patrones catalogados en la Wikipedia o en cualquier otro repositorio y luego poner un ejemplo básico, pero ya sabéis que a mi me gusta hacer las cosas a mi modo, así que vamos a partir de un ejemplo básico y veremos patrones que se emplean habitualmente (en la Nube™ especialmente).

Hay que tener en cuenta que los patrones son como la mantequilla, está bien saber que está ahí y para que la puedes usar, pero si la usas para todo acabas muerto o muy gordo. Con los patrones pasa igual y no hay que sobrediseñar, hay que ir aplicando soluciones a medida que nos vamos encontrando problemas y no antes.

Vamos a imaginarnos un bonito servicio web que convierte texto a imagen, que llamaremos Infinitext en memoria del difunto Infinitweet que hice en su día y moló tanto aunque muriese tan joven.

Es un servicio que recibe unas credenciales (un token de OAuth 2) y un texto y devuelve una url en la que encontrar el texto convertido a imagen.

Cuando recibe una llamada accede a una base de datos relacional y trae los datos relacionados con el token y verifica si es válido, si no está caducado y si cumple con las políticas. Si todo está bien genera la imagen, la publica y devuelve la url.

Resulta que el servicio lo empieza a usar alguno más a parte de nuestros amigos, y estos usuarios que no te conocen son exigentes y se quejan de que el servicio tarda mucho en responder a cada llamada. Analizando los datos analíticos que tenemos vemos que hay dos operaciones que tardan de manera notable: una es la conversión de texto a imagen que a priori al ser algo que hace una librería de terceros no podremos mejorar; la otra parte donde el servicio tarda mucho es en la petición a la base de datos.

La query que le tiramos a la BBDD es muy complicada porque es una base datos legacy que cuando se montó estaba pensada para otra cosa y mirando el plan de ejecución no hay por dónde meterle mano. También vemos que lo que se trae de la base de datos es muy poquita información y que al final tampoco tenemos tantos usuarios aun.

¿Cómo podemos mejorar? Hay muchas soluciones, pero hay una que se aplica especialmente en estos casos y que veremos la semana que viene, id dándole vueltas hasta entonces 😉

Post By Javi López (27 Posts)

Arquitecto/desarrollador, creativo, buscador de nuevas soluciones y modelos de negocio, crítico constructivo y ex muchas cosas

Website: → JaviLopezG

Connect

, ,

Trackbacks/Pingbacks

  1. Patrones Cloud: Intro – JaviLopezG - 8 marzo, 2016

    […] Seguir leyendo en CantabriaTIC. […]

  2. Patrones Cloud: Caché - Cantabria TIC - 15 marzo, 2016

    […] recordáis mi último post, planteamos un problema: teníamos un servicio en una máquina que tardaba mucho, entre otras […]

  3. Patrones Cloud: Caché – JaviLopezG - 15 marzo, 2016

    […] recordáis mi último post (en CantabriaTIC), planteamos un problema: teníamos un servicio en una máquina que tardaba […]

  4. Patrones cloud: Particionado - Cantabria TIC - 22 marzo, 2016

    […] con esa serie que ya lleva una y dos entregas de soluciones de común aplicación en cualquier entorno pero especialmente en los […]

  5. Patrones cloud: Particionado – JaviLopezG - 22 marzo, 2016

    […] con esa serie que ya lleva una y dos entregas de soluciones de común aplicación en cualquier entorno pero especialmente en los […]

  6. Patrones cloud: Tablas Hash - Cantabria TIC - 5 abril, 2016

    […] esta serie ya hemos hablado de las cachés, del particionado, y hoy vamos a hablar de las tablas […]

  7. Patrones cloud: Tablas Hash – JaviLopezG - 5 abril, 2016

    […] esta serie ya hemos hablado de las cachés, del particionado, y hoy vamos a hablar de las tablas […]

  8. Patrones cloud: Protocolos Gossip - Cantabria TIC - 12 abril, 2016

    […] los protocolos gossip vamos a dar por interrumpida esta serie, en la que hemos hablado de cachés, de particionado y de tablas hash siempre en torno a un […]

  9. Patrones cloud: protocolos gossip – JaviLopezG - 12 abril, 2016

    […] los protocolos gossip vamos a dar por interrumpida esta serie, en la que hemos hablado de cachés, de particionado y de tablas hash siempre en torno a un […]

Deja un comentario

Leave your opinion here. Please be nice. Your Email address will be kept private.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies
Translate »