IlmHamroh
Qo'shimcha materiallar/Amaliyot1/3-dars5 daqiqa
Mundarija (9)

Real case study'lar — mashhur tizimlar qanday qurilgan

Nazariyani real misolda ko'rish — eng kuchli o'rganish. Bu yerda mashhur ilovalarning soddalashtirilgan arxitekturasi tahlil qilinadi. Maqsad — "qanday ishlaydi?" degan savolga muhandis ko'zi bilan javob.

Bu — soddalashtirilgan, ta'limiy modellar (haqiqiy tizimlar ancha murakkab). G'oyani tushunish uchun.


1. Instagram — fotosurat ulashish

Asosiy muammo: millionlab rasm, tez lenta, juda ko'p o'qish.

text
Yuklash:  Client → App → Object Storage (rasm) + DB (metadata) → CDN
Lenta:    Feed kesh (Redis) ← fan-out (post yozilganda obunachilarga)

Kalit qarorlar:

  • Rasmlar object storage'da (S3), DB'da emas — faqat metadata (URL, egasi).
  • CDN — rasm foydalanuvchiga yaqin serverdan (tez).
  • Bir necha o'lcham — yuklashda thumbnail/medium/full generatsiya (mos o'lchamni ber).
  • Lenta — fan-out (oddiy foydalanuvchi push, mashhur — pull — gibrid).
  • Hikoyalar (stories) — TTL bilan (24 soatdan keyin o'chadi — kesh).

Dars: katta media — storage + CDN; metadata — DB; lenta — kesh strategiyasi.


2. Uber — haydovchi-yo'lovchi moslash

Asosiy muammo: real vaqtda yaqin haydovchini topish, jonli joylashuv.

text
Haydovchi GPS → har necha soniyada joylashuv yangilanadi (geo-indeks)
Buyurtma → yaqin haydovchilarni qidir (geo-so'rov) → moslash → real-time kuzatuv

Kalit qarorlar:

  • Geo-indekslash — yerni "kvadratlarga" bo'lish (geohash/H3) → yaqinlik tez qidiruv.
  • Real-time — WebSocket (joylashuv, holat).
  • Moslash algoritmi — masofa + reyting + kutish vaqti.
  • Surge pricing — talab/taklif nisbatiga qarab narx.
  • Idempotentlik — to'lov bir marta (takror so'rov xavfsiz).

Dars: geolokatsiya — maxsus indeks; jonli — WebSocket; moslash — optimizatsiya.


3. Netflix — video uzatish

Asosiy muammo: ulkan video, turli tezlik/qurilma, global.

text
Video → transkodlash (ko'p sifat/format) → CDN (dunyo bo'ylab)
Pleer → adaptiv bitrate (tarmoqqa qarab sifatni o'zgartiradi)

Kalit qarorlar:

  • Adaptiv streaming (HLS/DASH) — video bo'laklarga bo'linadi, tarmoq sekinlasa sifat tushadi (uzilmaydi).
  • CDN — video foydalanuvchiga eng yaqin serverdan (Netflix o'z CDN'i — Open Connect).
  • Oldindan transkodlash — har video ko'p sifat/formatda tayyorlanadi.
  • Tavsiya — ko'rish tarixiga asoslangan (mashinaviy o'rganish).
  • Mikroservis — har funksiya alohida (mashhur mikroservis namunasi).

Dars: video — transkod + CDN + adaptiv stream; mustaqil servislar.


4. WhatsApp — xabar almashish

Asosiy muammo: millionlab doimiy ulanish, ishonchli yetkazish, kam server.

text
Client ⇄ WebSocket ⇄ Server (ulanish boshqaruvi)
Offline → xabar saqlanadi → onlayn bo'lganda yetkaziladi

Kalit qarorlar:

  • Doimiy ulanish — har telefon serverga ulangan (presence).
  • Yetkazish kafolati — yuborildi/yetkazildi/o'qildi (ack).
  • Offline navbat — qabul qiluvchi offline → saqlanadi, keyin yetkaziladi.
  • End-to-end shifrlash — server ham o'qiy olmaydi.
  • Kam server, ko'p ulanish — samarali (Erlang bilan mashhur).

Dars: real-time + ishonchli yetkazish + offline navbat 16.3-bob.


5. Twitter/X — lenta (timeline)

Asosiy muammo: mashhur foydalanuvchi (millionlab obunachi) post yozsa — fan-out qiyin.

text
Oddiy foydalanuvchi:  fan-out on write (post → obunachilar keshiga)
Mashhur (celebrity):  fan-out on read (lenta so'ralganda yig'iladi)
GIBRID → ikkalasini birlashtirib

Kalit qarorlar:

  • Gibrid fan-out — oddiyga push, mashhurga pull (celebrity muammosi).
  • Lenta keshi (Redis) — har foydalanuvchi uchun tayyor lenta.
  • Reyting — vaqt + qiziqish (faqat xronologik emas).

Dars: miqyosda "bir o'lcham hammaga mos kelmaydi" — gibrid yondashuv.


6. Stripe — to'lov

Asosiy muammo: pul — xato qabul qilinmaydi (idempotentlik, izchillik, xavfsizlik).

text
To'lov → Idempotency-Key (takror oldini olish) → bank → webhook (natija)

Kalit qarorlar:

  • Idempotentlik — Idempotency-Key bilan takror to'lov oldini olinadi (tarmoq retry).
  • Webhook — to'lov natijasi asinxron keladi (darrov emas — 13.6).
  • Izchillik — har tranzaksiya audit, ACID.
  • PCI muvofiqlik — karta ma'lumotini saqlamaslik (token bilan).
  • Yarim holat — to'lov "pending" bo'lishi mumkin (holat mashinasi).

Dars: pul — idempotentlik + webhook + audit + xavfsizlik 16.1-bob.


7. GitHub — kod hosting

Asosiy muammo: millionlab repo, git operatsiyalari, katta fayl tarixi.

text
Git operatsiyalari → maxsus serverlar; metadata (issue, PR) → DB; qidiruv → indeks

Kalit qarorlar:

  • Git'ni miqyoslash — repo'lar serverlarga taqsimlangan (sharding).
  • Metadata alohida — issue, PR, foydalanuvchi — DB'da.
  • Qidiruv — kod qidiruvi alohida indeks (Elasticsearch uslubi).
  • Webhook + CI — push'da hodisa (Actions).

Dars: maxsus ish (git) — maxsus tizim; metadata — umumiy DB.


Umumiy darslar (barcha case'lardan)

  1. Katta media → object storage + CDN (DB'da emas).
  2. Real-time → WebSocket + Redis pub/sub.
  3. O'qish-og'ir → kesh (Redis) + read replica.
  4. Miqyos → "bir o'lcham hammaga mos emas" (gibrid yechimlar).
  5. Pul/kritik → idempotentlik + ACID + audit.
  6. Geo → maxsus indeks (geohash).
  7. Asinxron → navbat (og'ir/sekin ishni ajrat).

Mashq

Quyidagilarni o'zingiz tahlil qiling (arxitektura, kalit qarorlar, darslar):

  1. YouTube (yuqorida Netflix bilan taqqoslang)
  2. Airbnb (qidiruv + bron)
  3. Spotify (musiqa stream + playlist)
  4. Google Maps (xarita + marshrut)
  5. Slack (real-time + kanal + qidiruv)

Bog'liq: System Design deep-dive, 9-QISM · Bosh sahifa: README.

Ulashish:Telegram'da

Izohlar (0)

Izoh yozish uchun kiring.

  • Hozircha izoh yo'q. Birinchi bo'ling!
Real case study'lar — mashhur tizimlar qanday qurilgan — IlmHamroh