ക്ലൗഡ് കമ്പ്യൂട്ടിങ്ങ്

300px|thumb|right|ക്ലൗഡ് കമ്പ്യൂട്ടിംഗ് ലോജിക്കൽ ഡയഗ്രം
thumb|325px|right|ക്ലൗഡ് കമ്പ്യൂട്ടിംഗ് സാമ്പിൾ ആർക്കിടെക്ചർ
ഇന്റർനെറ്റ് അടിസ്ഥാനമാക്കിയുള്ള ഒരു കമ്പ്യൂട്ടിങ്ങ് രീതിയാണ്‌ **ക്ലൗഡ് കമ്പ്യൂട്ടിങ്ങ്**. ഇവിടെ ഒരു പ്രവൃത്തി ചെയ്യുന്നതിനാവശ്യമായ സോഫ്റ്റ്‌വെയർ പോലുള്ള കാര്യങ്ങൾ പങ്കു വെക്കപ്പെടുകയും ആവശ്യമുള്ളപ്പോൾ ഉപയോഗിക്കപ്പെടുകയും ചെയ്യുന്നു. 1980 കളിലുണ്ടായ മെയിൻഫ്രെയിമിൽ നിന്ന് ക്ലൈന്റ് - സെർ‌വർ അധിഷ്ഠിതമായ കമ്പ്യൂട്ടർ സിസ്റ്റത്തിലേക്കു മാറിയതു പോലുള്ള ഒരു മാറ്റമാണ്‌ ക്ലൗഡ് കമ്പ്യൂട്ടിങ്ങും.സാങ്കേതിക പദ്ം എന്നതിൽ ഉപരി ഒരു മാർക്കറ്റിങ് ടേം ആണ് 'ക്ലൗഡ് കമ്പ്യൂട്ടിങ്ങ്'.ഇന്റർനെറ്റ് വഴി  ദൂരെയിരിക്കുന്ന സെർവറിൽ ഫയലുകൾ സൂക്ഷിക്കുകയും സംസ്കരിക്കുകയും ചെയ്യുന്നതിനാണ് സാധാരണായായി  ക്ലൗഡ് കമ്പ്യൂട്ടിങ്ങ് എന്ന് പറയുന്നത്. ക്ലൗഡ് കമ്പ്യൂട്ടിങ്ങ് ഉപയോഗിക്കുന്ന ഒരു ഉപയോക്താവിനു്  അതിൽ ഉപയോഗിച്ചിരിക്കുന്ന സാങ്കേതിക വിദ്യയിൽ പരിജ്ഞാനം നേടുകയോ, അതിൽ നിയന്ത്രണമോ ഉണ്ടായിരിക്കേണ്ട ആവശ്യമില്ല..
## സേവന മാതൃകകൾ

### അടിസ്ഥാന സൗകര്യം ഒരു സേവനം എന്ന മാതൃക
ഈ മാതൃകയിൽ ക്ലൗഡ് കമ്പനികൾ, ഒരു ഉപഭോക്താവിന് ആവശ്യമായ കംപ്യൂട്ടർ വിവരങ്ങൾ  അവരുടെ പൂളിൽ നിന്നും ഉപയോക്താവിന് ആവശ്യത്തിനനുസരിച്ച് നൽകുന്നു. ഉദാഹരണത്തിന് , വെർച്ച്വൽ കംപ്യൂട്ടറുകൾ , ഐ.പി.അഡ്രസ്സ് , സ്റ്റോറേജ് തുടങ്ങിയവ. ഉപയോക്താവിന് ആവശ്യമായ സോഫ്ട് വെയറുകൾ / ആപ്ലിക്കേഷനുകൾ ഇൻസ്റ്റാൾ ചെയ്യാൻ , ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾ ഇത്തരം ക്ലൗഡ് നോഡുകളിൽ പ്രവർത്തിപ്പിക്കാൻ പറ്റും.
thumb|300px|right|ക്ലൗഡ് കംപ്യൂട്ടിംഗ് മാതൃകകൾ

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

