മൾട്ടി-സെർവർ ആർക്കിടെക്ചർ: ചുമതലകളുടെ വേർതിരിവ്
ഈ ലേഖനം ചുമതലകളുടെ വേർതിരിവ് വഴി സ്കെയിലബിലിറ്റി, വിശ്വസനീയത, പ്രകടനം എന്നിവ നേടുന്നതിന് ഞങ്ങളുടെ ഇൻഫ്രാസ്ട്രക്ചർ സ്പെഷ്യലൈസ്ഡ് സെർവറുകൾ എങ്ങനെ ഉപയോഗിക്കുന്നുവെന്ന് വിശദീകരിക്കുന്നു.
പ്രശ്നം: മോണോലിത്തിക് സെർവർ പരിമിതികൾ
എല്ലാം ഒരു സെർവറിൽ പ്രവർത്തിപ്പിക്കുന്നത് ഇവ ഉണ്ടാക്കുന്നു:
-
റിസോഴ്സ് മത്സരം: വെബ് സെർവർ CPU/മെമ്മറിക്കായി സെർച്ച് സേവനവുമായി മത്സരിക്കുന്നു
-
സ്കെയിലിംഗ് ബുദ്ധിമുട്ട്: ഘടകങ്ങളെ സ്വതന്ത്രമായി സ്കെയിൽ ചെയ്യാൻ കഴിയില്ല
-
സിംഗിൾ പോയിന്റ് ഓഫ് ഫെയില്യർ: ഒരു സെർവർ തകരുമ്പോൾ = മുഴുവൻ സിസ്റ്റവും തകരുന്നു
-
ചെലവ് ദാരിദ്ര്യം: ജോലിഭാരത്തിനനുസരിച്ച് ഇൻസ്റ്റൻസ് തരങ്ങൾ ഒപ്റ്റിമൈസ് ചെയ്യാൻ കഴിയില്ല
-
ഡിപ്ലോയ്മെന്റ് അപകടം: ഒരു ഘടകം ഡിപ്ലോയ് ചെയ്യുന്നത് മറ്റെല്ലാവരെയും ബാധിക്കുന്നു
ഒന്നിലധികം സെർവറുകളിലുടനീളം ചുമതലകളുടെ വേർതിരിവ് ഞങ്ങൾക്ക് ആവശ്യമാണ്.
പരിഹാരം: സ്പെഷ്യലൈസ്ഡ് സെർവർ റോളുകൾ
ഞങ്ങൾ സ്പെഷ്യലൈസ്ഡ് സെർവറുകൾ പ്രവർത്തിപ്പിക്കുന്നു, ഓരോന്നും അതിന്റെ ജോലിഭാരത്തിന് അനുയോജ്യമാക്കിയതാണ്:
graph TB
subgraph prod[പ്രൊഡക്ഷൻ ERP സെർവർ]
erp[ആന്തരിക മാനേജ്മെന്റ് സിസ്റ്റം
HR, ഫിനാൻസ്, നിർമ്മാണം
24/7 അപ്റ്റൈം
പങ്കിട്ട സ്റ്റോറേജും ഇമെയിലും]
end
subgraph web[പബ്ലിക് വെബ്സൈറ്റ് സെർവർ]
www[പബ്ലിക് വെബ്സൈറ്റ്
ഉൽപ്പന്ന കാറ്റലോഗ്, ബ്ലോഗ്
24/7 അപ്റ്റൈം
CDN പിന്നിൽ]
end
subgraph dev[ഡെവലപ്മെന്റ്/സ്റ്റേജിംഗ് സെർവർ]
devenv[ഡെവ് & സ്റ്റേജിംഗ്
ഇമെയിൽ കാമ്പെയ്നുകൾ
രാത്രി/വാരാന്ത്യങ്ങളിൽ പവർ ഓഫ്]
end
subgraph search[സെർച്ച് സേവന സെർവർ]
searchsvc[വെക്ടർ സെർച്ച്
ഫിൽട്ടർ എക്സ്ട്രാക്ഷൻ
ബന്ധപ്പെട്ട തിരയലുകൾ
24/7 അപ്റ്റൈം]
end
subgraph cache[കാഷെ സെർവർ - വാൽകി]
valkey[റെഡിസെർച്ച് ഇൻഡെക്സുകൾ
ക്വെറി എംബെഡ്ഡിംഗുകൾ
ഓട്ടോകംപ്ലീറ്റ്
24/7 അപ്റ്റൈം]
end
www --> searchsvc
searchsvc --> valkeyഎന്തുകൊണ്ട് വേർതിരിച്ച സെർവറുകൾ?
1. റിസോഴ്സ് ഐസോളേഷൻ
ഓരോ സെർവറും ഒരു തരം ജോലിഭാരം പ്രവർത്തിപ്പിക്കുന്നു:
വെബ് സെർവർ: HTTP അഭ്യർത്ഥന കൈകാര്യം ചെയ്യുന്നതിന് അനുയോജ്യമാക്കിയത്
-
ഉയർന്ന നെറ്റ്വർക്ക് ബാൻഡ്വിഡ്ത്ത്
-
മിതമായ CPU
-
മിതമായ മെമ്മറി
-
കാഷിംഗിനായി വേഗതയേറിയ ഡിസ്ക്
സെർച്ച് സേവനം: വെക്ടർ പ്രവർത്തനങ്ങൾക്ക് അനുയോജ്യമാക്കിയത്
-
ഉയർന്ന CPU (കോസൈൻ സമാനത)
-
ഉയർന്ന മെമ്മറി (എംബെഡ്ഡിംഗ് കാഷെ)
-
കുറഞ്ഞ ഡിസ്ക് I/O
കാഷെ സെർവർ: മെമ്മറി ആക്സസിന് അനുയോജ്യമാക്കിയത്
-
വളരെ ഉയർന്ന മെമ്മറി
-
കുറഞ്ഞ CPU
-
വേഗതയേറിയ നെറ്റ്വർക്ക്
ആനുകൂല്യം: ജോലിഭാരങ്ങൾ തമ്മിൽ റിസോഴ്സ് മത്സരമില്ല.
2. സ്വതന്ത്ര സ്കെയിലിംഗ്
ഓരോ ഘടകത്തെയും സ്വതന്ത്രമായി സ്കെയിൽ ചെയ്യാം:
-
ഉയർന്ന ട്രാഫിക്? ലോഡ് ബാലൻസറിന് പിന്നിൽ കൂടുതൽ വെബ് സെർവറുകൾ ചേർക്കുക.
-
മന്ദഗതിയിലുള്ള തിരയൽ? സെർച്ച് സെർവർ CPU അപ്ഗ്രേഡ് ചെയ്യുക അല്ലെങ്കിൽ റെപ്ലിക്കകൾ ചേർക്കുക.
-
കാഷെ മിസുകൾ? കാഷെ സെർവർ മെമ്മറി വർദ്ധിപ്പിക്കുക.
-
ആനുകൂല്യം: സ്കെയിൽ ചെയ്യേണ്ടത് മാത്രം സ്കെയിൽ ചെയ്യുക, എല്ലാം അല്ല.
3. ഫോൾട്ട് ഐസോളേഷൻ
വിഫലതകൾ പരിമിതപ്പെടുത്തപ്പെടുന്നു:
സെർച്ച് സേവനം തകർന്നോ? വെബ്സൈറ്റ് ഇപ്പോഴും കാഷ് ചെയ്ത ഫലങ്ങൾ സേവിക്കുന്നു.
കാഷെ സെർവർ തകർന്നോ? സെർച്ച് സേവനം കാഷ് ഇല്ലാതെ കണക്കാക്കുന്നു (മന്ദഗതിയിലാണെങ്കിലും പ്രവർത്തിക്കുന്നു).
വെബ് സെർവർ തകർന്നോ? ആന്തരിക ERP ബാധിക്കപ്പെടുന്നില്ല.
ആനുകൂല്യം: ഭാഗിക വിഫലതകൾ മുഴുവൻ സിസ്റ്റത്തിലേക്കും പടർന്നുപിടിക്കുന്നില്ല.
4. ഡിപ്ലോയ്മെന്റ് സുരക്ഷ
ഞങ്ങൾ പരിതസ്ഥിതികളിലൂടെ ഡിപ്ലോയ് ചെയ്യുന്നു:
ഡെവലപ്മെന്റ് → ഡീബഗ് ടൂളുകൾ ഉപയോഗിച്ച് മാറ്റങ്ങൾ പരീക്ഷിക്കുക
സ്റ്റേജിംഗ് → പ്രൊഡക്ഷൻ പോലുള്ള പരിതസ്ഥിതിയിൽ പരീക്ഷിക്കുക
പ്രൊഡക്ഷൻ → ആത്മവിശ്വാസത്തോടെ ഡിപ്ലോയ് ചെയ്യുക
ആനുകൂല്യം: ഉപയോക്താക്കളിൽ എത്തുന്നതിന് മുമ്പ് പ്രശ്നങ്ങൾ കണ്ടെത്തുക.
5. ചെലവ് ഒപ്റ്റിമൈസേഷൻ
ഓരോ സെർവറിനും ചെലവ് ഞങ്ങൾ ഒപ്റ്റിമൈസ് ചെയ്യുന്നു:
-
ഡെവലപ്മെന്റ് സെർവർ: രാത്രി/വാരാന്ത്യങ്ങളിൽ പവർ ഓഫ് (50% ചെലവ് കുറവ്)
-
IPv6-മാത്ര സെർവറുകൾ: ഇലാസ്റ്റിക് IP ചെലവ് ഇല്ല (ഇൻസ്റ്റൻസിന് $5/മാസം സേവിംഗ്)
-
ശരിയായ വലുപ്പത്തിലുള്ള ഇൻസ്റ്റൻസുകൾ: ജോലിഭാരത്തിന് ആവശ്യമായ റിസോഴ്സുകൾക്ക് മാത്രം പണം നൽകുക
-
ആനുകൂല്യം: പ്രകടനം ഉപേക്ഷിക്കാതെ തന്നെ താഴ്ന്ന ഇൻഫ്രാസ്ട്രക്ചർ ചെലവ്.
സെർവറുകൾ തമ്മിലുള്ള ഡാറ്റ ഫ്ലോ
ഡാറ്റ എങ്ങനെ ഒഴുകുന്നു എന്ന് മനസ്സിലാക്കുന്നത് വേർതിരിവ് എന്തുകൊണ്ട് പ്രധാനമാണെന്ന് വിശദീകരിക്കാൻ സഹായിക്കുന്നു:
ഉപയോക്തൃ അഭ്യർത്ഥന ഫ്ലോ
ഉൽപ്പന്ന പേജ് അഭ്യർത്ഥന:
sequenceDiagram
participant User
participant CDN
participant Web as Web Server
participant Search as Search Service
participant Cache as Cache Server
User->>CDN: Request product page
CDN->>CDN: Check cache
alt Cache hit
CDN->>User: Serve cached page
else Cache miss
CDN->>Web: Forward request
Web->>Search: Get related products
Search->>Cache: Query embeddings
Cache->>Search: Return results
Search->>Web: Related products
Web->>CDN: Rendered page
CDN->>CDN: Cache response
CDN->>User: Serve page
endതിരയൽ ക്വെറി ഫ്ലോ:
sequenceDiagram
participant User
participant Web as Web Server
participant Search as Search Service
participant Cache as Cache Server
User->>Web: Submit search query
Web->>Search: Forward query
Search->>Search: Extract filters
Search->>Search: Compute embedding
Search->>Cache: Vector search
Cache->>Search: Ranked results
Search->>Web: Product matches
Web->>User: Render resultsആനുകൂല്യം: ഓരോ സെർവറും അത് അനുയോജ്യമാക്കിയത് ചെയ്യുന്നു.
ഓരോ സെർവറിനും സ്റ്റോറേജ് തന്ത്രം
വ്യത്യസ്ത സെർവറുകൾ വ്യത്യസ്ത സ്റ്റോറേജ് തന്ത്രങ്ങൾ ഉപയോഗിക്കുന്നു:
വെബ് സെർവർ
S3-ബാക്കഡ് സ്റ്റാറ്റിക് ഫയലുകൾ: S3 ൽ നിന്ന് സേവിക്കുന്ന ഇമേജുകൾ, CSS, JS
-
ഉയർന്ന ലഭ്യത
-
ലോക്കൽ ഡിസ്ക് ഉപയോഗം ഇല്ല
-
CDN-സൗഹൃദം
ലോക്കൽ കാഷെ: റെൻഡർ ചെയ്ത പേജുകൾ Nginx കാഷ് ചെയ്യുന്നു
-
ആവർത്തിച്ചുള്ള ആക്സസിന് വേഗത
-
ഓട്ടോമാറ്റിക് അസാധുവാക്കൽ
സെർച്ച് സേവനം
NumPy അറേകൾ: ഉൽപ്പന്ന എംബെഡ്ഡിംഗുകൾ ബൈനറി അറേകളായി സംഭരിച്ചിരിക്കുന്നു
-
വേഗതയേറിയ വെക്ടർ പ്രവർത്തനങ്ങൾ
-
കാര്യക്ഷമതയ്ക്കായി മെമ്മറി-മാപ്പ് ചെയ്തത്
-
65K ഉൽപ്പന്നങ്ങൾ × 768 ഡൈമെൻഷനുകൾ = ~190 MB
JSON ഫയലുകൾ: ഫ