തുടക്കക്കാർക്കുള്ള DevOps ഗൈഡ്

DevOps-ന്റെ പ്രാധാന്യം എന്താണ്, ഐടി പ്രൊഫഷണലുകൾക്ക് ഇത് എന്താണ് അർത്ഥമാക്കുന്നത്, രീതികളുടെയും ചട്ടക്കൂടുകളുടെയും ടൂളുകളുടെയും വിവരണം.

തുടക്കക്കാർക്കുള്ള DevOps ഗൈഡ്

DevOps എന്ന പദം ഐടി ലോകത്ത് പിടിമുറുക്കിയതിനുശേഷം ഒരുപാട് കാര്യങ്ങൾ സംഭവിച്ചിട്ടുണ്ട്. ഇക്കോസിസ്റ്റം ഓപ്പൺ സോഴ്‌സിന്റെ ഭൂരിഭാഗവും ഉള്ളതിനാൽ, എന്തുകൊണ്ടാണ് ഇത് ആരംഭിച്ചതെന്നും ഐടിയിലെ ഒരു കരിയറിന് എന്താണ് അർത്ഥമാക്കുന്നത് എന്നും പുനർവിചിന്തനം ചെയ്യേണ്ടത് പ്രധാനമാണ്.

എന്താണ് DevOps

ഒരൊറ്റ നിർവചനം ഇല്ലെങ്കിലും, ഡെവലപ്‌മെന്റ്, ഓപ്പറേഷൻസ് ടീമുകൾ തമ്മിലുള്ള സഹകരണം ഉൽപ്പാദന പരിതസ്ഥിതികളിലേക്ക് വേഗത്തിൽ വിന്യസിക്കാൻ കഴിയുന്ന സാങ്കേതിക ചട്ടക്കൂടാണ് DevOps എന്ന് ഞാൻ വിശ്വസിക്കുന്നു. ഈ ക്ലെയിം അൺപാക്ക് ചെയ്യാൻ ഞങ്ങൾ ഈ ലേഖനത്തിന്റെ ബാക്കി ഭാഗം ചെലവഴിക്കും.

"DevOps" എന്ന വാക്ക് "വികസനം", "പ്രവർത്തനങ്ങൾ" എന്നീ പദങ്ങളുടെ സംയോജനമാണ്. ആപ്ലിക്കേഷനുകളുടെയും സേവനങ്ങളുടെയും ഡെലിവറി വേഗത വർദ്ധിപ്പിക്കാൻ DevOps സഹായിക്കുന്നു. ഇത് ഓർഗനൈസേഷനുകളെ അവരുടെ ഉപഭോക്താക്കളെ ഫലപ്രദമായി സേവിക്കാനും വിപണിയിൽ കൂടുതൽ മത്സരാധിഷ്ഠിതരാകാനും അനുവദിക്കുന്നു. ലളിതമായി പറഞ്ഞാൽ, കൂടുതൽ ഫലപ്രദമായ ആശയവിനിമയവും സഹകരണവും ഉള്ള വികസനവും ഐടി പ്രവർത്തനങ്ങളും തമ്മിലുള്ള വിന്യാസമാണ് DevOps.

വികസനം, പ്രവർത്തനങ്ങൾ, ബിസിനസ്സ് ടീമുകൾ എന്നിവ തമ്മിലുള്ള സഹകരണം നിർണായകമായി കണക്കാക്കുന്ന ഒരു സംസ്കാരം DevOps-ൽ ഉൾപ്പെടുന്നു. ഒരു സ്ഥാപനത്തിലെ DevOps തുടർച്ചയായി ഉപഭോക്താക്കൾക്കും പ്രയോജനം ചെയ്യുന്നതിനാൽ, ഇത് ടൂളുകളെക്കുറിച്ചല്ല. ആളുകളും പ്രക്രിയകളും സഹിതം അതിന്റെ തൂണുകളിൽ ഒന്നാണ് ഉപകരണങ്ങൾ. സാധ്യമായ ഏറ്റവും കുറഞ്ഞ സമയത്തിനുള്ളിൽ ഉയർന്ന നിലവാരമുള്ള പരിഹാരങ്ങൾ നൽകാനുള്ള ഓർഗനൈസേഷനുകളുടെ കഴിവ് DevOps വർദ്ധിപ്പിക്കുന്നു. നിർമ്മാണം മുതൽ വിന്യാസം, ആപ്ലിക്കേഷൻ അല്ലെങ്കിൽ ഉൽപ്പന്നം വരെയുള്ള എല്ലാ പ്രക്രിയകളും DevOps ഓട്ടോമേറ്റ് ചെയ്യുന്നു.

DevOps ചർച്ച ഡെവലപ്പർമാർ, ഉപജീവനത്തിനായി സോഫ്റ്റ്‌വെയർ എഴുതുന്ന ആളുകൾ, ആ സോഫ്റ്റ്‌വെയർ പരിപാലിക്കുന്നതിനുള്ള ഉത്തരവാദിത്തമുള്ള ഓപ്പറേറ്റർമാർ എന്നിവ തമ്മിലുള്ള ബന്ധത്തെ കേന്ദ്രീകരിക്കുന്നു.

വികസന ടീമിന് വെല്ലുവിളികൾ

ഓർഗനൈസേഷണൽ പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നതിന് പുതിയ സമീപനങ്ങളും സാങ്കേതികവിദ്യകളും നടപ്പിലാക്കാൻ ഡവലപ്പർമാർ ഉത്സാഹവും ഉത്സാഹവും കാണിക്കുന്നു. എന്നിരുന്നാലും, അവർ ചില പ്രശ്നങ്ങൾ നേരിടുന്നു:

  • മത്സരാധിഷ്ഠിത വിപണി സമയബന്ധിതമായി ഉൽപ്പന്നം എത്തിക്കുന്നതിന് വളരെയധികം സമ്മർദ്ദം സൃഷ്ടിക്കുന്നു.
  • പ്രൊഡക്ഷൻ-റെഡി കോഡ് കൈകാര്യം ചെയ്യുന്നതിലും പുതിയ ഫീച്ചറുകൾ അവതരിപ്പിക്കുന്നതിലും അവർ ശ്രദ്ധിക്കണം.
  • റിലീസ് സൈക്കിൾ ദൈർഘ്യമേറിയതാകാം, അതിനാൽ ആപ്ലിക്കേഷനുകൾ നടപ്പിലാക്കുന്നതിന് മുമ്പ് ഡെവലപ്‌മെന്റ് ടീം നിരവധി അനുമാനങ്ങൾ നടത്തേണ്ടതുണ്ട്. ഈ സാഹചര്യത്തിൽ, ഒരു പ്രൊഡക്ഷൻ അല്ലെങ്കിൽ ടെസ്റ്റ് പരിതസ്ഥിതിയിൽ വിന്യാസം ചെയ്യുമ്പോൾ ഉണ്ടാകുന്ന പ്രശ്നങ്ങൾ പരിഹരിക്കാൻ കൂടുതൽ സമയം ആവശ്യമാണ്.