### സോഫ്ട് വെയർ ഒരു സേവനം എന്ന മാതൃക(saas)
ഈ ഒരു സേവനമാതൃകയിൽ നമുക്കാവശ്യമുള്ള , അല്ലെങ്കിൽ ഒരു ഉപഭോക്താവിന് ആവശ്യമുള്ള സോഫ്ട് വെയറുകൾ നിമിഷങ്ങൾക്കുള്ളിൽ എത്തിച്ച് നൽകുന്നതാണ് സോഫ്ട് വെയർ ഒരു സേവനം എന്ന മാതൃക. ഈ മാതൃകയിൽ ഉപയോക്താവ് , പ്ലാറ്റഫോമോ മറ്റു കാര്യങ്ങളോ ശ്രദ്ധിക്കേണ്ടതില്ല. മറിച്ച് തനിക്ക് ആവശ്യമുള്ള ആപ്ലിക്കേഷനുകൾ തിരഞ്ഞെടുത്ത് പ്രവർത്തനം ആരംഭിച്ചാൽ മതിയാകും.

## ഡിസ്ട്രിബ്യൂട്ടഡ് കമ്പ്യൂട്ടിംഗും ക്ലൗഡ് കമ്പ്യൂട്ടിംഗും
വളരെ ലളിതമായി പറയുകയാണങ്കിൽ ഒരു കമ്പ്യൂട്ടർ നെറ്റ് വർക്ക് വഴി ബന്ധിപ്പിച്ചിരിക്കുന്ന നിരവധി കമ്പ്യൂട്ടറുകൾ ഒരു കോമൺ ആവശ്യത്തിനായി പ്രവർത്തിക്കുമ്പോൾ അതിനെ ഡിസ്ട്രിബ്യൂട്ടഡ് കമ്പ്യൂട്ടിംഗ് (Distributed computing) എന്ന് വിളിക്കാം. ഈ കമ്പ്യൂട്ടറുകളെല്ലാം സ്ഥിതി ചെയ്യുന്നത് ചിലപ്പോൾ വെബിലായിരിക്കാം അതുമല്ലെങ്കിൽ ഒരു പ്രൈവറ്റ് നെറ്റ്‌വർക്കിലായിരിക്കാം. ഡിസ്ട്രിബ്യൂട്ടഡ് കമ്പ്യൂട്ടിംഗിൽ ഈ നെറ്റ്‌വർക്കിൽ ഉൾപ്പെട്ടിരിക്കുന്ന കമ്പ്യൂട്ടറുകൾക്ക് ചുമതലകൾ വീതിച്ച് നൽകുകയും അവ ഒരു പ്രത്യേക കമ്പ്യൂട്ടറിന്റെ പ്രവർത്തികളൊ അതുമല്ലങ്കിൽ ഒരു പ്രോഗ്രാമിനോ വേണ്ടി പ്രവർത്തിക്കുകയൊ ആയിരിക്കും ചെയ്യുക. ഈ നെറ്റ്‌വർക്കിനുള്ളീൽ പ്രവർത്തിക്കുന്ന കമ്പ്യൂട്ടറുകളൂടെ റിസോഴ്സസ്, ഹാർഡ്‌വെയറുകൾ, മെമ്മറി മുതലായവയെല്ലാം തന്നെ മറ്റു കമ്പ്യൂട്ടറുകളുമായി ഷെയർ ചെയ്തിരിക്കും. ഇവയെ ഒരു  കൺ‌ട്രോൾ നോഡ് വഴി നിയന്ത്രിക്കുന്നു. ഇങ്ങനെ ചെയ്യുന്നത് വഴി കമ്പ്യൂട്ടറുകളുടെ ശേഷി വളരെയധികം വർദ്ധിക്കുകയും അവ സൂപ്പർ കമ്പ്യൂട്ടറുകളെ പോലെ പ്രവർത്തിക്കുകയും ചെയ്യുന്നു. ഡിസ്ട്രിബ്യൂട്ടിംഗ് കമ്പ്യൂട്ടിംഗ് ഗ്രിഡ് കമ്പ്യൂട്ടിംഗ് (Grid Computing)  എന്ന മറ്റൊരു പേരിലുമറിയപ്പെടുന്നു. ഡിസ്ട്രിബ്യൂട്ടഡ് കമ്പ്യൂട്ടിംഗ് സിസ്റ്റം പ്രവർത്തിക്കുന്നതിനായ് ഒരു ഇന്റർഫെയ്സ് ആവശ്യമാണ്. 

