ഡിപ്ലോയ്മെന്റ് ആർക്കിടെക്ചർ: സീറോ-ഡൗൺടൈം പ്രൊഡക്ഷൻ സിസ്റ്റം

ഈ ലേഖനം ഓട്ടോമാറ്റിക് റീസ്റ്റാർട്ടുകളും സീറോ ഡൗൺടൈമും ഉപയോഗിച്ച് ഞങ്ങൾ വെബ്സൈറ്റ് എങ്ങനെ ഡിപ്ലോയ് ചെയ്യുകയും പ്രവർത്തിപ്പിക്കുകയും ചെയ്യുന്നു എന്ന് വിവരിക്കുന്നു.

പ്രശ്നം: മാനുവൽ ഡിപ്ലോയ്മെന്റ് അപകടസാധ്യതയുള്ളതാണ്

പരമ്പരാഗത ഡിപ്ലോയ്മെന്റിന് ഇവ ആവശ്യമാണ്:

  • മാനുവൽ സെർവർ റീസ്റ്റാർട്ട്: ഡൗൺടൈമിന് കാരണമാകുന്നു

  • സേവന നിരീക്ഷണം: ക്രാഷുകൾക്കായി ആരെങ്കിലും നിരീക്ഷിക്കണം

  • കോഡ് അപ്ഡേറ്റുകൾ: SSH ആക്സസും മാനുവൽ ഘട്ടങ്ങളും ആവശ്യമാണ്

  • റോൾബാക്ക്: എന്തെങ്കിലും തകരുകയാണെങ്കിൽ മാനുവൽ പ്രക്രിയ

ഇത് സ്കെയിൽ ചെയ്യാൻ കഴിയില്ല, അപ്ഡേറ്റുകളുടെ സമയത്ത് ഡൗൺടൈമിന് കാരണമാകുന്നു.

പരിഹാരം: സിസ്റ്റംഡി ഉപയോഗിച്ചുള്ള ഓട്ടോമേറ്റഡ് ഡിപ്ലോയ്മെന്റ്

ആപ്ലിക്കേഷൻ മാനേജുചെയ്യാൻ ഞങ്ങൾ സിസ്റ്റംഡി ഉപയോഗിക്കുന്നു (ഇൻഫ്രാസ്ട്രക്ചർ ഓവർവ്യൂ കാണുക):

  • ഓട്ടോ-റീസ്റ്റാർട്ട്: ക്രാഷ് അല്ലെങ്കിൽ കോഡ് മാറ്റം സംഭവിക്കുമ്പോൾ ഓട്ടോമാറ്റികായി റീസ്റ്റാർട്ട് ചെയ്യുന്നു

  • സീറോ ഡൗൺടൈം: ഗ്രേസ്ഫുള്‍ വർക്കർ റീസ്റ്റാർട്ടുകൾ

  • ലോഗിംഗ്: കേന്ദ്രീകൃത ലോഗ് മാനേജ്മെന്റ്

  • പ്രോസസ് മാനേജ്മെന്റ്: വർക്കർ ജീവിതചക്രം കൈകാര്യം ചെയ്യുന്നു

സെർവർ ഇൻഫ്രാസ്ട്രക്ചർ

പ്രൊഡക്ഷൻ സെർവർ

പൊതുജനത്തിന് കാണാവുന്ന വെബ്സൈറ്റ് പ്രൊഡക്ഷൻ സെർവറിൽ ഹോസ്റ്റ് ചെയ്യുന്നു:

  • ഉദ്ദേശ്യം: ഉൽപ്പന്ന കാറ്റലോഗും ഇ-കൊമേഴ്‌സും സേവിക്കുന്ന പൊതു വെബ്സൈറ്റ്

  • മൊഡ്യൂൾ: "വെബ്" മാത്രം

  • പരിസ്ഥിതി: പ്രൊഡക്ഷൻ (ഗുനിക്കോൺ + സിസ്റ്റംഡി)

  • ആക്സസ്: പൊതു (ലോഗിൻ ആവശ്യമില്ല)

ആപ്ലിക്കേഷൻ സെർവർ

ഗുനിക്കോൺ

ഗുനിക്കോൺ ആണ് പ്രൊഡക്ഷൻ വെബ് സെർവർ:

  • മൾട്ടി-വർക്കർ: ഒന്നിലധികം വർക്കർ പ്രോസസുകൾ

സിസ്റ്റംഡി ഇന്റഗ്രേഷൻ

സിസ്റ്റംഡി ഗുനിക്കോൺ മാനേജുചെയ്യുന്നു:

  • ഓട്ടോ-സ്റ്റാർട്ട്: സെർവർ ബൂട്ട് ചെയ്യുമ്പോൾ

  • ഓട്ടോ-റീസ്റ്റാർട്ട്: ക്രാഷ് അല്ലെങ്കിൽ കോഡ് മാറ്റം സംഭവിക്കുമ്പോൾ

  • ലോഗിംഗ്: സിസ്റ്റംഡി ജേണൽ ഇന്റഗ്രേഷൻ

  • പ്രോസസ് മാനേജ്മെന്റ്: വർക്കർ ജീവിതചക്രം

കോൺഫിഗറേഷൻ

പരിസ്ഥിതി കോൺഫിഗ്

