{"id":1388,"date":"2024-08-03T15:06:10","date_gmt":"2024-08-03T20:06:10","guid":{"rendered":"https:\/\/zidrave.net\/?p=1388"},"modified":"2024-08-03T15:18:38","modified_gmt":"2024-08-03T20:18:38","slug":"soportando-1-millon-de-checkboxes-en-una-web-no-es-facil-pero-se-aprenden-cosas","status":"publish","type":"post","link":"https:\/\/zidrave.net\/index.php\/2024\/08\/03\/soportando-1-millon-de-checkboxes-en-una-web-no-es-facil-pero-se-aprenden-cosas\/","title":{"rendered":"Soportando 1 millon de checkboxes en una web, No es facil pero se aprenden cosas"},"content":{"rendered":"\n<p>Este art\u00edculo trata sobre c\u00f3mo se escal\u00f3 un sitio web llamado One Million Checkboxes (OMCB) para manejar 650 millones de clicks marcados. El sitio web fue inicialmente muy popular, lo que provoc\u00f3 que se estrellara. El autor implement\u00f3 varias estrategias para escalar el sitio web, incluyendo agregar m\u00e1s servidores, usar Redis para almacenar el estado del sitio web y limitar la cantidad de datos que se enviaban a los clientes. El sitio web finalmente se cerr\u00f3, pero el autor aprendi\u00f3 mucho sobre c\u00f3mo escalar sitios web de manera efectiva.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/zidrave.net\/wp-content\/uploads\/2024\/08\/QHnR7x7PP86Fg6RNMU77p9-1-1024x576.jpg\" alt=\"\" class=\"wp-image-1390\" srcset=\"https:\/\/zidrave.net\/wp-content\/uploads\/2024\/08\/QHnR7x7PP86Fg6RNMU77p9-1-1024x576.jpg 1024w, https:\/\/zidrave.net\/wp-content\/uploads\/2024\/08\/QHnR7x7PP86Fg6RNMU77p9-1-300x169.jpg 300w, https:\/\/zidrave.net\/wp-content\/uploads\/2024\/08\/QHnR7x7PP86Fg6RNMU77p9-1-768x432.jpg 768w, https:\/\/zidrave.net\/wp-content\/uploads\/2024\/08\/QHnR7x7PP86Fg6RNMU77p9-1-1536x864.jpg 1536w, https:\/\/zidrave.net\/wp-content\/uploads\/2024\/08\/QHnR7x7PP86Fg6RNMU77p9-1-1920x1080.jpg 1920w, https:\/\/zidrave.net\/wp-content\/uploads\/2024\/08\/QHnR7x7PP86Fg6RNMU77p9-1.jpg 2000w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>Algunos de los puntos clave del art\u00edculo son:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Es importante establecer l\u00edmites de costos al escalar un sitio web.<\/li>\n\n\n\n<li>Es mejor usar soluciones simples y autohospedadas si es posible.<\/li>\n\n\n\n<li>Es importante estar dispuesto a adaptar y cambiar el sitio web a medida que crece.<\/li>\n<\/ul>\n\n\n\n<p><strong>Este art\u00edculo es \u00fatil para cualquier persona interesada en aprender sobre c\u00f3mo escalar sitios web.<\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Tecnolog\u00edas usadas<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Cliente:<\/strong> HTML, Javascript, React<\/li>\n\n\n\n<li><strong>Servidor:<\/strong> Nginx, Flask, Redis<\/li>\n\n\n\n<li><strong>Base de datos:<\/strong> Redis<\/li>\n\n\n\n<li><strong>Herramientas:<\/strong> tc<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Aprendizajes<\/h2>\n\n\n\n<p>El art\u00edculo ofrece varias lecciones sobre el dise\u00f1o y la implementaci\u00f3n de sitios web a gran escala:<\/p>\n\n\n\n<p><strong>Equilibrio entre escalabilidad y simplicidad:<\/strong> Es importante encontrar un equilibrio entre la escalabilidad y la simplicidad del dise\u00f1o. En este caso, el autor del art\u00edculo opt\u00f3 por un dise\u00f1o relativamente simple que pod\u00eda implementarse r\u00e1pidamente, pero que tambi\u00e9n era lo suficientemente escalable para manejar la carga de tr\u00e1fico del sitio web.tar preparado para cambiar el sitio web a medida que crece y cambia el comportamiento de los usuarios.<\/p>\n\n\n\n<p><strong>Arquitectura escalable:<\/strong> Es importante dise\u00f1ar una arquitectura que pueda manejar un gran n\u00famero de usuarios y solicitudes. En este caso, se utiliz\u00f3 una arquitectura de microservicios con Nginx como proxy inverso, Flask para manejar las solicitudes de los clientes y Redis para almacenar el estado de las casillas marcadas.<\/p>\n\n\n\n<p><strong>Optimizaci\u00f3n del rendimiento:<\/strong> Es fundamental optimizar el rendimiento del sitio web para que pueda manejar la carga de tr\u00e1fico. En este caso, se implementaron varias t\u00e9cnicas de optimizaci\u00f3n, como la reducci\u00f3n del tama\u00f1o de los mensajes enviados a los clientes y el uso de l\u00edmites de velocidad.<\/p>\n\n\n\n<p><strong>Monitoreo y resoluci\u00f3n de problemas:<\/strong> Es importante monitorear el rendimiento del sitio web y estar preparado para resolver problemas que puedan surgir. En este caso, el autor del art\u00edculo utiliz\u00f3 herramientas como ip -s link show dev eth0 para monitorear el uso del ancho de banda y tc para limitar la cantidad de datos que se pod\u00edan enviar por segundo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusi\u00f3n<\/h2>\n\n\n\n<p>Este art\u00edculo es un recurso valioso para cualquier persona interesada en aprender sobre c\u00f3mo escalar sitios web. El autor comparte su experiencia y conocimientos de una manera clara y concisa. El art\u00edculo tambi\u00e9n incluye informaci\u00f3n sobre estrategias espec\u00edficas que se pueden utilizar para escalar un sitio web de manera efectiva.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ver el articulo en cuesti\u00f3n en: <\/h2>\n\n\n\n<p><a href=\"https:\/\/eieio.games\/essays\/scaling-one-million-checkboxes\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>https:\/\/eieio.games\/essays\/scaling-one-million-checkboxes<\/strong><\/a><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>T\u00edtulos alternativos para este tema:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>De cero a un mill\u00f3n: La construcci\u00f3n y optimizaci\u00f3n de un contador de clicks a escala<\/strong><\/li>\n\n\n\n<li><strong>Escalando a la velocidad de la luz: Optimizando un sitio web con millones de interacciones<\/strong><\/li>\n\n\n\n<li><strong>Redis, Flask y Nginx: El tr\u00edo que hizo posible un mill\u00f3n de checkboxes<\/strong><\/li>\n\n\n\n<li><strong>Bajo el cap\u00f3 de un contador viral: Desvelando la arquitectura de One Million Checkboxes<\/strong><\/li>\n\n\n\n<li><strong>Hacking la web: C\u00f3mo construir un sitio web de alta concurrencia desde cero<\/strong><\/li>\n\n\n\n<li><strong>Lecciones aprendidas escalando un sitio web viral: Un caso de estudio<\/strong><\/li>\n\n\n\n<li><strong>El costo de la popularidad: C\u00f3mo manejar el crecimiento exponencial de un sitio web<\/strong><\/li>\n\n\n\n<li><strong>De la idea al colapso y la recuperaci\u00f3n: La historia de One Million Checkboxes<\/strong><\/li>\n\n\n\n<li><strong>Millones de clicks, miles de problemas: Superando los desaf\u00edos de la escalabilidad<\/strong><\/li>\n\n\n\n<li><strong>M\u00e1s all\u00e1 de los l\u00edmites: Empujando los l\u00edmites de lo que es posible con tecnolog\u00edas web<\/strong><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Este art\u00edculo trata sobre c\u00f3mo se escal\u00f3 un sitio web<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[2375,2380,2379],"tags":[2447,3057,3058,3060,3054,141,1320,3051,3055,3056,2102,3053,3049,3050,1780,3059,3052,1775,1401,2905],"class_list":["post-1388","post","type-post","status-publish","format-standard","hentry","category-internet","category-noticias","category-software","tag-arquitectura","tag-carga","tag-casillas-de-verificacion","tag-concurrencia","tag-contador","tag-desarrollo-web","tag-escalabilidad","tag-flask","tag-html","tag-javascript","tag-lecciones-aprendidas","tag-microservicios","tag-millones-de-usuarios","tag-nginx","tag-optimizacion","tag-react","tag-redis","tag-rendimiento","tag-sitio-web","tag-viral"],"_links":{"self":[{"href":"https:\/\/zidrave.net\/index.php\/wp-json\/wp\/v2\/posts\/1388","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zidrave.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zidrave.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zidrave.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zidrave.net\/index.php\/wp-json\/wp\/v2\/comments?post=1388"}],"version-history":[{"count":2,"href":"https:\/\/zidrave.net\/index.php\/wp-json\/wp\/v2\/posts\/1388\/revisions"}],"predecessor-version":[{"id":1392,"href":"https:\/\/zidrave.net\/index.php\/wp-json\/wp\/v2\/posts\/1388\/revisions\/1392"}],"wp:attachment":[{"href":"https:\/\/zidrave.net\/index.php\/wp-json\/wp\/v2\/media?parent=1388"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zidrave.net\/index.php\/wp-json\/wp\/v2\/categories?post=1388"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zidrave.net\/index.php\/wp-json\/wp\/v2\/tags?post=1388"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}