spinny:~/writing $ vim scale-web-applications.md
1~2Apabila aplikasi web berkembang dari segi pengguna, data, dan ciri, kebolehskalaan menjadi keutamaan.3~4## Kebolehskalaan Menegak vs Mendatar5~6```mermaid7flowchart LR8 A[Users] --> B[Load Balancer]9 B --> S1[Server 1]10 B --> S2[Server 2]11 B --> S3[Server 3]12```13~14- **Menegak:** mudah dilaksanakan, tetapi dengan had fizikal.15- **Mendatar:** lebih berdaya tahan dan boleh diskala.16~17## Caching: Mempercepatkan Respons18~19```mermaid20flowchart TD21 U[User] --> CDN[CDN]22 CDN --> App[Application]23 App --> DB[Database]24```25~26## Pengimbangan Beban: Mengedarkan Trafik27~28```mermaid29flowchart TD30 U[User] --> LB[Load Balancer]31 LB --> S1[Server 1]32 LB --> S2[Server 2]33 LB --> S3[Server 3]34```35~36## Penskalaan Pangkalan Data: Replikasi dan Sharding37~38```mermaid39flowchart TD40 App[Application] --> DB1[Shard 1]41 App --> DB2[Shard 2]42 App --> DB3[Shard 3]43```44~45## Mikroservis dan Seni Bina Teragih46~47```mermaid48flowchart TD49 U[User] --> API[API Gateway]50 API --> MS1[Microservice 1]51 API --> MS2[Microservice 2]52 API --> MS3[Microservice 3]53 MS1 --> DB1[(DB 1)]54 MS2 --> DB2[(DB 2)]55 MS3 --> DB3[(DB 3)]56```57~58## Ketidaksegerakan dan Baris Gilir Kerja59~60```mermaid61flowchart TD62 App[Application] -- send task --> Queue[Queue]63 Queue --> Worker[Worker]64 Worker --> DB[Database]65```66~67## Pemantauan dan Penskalaan Auto68~69## Corak Kebolehskalaan Biasa70~71- **Strangler Fig Pattern**: penghijrahan beransur-ansur dari monolit ke mikroservis.72- **CQRS**: memisahkan bacaan dan penulisan.73- **Event Sourcing**: keadaan aplikasi diuruskan melalui peristiwa.74~75## Corak Kebolehskalaan Lanjutan76~77- **Circuit Breaker**: menghalang kegagalan berantai.78- **Bulkhead**: mengasingkan sumber antara komponen.79- **Retry dan Backoff**: cubaan semula automatik dengan selang meningkat.80- **Rate Limiting**: mengehadkan bilangan permintaan.81~82```mermaid83flowchart TD84 Client --> API[API Gateway]85 API --> CB[Circuit Breaker]86 CB --> Svc[Service]87 Svc --> DB[Database]88 API --> RL[Rate Limiter]89 RL --> CB90```91~92## Aliran Permintaan Lengkap93~94```mermaid95flowchart LR96 U[User] --> CDN[CDN]97 CDN --> LB[Load Balancer]98 LB --> API[API Gateway]99 API --> MS[Microservices]100 MS --> MQ[Message Queue]101 MS --> Redis[Cache]102 MS --> DB[Database]103 MQ --> Worker[Worker]104 Worker --> DB105```106~107## Kesimpulan108~109Menskalakan aplikasi web memerlukan visi holistik: seni bina, alat, automasi, pemantauan, dan budaya DevOps. Mengkaji corak lanjutan dan belajar daripada kesilapan syarikat besar adalah kunci untuk membina sistem yang berdaya tahan.110~
NORMAL · scale-web-applications.md [readonly]110 lines · :q to close