Francisco Rojas
August 7, 2022

Cómo iniciarte en el diseño de sistemas: los 4 conceptos básicos que debes dominar- Parte 1

Posted on August 7, 2022  (Last modified on April 18, 2023 )
2 minutes  • 304 words

Si estás leyendo esto, probablemente estás interesado en aprender más sobre los conceptos básicos de diseño de sistemas y cómo prepararte para el mundo laboral. Sé que puede ser intimidante pensar en lo que las empresas esperan de ti, especialmente si estás recién empezando, pero no te preocupes, ¡todos hemos estado ahí!

Mi primer consejo es que comiences por la escalabilidad. Si entiendes este concepto, estarás en el buen camino para dominar los cuatro conceptos fundamentales: clones, bases de datos, caché y asincronismo.

Permíteme profundizar en el primer concepto: Clones o instancias. Cuando un sistema es escalable, los servidores están detrás de un balanceador de carga que distribuye las peticiones de manera uniforme entre ellos. Esto significa que si interactúas con el servicio, obtendrás tu respuesta de un servidor aleatorio. Lo importante es que siempre obtendrás la misma respuesta.

La regla de oro para el escalamiento es que todos los servidores deben tener la misma información en cada uno de ellos, pero no almacenan datos relacionados con el usuario, como sesiones o imágenes. Las sesiones se guardan en un almacenamiento de datos centralizado externo, y para ello se utiliza una base de datos tipo caché, donde la información es muy rápida de obtener.

Es posible que te preguntes ¿cómo los servidores siempre están actualizados con la última versión del código? Para ello, existe la herramienta Capistrano , escrita en Ruby on Rails, que se encarga de resolver ese problema.

Una vez que tienes las sesiones almacenadas de forma externa y el mismo código en todos los servidores, creas una Amazon Machine Image (AMI), que es el “padre”. Las nuevas instancias o clones tomarán esta imagen para crearse.

Espero que estos consejos te ayuden a comenzar a adentrarte en el mundo de diseño de sistemas. Consulta las referencia original si quieres profundizar.

Referencias

https://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones

https://github.com/PFranciscoRojas/system-design-primer#step-1-review-the-scalability-video-lecture

Sigueme

Estare feliz de hablar contigo.