Text size
പരീക്ഷിച്ചറിഞ്ഞത്6 മിനിറ്റ് വായന

എല്ലാത്തിനും നിയന്ത്രണ വിമാനമായി കുബർനെറ്റസ്: ക്രോസ്പ്ലൈൻ v2

ഒരു ആപ്ലിക്കേഷൻ വിന്യസിക്കുന്ന അതേ രീതിയിൽ ഡെവലപ്പർമാർക്ക് ഒരു ഡാറ്റാബേസ് ഓർഡർ ചെയ്യാമെങ്കിൽ?

Kubernetes as a control plane for everything: Crossplane v2
AI ഉപയോഗിച്ച് സൃഷ്ടിച്ച ചിത്രീകരണം

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

ക്രോസ്പ്ലെയ്ൻ മറ്റൊരു ചോദ്യം ചോദിക്കുന്നു: ഡെവലപ്പർക്ക് ഒരു ചെറിയ YAML ഫയൽ എഴുതാൻ കഴിയുമെങ്കിൽ, അവർ അവരുടെ ആപ്ലിക്കേഷൻ വിന്യസിക്കുന്ന അതേ രീതിയിൽ, കുറച്ച് മിനിറ്റ് കഴിഞ്ഞ് ശരിയായി ക്രമീകരിച്ച ഡാറ്റാബേസ് ലഭിക്കുമോ?

ഒരു ഖണ്ഡികയിലെ ആശയം

കുബർനെറ്റസ് ഒരു കാര്യത്തില് വളരെ നല്ലതാണ്: നിങ്ങള് ക്ക് വേണ്ടത് വിവരിക്കുക, നിയന്ത്രകർ യാഥാര് ത്ഥ്യവുമായി പൊരുത്തപ്പെടുന്നതുവരെ പ്രവർത്തിക്കുന്നു. ക്രോസ്പ്ലെയ്ന് ആ ആശയത്തെ കണ്ടെയ്നറുകളിലേക്കുള്ള പരിധിക്ക് അപ്പുറത്തേക്ക് വ്യാപിപ്പിക്കുന്നു. ഇത് ക്ലൌഡ് റിസോഴ്സുകൾ സൃഷ്ടിക്കുകയും നിയന്ത്രിക്കുകയും ചെയ്യുന്ന കൺട്രോളറുകൾ ചേർക്കുന്നു: ഡാറ്റാബേസുകൾ, ബക്കറ്റുകൾ, ക്യൂകൾ, നെറ്റ്വർക്കുകൾ, ഡിഎൻഎസ് റെക്കോർഡുകൾ. നിങ്ങൾ YAML എഴുതുന്നു, ക്രോസ്പ്ലൈൻ AWS, Azure അല്ലെങ്കിൽ Google Cloud എന്നിവയുമായി സംസാരിക്കുന്നു, നിങ്ങൾ വിവരിച്ചിരിക്കുന്ന അവസ്ഥയിൽ റിസോഴ്സ് നിലനിർത്തുന്നു.

ശരിക്കും രസകരമായ കാര്യം, അത് പച്ചയായ ക്ലൌഡ് റിസോഴ്സുകൾ കൈകാര്യം ചെയ്യലല്ല. അത് നിങ്ങളുടെ സ്വന്തം API കൾ നിർമ്മിക്കുക അവരുടെ മുകളില് .

കോമ്പോസിഷനുകൾഃ നിങ്ങളുടെ സ്വന്തം പ്ലാറ്റ്ഫോം API

ക്രോസ്പ്ലൈനില് , പ്ലാറ്റ്ഫോം ടീം ഒരു ലളിതവും കമ്പനി പ്രത്യേകവുമായ റിസോഴ്സ് നിർവചിക്കുന്നു, ഉദാഹരണത്തിന് Database, വികസന പ്രവർത്തകർ ശ്രദ്ധിക്കേണ്ട മേഖലകളുമായി മാത്രം:

apiVersion: platform.example.com/v1alpha1
kind: Database
metadata:
  name: orders-db
  namespace: shop
spec:
  engine: postgres
  size: small

ഒരു പ്രമുഖൻ ഘടന കമ്പനി ആവശ്യപ്പെടുന്ന എല്ലാ കാര്യങ്ങളും അത് മാറ്റുന്നു: ശരിയായ പതിപ്പുള്ള ഒരു RDS ഇൻസ്റ്റൻസും, എൻക്രിപ്ഷനും, ബാക്കപ്പുകളും, ഒരു സബ്നെറ്റ് ഗ്രൂപ്പും, സുരക്ഷാ ഗ്രൂപ്പ് നിയമങ്ങളും, നിരീക്ഷണവും, കണക്ഷൻ വിശദാംശങ്ങളുള്ള ഒരു Kubernetes രഹസ്യവും. ഡെവലപ്പര് അഞ്ചു വരികള് കാണുന്നു. ബാക്കി 200 പേരെ നിയന്ത്രിക്കുന്നത് പ്ലാറ്റ്ഫോം ടീമാണ്.

