சேவை வலை ஒருங்கிணைப்புடன் பைதான் API நுழைவாயில் உருவாக்கத்தை ஆராயுங்கள். உலகளாவிய சூழலில் மைக்ரோசர்வீசஸ், ரூட்டிங், அங்கீகாரம் மற்றும் கண்காணிப்பு பற்றி அறிக.
பைதான் API நுழைவாயில்: நவீன கட்டமைப்புகளுக்கான சேவை வலைப் பின்னல் செயலாக்கம்
இன்றைய வேகமாக வளர்ந்து வரும் டிஜிட்டல் உலகில், அளவிடக்கூடிய, மீள்தன்மை மற்றும் பராமரிக்கக்கூடிய பயன்பாடுகளை உருவாக்குவதற்கு மைக்ரோசர்வீசஸ் கட்டமைப்புகள் ஒரு விதிமுறையாகிவிட்டன. இந்த கட்டமைப்புகளின் மையத்தில், சேவைகளுக்கு இடையே திறமையான மற்றும் பாதுகாப்பான தகவல்தொடர்புக்கான தேவை உள்ளது. API நுழைவாயில்கள் மற்றும் சேவை வலைகள் இங்குதான் செயல்படுகின்றன. இந்த கட்டுரை பைதான் அடிப்படையிலான API நுழைவாயிலை எவ்வாறு உருவாக்குவது மற்றும் அதை ஒரு சேவை வலையுடன் ஒருங்கிணைப்பது என்பதை ஆராய்கிறது, இது ஒரு உலகளாவிய சூழலில் மைக்ரோசர்வீஸ் தகவல்தொடர்புகளை நிர்வகிப்பதற்கான வலுவான தீர்வை வழங்குகிறது.
API நுழைவாயில்கள் மற்றும் சேவை வலைகளைப் புரிந்துகொள்வது
API நுழைவாயில் என்றால் என்ன?
API நுழைவாயில் என்பது ஒரு மைக்ரோசர்வீசஸ் பின் முனைகளுக்கான அனைத்து வாடிக்கையாளர் கோரிக்கைகளுக்கும் ஒரு நுழைவு புள்ளியாக செயல்படுகிறது. இது போன்ற பணிகளை கையாளுகிறது:
- ரூட்டிங்: பொருத்தமான மைக்ரோசர்வீஸுக்கு கோரிக்கைகளை இயக்குதல்.
- அங்கீகாரம் மற்றும் அங்கீகரிப்பு: வாடிக்கையாளரின் அடையாளத்தை சரிபார்த்தல் மற்றும் அவர்களுக்கு தேவையான அனுமதிகள் இருப்பதை உறுதி செய்தல்.
- விகித வரம்பு: சேவைகளின் துஷ்பிரயோகத்தைத் தடுத்தல் மற்றும் நியாயமான பயன்பாட்டை உறுதி செய்தல்.
- கோரிக்கை மாற்றம்: பின் முனைகளுக்கு அனுப்புவதற்கு முன் கோரிக்கைகளை மாற்றுதல்.
- பதில் திரட்டல்: பல மைக்ரோசர்வீஸ்களிலிருந்து பதில்களை ஒரு ஒற்றை பதிலில் இணைத்தல்.
- சேமிப்பு: தாமதத்தைக் குறைத்தல் மற்றும் செயல்திறனை மேம்படுத்துதல்.
உங்கள் பயன்பாட்டிற்கான ஒரு அதிநவீன வரவேற்பாளராக இதைக் கருதுங்கள், உள்வரும் அனைத்து போக்குவரத்தையும் கையாண்டு, அது பாதுகாப்பாகவும் திறமையாகவும் சரியான இடத்திற்குச் செல்வதை உறுதி செய்கிறது. உதாரணமாக, ஆஸ்திரேலியாவில் உள்ள ஒரு மொபைல் பயன்பாடு API நுழைவாயிலுக்கு ஒரு கோரிக்கையை அனுப்பலாம், அது பின்னர் சிங்கப்பூரில் அமைந்துள்ள ஒரு விலை நிர்ணய சேவைக்கும், ஜெர்மனியில் உள்ள ஒரு சரக்கு சேவைக்கும் அதை திருப்பி, முடிவுகளை பயனருக்கு திருப்பி அனுப்புவதற்கு முன்பு திரட்டுகிறது.
சேவை வலை என்றால் என்ன?
ஒரு சேவை வலை என்பது ஒரு மைக்ரோசர்வீசஸ் கட்டமைப்பிற்குள் சேவைக்கு சேவை தகவல்தொடர்புகளை கையாளும் ஒரு உள்கட்டமைப்பு அடுக்கு ஆகும். இது போன்ற அம்சங்களை வழங்குகிறது:
- சேவை கண்டுபிடிப்பு: ஒரு சேவையின் கிடைக்கக்கூடிய நிகழ்வுகளை தானாக கண்டுபிடித்தல்.
- போக்குவரத்து மேலாண்மை: சுமை சமநிலை, ரூட்டிங் மற்றும் சர்க்யூட் பிரேக்கிங் உள்ளிட்ட சேவைகளுக்கு இடையேயான போக்குவரத்தின் ஓட்டத்தைக் கட்டுப்படுத்துதல்.
- கண்காணிப்பு: சேவைகளின் செயல்திறன் மற்றும் ஆரோக்கியம் பற்றிய நுண்ணறிவுகளை வழங்குதல்.
- பாதுகாப்பு: சேவைகளுக்கு இடையேயான தகவல்தொடர்புகளை குறியாக்கம் செய்தல் மற்றும் பாதுகாப்பு கொள்கைகளை அமல்படுத்துதல்.
சேவை வலை பொதுவாக ஒரு கட்டுப்பாட்டு விமானம் (எ.கா., இஸ்டியோ) மற்றும் ஒரு தரவு விமானம் (எ.கா., என்வாய்) ஆகியவற்றைக் கொண்டுள்ளது. தரவு விமானம் அனைத்து சேவைக்கு சேவை தகவல்தொடர்புகளையும் இடைமறித்து கட்டுப்பாட்டு விமானம் மூலம் வரையறுக்கப்பட்ட கொள்கைகளை பயன்படுத்துகிறது. அனைத்து உள் தகவல்தொடர்புகளையும் கையாளும் கண்ணுக்கு தெரியாத கூரியர்களின் ஒரு பிணையத்தை கற்பனை செய்து பாருங்கள், செய்திகள் பாதுகாப்பாகவும், நம்பகத்தன்மையுடனும், திறமையாகவும் வழங்கப்படுவதை உறுதி செய்கிறது. ஒரு சேவை வலை இயல்பாகவே பூஜ்ஜிய நம்பிக்கையுள்ள நெட்வொர்க்கிங்கை செயல்படுத்துகிறது - ஒவ்வொரு சேவையும் மற்ற ஒவ்வொரு சேவையையும் அங்கீகரிக்கிறது, அவை எங்கிருந்தாலும் பரவாயில்லை. வெவ்வேறு புவியியல் பகுதிகளில் பரவியுள்ள சேவைகளைக் கொண்ட பன்னாட்டு நிறுவனங்களில் இது மிகவும் முக்கியமானது.
API நுழைவாயில் மற்றும் ஒரு சேவை வலை ஏன் இணைக்கப்பட வேண்டும்?
API நுழைவாயில்கள் மற்றும் சேவை வலைகள் இரண்டும் மைக்ரோசர்வீஸ் தகவல்தொடர்புகளை நிவர்த்தி செய்யும் போது, அவை வெவ்வேறு அடுக்குகளில் செயல்படுகின்றன மற்றும் வெவ்வேறு சிக்கல்களை தீர்க்கின்றன. API நுழைவாயில் வெளிப்புற போக்குவரத்தை நிர்வகிப்பதில் கவனம் செலுத்துகிறது, அதே நேரத்தில் ஒரு சேவை வலை உள் போக்குவரத்தை நிர்வகிப்பதில் கவனம் செலுத்துகிறது. இரண்டையும் இணைப்பது கிளஸ்டருக்கு உள்ளேயும் வெளியேயும் மைக்ரோசர்வீஸ் தகவல்தொடர்புகளை பாதுகாப்பதற்கும், நிர்வகிப்பதற்கும், கண்காணிப்பதற்கும் ஒரு விரிவான தீர்வை வழங்குகிறது.
உதாரணமாக, ஒரு இ-காமர்ஸ் தளத்தை கவனியுங்கள். API நுழைவாயில் வலை மற்றும் மொபைல் பயன்பாடுகளிலிருந்து வரும் கோரிக்கைகளை கையாள்கிறது, பயனர்களை அங்கீகரிக்கிறது, விகித வரம்புகளைப் பயன்படுத்துகிறது மற்றும் பொருத்தமான பின் முனை சேவைகளுக்கு கோரிக்கைகளை திருப்பி அனுப்புகிறது. சேவை வலை பின் முனை சேவைகளுக்கு இடையேயான தகவல்தொடர்புகளை நிர்வகிக்கிறது, தயாரிப்பு பட்டியல், ஆர்டர் மேலாண்மை மற்றும் கட்டண செயலாக்க சேவைகளுக்கு இடையே பாதுகாப்பான மற்றும் நம்பகமான தகவல்தொடர்புகளை உறுதி செய்கிறது. API நுழைவாயில் ஓக்டா அல்லது அஷூர் ஏடி போன்ற வெளிப்புற அங்கீகார சேவைகளைப் பயன்படுத்தக்கூடும், அதே நேரத்தில் சேவை வலை பரஸ்பர TLS (mTLS) ஐப் பயன்படுத்தி உள் சேவைகளுக்கு இடையேயான பாதுகாப்பான தகவல்தொடர்புகளை உறுதி செய்கிறது.
பைதான் API நுழைவாயிலை உருவாக்குதல்
பைதான், அதன் வளமான நூலகங்கள் மற்றும் கட்டமைப்புகளுடன், API நுழைவாயில்களை உருவாக்குவதற்கான சிறந்த தேர்வாகும். அளவிடக்கூடிய மற்றும் பராமரிக்கக்கூடிய நுழைவாயிலை உருவாக்க கட்டமைப்புகளின் கலவையை நாங்கள் பயன்படுத்துவோம்.
கட்டமைப்பு தேர்வு
- ஃபாஸ்ட்பிஐ: APIகளை உருவாக்குவதற்கான நவீன, அதிவேக வலை கட்டமைப்பு. ஃபாஸ்ட்பிஐ தானியங்கி தரவு சரிபார்ப்பு, சீரியலைசேஷன் மற்றும் ஆவண உருவாக்கம் ஆகியவற்றை வழங்குகிறது.
- யுவிக்காரன்: ஒத்திசைவற்ற பைதான் பயன்பாடுகளை இயக்குவதற்கான ஏஎஸ்ஜிஐ சேவையகம்.
- கோரிக்கைகள்: பின் முனை சேவைகளுக்கு HTTP கோரிக்கைகளை செய்வதற்கான ஒரு நூலகம். இன்னும் சிக்கலான சூழ்நிலைகளுக்கு, `httpx` ஐப் பயன்படுத்தவும், இது ஒத்திசைவற்ற ஆதரவை வழங்குகிறது.
- பைஜேடபிள்யூடி: அங்கீகாரத்திற்கான JSON வலை டோக்கன்களுடன் (JWTs) வேலை செய்வதற்கான ஒரு நூலகம்.
திட்ட அமைப்பு
api_gateway/ ├── main.py # முக்கிய பயன்பாட்டு கோப்பு ├── config.py # கட்டமைப்பு அமைப்புகள் ├── routes.py # API ரூட்டிங் வரையறைகள் ├── auth.py # அங்கீகார தர்க்கம் ├── utils.py # பயன்பாட்டு செயல்பாடுகள் └── requirements.txt # திட்ட சார்புகள்
எடுத்துக்காட்டு குறியீடு: main.py
from fastapi import FastAPI, Depends, HTTPException, Request
from fastapi.responses import JSONResponse
import uvicorn
import requests
import jwt
from config import settings
from auth import verify_jwt
from routes import router
app = FastAPI()
app.include_router(router)
@app.middleware("http")
async def add_process_time_header(request: Request, call_next):
response = await call_next(request)
return response
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)
எடுத்துக்காட்டு குறியீடு: routes.py
from fastapi import APIRouter, Depends, HTTPException, Request
from fastapi.responses import JSONResponse
import requests
import jwt
from config import settings
from auth import verify_jwt
router = APIRouter()
@router.get("/products/{product_id}")
async def get_product(product_id: int, request: Request, is_authenticated: bool = Depends(verify_jwt)):
# தயாரிப்பு சேவைக்கு கோரிக்கையை அனுப்பு
product_service_url = f"{settings.product_service_url}/products/{product_id}"
try:
response = requests.get(product_service_url)
response.raise_for_status() # மோசமான பதில்களுக்கு HTTPError ஐ உயர்த்தவும் (4xx அல்லது 5xx)
return response.json()
except requests.exceptions.RequestException as e:
raise HTTPException(status_code=500, detail=f"தயாரிப்பு சேவையுடன் தொடர்புகொள்வதில் பிழை: {e}")
@router.post("/orders")
async def create_order(request: Request, is_authenticated: bool = Depends(verify_jwt)):
# ஆர்டர் சேவைக்கு கோரிக்கையை அனுப்பு
order_service_url = f"{settings.order_service_url}/orders"
body = await request.json()
try:
response = requests.post(order_service_url, json=body)
response.raise_for_status()
return response.json()
except requests.exceptions.RequestException as e:
raise HTTPException(status_code=500, detail=f"ஆர்டர் சேவையுடன் தொடர்புகொள்வதில் பிழை: {e}")
எடுத்துக்காட்டு குறியீடு: auth.py
from fastapi import HTTPException, Depends, Header
import jwt
from config import settings
from typing import Optional
async def verify_jwt(authorization: Optional[str] = Header(None)) -> bool:
if not authorization:
raise HTTPException(status_code=401, detail="அங்கீகார தலைப்பு தேவை")
try:
token = authorization.split(" ")[1]
jwt.decode(token, settings.jwt_secret, algorithms=[settings.jwt_algorithm])
return True
except jwt.ExpiredSignatureError:
raise HTTPException(status_code=401, detail="டோக்கன் காலாவதியானது")
except jwt.InvalidTokenError:
raise HTTPException(status_code=401, detail="தவறான டோக்கன்")
எடுத்துக்காட்டு குறியீடு: config.py
import os
from typing import Optional
from pydantic import BaseSettings
class Settings(BaseSettings):
product_service_url: str = os.getenv("PRODUCT_SERVICE_URL", "http://localhost:8001")
order_service_url: str = os.getenv("ORDER_SERVICE_URL", "http://localhost:8002")
jwt_secret: str = os.getenv("JWT_SECRET", "secret")
jwt_algorithm: str = os.getenv("JWT_ALGORITHM", "HS256")
settings = Settings()
கட்டமைப்பு
பின் முனை சேவை URLகள் மற்றும் அங்கீகார விசைகள் போன்ற கட்டமைப்பு அமைப்புகளை, ஒரு தனி கட்டமைப்பு கோப்பில் (எ.கா., `config.py`) சேமிக்கவும். வெவ்வேறு சூழல்களை (மேம்பாடு, அரங்கேற்றம், உற்பத்தி) கட்டமைக்க சுற்றுச்சூழல் மாறிகளைப் பயன்படுத்தவும்.
அங்கீகாரம்
JWTகளைப் பயன்படுத்தி அங்கீகாரத்தை செயல்படுத்தவும். API நுழைவாயில் கோரிக்கையை பின் முனை சேவைக்கு அனுப்புவதற்கு முன்பு JWT ஐ சரிபார்க்கிறது. இந்த அணுகுமுறை பாதுகாப்பு மற்றும் பரவலாக்கத்தை ஊக்குவிக்கிறது. பெரிய நிறுவனங்களுக்கு, கீகிளோக் அல்லது அஷூர் ஏடி போன்ற அடையாள வழங்குநருடன் ஒருங்கிணைப்பதைக் கவனியுங்கள். இது அங்கீகாரம் மற்றும் அங்கீகார கொள்கைகளை மையப்படுத்தலாம்.
ரூட்டிங்
தனி கோப்பில் ரூட்களை வரையறுக்கவும் (எ.கா., `routes.py`). உள்வரும் கோரிக்கைகளை பொருத்தமான பின் முனை சேவைகளுக்கு மேப்பிங் செய்ய ஃபாஸ்ட்பிஐயின் ரூட்டர் செயல்பாட்டைப் பயன்படுத்தவும். கோரிக்கை பாதை, HTTP முறை மற்றும் தலைப்புகளின் அடிப்படையில் ரூட்டிங்கை செயல்படுத்தவும்.
எடுத்துக்காட்டு: API நுழைவாயிலை டோக்கரைசிங் செய்தல்
API நுழைவாயிலை ஒரு கொள்கலனில் பேக்கேஜ் செய்ய ஒரு `Dockerfile` ஐ உருவாக்கவும்.
FROM python:3.9-slim-buster WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
சேவை வலை ஒருங்கிணைப்பு
இஸ்டியோ போன்ற ஒரு சேவை வலையுடன் பைதான் API நுழைவாயிலை ஒருங்கிணைப்பது பாதுகாப்பு, கண்காணிப்பு மற்றும் போக்குவரத்து மேலாண்மையை மேம்படுத்துகிறது. API நுழைவாயில் வழியாக செல்லும் போக்குவரத்தை நிர்வகிக்க இஸ்டியோவை எவ்வாறு கட்டமைப்பது என்பதில் கவனம் செலுத்துவோம்.
இஸ்டியோ நிறுவல்
தொடர்வதற்கு முன், இஸ்டியோ உங்கள் குபெர்நெட்ஸ் கிளஸ்டரில் நிறுவப்பட்டுள்ளதா என்பதை உறுதிப்படுத்தவும். நிறுவல் வழிமுறைகளுக்கு அதிகாரப்பூர்வ இஸ்டியோ ஆவணத்தைப் பார்க்கவும். AWS, கூகிள் கிளவுட் மற்றும் அஷூர் போன்ற பல கிளவுட் வழங்குநர்கள், வரிசைப்படுத்தல் மற்றும் நிர்வாகத்தை எளிதாக்கும் நிர்வகிக்கப்பட்ட இஸ்டியோ சேவைகளை வழங்குகிறார்கள்.
சைட்கார் ஊசி
இஸ்டியோ ஒரு சேவையிலிருந்து வரும் மற்றும் செல்லும் அனைத்து போக்குவரத்தையும் இடைமறிக்க ஒரு சைட்கார் ப்ராக்ஸியை (என்வாய்) பயன்படுத்துகிறது. API நுழைவாயிலுக்கு இஸ்டியோவை இயக்க, API நுழைவாயிலின் போடுக்குள் சைட்கார் ப்ராக்ஸியை நீங்கள் செலுத்த வேண்டும். இது பொதுவாக போட் வரிசைப்படுத்தலுக்கு ஒரு சிறுகுறிப்பைச் சேர்ப்பதன் மூலம் செய்யப்படுகிறது:
apiVersion: apps/v1 kind: Deployment metadata: name: api-gateway labels: app: api-gateway spec: replicas: 1 selector: matchLabels: app: api-gateway template: metadata: labels: app: api-gateway annotations: sidecar.istio.io/inject: "true" # இஸ்டியோ சைட்கார் ஊசியை இயக்கவும் spec: containers: - name: api-gateway image: your-api-gateway-image:latest ports: - containerPort: 8000
மெய்நிகர் சேவைகள் மற்றும் நுழைவாயில்கள்
இஸ்டியோ போக்குவரத்து ரூட்டிங்கை நிர்வகிக்க மெய்நிகர் சேவைகள் மற்றும் நுழைவாயில்களைப் பயன்படுத்துகிறது. ஒரு நுழைவாயில் வலையத்திற்குள் செல்லும் போக்குவரத்திற்கான நுழைவு புள்ளியை வரையறுக்கிறது, அதே நேரத்தில் ஒரு மெய்நிகர் சேவை வலையத்திற்குள் உள்ள சேவைகளுக்கு போக்குவரத்து எவ்வாறு திருப்பி விடப்படுகிறது என்பதை வரையறுக்கிறது.
இஸ்டியோ நுழைவாயிலை உருவாக்குதல்
API நுழைவாயிலை வெளிப்புற போக்குவரத்துக்கு வெளிப்படுத்த ஒரு இஸ்டியோ நுழைவாயிலை வரையறுக்கவும்.
apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: name: api-gateway-gateway spec: selector: istio: ingressgateway # இஸ்டியோவின் இயல்புநிலை உள்நுழைவு நுழைவாயிலைப் பயன்படுத்தவும் servers: - port: number: 80 name: http protocol: HTTP hosts: - "*" # உங்கள் களத்துடன் மாற்றவும்
மெய்நிகர் சேவையை உருவாக்குதல்
நுழைவாயிலிலிருந்து API நுழைவாயில் சேவைக்கு போக்குவரத்தை திருப்பி விட ஒரு மெய்நிகர் சேவையை வரையறுக்கவும்.
apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: api-gateway-virtualservice spec: hosts: - "*" # உங்கள் களத்துடன் மாற்றவும் gateways: - api-gateway-gateway http: - route: - destination: host: api-gateway # குபெர்நெட்ஸில் சேவை பெயர் port: number: 8000 # API நுழைவாயில் கேட்கும் போர்ட்
இஸ்டியோவுடன் போக்குவரத்து மேலாண்மை
இஸ்டியோ சக்திவாய்ந்த போக்குவரத்து மேலாண்மை திறன்களை வழங்குகிறது, அதாவது:
- சுமை சமநிலை: ஒரு சேவையின் பல நிகழ்வுகளில் போக்குவரத்தை விநியோகித்தல். சுற்று ராபின், குறைந்த இணைப்புகள் மற்றும் நிலையான ஹாஷிங் உள்ளிட்ட பல்வேறு சுமை சமநிலை வழிமுறைகளை இஸ்டியோ ஆதரிக்கிறது.
- போக்குவரத்து பிரித்தல் (கனரி வரிசைப்படுத்தல்கள்): புதிய பதிப்பிற்கு ஒரு சிறிய சதவீத போக்குவரத்தை அனுப்புவதன் மூலம் ஒரு சேவையின் புதிய பதிப்புகளை படிப்படியாக வெளியிடுகிறது. எல்லா பயனர்களையும் பாதிக்காமல் உற்பத்தியில் புதிய அம்சங்களைச் சோதிக்க இது உங்களை அனுமதிக்கிறது.
- சர்க்யூட் பிரேக்கிங்: ஆரோக்கியமற்ற சேவைகளுக்கான போக்குவரத்தை தானாக நிறுத்துவதன் மூலம் தோல்விகளைத் தடுத்தல்.
- பிழை ஊசி: உங்கள் பயன்பாட்டின் மீள்தன்மையைச் சோதிக்க போக்குவரத்தில் தாமதங்கள் அல்லது பிழைகளைச் செலுத்துதல்.
எடுத்துக்காட்டு: இஸ்டியோவுடன் கனரி வரிசைப்படுத்தல்
ஒரு கனரி வரிசைப்படுத்தலைச் செய்ய, புதிய பதிப்பிற்கு ஒரு சிறிய சதவீத போக்குவரத்தை (எ.கா., 10%) அனுப்ப இஸ்டியோவை நீங்கள் உள்ளமைக்க முடியும்.
apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: api-gateway-virtualservice spec: hosts: - "*" # உங்கள் களத்துடன் மாற்றவும் gateways: - api-gateway-gateway http: - route: - destination: host: api-gateway # பதிப்பு 1 port: number: 8000 weight: 90 - destination: host: api-gateway-v2 # பதிப்பு 2 (கனரி) port: number: 8000 weight: 10
கண்காணிப்பு
உங்கள் API நுழைவாயில் மற்றும் பின் முனை சேவைகளின் செயல்திறன் மற்றும் ஆரோக்கியத்தைப் புரிந்துகொள்ள கண்காணிப்பு மற்றும் பதிவு செய்தல் ஆகியவை முக்கியமானவை. போன்ற கருவிகளைப் பயன்படுத்தி விரிவான கண்காணிப்பை செயல்படுத்தவும்:
- புரோமேத்தியஸ்: அளவீடுகளை சேகரித்து சேமிப்பதற்கான கண்காணிப்பு அமைப்பு. சேவை போக்குவரத்து, தாமதம் மற்றும் பிழைகள் பற்றிய அளவீடுகளை வழங்க புரோமேத்தியஸுடன் இஸ்டியோ ஒருங்கிணைக்கிறது.
- கிராஃபனா: உங்கள் பயன்பாட்டைக் கண்காணிக்க டாஷ்போர்டுகளை உருவாக்குவதற்கான தரவு காட்சிப்படுத்தல் கருவி.
- யேகர்: உங்கள் மைக்ரோசர்வீஸ்கள் வழியாக கோரிக்கைகள் பாய்வதால் அவற்றைக் கண்காணிப்பதற்கான விநியோகிக்கப்பட்ட தடமறிதல் அமைப்பு. அனைத்து சேவைக்கு சேவை தகவல்தொடர்புகளுக்கும் இஸ்டியோ தானாகவே தடயங்களை உருவாக்க முடியும்.
- ஃப்ளூயன்ட்/எலாஸ்டிக் தேடல்/கிபானா (EFK ஸ்டாக்): பதிவுகளை சேகரிக்க, சேமிக்க மற்றும் பகுப்பாய்வு செய்வதற்கான பதிவு அடுக்கு.
இஸ்டியோ டெலிமெட்ரி
சேவை போக்குவரத்து பற்றிய அளவீடுகள், பதிவுகள் மற்றும் தடயங்கள் உள்ளிட்ட டெலிமெட்ரி தரவை இஸ்டியோ தானாகவே சேகரிக்கிறது. உங்கள் API நுழைவாயில் மற்றும் பின் முனை சேவைகளின் செயல்திறன் மற்றும் ஆரோக்கியத்தைக் கண்காணிக்க இந்த தரவைப் பயன்படுத்தலாம். புரோமேத்தியஸ், கிராஃபனா மற்றும் யேகர் ஆகியவற்றுக்கு டெலிமெட்ரி தரவை ஏற்றுமதி செய்ய இஸ்டியோவை உள்ளமைக்கவும்.
API நுழைவாயில் குறிப்பிட்ட அளவீடுகள்
இஸ்டியோவின் டெலிமெட்ரி தரவுக்கு கூடுதலாக, API நுழைவாயில் குறிப்பிட்ட அளவீடுகளையும் நீங்கள் சேகரிக்க வேண்டும், அதாவது:
- கோரிக்கை வீதம்: வினாடிக்கு கோரிக்கைகளின் எண்ணிக்கை.
- பதில் நேரம்: ஒரு கோரிக்கையை செயலாக்க ஆகும் சராசரி நேரம்.
- பிழை வீதம்: பிழையில் விளைகின்ற கோரிக்கைகளின் சதவீதம்.
- அங்கீகார வெற்றி/தோல்வி வீதம்: வெற்றிகரமான மற்றும் தோல்வியுற்ற அங்கீகார முயற்சிகளின் எண்ணிக்கை.
- சேமிப்பு ஹிட் வீதம்: சேமிப்பகத்திலிருந்து வழங்கப்படும் கோரிக்கைகளின் சதவீதம்.
பாதுகாப்பு பரிசீலனைகள்
API நுழைவாயிலை உருவாக்கும்போது பாதுகாப்பு மிக முக்கியமானது. பின்வரும் பாதுகாப்பு நடவடிக்கைகளைக் கவனியுங்கள்:
- அங்கீகாரம் மற்றும் அங்கீகரிப்பு: உங்கள் பின் முனை சேவைகளைப் பாதுகாக்க வலுவான அங்கீகாரம் மற்றும் அங்கீகார வழிமுறைகளை செயல்படுத்தவும். JWTs, OAuth 2.0 அல்லது பிற தொழில் தரநிலை நெறிமுறைகளைப் பயன்படுத்தவும்.
- உள்ளீட்டு சரிபார்ப்பு: ஊசி தாக்குதல்களைத் தடுக்க உள்வரும் அனைத்து கோரிக்கைகளையும் சரிபார்க்கவும்.
- விகித வரம்பு: துஷ்பிரயோகத்தைத் தடுக்க மற்றும் சேவை மறுப்பு தாக்குதல்களைத் தடுக்க விகித வரம்பை செயல்படுத்தவும்.
- TLS குறியாக்கம்: TLS ஐப் பயன்படுத்தி API நுழைவாயில் மற்றும் பின் முனை சேவைகளுக்கு இடையேயான அனைத்து தகவல்தொடர்புகளையும் குறியாக்கம் செய்யவும். பரஸ்பர TLS (mTLS) ஐப் பயன்படுத்தி இஸ்டியோ தானியங்கி TLS குறியாக்கத்தை வழங்குகிறது.
- வலை பயன்பாட்டு ஃபயர்வால் (WAF): SQL ஊசி மற்றும் குறுக்கு-தள ஸ்கிரிப்டிங் (XSS) போன்ற பொதுவான வலை பயன்பாட்டு தாக்குதல்களிலிருந்து பாதுகாக்க ஒரு WAF ஐப் பயன்படுத்தவும்.
- வழக்கமான பாதுகாப்பு தணிக்கைகள்: பாதிப்புகளை அடையாளம் கண்டு அவற்றைக் கையாள வழக்கமான பாதுகாப்பு தணிக்கைகளை நடத்தவும்.
இஸ்டியோவுடன் பரஸ்பர TLS (mTLS)
அனைத்து சேவைக்கு சேவை தகவல்தொடர்புகளுக்கும் mTLS ஐ தானாகவே செயல்படுத்த முடியும், எல்லா தகவல்தொடர்புகளும் குறியாக்கம் செய்யப்பட்டு அங்கீகரிக்கப்படுவதை உறுதிசெய்கிறது. இது ஒட்டுக்கேட்டல் மற்றும் சேதப்படுத்துதலுக்கு எதிராக ஒரு வலுவான பாதுகாப்பு அடுக்கை வழங்குகிறது.
மேம்பட்ட தலைப்புகள்
கிராஃபிக்யூஎல் நுழைவாயில்
REST API களுக்கு பதிலாக, அதிக திறமையான தரவு மீட்டெடுப்பிற்கு கிராஃபிக்யூலைப் பயன்படுத்தக் கவனியுங்கள். கிராஃபீன் மற்றும் அரியாட்னே போன்ற நூலகங்களைப் பயன்படுத்தி கிராஃபிக்யூஎல் நுழைவாயிலை செயல்படுத்தவும். வாடிக்கையாளர்களுக்குத் தேவையான தரவை மட்டும் கோர கிராஃபிக்யூஎல் அனுமதிக்கிறது, அதிகப்படியான மீட்டெடுப்பைக் குறைக்கிறது மற்றும் செயல்திறனை மேம்படுத்துகிறது.
gRPC நுழைவாயில்
சேவைகளுக்கு இடையே அதிக செயல்திறன் தகவல்தொடர்புக்கு, gRPC ஐப் பயன்படுத்தக் கவனியுங்கள். வெளிப்புற வாடிக்கையாளர்களுக்கு gRPC சேவைகளை வெளிப்படுத்த ஒரு gRPC நுழைவாயிலைச் செயல்படுத்தவும். gRPC வரையறைகளிலிருந்து RESTful APIகளை உருவாக்க grpc-gateway போன்ற கருவிகளைப் பயன்படுத்தவும்.
சேவையற்ற API நுழைவாயில்
AWS லாம்ப்டா, கூகிள் கிளவுட் ஃபங்க்ஷன்ஸ் அல்லது அஷூர் ஃபங்க்ஷன்ஸ் போன்ற தளங்களைப் பயன்படுத்தி உங்கள் API நுழைவாயிலை ஒரு சேவையற்ற செயல்பாடாக வரிசைப்படுத்தவும். சேவையற்ற API நுழைவாயில்கள் அளவிடுதல், செலவு-செயல்திறன் மற்றும் குறைக்கப்பட்ட செயல்பாட்டு மேல்நிலையை வழங்குகின்றன. உதாரணமாக, API நுழைவாயிலை பைத்தானில் எழுதப்பட்ட AWS லாம்ப்டா செயல்பாடுகளுடன் ஒருங்கிணைக்க முடியும் கோரிக்கைகளைச் செயலாக்க. இந்த சேவையற்ற அணுகுமுறை உள்கட்டமைப்பு செலவுகளை கணிசமாகக் குறைக்கலாம்.
முடிவுரை
சேவை வலை ஒருங்கிணைப்புடன் பைதான் API நுழைவாயிலை உருவாக்குவது மைக்ரோசர்வீஸ் தகவல்தொடர்புகளை நிர்வகிப்பதற்கான வலுவான மற்றும் அளவிடக்கூடிய தீர்வை வழங்குகிறது. API நுழைவாயில்கள் மற்றும் சேவை வலைகளின் பலங்களை இணைப்பதன் மூலம், மேம்படுத்தப்பட்ட பாதுகாப்பு, கண்காணிப்பு மற்றும் போக்குவரத்து மேலாண்மையை நீங்கள் அடைய முடியும். இந்த கட்டமைப்பு நவீன, கிளவுட்-நேடிவ் பயன்பாடுகளுக்கு மிகவும் பொருத்தமானது, இது அதிக கிடைக்கும் தன்மை, அளவிடுதல் மற்றும் பாதுகாப்பு தேவைப்படுகிறது. உங்கள் குறிப்பிட்ட தேவைகளைக் கருத்தில் கொண்டு உங்கள் தேவைகளுக்கு மிகவும் பொருத்தமான கருவிகள் மற்றும் தொழில்நுட்பங்களைத் தேர்வு செய்ய நினைவில் கொள்ளுங்கள். உதாரணமாக, ஒரு சிறிய நிறுவனம் காங்கை API நுழைவாயிலாகவும், லின்கர்டை அவற்றின் பயன்பாட்டின் ஒப்பீட்டு எளிமை காரணமாக சேவை வலையாகவும் விரும்பலாம், அதே நேரத்தில் ஒரு பெரிய நிறுவனம் இஸ்டியோவையும் ஒரு தனிப்பயனாக்கப்பட்ட பைதான் API நுழைவாயிலையும் தேர்வு செய்யலாம், அவர்களின் கட்டமைப்பின் ஒவ்வொரு அம்சத்திலும் நன்றாக கட்டுப்பாடு இருக்கும். சரியான கருவிகளைத் தேர்ந்தெடுப்பது மற்றும் மேலே குறிப்பிட்டுள்ள பாதுகாப்பு பரிசீலனைகளை கவனமாக செயல்படுத்துவது வெற்றிக்கு மிக முக்கியமானது. மேலும், நிலையான கண்காணிப்பு மற்றும் தழுவல் ஆகியவை எப்போதும் மாறிவரும் தொழில்நுட்ப நிலப்பரப்பில் ஒரு வலுவான மற்றும் பாதுகாப்பான API நுழைவாயிலை பராமரிக்க முக்கியமானவை.