ഓപ്പറേഷൻ ടീം നേരിടുന്ന വെല്ലുവിളികൾ

ഐടി സേവനങ്ങളുടെ സ്ഥിരതയിലും വിശ്വാസ്യതയിലും ഓപ്പറേഷൻ ടീമുകൾ ചരിത്രപരമായി ശ്രദ്ധ കേന്ദ്രീകരിച്ചിട്ടുണ്ട്. അതുകൊണ്ടാണ് ഓപ്പറേഷൻ ടീമുകൾ ഉറവിടങ്ങളിലോ സാങ്കേതികവിദ്യകളിലോ സമീപനങ്ങളിലോ മാറ്റങ്ങളിലൂടെ സ്ഥിരത തേടുന്നത്. അവരുടെ ചുമതലകളിൽ ഇവ ഉൾപ്പെടുന്നു:

  • ഡിമാൻഡ് കൂടുന്നതിനനുസരിച്ച് വിഭവ വിഹിതം കൈകാര്യം ചെയ്യുക.
  • ഒരു പ്രൊഡക്ഷൻ പരിതസ്ഥിതിയിൽ ഉപയോഗിക്കുന്നതിന് ആവശ്യമായ ഡിസൈൻ അല്ലെങ്കിൽ കസ്റ്റമൈസേഷൻ മാറ്റങ്ങൾ കൈകാര്യം ചെയ്യുക.
  • ആപ്ലിക്കേഷനുകളുടെ സ്വയം വിന്യാസത്തിനു ശേഷം ഉൽപ്പാദന പ്രശ്നങ്ങൾ കണ്ടെത്തി പരിഹരിക്കുക.

ഡെവലപ്‌മെന്റ്, ഓപ്പറേഷൻ പ്രശ്നങ്ങൾ എങ്ങനെ DevOps പരിഹരിക്കുന്നു

ഒരേസമയം നിരവധി ആപ്പ് ഫീച്ചറുകൾ പുറത്തിറക്കുന്നതിനുപകരം, കമ്പനികൾ തങ്ങളുടെ ഉപഭോക്താക്കൾക്ക് ഒരു ചെറിയ എണ്ണം ഫീച്ചറുകൾ പുറത്തിറക്കാനാകുമോ എന്ന് നോക്കാൻ ശ്രമിക്കുകയാണ്. മെച്ചപ്പെട്ട സോഫ്‌റ്റ്‌വെയർ ഗുണനിലവാരം, വേഗത്തിലുള്ള ഉപഭോക്തൃ ഫീഡ്‌ബാക്ക് തുടങ്ങിയ നിരവധി ഗുണങ്ങൾ ഈ സമീപനത്തിനുണ്ട്. ഇത്, ഉയർന്ന ഉപഭോക്തൃ സംതൃപ്തി ഉറപ്പാക്കുന്നു. ഈ ലക്ഷ്യങ്ങൾ കൈവരിക്കുന്നതിന്, കമ്പനികൾ ഇനിപ്പറയുന്നവ ചെയ്യണം:

  • പുതിയ റിലീസുകൾ റിലീസ് ചെയ്യുമ്പോൾ പരാജയ നിരക്ക് കുറയ്ക്കുക
  • വിന്യാസ ആവൃത്തി വർദ്ധിപ്പിക്കുക
  • ഒരു പുതിയ ആപ്ലിക്കേഷൻ റിലീസുണ്ടായാൽ വീണ്ടെടുക്കാൻ വേഗതയേറിയ ശരാശരി സമയം നേടുക.
  • തിരുത്തലുകൾക്കുള്ള സമയം കുറയ്ക്കുക

DevOps ഈ ടാസ്‌ക്കുകളെല്ലാം നിർവ്വഹിക്കുകയും തടസ്സമില്ലാത്ത ഡെലിവറി ഉറപ്പാക്കാൻ സഹായിക്കുകയും ചെയ്യുന്നു. ഏതാനും വർഷങ്ങൾക്ക് മുമ്പ് സങ്കൽപ്പിക്കാനാവാത്ത ഉൽപ്പാദനക്ഷമത കൈവരിക്കാൻ ഓർഗനൈസേഷനുകൾ DevOps ഉപയോഗിക്കുന്നു. ലോകോത്തര വിശ്വാസ്യത, സ്ഥിരത, സുരക്ഷ എന്നിവ നൽകിക്കൊണ്ട് അവർ പ്രതിദിനം പതിനായിരക്കണക്കിന്, ആയിരക്കണക്കിന് വിന്യാസങ്ങൾ നടത്തുന്നു. (ലോട്ട് സൈസുകളെ കുറിച്ച് കൂടുതലറിയുക സോഫ്റ്റ്‌വെയർ ഡെലിവറിയിൽ അവയുടെ സ്വാധീനവും).