ആ കസ്റ്റം റിസോഴ്സിന്റെ സ്കീമ ഒരു കോമ്പോസിറ്റ് റിസോഴ്സ് നിർവചനം (XRD). അവിടെയാണ് അനുവദനീയമായത് നിശ്ചയിക്കുന്നത്: ഒരുപക്ഷേ മാത്രം small, medium ഒപ്പം large, ചിലപ്പോൾ പോസ്റ്റ് ഗ്രേസ് മാത്രം.

ക്രോസ്പ്ലെയ്ൻ പ്ലാറ്റ്ഫോം ടീമിനെ ഒരു വിക്കി പേജിനേക്കാൾ ഒരു എപിഐ ആയി മാറ്റാൻ അനുവദിക്കുന്നു.

വി 2 ൽ എന്തെല്ലാം മാറ്റങ്ങൾ സംഭവിച്ചു

ക്രോസ്പ്ലെയ്ൻ v2 മോഡലിനെ ചില പ്രധാനപ്പെട്ട വഴികളിൽ ലളിതമാക്കി:

  • സ്ഥിരമായി പേരുകൾ തമ്മിലുള്ള വിഭവങ്ങൾ. വി 1 ൽ, സാധാരണയായി നിങ്ങൾക്ക് ഒരു ക്ലസ്റ്റർ സ്കോപ്പ് ചെയ്ത കോമ്പോസിറ്റ് റിസോഴ്സ് ആവശ്യമാണ്, കൂടാതെ ഒരു നെയിംസ്പെയ്സ് ചെയ്ത "ക്ലെയിം" ആവശ്യമാണ്. v2 ന്റെ സഹായത്തോടെ കോമ്പോസിറ്റ് റിസോഴ്സുകൾ ടീമിന്റെ നാമമേഖലയിൽ നേരിട്ട് ജീവിക്കും, അതിനാൽ ക്ലെയിം ലെയർ മിക്കവാറും ഇല്ലാതാകും.
  • എന്തും എഴുതി. ക്രോസ്പ്ലെയ്ൻ നിയന്ത്രിക്കുന്ന ക്ലൌഡ് റിസോഴ്സുകൾ മാത്രമല്ല, ഏത് കുബർനെറ്റസ് റിസോര് സും ഇനിമുതൽ കോമ്പോസിഷനുകളിൽ ഉൾപ്പെടുത്താം. ഒരു വിന്യാസം, ഒരു സേവനം, ഒരു ക്ലൌഡ് ഡാറ്റാബേസ് എന്നിവയെ ഒരു ഉയർന്ന തലത്തിലുള്ള "ആപ്ലിക്കേഷൻ" API ആയി നിങ്ങൾക്ക് കൂട്ടിച്ചേർക്കാം.
  • ഘടനാ പ്രവർത്തനങ്ങൾ സാധാരണ രീതിയിലാണ് പഴയ പാച്ച് ആൻഡ് ട്രാൻസ്ഫോർമേഷൻ ശൈലിക്ക് പകരം YAML ടെംപ്ലേറ്റുകളിലും Go, Python അല്ലെങ്കിൽ KCL എന്നിവയിലും യുക്തി എഴുതാൻ.

കുറച്ച് വര് ഷങ്ങള് ക്ക് മുമ്പ് ക്രോസ്പ്ലെയ്ന് പരീക്ഷിച്ചു കണ്ടാല് അത് ഭാരമുള്ളതാണെന്ന് തോന്നിയിരുന്നെങ്കില് , വി 2 വീണ്ടും നോക്കേണ്ടതാണ്.

ക്രോസ്പ്ലെയിൻ അല്ലെങ്കിൽ ടെറഫോം?

ഈ ചോദ്യം എപ്പോഴും ഉയരുന്നു, സത്യസന്ധമായ ഉത്തരം ഇതാണ്: അവർ വ്യത്യസ്ത കാര്യങ്ങളിൽ നല്ലവരാണ്.

ടെറാഫോർം (അല്ലെങ്കിൽ ഓപ്പൺ ടോഫു) പ്ലാറ്റ്ഫോം ടീം സ്വന്തമാക്കിയതും മനഃപൂർവ്വം മാറ്റുന്നതുമായ അടിസ്ഥാന സൌകര്യങ്ങൾക്ക് ഇത് വളരെ നല്ലതാണ്: നെറ്റ്വർക്കുകൾ, ക്ലസ്റ്ററുകൾ, അക്കൌണ്ടുകൾ. നീ ഓടിക്കുമ്പോൾ അത് ഓടുന്നു, ഒരു പ്ലാൻ കാണിക്കുന്നു, പിന്നെ നിർത്തുന്നു.

