ഡിപ്ലോയ്മെന്റ് ആർക്കിടെക്ചർ: സീറോ-ഡൗൺടൈം പ്രൊഡക്ഷൻ സിസ്റ്റം
ഈ ലേഖനം ഓട്ടോമാറ്റിക് റീസ്റ്റാർട്ടുകളും സീറോ ഡൗൺടൈമും ഉപയോഗിച്ച് ഞങ്ങൾ വെബ്സൈറ്റ് എങ്ങനെ ഡിപ്ലോയ് ചെയ്യുകയും പ്രവർത്തിപ്പിക്കുകയും ചെയ്യുന്നു എന്ന് വിവരിക്കുന്നു.
പ്രശ്നം: മാനുവൽ ഡിപ്ലോയ്മെന്റ് അപകടസാധ്യതയുള്ളതാണ്
പരമ്പരാഗത ഡിപ്ലോയ്മെന്റിന് ഇവ ആവശ്യമാണ്:
-
മാനുവൽ സെർവർ റീസ്റ്റാർട്ട്: ഡൗൺടൈമിന് കാരണമാകുന്നു
-
സേവന നിരീക്ഷണം: ക്രാഷുകൾക്കായി ആരെങ്കിലും നിരീക്ഷിക്കണം
-
കോഡ് അപ്ഡേറ്റുകൾ: SSH ആക്സസും മാനുവൽ ഘട്ടങ്ങളും ആവശ്യമാണ്
-
റോൾബാക്ക്: എന്തെങ്കിലും തകരുകയാണെങ്കിൽ മാനുവൽ പ്രക്രിയ
ഇത് സ്കെയിൽ ചെയ്യാൻ കഴിയില്ല, അപ്ഡേറ്റുകളുടെ സമയത്ത് ഡൗൺടൈമിന് കാരണമാകുന്നു.
പരിഹാരം: സിസ്റ്റംഡി ഉപയോഗിച്ചുള്ള ഓട്ടോമേറ്റഡ് ഡിപ്ലോയ്മെന്റ്
ആപ്ലിക്കേഷൻ മാനേജുചെയ്യാൻ ഞങ്ങൾ സിസ്റ്റംഡി ഉപയോഗിക്കുന്നു (ഇൻഫ്രാസ്ട്രക്ചർ ഓവർവ്യൂ കാണുക):
-
ഓട്ടോ-റീസ്റ്റാർട്ട്: ക്രാഷ് അല്ലെങ്കിൽ കോഡ് മാറ്റം സംഭവിക്കുമ്പോൾ ഓട്ടോമാറ്റികായി റീസ്റ്റാർട്ട് ചെയ്യുന്നു
-
സീറോ ഡൗൺടൈം: ഗ്രേസ്ഫുള് വർക്കർ റീസ്റ്റാർട്ടുകൾ
-
ലോഗിംഗ്: കേന്ദ്രീകൃത ലോഗ് മാനേജ്മെന്റ്
-
പ്രോസസ് മാനേജ്മെന്റ്: വർക്കർ ജീവിതചക്രം കൈകാര്യം ചെയ്യുന്നു
സെർവർ ഇൻഫ്രാസ്ട്രക്ചർ
പ്രൊഡക്ഷൻ സെർവർ
പൊതുജനത്തിന് കാണാവുന്ന വെബ്സൈറ്റ് പ്രൊഡക്ഷൻ സെർവറിൽ ഹോസ്റ്റ് ചെയ്യുന്നു:
-
ഉദ്ദേശ്യം: ഉൽപ്പന്ന കാറ്റലോഗും ഇ-കൊമേഴ്സും സേവിക്കുന്ന പൊതു വെബ്സൈറ്റ്
-
മൊഡ്യൂൾ: "വെബ്" മാത്രം
-
പരിസ്ഥിതി: പ്രൊഡക്ഷൻ (ഗുനിക്കോൺ + സിസ്റ്റംഡി)
-
ആക്സസ്: പൊതു (ലോഗിൻ ആവശ്യമില്ല)
ആപ്ലിക്കേഷൻ സെർവർ
ഗുനിക്കോൺ
ഗുനിക്കോൺ ആണ് പ്രൊഡക്ഷൻ വെബ് സെർവർ:
- മൾട്ടി-വർക്കർ: ഒന്നിലധികം വർക്കർ പ്രോസസുകൾ
സിസ്റ്റംഡി ഇന്റഗ്രേഷൻ
സിസ്റ്റംഡി ഗുനിക്കോൺ മാനേജുചെയ്യുന്നു:
-
ഓട്ടോ-സ്റ്റാർട്ട്: സെർവർ ബൂട്ട് ചെയ്യുമ്പോൾ
-
ഓട്ടോ-റീസ്റ്റാർട്ട്: ക്രാഷ് അല്ലെങ്കിൽ കോഡ് മാറ്റം സംഭവിക്കുമ്പോൾ
-
ലോഗിംഗ്: സിസ്റ്റംഡി ജേണൽ ഇന്റഗ്രേഷൻ
-
പ്രോസസ് മാനേജ്മെന്റ്: വർക്കർ ജീവിതചക്രം
കോൺഫിഗറേഷൻ
പരിസ്ഥിതി കോൺഫിഗ്
കോൺഫിഗറേഷൻ പരിസ്ഥിതി-നിർദ്ദിഷ്ടമാണ്:
-
കോൺഫിഗ് ഫയലുകൾ: പരിസ്ഥിതി-നിർദ്ദിഷ്ട ക്രമീകരണങ്ങൾ
-
JSON ഫോർമാറ്റ്: കീ-വാല്യൂ ജോഡികൾ
-
പരിസ്ഥിതി വേരിയബിളുകൾ: രഹസ്യങ്ങളും API കീകളും
-
മൊഡ്യൂൾ പ്രവർത്തനസാധ്യത: ഏത് ഫീച്ചറുകൾ ലോഡ് ചെയ്യണമെന്ന് നിയന്ത്രിക്കുന്നു
സ്റ്റാറ്റിക് ആസറ്റുകൾ
സ്റ്റാറ്റിക് ആസറ്റുകൾ S3-ൽ നിന്നും CloudFront CDN ഉപയോഗിച്ച് സേവിക്കുന്നു:
-
S3 ബക്കറ്റ്: സ്റ്റാറ്റിക് ഫയലുകൾക്കുള്ള ഒബ്ജക്റ്റ് സ്റ്റോറേജ്
-
CloudFront: ആഗോള ആസറ്റ് ഡെലിവറിക്കുള്ള CDN
-
캐싱: സ്റ്റാറ്റിക് ഉള്ളടക്കത്തിന് നീണ്ട TTL
-
വേർഷനിംഗ്: വേർഷൻ നമ്പറുകൾ ഉപയോഗിച്ചുള്ള കാഷ്-ബസ്റ്റിംഗ്
ഡിപ്ലോയ്മെന്റ് പ്രക്രിയ
കോഡ് ഡിപ്ലോയ്മെന്റ്
കോഡ് ഗിറ്റ് വഴി ഡിപ്ലോയ് ചെയ്യുന്നു, ആപ്ലിക്കേഷൻ സേവനം സിസ്റ്റംഡി മാനേജുചെയ്യുന്നു:
- കമ്മിറ്റ് ചെയ്ത് പുഷ് ചെയ്യുക: മാറ്റങ്ങൾ ഗിറ്റ് റിപ്പോസിറ്ററിയിലേക്ക് പുഷ് ചെയ്യുന്നു
- സെർവറിൽ പുൾ ചെയ്യുക: കോഡ് പ്രൊഡക്ഷൻ സെർവറിലേക്ക് പുൾ ചെയ്യുന്നു
- സിസ്റ്റംഡി റീസ്റ്റാർട്ട്: സേവനം ക്രാഷ് സംഭവിക്കുമ്പോൾ ഓട്ടോമാറ്റികായി റീസ്റ്റാർട്ട് ചെയ്യുന്നു
കോൺഫിഗറേഷൻ ഡിപ്ലോയ്മെന്റ്
കോൺഫിഗറേഷൻ കോഡിൽ നിന്ന് വെവ്വേറെ മാനേജുചെയ്യുന്നു:
- കോൺഫിഗ് ഫയലുകൾ: ഗിറ്റിലെ JSON കോൺഫിഗറേഷൻ ഫയലുകൾ
- പരിസ്ഥിതി വേരിയബിളുകൾ: പരിസ്ഥിതിയിൽ നിന്ന് ലോഡ് ചെയ്ത രഹസ്യങ്ങൾ
- മൊഡ്യൂൾ പ്രവർത്തനസാധ്യത: ഏത് ഫീച്ചറുകൾ ലോഡ് ചെയ്യണമെന്ന് നിയന്ത്രിക്കുന്നു
മോണിറ്ററിംഗ്
ആരോഗ്യ പരിശോധനകൾ
ആരോഗ്യ എൻഡ്പോയിന്റുകൾ സെർവർ സ്ഥിതി നിരീക്ഷിക്കുന്നു:
-
ആരോഗ്യ എൻഡ്പോയിന്റ്: അടിസ്ഥാന ആരോഗ്യ പരിശോധന
-
ഡാറ്റാബേസ് പരിശോധന: ഡാറ്റാബേസ് കണക്റ്റിവിറ്റി
-
കാഷ് പരിശോധന: കാഷ് കണക്റ്റിവിറ്റി
ലോഗിംഗ്
ലോഗുകൾ ഒന്നിലധികം ലൊക്കേഷനുകളിൽ സംഭരിച്ചിരിക്കുന്നു:
-
ഗുനിക്കോൺ എറർ ലോഗുകൾ: ആപ്ലിക്കേഷൻ പിശകുകൾ
-
ഗുനിക്കോൺ ആക്സസ് ലോഗുകൾ: HTTP അഭ്യർത്ഥനകൾ
-
സേവന ലോഗുകൾ: സിസ്റ്റംഡി ജേണൽ
സംഗ്രഹം
ഡിപ്ലോയ്മെന്റ് ആർക്കിടെക്ചർ നൽകുന്നത്:
-
ഗുനിക്കോൺ: പ്രൊഡക്ഷൻ WSGI സെർവർ
-
സിസ്റ്റംഡി: ഓട്ടോ-റീസ്റ്റാർട്ടും പ്രോസസ് മാനേജ്മെന്റും
-
ഗിറ്റ് ഡിപ്ലോയ്മെന്റ്: കോഡും കോൺഫിഗ് മാനേജ്മെന്റും
-
S3 + CloudFront: സ്റ്റാറ്റിക് ആസറ്റ് ഡെലിവറി
-
ആരോഗ്യ നിരീക്ഷണം: ആരോഗ്യ പരിശോധന എൻഡ്പോയിന്റുകൾ
-
ലോഗിംഗ്: എറർ, ആക്സസ് ലോഗുകൾ