ഡിസ്ട്രിബ്യൂട്ടഡ് കമ്പ്യൂട്ടറുകളുടെ തന്നെ ആശയത്തെ കടമെടുത്താണ് ക്ലൌഡ് കമ്പ്യൂട്ടിംഗ് (Cloud Computing)   നിലവിൽ വരുന്നത്.  മറ്റൊരു തരത്തിലുള്ള ഡീസ്ട്രിബ്യൂട്ടഡ് കമ്പ്യൂട്ടിംഗ് തന്നെയാണു ക്ലൌഡ് കമ്പ്യൂട്ടിംഗ് എന്നുമറിയപ്പെടുന്നത്. വെബ് അടിസ്ഥാനമാക്കിയാണ് ക്ലൌഡ് കമ്പ്യൂട്ടിംഗ് സിസ്റ്റം പ്രവർത്തിക്കുന്നത്. എന്നാൽ കൃത്യമായൊരു നിർവചനം ഇതുവരെ ക്ലൌഡ് കമ്പ്യൂട്ടീംഗിനായി നൽകിയിട്ടില്ല
സാധാരണഗതിയിൽ ഒരു കമ്പ്യൂട്ടറിനുള്ളീൽ ഓപ്പറേറ്റിംഗ് സോഫ്‌റ്റ് വെയറുകളടക്കമുള്ള നിരവധി ആപ്ലിക്കേഷനുകൾ ഇൻസ്റ്റാൾ ചെയ്തായിരിക്കും ഒരു ഉപയോക്താവ് പ്രവർത്തിക്കുന്നത്. ഓരൊ യൂസർക്കും പ്രത്യേകം ആപ്ലിക്കേഷൻ സ്യൂട്ടൂകൾ അവരവരുടെ കമ്പ്യൂട്ടറുകളിൽ ഇൻസ്റ്റാൾ ചെയ്യേണ്ടി വരുന്നു. ഇതു വഴി വൻ സാമ്പത്തിക ചെലവുകൾ ഉണ്ടാകുകയും ചെയ്യുന്നു. ക്ലൌഡ് കമ്പ്യൂട്ടിംഗിൽ ഇങ്ങനെ ചെയ്യുന്നതിനു പകരം ഈ ആപ്ലിക്കേഷൻ സ്യൂട്ടുകളെ  (Application Suits) ഒരു കമ്പ്യൂട്ടറിനുള്ളീൽ മാത്രം (സാധാരണ ഗതിയിൽ വെബ്‌സെർവറുകൾ) ഇൻസ്റ്റാൾ ചെയ്യുകയും അവയെ ഒരു വെബ്‌ അടിസ്ഥാനമാക്കിയൂള്ള ഇന്റർഫെയിസ് സർവീസ് വഴി  ഉപയോക്താവിനെ സ്വീകരിക്കാൻ അനുവദിക്കുന്നു. ഇമെയിലുകൾ, ഡാറ്റാ പ്രോസസിംഗ് തുടങ്ങി സങ്കീർണ്ണങ്ങളായ പ്രോഗ്രാമുകൾ ചെയ്യുന്നതിനു വരെ ഈ രീതിയിലുള്ള കമ്പ്യൂട്ടിംഗ് പ്രോസസ് വഴി സാധിക്കുന്നു. ഇതിനെയാണു ക്ലൌഡ് കമ്പ്യൂട്ടിംഗ് എന്ന് പറയുന്നത്. ഇത്തരത്തിൽ ക്ലൌഡ് കമ്പ്യൂട്ടിംഗ് വഴി പ്രവർത്തിക്കുമ്പോൾ ഉപയോക്താവിനു ഹാർഡ്‌വെയർ, സോഫ്റ്റ്‌വെയർ ചെലവുകൾ ഗണ്യമാം വിധം കുറക്കുവാൻ സാധിക്കുന്നു. ഒരു ഉപയോക്താവിന് ആകെ വേണ്ടത് ഒരു “ഇന്റർഫെയ്സ് (Interface)" മാത്രമായിരിക്കും. ലളിതമായി പറഞ്ഞാൽ ഒരു ഇമെയിൽ അക്കൌണ്ട് കൈകാര്യം ചെയ്യുന്നത് പോലെ സുതാര്യവും എളുപ്പവുമായീരിക്കും ക്ലൌഡ് കമ്പ്യൂട്ടിംഗ് എന്നതും. ഒരു ഇമെയിൽ അക്കൌണ്ട് കൈകാര്യം ചെയ്യുന്നതിനായി ഒരു ഉപയോക്താവിനു യാതൊരു സോഫ്റ്റ്‌വെയറും തങ്ങളുടെ സിസ്റ്റത്തിൽ ഇൻസ്റ്റാൾ ചെയ്യെണ്ടി വരുന്നില്ല. അത് സ്വീകരിക്കുന്നതിനു വേണ്ട ഇന്റർഫെയിസ് ഒഴികെ.