കോൺഫിഗറേഷൻ പരിസ്ഥിതി-നിർദ്ദിഷ്ടമാണ്:

  • കോൺഫിഗ് ഫയലുകൾ: പരിസ്ഥിതി-നിർദ്ദിഷ്ട ക്രമീകരണങ്ങൾ

  • JSON ഫോർമാറ്റ്: കീ-വാല്യൂ ജോഡികൾ

  • പരിസ്ഥിതി വേരിയബിളുകൾ: രഹസ്യങ്ങളും API കീകളും

  • മൊഡ്യൂൾ പ്രവർത്തനസാധ്യത: ഏത് ഫീച്ചറുകൾ ലോഡ് ചെയ്യണമെന്ന് നിയന്ത്രിക്കുന്നു

സ്റ്റാറ്റിക് ആസറ്റുകൾ

സ്റ്റാറ്റിക് ആസറ്റുകൾ S3-ൽ നിന്നും CloudFront CDN ഉപയോഗിച്ച് സേവിക്കുന്നു:

  • S3 ബക്കറ്റ്: സ്റ്റാറ്റിക് ഫയലുകൾക്കുള്ള ഒബ്ജക്റ്റ് സ്റ്റോറേജ്

  • CloudFront: ആഗോള ആസറ്റ് ഡെലിവറിക്കുള്ള CDN

  • 캐싱: സ്റ്റാറ്റിക് ഉള്ളടക്കത്തിന് നീണ്ട TTL

  • വേർഷനിംഗ്: വേർഷൻ നമ്പറുകൾ ഉപയോഗിച്ചുള്ള കാഷ്-ബസ്റ്റിംഗ്

ഡിപ്ലോയ്മെന്റ് പ്രക്രിയ

കോഡ് ഡിപ്ലോയ്മെന്റ്

കോഡ് ഗിറ്റ് വഴി ഡിപ്ലോയ് ചെയ്യുന്നു, ആപ്ലിക്കേഷൻ സേവനം സിസ്റ്റംഡി മാനേജുചെയ്യുന്നു:

  1. കമ്മിറ്റ് ചെയ്ത് പുഷ് ചെയ്യുക: മാറ്റങ്ങൾ ഗിറ്റ് റിപ്പോസിറ്ററിയിലേക്ക് പുഷ് ചെയ്യുന്നു
  2. സെർവറിൽ പുൾ ചെയ്യുക: കോഡ് പ്രൊഡക്ഷൻ സെർവറിലേക്ക് പുൾ ചെയ്യുന്നു
  3. സിസ്റ്റംഡി റീസ്റ്റാർട്ട്: സേവനം ക്രാഷ് സംഭവിക്കുമ്പോൾ ഓട്ടോമാറ്റികായി റീസ്റ്റാർട്ട് ചെയ്യുന്നു

കോൺഫിഗറേഷൻ ഡിപ്ലോയ്മെന്റ്

കോൺഫിഗറേഷൻ കോഡിൽ നിന്ന് വെവ്വേറെ മാനേജുചെയ്യുന്നു:

  1. കോൺഫിഗ് ഫയലുകൾ: ഗിറ്റിലെ JSON കോൺഫിഗറേഷൻ ഫയലുകൾ
  2. പരിസ്ഥിതി വേരിയബിളുകൾ: പരിസ്ഥിതിയിൽ നിന്ന് ലോഡ് ചെയ്ത രഹസ്യങ്ങൾ
  3. മൊഡ്യൂൾ പ്രവർത്തനസാധ്യത: ഏത് ഫീച്ചറുകൾ ലോഡ് ചെയ്യണമെന്ന് നിയന്ത്രിക്കുന്നു

മോണിറ്ററിംഗ്

ആരോഗ്യ പരിശോധനകൾ

ആരോഗ്യ എൻഡ്‌പോയിന്റുകൾ സെർവർ സ്ഥിതി നിരീക്ഷിക്കുന്നു:

  • ആരോഗ്യ എൻഡ്‌പോയിന്റ്: അടിസ്ഥാന ആരോഗ്യ പരിശോധന

  • ഡാറ്റാബേസ് പരിശോധന: ഡാറ്റാബേസ് കണക്റ്റിവിറ്റി

  • കാഷ് പരിശോധന: കാഷ് കണക്റ്റിവിറ്റി

ലോഗിംഗ്

ലോഗുകൾ ഒന്നിലധികം ലൊക്കേഷനുകളിൽ സംഭരിച്ചിരിക്കുന്നു:

  • ഗുനിക്കോൺ എറർ ലോഗുകൾ: ആപ്ലിക്കേഷൻ പിശകുകൾ

  • ഗുനിക്കോൺ ആക്സസ് ലോഗുകൾ: HTTP അഭ്യർത്ഥനകൾ

  • സേവന ലോഗുകൾ: സിസ്റ്റംഡി ജേണൽ

സംഗ്രഹം

ഡിപ്ലോയ്മെന്റ് ആർക്കിടെക്ചർ നൽകുന്നത്:

  • ഗുനിക്കോൺ: പ്രൊഡക്ഷൻ WSGI സെർവർ

  • സിസ്റ്റംഡി: ഓട്ടോ-റീസ്റ്റാർട്ടും പ്രോസസ് മാനേജ്മെന്റും

  • ഗിറ്റ് ഡിപ്ലോയ്മെന്റ്: കോഡും കോൺഫിഗ് മാനേജ്മെന്റും

  • S3 + CloudFront: സ്റ്റാറ്റിക് ആസറ്റ് ഡെലിവറി

  • ആരോഗ്യ നിരീക്ഷണം: ആരോഗ്യ പരിശോധന എൻഡ്‌പോയിന്റുകൾ

  • ലോഗിംഗ്: എറർ, ആക്സസ് ലോഗുകൾ