മലയാളം

സെർവീസ് മെഷ് സാങ്കേതികവിദ്യയും ഇസ്റ്റിയോ നടപ്പാക്കലും സംബന്ധിച്ച ആഴത്തിലുള്ള ഒരു ഗൈഡ്. ഇതിൽ ആർക്കിടെക്ചർ, കോൺഫിഗറേഷൻ, വിന്യാസ തന്ത്രങ്ങൾ, ക്ലൗഡ്-നേറ്റീവ് ആപ്ലിക്കേഷനുകൾക്കുള്ള മികച്ച രീതികൾ എന്നിവ ഉൾപ്പെടുന്നു.

സെർവീസ് മെഷ്: ഇസ്റ്റിയോ നടപ്പിലാക്കുന്നതിനെക്കുറിച്ചുള്ള ഒരു ആഴത്തിലുള്ള പഠനം

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

എന്താണ് ഒരു സെർവീസ് മെഷ്?

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

ഒരു സെർവീസ് മെഷ് ഉപയോഗിക്കുന്നതിൻ്റെ പ്രധാന നേട്ടങ്ങളിൽ ഇവ ഉൾപ്പെടുന്നു:

ഇസ്റ്റിയോയെ പരിചയപ്പെടാം

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

ഇസ്റ്റിയോ ആർക്കിടെക്ചർ

ഇസ്റ്റിയോയുടെ ആർക്കിടെക്ചറിൽ രണ്ട് പ്രധാന ഘടകങ്ങൾ അടങ്ങിയിരിക്കുന്നു:

ഇസ്റ്റിയോ ആർക്കിടെക്ചറിൻ്റെ ഡയഗ്രം: (ഇവിടെ ഒരു ഡയഗ്രം ഉണ്ടെന്ന് സങ്കൽപ്പിക്കുക. ഇത് ഡാറ്റാ പ്ലെയിനിനെയും അതിലെ സർവീസുകൾക്കൊപ്പമുള്ള എൻവോയ് പ്രോക്സികളെയും കൺട്രോൾ പ്ലെയിനിലെ Istiod-നെയും ചിത്രീകരിക്കുന്നു. ഒരു യഥാർത്ഥ നിർവ്വഹണത്തിൽ ഒരു ചിത്രം ഉൾപ്പെടുത്തും, പക്ഷെ ഈ ടെക്സ്റ്റ് അടിസ്ഥാനമാക്കിയുള്ള മറുപടിയിൽ ഇത് വിവരിച്ചിരിക്കുന്നു.)

ഇസ്റ്റിയോ ഇൻസ്റ്റാളേഷനും സജ്ജീകരണവും

