Scalability and System Design

This commit is contained in:
YoSaucedo 2017-05-26 03:51:35 -05:00
parent 57c6b0de1d
commit 5ad9e06a30
1 changed files with 41 additions and 43 deletions

View File

@ -828,7 +828,7 @@ Los grafos pueden ser usados para representar muchos problemas en las Ciencias d
- Lista adyacente - Lista adyacente
- Mapa adyacente - Mapa adyacente
- Familiarícese con cada representación y sus pros y contras - Familiarícese con cada representación y sus pros y contras
- BFS and DFS Conozca su complejidad computacional, sus tradeoffs y cómo implementarlos en código real - BFS and DFS Conozca su complejidad computacional, sus compromisos y cómo implementarlos en código real
- Cuando se le haga una pregunta busqué una solución basada en grafos, si no encuentra continúe. - Cuando se le haga una pregunta busqué una solución basada en grafos, si no encuentra continúe.
- [ ] Lecturas de Skiena Gran introducción): - [ ] Lecturas de Skiena Gran introducción):
@ -1159,30 +1159,28 @@ Obtendrá más práctica de grafos en el libro de Skiena (vea Sección de libros
- [ ] [Socket Programming (video)](https://www.youtube.com/watch?v=G75vN2mnJeQ) - [ ] [Socket Programming (video)](https://www.youtube.com/watch?v=G75vN2mnJeQ)
## Diseño del Sistema, Escalabilidad, Manejo de Datos ## Diseño del Sistema, Escalabilidad, Manejo de Datos
- **You can expect system design questions if you have 4+ years of experience.** - ** Puede esperar preguntas sobre el diseño del sistema si tiene más de 4 años de experiencia.**
- Scalability and System Design are very large topics with many topics and resources, since - La escalabilidad y el diseño del sistema son temas muy extensos con muchos temas y recursos, ya que hay mucho que considerar al diseñar un sistema de software / hardware que puede escalar. Espere dedicarle un buen tiempo a esto.
there is a lot to consider when designing a software/hardware system that can scale. - Consideraciones:
Expect to spend quite a bit of time on this. - Escalabilidad
- Considerations: - Destilar conjuntos de datos grandes a valores únicos
- scalability - Transformar un conjunto de datos en otro
- Distill large data sets to single values - Manejo de cantidades de datos obscenamente grandes
- Transform one data set to another - Diseño de sistemas
- Handling obscenely large amounts of data - Conjuntos de características
- system design - Interfaces
- features sets - Jerarquías de clases
- interfaces - Diseñar un sistema bajo ciertas restricciones
- class hierarchies - Simplicidad y robustez
- designing a system under certain constraints - Compromisos
- simplicity and robustness - Análisis y optimización del rendimiento
- tradeoffs - [ ] **EMPIECE AQUI**: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
- performance analysis and optimization
- [ ] **START HERE**: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
- [ ] [System Design from HiredInTech](http://www.hiredintech.com/system-design/) - [ ] [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
- [ ] [How Do I Prepare To Answer Design Questions In A Technical Inverview?](https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview?redirected_qid=1500023) - [ ] [How Do I Prepare To Answer Design Questions In A Technical Inverview?](https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview?redirected_qid=1500023)
- [ ] [8 Things You Need to Know Before a System Design Interview](http://blog.gainlo.co/index.php/2015/10/22/8-things-you-need-to-know-before-system-design-interviews/) - [ ] [8 Things You Need to Know Before a System Design Interview](http://blog.gainlo.co/index.php/2015/10/22/8-things-you-need-to-know-before-system-design-interviews/)
- [ ] [Algorithm design](http://www.hiredintech.com/algorithm-design/) - [ ] [Algorithm design](http://www.hiredintech.com/algorithm-design/)
- [ ] [Database Normalization - 1NF, 2NF, 3NF and 4NF (video)](https://www.youtube.com/watch?v=UrYLYV7WSHM) - [ ] [Database Normalization - 1NF, 2NF, 3NF and 4NF (video)](https://www.youtube.com/watch?v=UrYLYV7WSHM)
- [ ] [System Design Interview](https://github.com/checkcheckzz/system-design-interview) - There are a lot of resources in this one. Look through the articles and examples. I put some of them below. - [ ] [System Design Interview](https://github.com/checkcheckzz/system-design-interview) - Hay muchos recursos en este. Mire los articulos y sus ejemplos. Pondré Algunos debajo.
- [ ] [How to ace a systems design interview](http://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/) - [ ] [How to ace a systems design interview](http://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/)
- [ ] [Numbers Everyone Should Know](http://everythingisdata.wordpress.com/2009/10/17/numbers-everyone-should-know/) - [ ] [Numbers Everyone Should Know](http://everythingisdata.wordpress.com/2009/10/17/numbers-everyone-should-know/)
- [ ] [How long does it take to make a context switch?](http://blog.tsunanet.net/2010/11/how-long-does-it-take-to-make-context.html) - [ ] [How long does it take to make a context switch?](http://blog.tsunanet.net/2010/11/how-long-does-it-take-to-make-context.html)
@ -1250,31 +1248,31 @@ Obtendrá más práctica de grafos en el libro de Skiena (vea Sección de libros
- [ ] Twitter: - [ ] Twitter:
- [O'Reilly MySQL CE 2011: Jeremy Cole, "Big and Small Data at @Twitter" (video)](https://www.youtube.com/watch?v=5cKTP36HVgI) - [O'Reilly MySQL CE 2011: Jeremy Cole, "Big and Small Data at @Twitter" (video)](https://www.youtube.com/watch?v=5cKTP36HVgI)
- [Timelines at Scale](https://www.infoq.com/presentations/Twitter-Timeline-Scalability) - [Timelines at Scale](https://www.infoq.com/presentations/Twitter-Timeline-Scalability)
- For even more, see "Mining Massive Datasets" video series in the Video Series section. - Para aún más, vea la serie de videos "Mining Massive Datasets" en la sección de Series de video.
- [ ] Practicing the system design process: Here are some ideas to try working through on paper, each with some documentation on how it was handled in the real world: - [ ] Practicando el proceso de diseño del sistema: Aquí hay algunas ideas para tratar de trabajar en papel, cada una con cierta documentación sobre cómo se manejó en el mundo real:
- review: [The System Design Primer](https://github.com/donnemartin/system-design-primer) - Revisión: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
- [System Design from HiredInTech](http://www.hiredintech.com/system-design/) - [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
- [cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/system-design.pdf) - [cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/system-design.pdf)
- flow: - Flujo:
1. Understand the problem and scope: 1. Comprender el problema y el alcance:
- define the use cases, with interviewer's help - Definir los casos de uso, con ayuda del entrevistador
- suggest additional features - Sugerir características adicionales
- remove items that interviewer deems out of scope - Eliminar elementos que el entrevistador considera fuera de alcance
- assume high availability is required, add as a use case - Asumir alta disponibilidad es necesario, añadir como un caso de uso
2. Think about constraints: 2. Piense en las limitaciones:
- ask how many requests per month - Preguntar cuántas solicitudes por mes
- ask how many requests per second (they may volunteer it or make you do the math) - Preguntar cuántas solicitudes por segundo (que pueden ser voluntario o hacer que usted haga las matemáticas)
- estimate reads vs. writes percentage - Lectura de estimación vs. Escribir porcentajes
- keep 80/20 rule in mind when estimating - Tenga en cuenta la regla 80/20 al estimar
- how much data written per second - La cantidad de datos escritos por segundo
- total storage required over 5 years - Almacenamiento total requerido durante 5 años
- how much data read per second - La cantidad de datos leídos por segundo
3. Abstract design: 3. Diseño abstracto:
- layers (service, data, caching) - Capas (servicio, datos, almacenamiento en caché)
- infrastructure: load balancing, messaging - Infraestructura: balanceo de carga, mensajería
- rough overview of any key algorithm that drives the service - Descripción aproximada de cualquier algoritmo clave que impulsa el servicio
- consider bottlenecks and determine solutions - Considerar los cuellos de botella y determinar las soluciones
- Exercises: - Ejercicios:
- [Design a CDN network: old article](http://repository.cmu.edu/cgi/viewcontent.cgi?article=2112&context=compsci) - [Design a CDN network: old article](http://repository.cmu.edu/cgi/viewcontent.cgi?article=2112&context=compsci)
- [Design a random unique ID generation system](https://blog.twitter.com/2010/announcing-snowflake) - [Design a random unique ID generation system](https://blog.twitter.com/2010/announcing-snowflake)
- [Design an online multiplayer card game](http://www.indieflashblog.com/how-to-create-an-asynchronous-multiplayer-game.html) - [Design an online multiplayer card game](http://www.indieflashblog.com/how-to-create-an-asynchronous-multiplayer-game.html)