മുൻകാല രീതിശാസ്ത്രങ്ങളുടെ ഫലമായുണ്ടാകുന്ന വിവിധ പ്രശ്നങ്ങൾ പരിഹരിക്കാൻ DevOps ശ്രമിക്കുന്നു, ഇനിപ്പറയുന്നവ ഉൾപ്പെടെ:

  • ഡെവലപ്‌മെന്റ്, ഓപ്പറേഷൻ ടീമുകൾ തമ്മിലുള്ള ജോലിയുടെ ഒറ്റപ്പെടൽ
  • ടെസ്‌റ്റിംഗും വിന്യാസവും രൂപകല്പനയ്ക്കും നിർമ്മാണത്തിനും ശേഷം സംഭവിക്കുന്ന പ്രത്യേക ഘട്ടങ്ങളാണ്, കൂടാതെ ബിൽഡ് സൈക്കിളുകളേക്കാൾ കൂടുതൽ സമയം ആവശ്യമാണ്.
  • പ്രധാന ബിസിനസ്സ് സേവനങ്ങൾ നിർമ്മിക്കുന്നതിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നതിനുപകരം പരിശോധനയ്ക്കും വിന്യസിക്കുന്നതിനും രൂപകൽപ്പന ചെയ്യുന്നതിനും അമിത സമയം ചെലവഴിച്ചു
  • മാനുവൽ കോഡ് വിന്യാസം ഉൽപ്പാദനത്തിലെ പിശകുകളിലേക്ക് നയിക്കുന്നു
  • ഡെവലപ്‌മെന്റ്, ഓപ്പറേഷൻസ് ടീം ഷെഡ്യൂളുകളിലെ വ്യത്യാസങ്ങൾ അധിക കാലതാമസത്തിന് കാരണമാകുന്നു

തുടക്കക്കാർക്കുള്ള DevOps ഗൈഡ്

DevOps, എജൈൽ, പരമ്പരാഗത ഐടി എന്നിവ തമ്മിലുള്ള ഏറ്റുമുട്ടൽ

മറ്റ് ഐടി സമ്പ്രദായങ്ങളുമായി ബന്ധപ്പെട്ട്, പ്രത്യേകിച്ച് എജൈൽ, വാട്ടർഫാൾ ഐടി എന്നിവയുമായി ബന്ധപ്പെട്ട് DevOps പലപ്പോഴും ചർച്ച ചെയ്യപ്പെടുന്നു.

സോഫ്റ്റ്‌വെയർ നിർമ്മാണത്തിനായുള്ള തത്വങ്ങളുടെയും മൂല്യങ്ങളുടെയും പ്രയോഗങ്ങളുടെയും ഒരു കൂട്ടമാണ് എജൈൽ. അതിനാൽ, ഉദാഹരണത്തിന്, നിങ്ങൾക്ക് സോഫ്‌റ്റ്‌വെയറായി രൂപാന്തരപ്പെടണമെന്ന ആശയമുണ്ടെങ്കിൽ, നിങ്ങൾക്ക് എജൈൽ തത്വങ്ങളും മൂല്യങ്ങളും ഉപയോഗിക്കാം. എന്നാൽ ഈ സോഫ്‌റ്റ്‌വെയറിന് ഒരു ഡെവലപ്‌മെന്റ് അല്ലെങ്കിൽ ടെസ്റ്റിംഗ് പരിതസ്ഥിതിയിൽ മാത്രമേ പ്രവർത്തിക്കാൻ കഴിയൂ. നിങ്ങളുടെ സോഫ്‌റ്റ്‌വെയർ വേഗത്തിലും ആവർത്തിച്ചും പ്രൊഡക്ഷനിലേക്ക് നീക്കാൻ നിങ്ങൾക്ക് ലളിതവും സുരക്ഷിതവുമായ ഒരു മാർഗം ആവശ്യമാണ്, അതിനുള്ള മാർഗ്ഗം DevOps ടൂളുകളും ടെക്‌നിക്കുകളും ആണ്. എജൈൽ സോഫ്‌റ്റ്‌വെയർ വികസനം വികസന പ്രക്രിയകളിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നു, ഏറ്റവും സുരക്ഷിതവും വിശ്വസനീയവുമായ രീതിയിൽ വികസനത്തിനും വിന്യാസത്തിനും DevOps ഉത്തരവാദിയാണ്.

പരമ്പരാഗത വെള്ളച്ചാട്ട മോഡലിനെ DevOps-മായി താരതമ്യം ചെയ്യുന്നത് DevOps നൽകുന്ന നേട്ടങ്ങൾ മനസ്സിലാക്കാനുള്ള നല്ലൊരു മാർഗമാണ്. ഇനിപ്പറയുന്ന ഉദാഹരണം അനുമാനിക്കുന്നത് ആപ്ലിക്കേഷൻ നാലാഴ്ചയ്ക്കുള്ളിൽ തത്സമയമാകുമെന്നും, വികസനം 85% പൂർത്തിയായി, ആപ്ലിക്കേഷൻ തത്സമയമാകും, കൂടാതെ കോഡ് ഷിപ്പ് ചെയ്യുന്നതിനായി സെർവറുകൾ വാങ്ങുന്ന പ്രക്രിയ ഇപ്പോൾ ആരംഭിച്ചു.

പരമ്പരാഗത പ്രക്രിയകൾ
DevOps-ലെ പ്രക്രിയകൾ

പുതിയ സെർവറുകൾക്കായി ഒരു ഓർഡർ നൽകിയ ശേഷം, ഡെവലപ്‌മെന്റ് ടീം ടെസ്റ്റിംഗിൽ പ്രവർത്തിക്കുന്നു. അടിസ്ഥാന സൗകര്യങ്ങൾ വിന്യസിക്കുന്നതിന് സംരംഭങ്ങൾക്ക് ആവശ്യമായ വിപുലമായ ഡോക്യുമെന്റേഷനിൽ ടാസ്‌ക് ഫോഴ്‌സ് പ്രവർത്തിക്കുന്നു.
പുതിയ സെർവറുകൾക്കായി ഒരു ഓർഡർ നൽകിക്കഴിഞ്ഞാൽ, പുതിയ സെർവറുകൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനുള്ള പ്രക്രിയകളിലും പേപ്പർവർക്കുകളിലും വികസന, പ്രവർത്തന ടീമുകൾ ഒരുമിച്ച് പ്രവർത്തിക്കുന്നു. നിങ്ങളുടെ ഇൻഫ്രാസ്ട്രക്ചർ ആവശ്യകതകൾ നന്നായി മനസ്സിലാക്കാൻ ഇത് നിങ്ങളെ അനുവദിക്കുന്നു.

