spinny:~/writing $ less scale-web-applications.md
12Cand o aplicatie web creste in termeni de utilizatori, date si functionalitati, scalabilitatea devine o prioritate.34## Scalabilitate verticala vs orizontala56**Scalabilitate verticala (Scale Up):** cresterea resurselor (CPU, RAM, stocare) unui singur server.78**Scalabilitate orizontala (Scale Out):** adaugarea mai multor servere/noduri care lucreaza impreuna.910```mermaid11flowchart LR12 A[Users] --> B[Load Balancer]13 B --> S1[Server 1]14 B --> S2[Server 2]15 B --> S3[Server 3]16```1718## Caching: Accelerarea raspunsurilor1920```mermaid21flowchart TD22 U[User] --> CDN[CDN]23 CDN --> App[Application]24 App --> DB[Database]25```2627## Load Balancing: Distribuirea traficului2829```mermaid30flowchart TD31 U[User] --> LB[Load Balancer]32 LB --> S1[Server 1]33 LB --> S2[Server 2]34 LB --> S3[Server 3]35```3637## Scalarea bazei de date: Replicare si Sharding3839```mermaid40flowchart TD41 App[Application] --> DB1[Shard 1]42 App --> DB2[Shard 2]43 App --> DB3[Shard 3]44```4546## Microservicii si arhitecturi distribuite4748```mermaid49flowchart TD50 U[User] --> API[API Gateway]51 API --> MS1[Microservice 1]52 API --> MS2[Microservice 2]53 API --> MS3[Microservice 3]54 MS1 --> DB1[(DB 1)]55 MS2 --> DB2[(DB 2)]56 MS3 --> DB3[(DB 3)]57```5859## Asincronie si cozi de lucru6061```mermaid62flowchart TD63 App[Application] -- send task --> Queue[Queue]64 Queue --> Worker[Worker]65 Worker --> DB[Database]66```6768## Modele avansate de scalabilitate6970- **Circuit Breaker:** previne defectiunile in cascada intre servicii.71- **Bulkhead:** izoleaza resursele intre componente.72- **Retry and Backoff:** reincearca automat cererile esuate cu intervale crescatoare.73- **Rate Limiting:** limiteaza numarul de cereri acceptate.7475```mermaid76flowchart TD77 Client --> API[API Gateway]78 API --> CB[Circuit Breaker]79 CB --> Svc[Service]80 Svc --> DB[Database]81 API --> RL[Rate Limiter]82 RL --> CB83```8485## Stiva tehnologica completa8687```mermaid88flowchart TD89 CDN[CDN] --> LB[Load Balancer]90 LB --> API[API Gateway]91 API --> MS1[Microservice 1]92 API --> MS2[Microservice 2]93 MS1 --> Redis[Redis Cache]94 MS1 --> DB1[(Relational DB)]95 MS2 --> MQ[Message Queue]96 MQ --> Worker[Worker]97 Worker --> DB2[(NoSQL DB)]98```99100## Fluxul complet al unei cereri101102```mermaid103flowchart LR104 U[User] --> CDN[CDN]105 CDN --> LB[Load Balancer]106 LB --> API[API Gateway]107 API --> MS[Microservices]108 MS --> MQ[Message Queue]109 MS --> Redis[Cache]110 MS --> DB[Database]111 MQ --> Worker[Worker]112 Worker --> DB113```114115## Concluzie116117Scalarea unei aplicatii web necesita o viziune holistica: arhitectura, instrumente, automatizare, monitorizare si cultura DevOps. Studierea modelelor avansate, adoptarea bunelor practici si invatarea din greselile companiilor mari este cheia pentru construirea sistemelor reziliente gata sa creasca.118
:Cum sa scalezi o aplicatie web: Strategii si modelelines 1-118 (END) — press q to close