കോൺഫിഗറേഷനിലേക്ക് കടക്കുന്നതിന് മുൻപ്, നിങ്ങൾ ഇസ്റ്റിയോ ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്. ഇൻസ്റ്റാളേഷൻ പ്രക്രിയയുടെ ഒരു പൊതുവായ അവലോകനം ഇതാ:

  1. മുൻവ്യവസ്ഥകൾ:
    • ഒരു കുബർനെറ്റിസ് ക്ലസ്റ്റർ (ഉദാഹരണത്തിന്, Minikube, kind, Google Kubernetes Engine (GKE), Amazon Elastic Kubernetes Service (EKS), Azure Kubernetes Service (AKS)).
    • നിങ്ങളുടെ കുബർനെറ്റിസ് ക്ലസ്റ്ററുമായി ബന്ധിപ്പിക്കുന്നതിന് കോൺഫിഗർ ചെയ്ത kubectl കമാൻഡ്-ലൈൻ ടൂൾ.
    • ഇസ്റ്റിയോ CLI ടൂൾ (istioctl).
  2. ഇസ്റ്റിയോ ഡൗൺലോഡ് ചെയ്യുക: ഔദ്യോഗിക ഇസ്റ്റിയോ വെബ്സൈറ്റിൽ നിന്ന് ഏറ്റവും പുതിയ ഇസ്റ്റിയോ റിലീസ് ഡൗൺലോഡ് ചെയ്യുക.
  3. ഇസ്റ്റിയോ CLI ഇൻസ്റ്റാൾ ചെയ്യുക: istioctl ബൈനറി നിങ്ങളുടെ സിസ്റ്റത്തിൻ്റെ PATH-ലേക്ക് ചേർക്കുക.
  4. ഇസ്റ്റിയോ കോർ ഘടകങ്ങൾ ഇൻസ്റ്റാൾ ചെയ്യുക: നിങ്ങളുടെ കുബർനെറ്റിസ് ക്ലസ്റ്ററിലേക്ക് കോർ ഇസ്റ്റിയോ ഘടകങ്ങൾ വിന്യസിക്കാൻ istioctl install ഉപയോഗിക്കുക. വ്യത്യസ്ത വിന്യാസ സാഹചര്യങ്ങൾക്കായി നിങ്ങൾക്ക് വ്യത്യസ്ത പ്രൊഫൈലുകൾ തിരഞ്ഞെടുക്കാം (ഉദാഹരണത്തിന്, default, demo, production). ഉദാഹരണത്തിന്: istioctl install --set profile=demo.
  5. നെയിംസ്പേസ് ലേബൽ ചെയ്യുക: നിങ്ങളുടെ ടാർഗെറ്റ് നെയിംസ്പേസിൽ ഇസ്റ്റിയോ ഇൻജെക്ഷൻ പ്രവർത്തനക്ഷമമാക്കാൻ kubectl label namespace <namespace> istio-injection=enabled ഉപയോഗിക്കുക. ഇത് നിങ്ങളുടെ പോഡുകളിലേക്ക് എൻവോയ് സൈഡ്കാർ പ്രോക്സി ഓട്ടോമാറ്റിക്കായി ഇൻജെക്റ്റ് ചെയ്യാൻ ഇസ്റ്റിയോയോട് പറയുന്നു.
  6. നിങ്ങളുടെ ആപ്ലിക്കേഷൻ വിന്യസിക്കുക: നിങ്ങളുടെ മൈക്രോസർവീസ് ആപ്ലിക്കേഷൻ ലേബൽ ചെയ്ത നെയിംസ്പേസിലേക്ക് വിന്യസിക്കുക. ഇസ്റ്റിയോ ഓരോ പോഡിലേക്കും എൻവോയ് സൈഡ്കാർ പ്രോക്സി ഓട്ടോമാറ്റിക്കായി ഇൻജെക്റ്റ് ചെയ്യും.
  7. ഇൻസ്റ്റാളേഷൻ പരിശോധിക്കുക: ഇസ്റ്റിയോ കൺട്രോൾ പ്ലെയിനും ഡാറ്റാ പ്ലെയിൻ ഘടകങ്ങളും ശരിയായി പ്രവർത്തിക്കുന്നുണ്ടോയെന്ന് kubectl get pods -n istio-system ഉപയോഗിച്ച് പരിശോധിക്കുക.

ഉദാഹരണം: മിനികുബിൽ ഇസ്റ്റിയോ ഇൻസ്റ്റാൾ ചെയ്യുന്നത് (ലളിതമാക്കിയത്):

istioctl install --set profile=demo -y
kubectl label namespace default istio-injection=enabled

ഇസ്റ്റിയോ കോൺഫിഗറേഷൻ: ട്രാഫിക് മാനേജ്മെൻ്റ്

നിങ്ങളുടെ സർവീസുകൾക്കിടയിലുള്ള ട്രാഫിക്കിൻ്റെ ഒഴുക്ക് നിയന്ത്രിക്കാൻ ഇസ്റ്റിയോയുടെ ട്രാഫിക് മാനേജ്മെൻ്റ് സവിശേഷതകൾ നിങ്ങളെ അനുവദിക്കുന്നു. പ്രധാന കോൺഫിഗറേഷൻ റിസോഴ്സുകളിൽ ഇവ ഉൾപ്പെടുന്നു:

VirtualService ഉദാഹരണം