പരാജയം, ആവർത്തനം, ഡാറ്റാ സെന്റർ ലൊക്കേഷനുകൾ, സംഭരണ ​​ആവശ്യകതകൾ എന്നിവയെക്കുറിച്ചുള്ള വിവരങ്ങൾ തെറ്റായി പ്രതിനിധീകരിക്കപ്പെടുന്നു, കാരണം ആഴത്തിലുള്ള ഡൊമെയ്‌ൻ പരിജ്ഞാനമുള്ള ഒരു ഡെവലപ്‌മെന്റ് ടീമിൽ നിന്ന് ഇൻപുട്ട് ഇല്ല.
ഡെവലപ്‌മെന്റ് ടീമിന്റെ ഇൻപുട്ട് കാരണം പരാജയം, ആവർത്തനം, ദുരന്ത വീണ്ടെടുക്കൽ, ഡാറ്റാ സെന്റർ ലൊക്കേഷനുകൾ, സ്‌റ്റോറേജ് ആവശ്യകതകൾ എന്നിവയെ കുറിച്ചുള്ള വിശദാംശങ്ങൾ അറിയാം.

ഡെവലപ്‌മെന്റ് ടീമിന്റെ പുരോഗതിയെക്കുറിച്ച് ഓപ്പറേഷൻ ടീമിന് യാതൊരു ധാരണയുമില്ല. സ്വന്തം ആശയങ്ങളെ അടിസ്ഥാനമാക്കി അവൾ ഒരു നിരീക്ഷണ പദ്ധതിയും വികസിപ്പിക്കുന്നു.

ഡെവലപ്‌മെന്റ് ടീം കൈവരിച്ച പുരോഗതിയെക്കുറിച്ച് ഓപ്പറേഷൻ ടീമിന് പൂർണ്ണമായി അറിയാം. അവൾ ഡെവലപ്‌മെന്റ് ടീമുമായി സംവദിക്കുകയും ഐടി, ബിസിനസ് ആവശ്യങ്ങൾ നിറവേറ്റുന്ന ഒരു മോണിറ്ററിംഗ് പ്ലാൻ വികസിപ്പിക്കുന്നതിന് അവർ ഒരുമിച്ച് പ്രവർത്തിക്കുകയും ചെയ്യുന്നു. അവർ ആപ്ലിക്കേഷൻ പെർഫോമൻസ് മോണിറ്ററിംഗ് (എപിഎം) ടൂളുകളും ഉപയോഗിക്കുന്നു.

ഒരു ആപ്ലിക്കേഷൻ സമാരംഭിക്കുന്നതിന് മുമ്പ് നടത്തിയ ഒരു ലോഡ് ടെസ്റ്റ് ആപ്ലിക്കേഷൻ ക്രാഷുചെയ്യുന്നതിന് കാരണമാകുന്നു, അത് അതിന്റെ ലോഞ്ച് വൈകിപ്പിക്കുന്നു.
ഒരു ആപ്ലിക്കേഷൻ പ്രവർത്തിപ്പിക്കുന്നതിന് മുമ്പ് നടത്തിയ ഒരു ലോഡ് ടെസ്റ്റ് മോശം പ്രകടനത്തിന് കാരണമാകുന്നു. വികസന ടീം തടസ്സങ്ങൾ വേഗത്തിൽ പരിഹരിക്കുകയും കൃത്യസമയത്ത് ആപ്ലിക്കേഷൻ സമാരംഭിക്കുകയും ചെയ്യുന്നു.

DevOps ജീവിതചക്രം

പൊതുവായി അംഗീകരിക്കപ്പെട്ട ചില സമ്പ്രദായങ്ങൾ സ്വീകരിക്കുന്നത് DevOps-ൽ ഉൾപ്പെടുന്നു.

തുടർച്ചയായ ആസൂത്രണം

തുടർച്ചയായ ആസൂത്രണം, ബിസിനസ്സിന്റെയോ കാഴ്ചപ്പാടിന്റെയോ മൂല്യം പരിശോധിക്കുന്നതിനും, തുടർച്ചയായി പൊരുത്തപ്പെടുത്തുന്നതിനും, പുരോഗതി അളക്കുന്നതിനും, ഉപഭോക്തൃ ആവശ്യങ്ങളിൽ നിന്ന് പഠിക്കുന്നതിനും, ചടുലത ഉൾക്കൊള്ളുന്നതിനും ബിസിനസ് പ്ലാൻ പുനർനിർമ്മിക്കുന്നതിനും ആവശ്യമായ ഉറവിടങ്ങളും ഔട്ട്പുട്ടുകളും തിരിച്ചറിഞ്ഞ് ചെറുതായി തുടങ്ങാൻ മെലിഞ്ഞ തത്വങ്ങളെ ആശ്രയിക്കുന്നു.

സംയുക്ത വികസനം

ഗുണനിലവാരമുള്ള സോഫ്‌റ്റ്‌വെയർ തുടർച്ചയായി നൽകുന്നതിന് വിവിധ സമയ മേഖലകളിൽ വ്യാപിച്ചുകിടക്കുന്ന ബിസിനസുകൾ, വികസന ടീമുകൾ, ടെസ്റ്റിംഗ് ടീമുകൾ എന്നിവയെ സഹകരണ വികസന പ്രക്രിയ അനുവദിക്കുന്നു. ഇതിൽ മൾട്ടി-പ്ലാറ്റ്ഫോം വികസനം, ക്രോസ്-ലാംഗ്വേജ് പ്രോഗ്രാമിംഗ് പിന്തുണ, ഉപയോക്തൃ സ്റ്റോറി സൃഷ്ടിക്കൽ, ആശയ വികസനം, ലൈഫ് സൈക്കിൾ മാനേജ്മെന്റ് എന്നിവ ഉൾപ്പെടുന്നു. തുടർച്ചയായ സംയോജനത്തിന്റെ പ്രക്രിയയും പരിശീലനവും സഹകരണ വികസനത്തിൽ ഉൾപ്പെടുന്നു, ഇത് പതിവ് കോഡ് സംയോജനവും ഓട്ടോമേറ്റഡ് ബിൽഡുകളും പ്രോത്സാഹിപ്പിക്കുന്നു. ഒരു ആപ്ലിക്കേഷനിലേക്ക് കോഡ് ഇടയ്ക്കിടെ വിന്യസിക്കുന്നതിലൂടെ, ജീവിതചക്രത്തിന്റെ തുടക്കത്തിൽ തന്നെ സംയോജന പ്രശ്നങ്ങൾ തിരിച്ചറിയുന്നു (അവ പരിഹരിക്കാൻ എളുപ്പമുള്ളപ്പോൾ) കൂടാതെ പ്രോജക്റ്റ് തുടർച്ചയായതും ദൃശ്യവുമായ പുരോഗതി കാണിക്കുന്നതിനാൽ തുടർച്ചയായ ഫീഡ്‌ബാക്കിലൂടെ മൊത്തത്തിലുള്ള ഏകീകരണ ശ്രമങ്ങൾ കുറയുന്നു.

