മൾട്ടി-സെർവർ ആർക്കിടെക്ചർ: ചുമതലകളുടെ വേർതിരിവ്

ഈ ലേഖനം ചുമതലകളുടെ വേർതിരിവ് വഴി സ്കെയിലബിലിറ്റി, വിശ്വസനീയത, പ്രകടനം എന്നിവ നേടുന്നതിന് ഞങ്ങളുടെ ഇൻഫ്രാസ്ട്രക്ചർ സ്പെഷ്യലൈസ്ഡ് സെർവറുകൾ എങ്ങനെ ഉപയോഗിക്കുന്നുവെന്ന് വിശദീകരിക്കുന്നു.

പ്രശ്നം: മോണോലിത്തിക് സെർവർ പരിമിതികൾ

എല്ലാം ഒരു സെർവറിൽ പ്രവർത്തിപ്പിക്കുന്നത് ഇവ ഉണ്ടാക്കുന്നു:

  • റിസോഴ്സ് മത്സരം: വെബ് സെർവർ 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 ഫയലുകൾ: ഫ