Web architecture — veb-tizimning client, server, ma’lumotlar, tarmoq va tashqi xizmatlar o‘rtasidagi tuzilishi hamda aloqa qoidalari. U brauzer so‘rovi qayerda qayta ishlanishi, biznes mantiq qanday ajratilishi, holat qayerda saqlanishi va tizim yuk hamda nosozlikka qanday javob berishini belgilaydi. Arxitektura faqat diagramma emas; protokol, deployment, xavfsizlik va kuzatuv qarorlarining yig‘indisidir.
Qatlamlar
Presentation qatlami HTML, CSS, client JavaScript yoki mobil client orqali foydalanuvchi bilan ishlaydi. Application qatlami use case va biznes qoidalarini bajaradi. Data access qatlami database, cache va object storage bilan aloqa qiladi. Qatlamlar aniq interfeys bilan ajratilsa, ichki implementatsiyani boshqasiga kam ta’sir bilan almashtirish osonlashadi.
Reverse proxy TLS’ni yakunlashi, statik fayl berishi va so‘rovni ilova instance’lariga taqsimlashi mumkin. CDN foydalanuvchiga yaqin nuqtada cache saqlaydi. API gateway autentifikatsiya, rate limit va routingni markazlashtiradi, ammo barcha biznes mantiqni o‘ziga yig‘sa murakkab bottleneckka aylanadi.
Monolit va taqsimlangan tizim
Modulli monolit bitta deployment ichida aniq domen chegaralarini saqlaydi. U local transaction, sodda debugging va kam operatsion xarajat beradi. Microservice har xizmatni mustaqil deploy va masshtablash imkonini yaratadi, lekin tarmoq xatosi, distributed tracing, schema evolution va eventual consistency muammolarini keltiradi.
Xizmatni ajratish faqat kod hajmi bilan belgilanmaydi. Mustaqil biznes capability, jamoa egaligi, o‘zgarish sur’ati va scale profili hisobga olinadi. Umumiy database’dan tartibsiz foydalanadigan “microservice”lar amalda kuchli bog‘langan distributed monolit bo‘lib qolishi mumkin.
Holat va aloqa
Stateless application instance so‘rovlar orasidagi foydalanuvchi holatini shared database, cache yoki imzolangan token orqali oladi. Bu load balancer ortida instance qo‘shishni osonlashtiradi. Biroq “stateless” ma’lumot yo‘q degani emas; transaction va session qayerda saqlanishi aniq bo‘lishi kerak.
Synchronous HTTP chaqiruvi darhol javob kerak bo‘lgan oqimga mos. Message queue ishni keyinga suradi va producer bilan consumer’ni vaqt bo‘yicha ajratadi. Retry faqat idempotent amal yoki deduplication bilan xavfsiz. Timeout, circuit breaker va bulkhead bitta sekin dependency butun tizim resursini egallashini cheklaydi.
Ma’lumot va cache
Relational database kuchli constraint va transaction beradi. Document, search, time-series yoki graph ombori maxsus access pattern uchun tanlanadi. Polyglot persistence har muammo uchun boshqa mahsulot ishlatishni emas, operatsion narxini oqlaydigan holatni anglatadi. Ma’lumot egaligi va backup tiklash tartibi arxitektura chegarasida ko‘rsatiladi.
Cache latency va origin yukini kamaytiradi, ammo invalidation, stale data va stampede muammosini keltiradi. Cache key tenant, locale, authorization va representation variantini kerakli darajada qamrab oladi. Shaxsiy javob public cache’ga tushmasligi kerak.
Sifat atributlari
Availability uchun redundant instance, health check va failover yetarli bo‘lmasligi mumkin; dependency, DNS va region failure ham sinovdan o‘tkaziladi. Observability log, metric va trace orqali so‘rov yo‘lini ko‘rsatadi. Security threat modeling, least privilege, input validation va secret management bilan barcha qatlamga singdiriladi.
Arxitektura qarori latency, xarajat, murakkablik, compliance va jamoa imkoniyati o‘rtasidagi muvozanatdir. Architecture Decision Record tanlov, alternativ va oqibatni saqlaydi. Real trafik va hodisalardan olingan o‘lchovlar diagrammani yangilab turadi.
Bog‘liq tushunchalar
Client-server architecture, Reverse proxy, Microservices, Monolith, API gateway, Caching, Distributed system