## പ്രധാനപ്പെട്ട വിഭാഗങ്ങൾ
ക്ലൌഡ് കമ്പ്യൂട്ടിംഗ് ആപ്ലിക്കേഷനുകളിൽ പ്രധാനമായും രണ്ട് ഭാഗങ്ങളായിരിക്കും ഉണ്ടായിരിക്കുന്നത്. അവയെ ബാക്ക് എൻഡ് (Back End) എന്നും ഫ്രണ്ട് എന്റ് ( Front End)  എന്നുമറിയപ്പെടുന്നു. ഇവയെ ഒരു നെറ്റ്‌വർക്ക് വഴി ബന്ധപ്പെടുത്തിയിരിക്കും. യൂസർ ഉപയോഗിക്കുന്ന ഭാഗത്തെ ഫ്രണ്ട് എൻ‌ഡ് അഥവാ ക്ലയന്റ് സൈഡ് എന്നും ബാക്ക് എൻഡ് എന്നാൽ ക്ലൌഡ് കമ്പ്യൂട്ടിംഗിന്റെ വെ‌ബ്സെർവർ(Webserver)  ഭാഗവുമായിരിക്കും. ഫ്രണ്ട് എൻ‌ഡിൽ ഉൾപ്പെടുക യൂസറുടെ കമ്പ്യൂട്ടറും ക്ലൌഡ് കമ്പ്യൂട്ടിംഗ് സിസ്റ്റം സ്വീകരിക്കാൻ കഴിയുന്ന ഒരു ഇന്റർഫെയിസ് സോഫ്റ്റ്‌വെയറുമായിരിക്കും. ഉപയോഗിക്കുന്ന ക്ലൌഡ് കമ്പ്യൂട്ടിംഗ് സിസ്റ്റമനുസരിച്ച് ക്ലയന്റുകൾക്കായി ആപ്ലിക്കേഷനുകൾ സ്വീകരിക്കുവാനായി നൽകിയിരിക്കുന്ന ഇന്റർഫെയിസുകൾ വ്യത്യാസപ്പെട്ടിരിക്കും. 

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

ക്ലയന്റിന്റെ ആവശ്യമനുസരിച്ച് ഒരു സെർവർ സിസ്റ്റം പ്രവർത്തിക്കുകയും അവയിലെ ട്രാഫിക് പ്രോട്ടോക്കൊളുകളുപയോഗിച്ച്ചും ചില പ്രത്യേക സോഫ്റ്റ്‌വെയറുകളുപയോഗിച്ചും നിയന്ത്രിക്കുകയും ചെയ്യുന്നു. ഇതിനാ‍യി ക്ലൌഡ് കമ്പ്യൂട്ടിംഗിനുള്ളീൽ ഉപയോഗിക്കുന്ന സോഫ്റ്റ്‌വെയറുകളെ മിഡിൽ വെയർ (middleware) എന്ന പേരിൽ അറിയപ്പെടുന്നു നെറ്റ്‌വർക്കിനുള്ളീലെ കമ്പ്യൂട്ടറുകളെ ഓരൊന്നിനെയും ബന്ധപ്പെടാനനുവദിക്കുന്നത് മീഡിൽ വെയറുകളായിരിക്കും.

