{"id":26852,"date":"2023-11-23T16:52:16","date_gmt":"2023-11-23T15:52:16","guid":{"rendered":"https:\/\/inlab.fib.upc.edu\/noticias\/clab-herramienta-de-optimizacion-basada-en-modelos-de-simulacion-y-pruebas-de-rendimiento-para-entornos-cloud\/2023\/"},"modified":"2023-12-21T11:46:45","modified_gmt":"2023-12-21T10:46:45","slug":"clab-herramienta-de-optimizacion-basada-en-modelos-de-simulacion-y-pruebas-de-rendimiento-para-entornos-cloud","status":"publish","type":"post","link":"https:\/\/inlab.fib.upc.edu\/es\/articulos\/clab-herramienta-de-optimizacion-basada-en-modelos-de-simulacion-y-pruebas-de-rendimiento-para-entornos-cloud","title":{"rendered":"CLab: Herramienta de optimizaci\u00f3n basada en modelos de simulaci\u00f3n y pruebas de rendimiento para entornos Cloud"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Suena el despertador. Lo paras. Poco a poco se activan todos los sentidos. Y entonces piensas. Piensas en aquella aplicaci\u00f3n web tan guapa que hiciste el d\u00eda anterior y que seguidamente desplegaste al entorno Cloud. Mientras te tomas el caf\u00e9 accedes al gestor del Cloud para ver como va todo, y te encuentras que en ni siquiera un d\u00eda llevas acumulados m\u00e1s de 100 euros para pagar. C\u00f3mo puede ser? Si cu\u00e1ndo&#8230; Ah, claro, que cuando lo configur\u00e9 todo le di todo a \u201csiguiente\u201d porque solo quer\u00eda ver si funcionaba\u2026 Que complicado todo esto del Cloud&#8230; Ojal\u00e1 existiera alguna herramienta que me dijera los recursos m\u00ednimos que necesito y poder pagar el m\u00ednimo\u2026<\/p>\n\n<p class=\"has-text-align-center wp-block-paragraph\"><img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/_3tNm0GIMlPXRBjUFydLHAFVMdvYGQUgjz77e3QgcXqX5NxkwQnL1s_Ee68lQbusZFewPsamCjJPxDy4w2Ba0Q5WjnE_kFne6smi_49f1AOHCvhZC6tTkFdbSF0t9S8nCDlc0oc9zJJ_tLpnYkKpR9w\" width=\"451\" height=\"314\"\/><\/p>\n\n<p class=\"wp-block-paragraph\">EXACTO! Si lo que buscas es no tener m\u00e1s dolores de cabeza en la hora de hacer despliegues, cambios de infraestructura, de proveedores y quieres pagar el m\u00ednimo teniendo un buen rendimiento y ninguna queja por parte de tus clientes y usuarios, CLab es tu soluci\u00f3n!<\/p>\n\n<p class=\"wp-block-paragraph\">CLab (nombre temporal, aceptamos propuestas!) es una herramienta\/modelo de optimizaci\u00f3n y simulaci\u00f3n de acontecimientos discretos desarrollada y de propiedad de la inLab FIB, que es capaz de simular cualquier en torno a cualquier aplicaci\u00f3n web o sistema en general, que se quiera desplegar a, de momento, 3 proveedores Cloud que son Amazon Web Services (AWS), Microsoft Azure y Google Cloud Platform (GCP). CLab est\u00e1 desarrollada con FlexSim y la forman los siguientes elementos:<\/p>\n\n<ul class=\"wp-block-list\">\n<li><em>Process Flow. Es el \u201ccerebro\u201d del modelo.<\/em><\/li>\n\n\n\n<li><em>Global Tables. Es donde se encuentran todos los datos de los diferentes proveedores Cloud, los datos de la aplicaci\u00f3n a simular, y otros datos sobre el proceso de simulaci\u00f3n.<\/em><\/li>\n\n\n\n<li><em>Performance Measure Tables. Es donde hay definidas las diferentes variables de decisi\u00f3n que toma la optimitzador en la hora de maximizar o minimizar las respectivas funciones objetivo. <\/em><\/li>\n\n\n\n<li><em>Dashboards. Conjunto de figuras y gr\u00e1ficos para ver diferentes m\u00e9tricas y resultados de la simulaci\u00f3n.<\/em><\/li>\n\n\n\n<li><em>Global Parameters. Listado de par\u00e1metros para configurar diferentes escenarios de simulaci\u00f3n.<\/em><\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\">De todos estos elementos, explicaremos un poco por sobre como hemos dise\u00f1ado el que es el \u201cn\u00facleo\u201d del modelo, es decir, el elemento <em>ProcessFlow<\/em>. En la siguiente imagen se puede observar su arquitectura:<\/p>\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" width=\"559\" height=\"671\" src=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2023\/11\/image-4.png\" alt=\"\" class=\"wp-image-26835\" srcset=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2023\/11\/image-4.png 559w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2023\/11\/image-4-250x300.png 250w\" sizes=\"(max-width: 559px) 100vw, 559px\" \/><\/figure>\n\n<p class=\"has-text-align-center wp-block-paragraph\"><em>Arquitectura del modelo<\/em><\/p>\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n<p class=\"wp-block-paragraph\">Antes que nada, se encuentra la generaci\u00f3n de los tokens. Cada token representa un usuario, y accede al sistema siguiendo una distribuci\u00f3n que var\u00eda seg\u00fan el tipo de usuario.<\/p>\n\n<p class=\"wp-block-paragraph\">El siguiente que se hace es que el usuario entre a la web\/sistema, y esto comporta una serie de recursos que se tienen que activar. Si esta activaci\u00f3n de los recursos supera el l\u00edmite que hemos definido a nuestro Cloud, entonces el usuario ir\u00e1 a parar a una cola de espera hasta que se liberen recursos. Para poner un ejemplo muy sencillo: acceder en una web para comprar entradas. Cuando la web detecta que el n\u00famero de usuarios es muy elevado, empezar a ponerlos en una cola de espera. En nuestro caso, esta situaci\u00f3n nos sirve para detectar el n\u00famero de usuarios que no pueden acceder, cu\u00e1nto tiempos se quedan esperando hasta que pueden acceder, y en definitiva, nos sirve para tener un valor sobre el rendimiento del sistema.<\/p>\n\n<p class=\"wp-block-paragraph\">Una vez el usuario ya ha podido acceder, el que hace el modelo es asignarle una tarea. Cada rol de usuario tiene definido un listado de tareas que puede realizar. Cada tarea tiene una probabilidad que el modelo tiene en cuenta para hacer la asignaci\u00f3n. Cuando el usuario realiza la tarea asignada, el modelo simula una serie de acontecimientos (colas, delays, consumo de recursos,&#8230;) que afectan el rendimiento del sistema.<\/p>\n\n<p class=\"wp-block-paragraph\">Finalmente, cuando el usuario acaba la tarea, puede volver a hacer otra o puede salir del sistema y acabar su recorrido, que viene a ser el mismo que pulsar la X al navegador para cerrarlo o para salir de la web.<\/p>\n\n<p class=\"wp-block-paragraph\">Todo esto est\u00e1 muy bien, pero&#8230; C\u00f3mo podemos optimizar el coste y el rendimiento? FlexSim incorpora una herramienta llamada \u201cOptimizer\u201d que dado una serie de datos, el modelo de simulaci\u00f3n, y el problema que se quiere optimizar, te devuelve un listado con las mejores soluciones. En nuestro caso, nosotros previamente hemos hecho una recogida de datos de cada proveedor Cloud que le pasamos como posibles escenarios. El modelo es el que tenemos hecho. Y por el problema a optimizar, basura un trade-off entre rendimiento y coste aplicando algunas t\u00e9cnicas de optimizaci\u00f3n multiobjetivo, puesto que, por un lado, nos interesa minimizar el coste, y por la otra maximizar el rendimiento.<\/p>\n\n<p class=\"wp-block-paragraph\">El mundo Cloud cada vez es m\u00e1s utilizado. Muchas empresas se encuentran con la necesidad de hacer la migraci\u00f3n de un entorno local a la nube. Hace unos 4-5 a\u00f1os que lo hizo la UPC con algunos de sus servicios como ahora el correo electr\u00f3nico, con el acuerdo que lleg\u00f3 con Google. Por lo tanto, es muy importante conocer bien el mercado y saber el que necesitamos, y desgraciadamente esto no es un proceso sencillo. Es por eso que creemos que CLab puede ser de mucha ayuda en este tipo de situaciones.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Suena el despertador. Lo paras. Poco a poco se activan todos los sentidos. Y entonces piensas. Piensas en aquella aplicaci\u00f3n web tan guapa que hiciste el d\u00eda anterior y que seguidamente desplegaste al entorno Cloud. Mientras te tomas el caf\u00e9 accedes al gestor del Cloud para ver como va todo, y te encuentras que en [&hellip;]<\/p>\n","protected":false},"author":1231,"featured_media":26834,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[496],"tags":[],"experteses":[],"class_list":["post-26852","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articulos"],"acf":[],"_links":{"self":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts\/26852","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/users\/1231"}],"replies":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/comments?post=26852"}],"version-history":[{"count":1,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts\/26852\/revisions"}],"predecessor-version":[{"id":26853,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts\/26852\/revisions\/26853"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/media\/26834"}],"wp:attachment":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/media?parent=26852"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/categories?post=26852"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/tags?post=26852"},{"taxonomy":"experteses","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/experteses?post=26852"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}