HTTP ഹെഡറുകളെ അടിസ്ഥാനമാക്കി ഒരു സർവീസിൻ്റെ വ്യത്യസ്ത പതിപ്പുകളിലേക്ക് ട്രാഫിക് എങ്ങനെ റൂട്ട് ചെയ്യാമെന്ന് ഈ ഉദാഹരണം കാണിക്കുന്നു. നിങ്ങൾക്ക് `productpage` സർവീസിൻ്റെ രണ്ട് പതിപ്പുകൾ ഉണ്ടെന്ന് കരുതുക: `v1`, `v2`.


apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: productpage
spec:
  hosts:
  - productpage
  gateways:
  - productpage-gateway
  http:
  - match:
    - headers:
        user-agent:
          regex: ".*Mobile.*"
    route:
    - destination:
        host: productpage
        subset: v2
  - route:
    - destination:
        host: productpage
        subset: v1

ഈ VirtualService, ഉപയോക്താവിൻ്റെ User-Agent ഹെഡറിൽ "Mobile" എന്ന പദമുള്ള എല്ലാ ട്രാഫിക്കിനെയും `productpage` സർവീസിൻ്റെ `v2` സബ്സെറ്റിലേക്ക് റൂട്ട് ചെയ്യുന്നു. മറ്റെല്ലാ ട്രാഫിക്കും `v1` സബ്സെറ്റിലേക്ക് റൂട്ട് ചെയ്യപ്പെടുന്നു.

DestinationRule ഉദാഹരണം

ഈ ഉദാഹരണം `productpage` സർവീസിനായി ഒരു DestinationRule നിർവചിക്കുന്നു, ഇത് ഒരു ലളിതമായ റൗണ്ട്-റോബിൻ ലോഡ് ബാലൻസിംഗ് നയം വ്യക്തമാക്കുകയും വ്യത്യസ്ത പതിപ്പുകൾക്കായി സബ്സെറ്റുകൾ നിർവചിക്കുകയും ചെയ്യുന്നു.


apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: productpage
spec:
  host: productpage
  trafficPolicy:
    loadBalancer:
      simple: ROUND_ROBIN
  subsets:
  - name: v1
    labels:
      version: v1
  - name: v2
    labels:
      version: v2

ഈ DestinationRule `version` ലേബലിനെ അടിസ്ഥാനമാക്കി `v1`, `v2` എന്നിങ്ങനെ രണ്ട് സബ്സെറ്റുകൾ നിർവചിക്കുന്നു. `productpage` സർവീസിലേക്കുള്ള എല്ലാ ട്രാഫിക്കിനും ഇത് ഒരു റൗണ്ട്-റോബിൻ ലോഡ് ബാലൻസിംഗ് നയവും വ്യക്തമാക്കുന്നു.

ഇസ്റ്റിയോ കോൺഫിഗറേഷൻ: സുരക്ഷ

ഇസ്റ്റിയോ ശക്തമായ സുരക്ഷാ സവിശേഷതകൾ നൽകുന്നു, അവയിൽ ഉൾപ്പെടുന്നവ:

മ്യൂച്വൽ TLS (mTLS)

ഇസ്റ്റിയോ ഓരോ സർവീസിനും X.509 സർട്ടിഫിക്കറ്റുകൾ ഓട്ടോമാറ്റിക്കായി നൽകുകയും നിയന്ത്രിക്കുകയും ചെയ്യുന്നു, ഇത് mTLS ഡിഫോൾട്ടായി പ്രവർത്തനക്ഷമമാക്കുന്നു. ഇത് സർവീസുകൾക്കിടയിലുള്ള എല്ലാ ആശയവിനിമയവും ഓതൻ്റിക്കേറ്റ് ചെയ്യുകയും എൻക്രിപ്റ്റ് ചെയ്യുകയും ചെയ്യുന്നുവെന്ന് ഉറപ്പാക്കുന്നു, ഇത് ചോർത്തലും കൃത്രിമത്വവും തടയുന്നു.

ഓതറൈസേഷൻ പോളിസി ഉദാഹരണം

