Diseño de Sistemas
Una Guia de Informacion Privilegiada. Segunda Edicion
Xu, Alex
Esta obra es una fuente de información privilegiada, basada en las preguntas que se realizan en las más difíciles entrevistas técnicas. Los entrevistadores piden a los entrevistados que diseñen una arquitectura para un sistema de software, que puede ser un news feed (noticias), una búsqueda en Google, un sistema de chat, etc. Las empresas adoptan las entrevistas de diseño de ...
Sinopsis
Esta obra es una fuente de información privilegiada, basada en las preguntas que se realizan en las más difíciles entrevistas técnicas. Los entrevistadores piden a los entrevistados que diseñen una arquitectura para un sistema de software, que puede ser un news feed (noticias), una búsqueda en Google, un sistema de chat, etc.
Las empresas adoptan las entrevistas de diseño de sistemas porque las habilidades de comunicación y resolución de problemas que se ponen a prueba en estas entrevistas son similares a las requeridas en el trabajo cotidiano de un ingeniero de software. Son evaluados basándose en el modo en el que cada uno analiza un problema impreciso y en cómo resuelve el problema paso a paso. Las habilidades sometidas a prueba implican además el modo en el que explica la idea, discute con otros y evalúa y optimiza el sistema.
El objetivo de este libro es ofrecer una estrategia fiable y una base sólida de conocimiento para abordar no solo las preguntas de diseño de sistemas en una entrevista laboral, sino para que el ingeniero de software pueda contar con la estrategia correcta para crear un sistema escalable o solucionar problemas en la arquitectura de los sistemas.
Esta obra cuenta con:
* Una estructura en cuatro pasos para resolver cualquier pregunta en una entrevista de diseño de sistemas.
* 16 preguntas realizadas en la vida real en entrevistas de diseño de sistemas con soluciones detalladas.
* 188 diagramas que explican de manera visual el funcionamiento de los distintos sistemas.
* Ejemplos que ilustran un acercamiento sistemático y práctico con pasos detallados.
Índice
Sobre el autor Prólogo 1. Pasar de cero a millones de usuarios Configuración de un solo servidor Base de datos Qué bases de datos utilizar Escalabilidad horizontal y vertical Equilibrador de carga Replicación de bases de datos Caché Nivel de caché Apreciaciones en el uso de la caché Red de entrega de contenidos o CDN (Content Delivery Network) Apreciaciones en el uso de una CDN Capa web sin estado (stateless) Arquitectura con estado (stateful) Arquitectura sin estado (stateless) Centros de datos Cola de mensajes Registros, métricas, automatización Añadir colas de mensajes y distintas herramientas Escalabilidad de base de datos Escalabilidad vertical Escalabilidad horizontal Millones de usuarios y más allá 2. Estimación preliminar Potencia de dos Números de latencia que todo programador debe conocer Números de disponibilidad Ejemplo: estimación de CPS y requisitos de almacenamiento de Twitter Consejos 3. Estructura para una entrevista de diseño de sistemas Un proceso en cuatro pasos para una entrevista de diseño de sistemas eficaz Paso 1 - Comprender el problema y establecer el alcance del diseño Paso 2 - Proponer un diseño de alto nivel y obtener aceptación Paso 3 - Estudiar el diseño con detenimiento Paso 4 - Conclusión Asignación de tiempos a cada paso 4. Diseñar un limitador de frecuencia Paso 1 - Comprender el problema y establecer el alcance del diseño Requisitos Paso 2 - Proponer un diseño de alto nivel y obtener aceptación ¿Dónde colocar el limitador de frecuencia? Algoritmos para limitación de frecuencia Arquitectura de alto nivel Paso 3 - Estudiar el diseño con detenimiento Reglas de limitación de frecuencia Exceder el límite de frecuencia Diseño detallado El limitador de frecuencia en un entorno distribuido Optimización del rendimiento Monitorización Paso 4 - Conclusión 5. Diseñar hashing consistente El problema de la redi
Comentarios
Sé el primero en comentar este libroArtículos relacionados