തുടർച്ചയായ പരിശോധന

വികസന ടീമുകളെ ഗുണനിലവാരവും വേഗതയും സന്തുലിതമാക്കാൻ സഹായിക്കുന്നതിലൂടെ തുടർച്ചയായ പരിശോധന പരിശോധനയുടെ ചിലവ് കുറയ്ക്കുന്നു. ഇത് സേവന വിർച്ച്വലൈസേഷനിലൂടെ ടെസ്റ്റിംഗ് തടസ്സങ്ങൾ ഇല്ലാതാക്കുകയും സിസ്റ്റങ്ങൾ മാറുന്നതിനനുസരിച്ച് എളുപ്പത്തിൽ പങ്കിടാനും വിന്യസിക്കാനും അപ്‌ഡേറ്റ് ചെയ്യാനും കഴിയുന്ന വെർച്വലൈസ്ഡ് ടെസ്റ്റ് പരിതസ്ഥിതികൾ സൃഷ്ടിക്കുന്നത് എളുപ്പമാക്കുന്നു. ഈ കഴിവുകൾ ടെസ്റ്റ് പരിതസ്ഥിതികൾ പ്രൊവിഷൻ ചെയ്യുന്നതിനും പരിപാലിക്കുന്നതിനുമുള്ള ചെലവ് കുറയ്ക്കുകയും ടെസ്റ്റ് സൈക്കിൾ സമയം കുറയ്ക്കുകയും ചെയ്യുന്നു, ഇത് ജീവിതചക്രത്തിൽ നേരത്തെ തന്നെ സംയോജന പരിശോധന നടത്താൻ അനുവദിക്കുന്നു.

തുടർച്ചയായ റിലീസും വിന്യാസവും

ഈ സങ്കേതങ്ങൾ അവരോടൊപ്പം ഒരു പ്രധാന പരിശീലനവും കൊണ്ടുവരുന്നു: തുടർച്ചയായ റിലീസും വിന്യാസവും. പ്രധാന പ്രക്രിയകൾ ഓട്ടോമേറ്റ് ചെയ്യുന്ന ഒരു തുടർച്ചയായ പൈപ്പ്ലൈൻ ഇത് ഉറപ്പാക്കുന്നു. ഒരു ബട്ടൺ അമർത്തുമ്പോൾ വിന്യാസം പ്രവർത്തനക്ഷമമാക്കുന്നതിലൂടെ ഇത് മാനുവൽ ഘട്ടങ്ങൾ, റിസോഴ്‌സ് കാത്തിരിപ്പ് സമയം, പുനർനിർമ്മാണം എന്നിവ കുറയ്ക്കുന്നു, ഇത് കൂടുതൽ റിലീസുകൾ, കുറച്ച് പിശകുകൾ, പൂർണ്ണ സുതാര്യത എന്നിവയ്ക്ക് കാരണമാകുന്നു.

സുസ്ഥിരവും വിശ്വസനീയവുമായ സോഫ്റ്റ്‌വെയർ റിലീസ് ഉറപ്പാക്കുന്നതിൽ ഓട്ടോമേഷൻ ഒരു പ്രധാന പങ്ക് വഹിക്കുന്നു. ബിൽഡ്, റിഗ്രഷൻ, ഡിപ്ലോയ്‌മെന്റ്, ഇൻഫ്രാസ്ട്രക്ചർ ക്രിയേഷൻ തുടങ്ങിയ സ്വമേധയാലുള്ള പ്രക്രിയകൾ എടുത്ത് അവയെ ഓട്ടോമേറ്റ് ചെയ്യുക എന്നതാണ് ഏറ്റവും വലിയ വെല്ലുവിളി. ഇതിന് സോഴ്സ് കോഡ് പതിപ്പ് നിയന്ത്രണം ആവശ്യമാണ്; പരിശോധനയും വിന്യാസവും സാഹചര്യങ്ങൾ; ഇൻഫ്രാസ്ട്രക്ചറും ആപ്ലിക്കേഷൻ കോൺഫിഗറേഷൻ ഡാറ്റയും; ആപ്ലിക്കേഷൻ ആശ്രയിക്കുന്ന ലൈബ്രറികളും പാക്കേജുകളും. എല്ലാ പരിതസ്ഥിതികളുടെയും അവസ്ഥ അന്വേഷിക്കാനുള്ള കഴിവാണ് മറ്റൊരു പ്രധാന ഘടകം.

തുടർച്ചയായ നിരീക്ഷണം

തുടർച്ചയായ നിരീക്ഷണം എന്റർപ്രൈസ്-ഗ്രേഡ് റിപ്പോർട്ടിംഗ് നൽകുന്നു, അത് പ്രൊഡക്ഷനിലേക്ക് വിന്യസിക്കുന്നതിന് മുമ്പ് പ്രൊഡക്ഷൻ പരിതസ്ഥിതികളിലെ ആപ്ലിക്കേഷനുകളുടെ ലഭ്യതയും പ്രകടനവും മനസ്സിലാക്കാൻ വികസന ടീമുകളെ സഹായിക്കുന്നു. തുടർച്ചയായ നിരീക്ഷണം നൽകുന്ന ആദ്യകാല ഫീഡ്‌ബാക്ക് പിശകുകളുടെ വില കുറയ്ക്കുന്നതിനും ശരിയായ ദിശയിലുള്ള പ്രോജക്റ്റുകൾ സ്റ്റിയറിംഗ് ചെയ്യുന്നതിനും നിർണായകമാണ്. ആപ്ലിക്കേഷൻ പ്രകടനവുമായി ബന്ധപ്പെട്ട മെട്രിക്‌സ് സാധാരണയായി വെളിപ്പെടുത്തുന്ന മോണിറ്ററിംഗ് ടൂളുകൾ ഈ പരിശീലനത്തിൽ ഉൾപ്പെടുന്നു.

നിരന്തരമായ ഫീഡ്ബാക്കും ഒപ്റ്റിമൈസേഷനും