ക്രോസ്പ്ലെയിൻ പല ടീമുകൾക്കും ആവശ്യമുള്ള സ്വയം സേവന വിഭവങ്ങൾക്കായി ഇത് വളരെ മികച്ചതാണ്: ഡാറ്റാബേസുകൾ, ബക്കറ്റുകൾ, ഓരോ സേവനത്തിനും ക്യൂകൾ. ഇത് തുടർച്ചയായി പ്രവർത്തിക്കുന്നു, സ്വപ്രേരിതമായി ഡ്രിഫ്റ്റ് പരിഹരിക്കുന്നു, ഒപ്പം ഗിറ്റോ ഓപ്സുകളിലേക്കും അര് ഗോ സിഡി അല്ലെങ്കിൽ ഫ്ലക്സ് ഉപയോഗിച്ച് ചേരുന്നു.

പല ടീമുകളും രണ്ടും ഉപയോഗിക്കുന്നു. ടെറാഫോർം അടിസ്ഥാനം പണിയുന്നു, ക്രോസ്പ്ലെയ്ൻ പ്രവർത്തിപ്പിക്കുന്ന ക്ലസ്റ്റർ ഉൾപ്പെടെ. ക്രോസ്പ്ലെയിന് മുകളില് സ്വയം സേവന പാളി നല് കുന്നു.

ഒരു "എനിക്ക് ഒരു ഡാറ്റാബേസ് തരൂ" API നിർമ്മിക്കുന്നു

ഞാന് ആദ്യമായി ക്രോസ്പ്ലെയ്ന് പരീക്ഷിക്കുകയാണെങ്കില് , ഞാന് സ്കോപ്പ് ചെറുതായി സൂക്ഷിക്കും:

  1. ക്രോസ്പ്ലെയിനെ ഹെം ഉപയോഗിച്ച് ഒരു ടെസ്റ്റ് ക്ലസ്റ്ററിൽ സ്ഥാപിക്കുക.
  2. നിങ്ങളുടെ ക്ലൌഡിനുള്ള ദാതാവിനെ ഇൻസ്റ്റാൾ ചെയ്യുക, സ്റ്റാറ്റിക് കീകളേക്കാൾ വർക്ക് ലോഡ് ഐഡന്റിറ്റി വഴി അത് ക്രെഡൻഷ്യലുകൾ നൽകുക.
  3. ഒരു XRD എഴുതുക Database രണ്ടു വയലുകളുള്ള ഒരു സ്ഥലം.
  4. ഒരു ചെറിയ മാനേജ് ചെയ്ത ഡാറ്റാബേസും കണക്ഷൻ രഹസ്യവും സൃഷ്ടിക്കുന്ന ഒരു രചന എഴുതുക.
  5. ഒന്ന് സൃഷ്ടിക്കുക Database ഒരു നാമമേഖലയില് കാണുക, അത് നിങ്ങളുടെ ക്ലൌഡ് കൺസോളില് ദൃശ്യമാകും.

പിന്നെ ഒരു ഡെവലപ്പര് ക്ക് കാണിച്ചു അത് ഉപകാരപ്രദമാണോ എന്ന് ചോദിക്കുക. ആ സംഭാഷണം ഏത് വാസ്തുവിദ്യാ രേഖാചിത്രത്തേക്കാളും വിലപ്പെട്ടതാണ്.

എന്തിനു ശ്രദ്ധിക്കണം

  • ഡീബഗ് ചെയ്യൽ ഒരു ടെറഫോം പ്ലാൻ വായിക്കുന്നതിലും ബുദ്ധിമുട്ടാണ്. പഠിക്കൂ kubectl describe ക്രോസ്പ്ലെയ്നിന്റെ ട്രെയ്സിംഗ് ടൂളുകളും നേരത്തെ തന്നെ.
  • മായ്ച്ചുകളയൽ സത്യമാണ്. YAML മായ്ക്കുന്നതോടെ ഡാറ്റാബേസ് മായ്ക്കും. ഇല്ലാതാക്കൽ നയങ്ങൾ ഉപയോഗിക്കുക, ഉല്പാദന വിഭവങ്ങൾ സംരക്ഷിക്കുക.
  • വിതരണക്കാരന്റെ വലിപ്പം. ചില സേവനദാതാക്കൾ നൂറുകണക്കിന് ക്രഡിറ്ററുകൾ സ്ഥാപിക്കുന്നു. ചെറിയ "കുടുംബ" സേവനദാതാക്കളെ നിങ്ങള് ക്ക് ആവശ്യമുള്ള സേവനങ്ങള് ക്ക് മാത്രം ഉപയോഗിക്കുക.

എന്റെ അഭിപ്രായം: ക്രോസ്പ്ലെയ്ൻ നിങ്ങളുടെ സ്വന്തം പ്ലാറ്റ്ഫോം API നിർമ്മിക്കാനുള്ള ഒരു മാർഗമായി നിങ്ങൾ അതിനെ കാണുമ്പോൾ പ്രകാശിക്കുന്നു, അടിസ്ഥാനസൌകര്യങ്ങൾ എഴുതാനുള്ള മറ്റൊരു മാർഗമല്ല.

ഡെസ്ലി