ഈ ഉദാഹരണം `reviews` സർവീസിന് മാത്രം `productpage` സർവീസിലേക്ക് പ്രവേശിക്കാൻ അനുവദിക്കുന്ന ഒരു ഓതറൈസേഷൻ പോളിസി എങ്ങനെ സൃഷ്ടിക്കാമെന്ന് കാണിക്കുന്നു.


apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: productpage-access
spec:
  selector:
    matchLabels:
      app: productpage
  action: ALLOW
  rules:
  - from:
    - source:
        principals:
        - cluster.local/ns/default/sa/reviews

ഈ പോളിസി `default` നെയിംസ്പേസിലെ `reviews` എന്ന സർവീസ് അക്കൗണ്ടിൽ നിന്നുള്ള അഭ്യർത്ഥനകൾക്ക് മാത്രം `productpage` സർവീസിലേക്ക് പ്രവേശിക്കാൻ അനുമതി നൽകുന്നു. മറ്റെല്ലാ അഭ്യർത്ഥനകളും നിരസിക്കപ്പെടും.

ഇസ്റ്റിയോ കോൺഫിഗറേഷൻ: നിരീക്ഷണം

ഇസ്റ്റിയോ സമ്പന്നമായ നിരീക്ഷണ സവിശേഷതകൾ നൽകുന്നു, അവയിൽ ഉൾപ്പെടുന്നവ:

മെട്രിക്കുകളും നിരീക്ഷണവും

ഇസ്റ്റിയോ ഓട്ടോമാറ്റിക്കായി വിപുലമായ മെട്രിക്കുകൾ ശേഖരിക്കുന്നു, അവ പ്രൊമിത്തിയസ് വഴി ആക്സസ് ചെയ്യാനും ഗ്രഫാനയിൽ ദൃശ്യവൽക്കരിക്കാനും കഴിയും. ഈ മെട്രിക്കുകൾ നിങ്ങളുടെ മൈക്രോസർവീസുകളുടെ ആരോഗ്യത്തെയും പ്രകടനത്തെയും കുറിച്ച് വിലയേറിയ ഉൾക്കാഴ്ചകൾ നൽകുന്നു.

ഡിസ്ട്രിബ്യൂട്ടഡ് ട്രെയ്‌സിംഗ്

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

ഇസ്റ്റിയോ ഉപയോഗിച്ചുള്ള വിന്യാസ തന്ത്രങ്ങൾ

സുഗമവും സുരക്ഷിതവുമായ ആപ്ലിക്കേഷൻ അപ്‌ഡേറ്റുകൾ പ്രാപ്‌തമാക്കിക്കൊണ്ട് ഇസ്റ്റിയോ വിവിധ വിന്യാസ തന്ത്രങ്ങൾ സുഗമമാക്കുന്നു:

കാനറി ഡിപ്ലോയ്മെൻ്റ് ഉദാഹരണം

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

ഇസ്റ്റിയോയുടെ മികച്ച രീതികൾ

ഇസ്റ്റിയോയെ ഫലപ്രദമായി പ്രയോജനപ്പെടുത്താൻ, ഈ മികച്ച രീതികൾ പരിഗണിക്കുക:

ഇസ്റ്റിയോയുടെ ബദലുകളും പരിഗണനകളും

ഇസ്റ്റിയോ ഒരു പ്രമുഖ സെർവീസ് മെഷ് ആണെങ്കിലും, മറ്റ് ഓപ്ഷനുകളും നിലവിലുണ്ട്, ഓരോന്നിനും അതിൻ്റേതായ ഗുണങ്ങളും ദോഷങ്ങളുമുണ്ട്:

ശരിയായ സെർവീസ് മെഷ് തിരഞ്ഞെടുക്കുന്നത് നിങ്ങളുടെ പ്രത്യേക ആവശ്യകതകളെയും പരിതസ്ഥിതിയെയും ആശ്രയിച്ചിരിക്കുന്നു. ഇനിപ്പറയുന്ന ഘടകങ്ങൾ പരിഗണിക്കുക:

ഉപസംഹാരം

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