മറ്റേതൊരു കമ്പ്യൂട്ടർ സിസ്റ്റത്തിനെപോലെ തന്നെയും അനിയന്ത്രിതമായ രീതിയിലുള്ള ക്ലയന്റുകളുടെ എണ്ണം ക്ലൌഡ് കമ്പ്യൂട്ടറുകളുടെ പ്രവർത്തനത്തെയും തടസ്സപ്പെടുത്തുവാനിടയുണ്ട്. അത് മൂലം ക്ലയന്റ് കമ്പ്യുട്ടിംഗ് സിസ്റ്റത്തിലെ സെർവറുകളിൽ സൂക്ഷിച്ച് വെച്ചിരിക്കുന്ന ഡാറ്റ നഷ്ടപ്പെടാതിരിക്കുന്നതിനായി ഇതിന്റെയെല്ലാം കോപ്പികൾ ക്ലൌഡ് സെർവറുകൾ സൂക്ഷിച്ച് വെക്കുന്നു. ഈ പ്രോസസിനെ redundancy എന്ന പേരിലറിയപ്പെടുന്നു. ( RAID ൽ ഉപയോഗിക്കുന്ന സാങ്കേതിക വിദ്യയാണ് ഇവിടെയും ഉപയോഗിക്കുന്നത്)  ക്ലൌഡ് കമ്പ്യൂട്ടിംഗ് അനിയന്ത്രിതമായ സാധ്യതകളാണ് ഉപയോക്താക്കൾക്കായി തുറന്നിടുന്നത്. മിഡിൽ വെയറുകളുടെ സഹായത്തോടെ ഒരു സാധാരണ കമ്പ്യൂട്ടറിനുള്ളീൽ ചെയ്യാവുന്ന എല്ലാ പ്രവർത്തികളും ക്ലൊഡ് കമ്പ്യൂട്ടറിനുള്ളിൽ സാധ്യമാണ്.

## ഗുണങ്ങൾ
ഒരു യൂസർക്ക് ഇന്റർനെറ്റുമായി കണക്റ്റ് ചെയ്തിരിക്കുന്ന ഒരു ഇന്റർഫെയ്സുപയോഗിച്ച് എവിടെ നിന്ന് വേണമെങ്കിലും തങ്ങളുടെ ആപ്ലിക്കേഷനുകൾ സ്വീകരിക്കാനായി കഴിയുന്നു. ഹാർഡ്‌വെയറിന്റെയും സോഫ്റ്റ്‌വെയറുകളുടെയും ചെലവ് ഗണ്യമായി കുറക്കുവാൻ ക്ലൌഡ് കമ്പ്യൂട്ടിംഗ് വഴി സാധിക്കുന്നു. ആപ്ലിക്കേഷനുകൾ പ്രവർത്തിക്കുന്നതിനായി ഉന്നതപ്രവർത്തനശേഷിയുള്ള കമ്പ്യൂട്ടർ സിസ്റ്റങ്ങളുടെ ആവശ്യമില്ല. ക്ലൌഡ് കമ്പ്യൂട്ടർ സിസ്റ്റം പ്രവർത്തിക്കാനായി ആകെ ആവശ്യമുള്ളത് ഇവ സ്വീകരിക്കാൻ കഴിയുന്ന ഒരു കമ്പ്യൂട്ടർ സിസ്റ്റം ടെർമിനൽ മാത്രമാണ്. ഈ കമ്പ്യൂട്ടർ സിസ്റ്റം ടെർമിനലിൽ ഔട്ട് പുട് ഡിവൈസ്( മോണിറ്റർ), ഒരു ഇൻപുട് ഡിവൈസ്( കീബോർഡുകളും, മൌസുകളും), ക്ലൌഡ് കമ്പ്യൂട്ടറുമായി ബന്ധപ്പെടുത്തുന്നതിനു വേണ്ട മിഡിൽ വെയറുകൾ പ്രവർത്തിക്കാനാവശ്യമായ പ്രോസസിംഗ് പവറും മാത്രമായിരിക്കും. ഹാർഡ് ഡിസ്കുകളുടെ ആവശ്യം ക്ലൌഡ് കമ്പ്യൂടിംഗ് സിസ്റ്റവുമായി ബന്ധപെടുത്തിയിരിക്കുന്ന ഒരു ക്ലയന്റിനു ആവശ്യം വരുന്നില്ല. ഇതിനുള്ള കാരണം എല്ലാ വിവരങ്ങളും സുക്ഷിക്കപ്പെടുന്നത് ക്ലൌഡ് കമ്പ്യൂട്ടിംഗ് സിസ്റ്റത്തിന്റെ സെർവറുകളിലാണ് എന്നുള്ളത് കൊണ്ടാണ്.



വർഗ്ഗം:ക്ലൗഡ് കമ്പ്യൂട്ടിങ്ങ്