WisarWisar
Hamroh materiallar/Amaliyot5 daqiqa

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:

  • IdempotentlikIdempotency-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'zing tahlil qil (arxitektura, kalit qarorlar, darslar):

  1. YouTube (yuqorida Netflix bilan taqqosla)
  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.

Izohlar (0)

Izoh yozish uchun kiring.

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