തുടർച്ചയായ ഫീഡ്‌ബാക്കും ഒപ്റ്റിമൈസേഷനും ഉപഭോക്തൃ പ്രവാഹത്തിന്റെ ദൃശ്യ പ്രാതിനിധ്യം നൽകുകയും പ്രശ്‌ന മേഖലകളെ കൃത്യമായി കണ്ടെത്തുകയും ചെയ്യുന്നു. മൂല്യം വർദ്ധിപ്പിക്കുന്നതിനും കൂടുതൽ ഇടപാടുകൾ വിജയകരമായി പൂർത്തിയാക്കുന്നുവെന്ന് ഉറപ്പാക്കുന്നതിനും വിൽപ്പനയ്ക്ക് മുമ്പും ശേഷവും ഫീഡ്‌ബാക്ക് ഉൾപ്പെടുത്താവുന്നതാണ്. ഇതെല്ലാം അവരുടെ പെരുമാറ്റത്തെയും ബിസിനസ്സ് സ്വാധീനത്തെയും സ്വാധീനിക്കുന്ന ഉപഭോക്തൃ പ്രശ്നങ്ങളുടെ മൂലകാരണത്തിന്റെ ഉടനടി ദൃശ്യവൽക്കരണം നൽകുന്നു.

തുടക്കക്കാർക്കുള്ള DevOps ഗൈഡ്

DevOps-ന്റെ പ്രയോജനങ്ങൾ

ഡവലപ്പർമാരും പ്രവർത്തനങ്ങളും പൊതുവായ ലക്ഷ്യങ്ങൾ കൈവരിക്കുന്നതിന് ഒരു ടീമായി പ്രവർത്തിക്കുന്ന ഒരു അന്തരീക്ഷം സൃഷ്ടിക്കാൻ DevOps-ന് കഴിയും. ഈ പ്രക്രിയയിലെ ഒരു പ്രധാന നാഴികക്കല്ല്, തുടർച്ചയായ സംയോജനവും തുടർച്ചയായ ഡെലിവറി (CI/CD) നടപ്പിലാക്കലും ആണ്. ഈ ടെക്‌നിക്കുകൾ, കുറച്ച് ബഗുകളുള്ള സോഫ്റ്റ്‌വെയർ വേഗത്തിൽ മാർക്കറ്റ് ചെയ്യാൻ ടീമുകളെ അനുവദിക്കും.

DevOps-ന്റെ പ്രധാന നേട്ടങ്ങൾ ഇവയാണ്:

  • പ്രവചനക്ഷമത: പുതിയ റിലീസുകൾക്കായി DevOps വളരെ കുറഞ്ഞ പരാജയ നിരക്ക് വാഗ്ദാനം ചെയ്യുന്നു.
  • മെയിന്റനബിലിറ്റി: ഒരു പുതിയ റിലീസ് പരാജയപ്പെടുകയോ അല്ലെങ്കിൽ ഒരു ആപ്ലിക്കേഷൻ കുറയുകയോ ചെയ്താൽ എളുപ്പത്തിൽ വീണ്ടെടുക്കാൻ DevOps അനുവദിക്കുന്നു.
  • പുനരുൽപാദനക്ഷമത: ഒരു ബിൽഡിന്റെയോ കോഡിന്റെയോ പതിപ്പ് നിയന്ത്രണം ആവശ്യാനുസരണം മുമ്പത്തെ പതിപ്പുകൾ പുനഃസ്ഥാപിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു.
  • ഉയർന്ന നിലവാരം: ഇൻഫ്രാസ്ട്രക്ചർ പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നത് ആപ്ലിക്കേഷൻ വികസനത്തിന്റെ ഗുണനിലവാരം മെച്ചപ്പെടുത്തുന്നു.
  • മാർക്കറ്റിലേക്കുള്ള സമയം: സോഫ്റ്റ്‌വെയർ ഡെലിവറി ഒപ്റ്റിമൈസ് ചെയ്യുന്നത് മാർക്കറ്റിലേക്കുള്ള സമയം 50% കുറയ്ക്കുന്നു.
  • അപകടസാധ്യത കുറയ്ക്കൽ: സോഫ്റ്റ്‌വെയർ ലൈഫ് സൈക്കിളിൽ സുരക്ഷ നടപ്പിലാക്കുന്നത് ജീവിതചക്രത്തിലുടനീളം വൈകല്യങ്ങളുടെ എണ്ണം കുറയ്ക്കുന്നു.
  • ചെലവ് കാര്യക്ഷമത: സോഫ്റ്റ്‌വെയർ വികസനത്തിൽ ചെലവ് കാര്യക്ഷമത തേടുന്നത് മുതിർന്ന മാനേജ്‌മെന്റിനെ ആകർഷിക്കുന്നു.
  • സ്ഥിരത: സോഫ്റ്റ്‌വെയർ സിസ്റ്റം കൂടുതൽ സുസ്ഥിരവും സുരക്ഷിതവുമാണ്, മാറ്റങ്ങൾ ഓഡിറ്റ് ചെയ്യാവുന്നതാണ്.
  • ഒരു വലിയ കോഡ്ബേസ് കൈകാര്യം ചെയ്യാവുന്ന കഷണങ്ങളായി വിഭജിക്കുന്നു: DevOps ചടുലമായ വികസന രീതികളെ അടിസ്ഥാനമാക്കിയുള്ളതാണ്, ഇത് ഒരു വലിയ കോഡ്ബേസിനെ ചെറുതും കൈകാര്യം ചെയ്യാവുന്നതുമായ കഷണങ്ങളായി വിഭജിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു.

DevOps തത്വങ്ങൾ

DevOps സ്വീകരിക്കുന്നത് വികസിച്ച (വികസിച്ചുകൊണ്ടിരിക്കുന്നു) നിരവധി തത്ത്വങ്ങൾക്ക് കാരണമായി. മിക്ക പരിഹാര ദാതാക്കളും വിവിധ സാങ്കേതിക വിദ്യകളുടെ സ്വന്തം പരിഷ്ക്കരണങ്ങൾ വികസിപ്പിച്ചെടുത്തിട്ടുണ്ട്. ഈ തത്ത്വങ്ങളെല്ലാം DevOps-നോടുള്ള സമഗ്രമായ സമീപനത്തെ അടിസ്ഥാനമാക്കിയുള്ളതാണ്, ഏത് വലുപ്പത്തിലുള്ള സ്ഥാപനങ്ങൾക്കും അവ ഉപയോഗിക്കാനാകും.

ഉൽപ്പാദനം പോലുള്ള അന്തരീക്ഷത്തിൽ വികസിപ്പിക്കുകയും പരീക്ഷിക്കുകയും ചെയ്യുക

പ്രൊഡക്ഷൻ സിസ്റ്റങ്ങൾ പോലെ പെരുമാറുന്ന സംവിധാനങ്ങൾ വികസിപ്പിക്കുന്നതിനും പരീക്ഷിക്കുന്നതിനും ഡെവലപ്‌മെന്റ് ആൻഡ് ക്വാളിറ്റി അഷ്വറൻസ് (ക്യുഎ) ടീമുകളെ പ്രാപ്‌തമാക്കുക എന്നതാണ് ആശയം, അതുവഴി വിന്യാസത്തിന് തയ്യാറാകുന്നതിന് വളരെ മുമ്പുതന്നെ ആപ്ലിക്കേഷൻ എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്നും പ്രവർത്തിക്കുന്നുവെന്നും അവർക്ക് കാണാൻ കഴിയും.

മൂന്ന് പ്രധാന പ്രശ്‌നങ്ങൾ പരിഹരിക്കുന്നതിന് ആപ്ലിക്കേഷൻ അതിന്റെ ജീവിതചക്രത്തിൽ കഴിയുന്നത്ര നേരത്തെ തന്നെ ഉൽപ്പാദന സംവിധാനങ്ങളുമായി ബന്ധിപ്പിച്ചിരിക്കണം. ഒന്നാമതായി, യഥാർത്ഥ പരിതസ്ഥിതിക്ക് അടുത്തുള്ള ഒരു പരിതസ്ഥിതിയിൽ ആപ്ലിക്കേഷൻ പരിശോധിക്കാൻ ഇത് നിങ്ങളെ അനുവദിക്കുന്നു. രണ്ടാമതായി, ആപ്ലിക്കേഷൻ ഡെലിവറി പ്രക്രിയകൾ മുൻകൂട്ടി പരിശോധിക്കാനും സാധൂകരിക്കാനും ഇത് നിങ്ങളെ അനുവദിക്കുന്നു. മൂന്നാമതായി, ആപ്ലിക്കേഷനുകൾ വിന്യസിക്കുമ്പോൾ അവരുടെ പരിസ്ഥിതി എങ്ങനെ പ്രവർത്തിക്കുമെന്ന് ലൈഫ് സൈക്കിളിന്റെ തുടക്കത്തിൽ തന്നെ പരിശോധിക്കാൻ ഓപ്പറേഷൻ ടീമിനെ ഇത് അനുവദിക്കുന്നു, അതുവഴി വളരെ ഇഷ്ടാനുസൃതവും ആപ്ലിക്കേഷൻ കേന്ദ്രീകൃതവുമായ അന്തരീക്ഷം സൃഷ്ടിക്കാൻ അവരെ അനുവദിക്കുന്നു.

ആവർത്തിക്കാവുന്ന, വിശ്വസനീയമായ പ്രക്രിയകൾ ഉപയോഗിച്ച് വിന്യസിക്കുക

മുഴുവൻ സോഫ്റ്റ്‌വെയർ ലൈഫ് സൈക്കിളിലുടനീളം ചടുലമായ സോഫ്‌റ്റ്‌വെയർ വികസന പ്രക്രിയകളെ പിന്തുണയ്‌ക്കാൻ ഈ തത്വം ഡെവലപ്‌മെന്റ്, ഓപ്പറേഷൻസ് ടീമുകളെ അനുവദിക്കുന്നു. ആവർത്തനപരവും വിശ്വസനീയവും ആവർത്തിക്കാവുന്നതുമായ പ്രക്രിയകൾ സൃഷ്ടിക്കുന്നതിന് ഓട്ടോമേഷൻ നിർണായകമാണ്. അതിനാൽ, തുടർച്ചയായ, ഓട്ടോമേറ്റഡ് വിന്യാസവും പരിശോധനയും പ്രാപ്തമാക്കുന്ന ഒരു ഡെലിവറി പൈപ്പ്ലൈൻ ഓർഗനൈസേഷൻ സൃഷ്ടിക്കണം. പതിവ് വിന്യാസം, വിന്യാസ പ്രക്രിയകൾ പരിശോധിക്കാൻ ടീമുകളെ അനുവദിക്കുന്നു, അതുവഴി തത്സമയ റിലീസുകളിൽ വിന്യാസം പരാജയപ്പെടാനുള്ള സാധ്യത കുറയ്ക്കുന്നു.

ജോലിയുടെ ഗുണനിലവാരം നിരീക്ഷിക്കുകയും പരിശോധിക്കുകയും ചെയ്യുന്നു

ഉൽപ്പാദനത്തിലെ ആപ്ലിക്കേഷനുകൾ നിരീക്ഷിക്കുന്നതിൽ ഓർഗനൈസേഷനുകൾ മികച്ചതാണ്, കാരണം അവർക്ക് മെട്രിക്സും പ്രധാന പ്രകടന സൂചകങ്ങളും (കെപിഐ) തത്സമയം പിടിച്ചെടുക്കുന്ന ടൂളുകൾ ഉണ്ട്. ഈ തത്വം ജീവിത ചക്രത്തിന്റെ തുടക്കത്തിൽ നിരീക്ഷണം നീക്കുന്നു, പ്രക്രിയയുടെ തുടക്കത്തിൽ ഒരു ആപ്ലിക്കേഷന്റെ പ്രവർത്തനപരവും പ്രവർത്തനപരമല്ലാത്തതുമായ ആട്രിബ്യൂട്ടുകൾ ഓട്ടോമേറ്റഡ് ടെസ്റ്റിംഗ് നിരീക്ഷിക്കുന്നുവെന്ന് ഉറപ്പാക്കുന്നു. ഒരു ആപ്ലിക്കേഷൻ പരിശോധിച്ച് വിന്യസിക്കുമ്പോഴെല്ലാം, ഗുണനിലവാര അളവുകൾ പരിശോധിക്കുകയും വിശകലനം ചെയ്യുകയും വേണം. മോണിറ്ററിംഗ് ടൂളുകൾ ഉൽപ്പാദന സമയത്ത് ഉണ്ടായേക്കാവുന്ന പ്രവർത്തനപരവും ഗുണമേന്മയുള്ളതുമായ പ്രശ്നങ്ങളെക്കുറിച്ച് മുൻകൂട്ടി മുന്നറിയിപ്പ് നൽകുന്നു. ഈ സൂചകങ്ങൾ എല്ലാ പങ്കാളികൾക്കും ആക്സസ് ചെയ്യാവുന്നതും മനസ്സിലാക്കാവുന്നതുമായ ഒരു ഫോർമാറ്റിൽ ശേഖരിക്കണം.

ഫീഡ്ബാക്ക് ലൂപ്പുകൾ മെച്ചപ്പെടുത്തുന്നു

DevOps പ്രക്രിയകളുടെ ലക്ഷ്യങ്ങളിലൊന്ന്, വേഗത്തിൽ പ്രതികരിക്കാനും മാറ്റങ്ങൾ വരുത്താനും ഓർഗനൈസേഷനുകളെ പ്രാപ്തരാക്കുക എന്നതാണ്. സോഫ്‌റ്റ്‌വെയർ ഡെലിവറിയിൽ, ഈ ലക്ഷ്യത്തിന് ഓർഗനൈസേഷനോട് ഫീഡ്‌ബാക്ക് നേരത്തെ സ്വീകരിക്കുകയും തുടർന്ന് ചെയ്യുന്ന ഓരോ പ്രവർത്തനത്തിൽ നിന്നും വേഗത്തിൽ പഠിക്കുകയും വേണം. ഫീഡ്‌ബാക്ക് രീതിയിൽ ആക്‌സസ് ചെയ്യാനും സംവദിക്കാനും ഓഹരി ഉടമകളെ അനുവദിക്കുന്ന ആശയവിനിമയ ചാനലുകൾ സൃഷ്‌ടിക്കാൻ ഈ തത്വം ഓർഗനൈസേഷനുകൾ ആവശ്യപ്പെടുന്നു. നിങ്ങളുടെ പ്രോജക്ട് പ്ലാനുകളോ മുൻഗണനകളോ ക്രമീകരിച്ചുകൊണ്ട് വികസനം നടത്താം. ഉൽപ്പാദന അന്തരീക്ഷം മെച്ചപ്പെടുത്തുന്നതിലൂടെ ഉൽപ്പാദനത്തിന് പ്രവർത്തിക്കാനാകും.

ദേവ്

  • ആസൂത്രണം: Kanboard, Wekan, മറ്റ് Trello ഇതരമാർഗങ്ങൾ; GitLab, Tuleap, Redmine, മറ്റ് JIRA ഇതരമാർഗങ്ങൾ; Mattermost, Roit.im, IRC, മറ്റ് സ്ലാക്ക് ഇതരമാർഗങ്ങൾ.
  • എഴുത്ത് കോഡ്: Git, Gerrit, Bugzilla; ജെൻകിൻസും സിഐ/സിഡിക്കുള്ള മറ്റ് ഓപ്പൺ സോഴ്‌സ് ടൂളുകളും
  • അസംബ്ലി: അപ്പാച്ചെ മാവൻ, ഗ്രാഡിൽ, അപ്പാച്ചെ ആന്റ്, പാക്കർ
  • പരിശോധനകൾ: ജൂണിറ്റ്, കുക്കുമ്പർ, സെലിനിയം, അപ്പാച്ചെ ജെമീറ്റർ

Ops

  • റിലീസ്, വിന്യാസം, പ്രവർത്തനങ്ങൾ: കുബർനെറ്റസ്, നൊമാഡ്, ജെങ്കിൻസ്, സുൾ, സ്പിന്നക്കർ, അൻസിബിൾ, അപ്പാച്ചെ സൂ കീപ്പർ, തുടങ്ങിയവ, നെറ്റ്ഫ്ലിക്സ് ആർക്കായസ്, ടെറാഫോം
  • നിരീക്ഷണം: ഗ്രാഫാന, പ്രോമിത്യൂസ്, നാഗിയോസ്, ഇൻഫ്‌ളക്‌സ് ഡിബി, ഫ്ലൂന്റ്‌ഡ് എന്നിവയും മറ്റുള്ളവരും ഈ ഗൈഡിൽ ഉൾപ്പെടുന്നു

(*ഓപ്പറേഷൻസ് ടൂളുകൾ ഓപ്പറേഷൻ ടീമുകൾ ഉപയോഗിക്കുന്ന ക്രമത്തിൽ നമ്പർ നൽകിയിട്ടുണ്ട്, എന്നാൽ അവയുടെ ടൂളിംഗ് റിലീസ്, വിന്യാസ ടൂളുകളുടെ ലൈഫ് സൈക്കിൾ ഘട്ടങ്ങളെ ഓവർലാപ്പ് ചെയ്യുന്നു. വായനാക്ഷമതയുടെ എളുപ്പത്തിനായി, നമ്പറിംഗ് നീക്കം ചെയ്തു.)

ഉപസംഹാരമായി

ഡെവലപ്പർമാരെയും പ്രവർത്തനങ്ങളെയും ഒരു യൂണിറ്റായി ഒരുമിച്ച് കൊണ്ടുവരാൻ ലക്ഷ്യമിട്ടുള്ള കൂടുതൽ പ്രചാരത്തിലുള്ള ഒരു രീതിശാസ്ത്രമാണ് DevOps. ഇത് അദ്വിതീയമാണ്, പരമ്പരാഗത ഐടി പ്രവർത്തനങ്ങളിൽ നിന്ന് വ്യത്യസ്തമാണ്, കൂടാതെ എജൈലിനെ പൂർത്തീകരിക്കുന്നു (എന്നാൽ അത്ര വഴക്കമുള്ളതല്ല).

തുടക്കക്കാർക്കുള്ള DevOps ഗൈഡ്

SkillFactory-ൽ നിന്ന് പണമടച്ചുള്ള ഓൺലൈൻ കോഴ്‌സുകൾ എടുക്കുന്നതിലൂടെ, സ്‌ക്രാച്ചിൽ നിന്നും അല്ലെങ്കിൽ ലെവൽ അപ്പ് ആയ ഒരു തൊഴിൽ എങ്ങനെ നേടാം എന്നതിനെക്കുറിച്ചുള്ള വിശദാംശങ്ങൾ കണ്ടെത്തുക:

കൂടുതൽ കോഴ്സുകൾ

ഉപയോഗപ്രദമാണ്

അവലംബം: www.habr.com

ഒരു അഭിപ്രായം ചേർക്കുക