உள்கட்டமைப்பு கண்ணோட்டம்
இந்த கட்டுரை தின்வென்ட் பொது இணையதளத்தை இயக்கும் உள்கட்டமைப்பைப் பற்றிய ஒரு விரிவான கண்ணோட்டத்தை வழங்குகிறது. வலை சேவையகத்திலிருந்து தரவுத்தள அடுக்கு வரையிலான முழுமையான தொழில்நுட்ப அடுக்கையும், அனைத்து கூறுகளும் ஒன்றாக இணைந்து வேகமான, நம்பகமான மற்றும் அளவிடக்கூடிய இ-காமர்ஸ் அனுபவத்தை வழங்குவதையும் நாங்கள் உள்ளடக்குவோம்.
வலை பயன்பாட்டு அடுக்கு
Flask - அடித்தளம்
எங்கள் இணையதளம் Flask மீது கட்டப்பட்டுள்ளது, இது ஒரு இலகுவான மற்றும் நெகிழ்வான பைதான் வலை கட்டமைப்பாகும். Flask மைய வழித்தடமிடல், கோரிக்கை/பதில் கையாளுதல் மற்றும் எங்கள் பயன்பாட்டை மாடுலர் கூறுகளாக ஒழுங்கமைக்கும் ப்ளூபிரிண்ட் அமைப்பை வழங்குகிறது.
நாங்கள் பயன்படுத்தும் முக்கிய Flask அம்சங்கள்:
-
ப்ளூபிரிண்ட்ஸ்: பயன்பாட்டை தர்க்கரீதியான தொகுதிகளாக (வலை, api, கார்ட், தயாரிப்பு, முதலியன) ஒழுங்கமைத்தல்
-
Jinja2 டெம்ப்ளேட்டிங்: டெம்ப்ளேட் மரபுரிமையுடன் சேவையக பக்க HTML உருவாக்கம்
-
கோரிக்கை சூழல்: HTTP கோரிக்கைகள் மற்றும் அமர்வுகளை தானாக கையாளுதல்
-
Werkzeug: வளர்ச்சி சேவையகம் மற்றும் பயன்பாட்டு செயல்பாடுகள்
Flask பயன்பாடு வலை தொகுதியில் துவக்கப்படுகிறது, அங்கு நாங்கள்:
-
வலை ப்ளூபிரிண்டை உருவாக்குகிறோம்
-
பன்னாட்டு மயமாக்கலுக்கான Babelஐ துவக்குகிறோம்
-
Valkey அமர்வு சேமிப்பகத்தை கட்டமைக்கிறோம்
-
டெம்ப்ளேட் மாறிகளுக்கான சூழல் செயலிகளை அமைக்கிறோம்
Gunicorn - உற்பத்தி சேவையகம்
உற்பத்திக்காக, நாங்கள் Gunicorn (கிரீன் யூனிகார்ன்) என்ற பைதான் WSGI HTTP சேவையகத்தைப் பயன்படுத்துகிறோம். Gunicorn பல தொழிலாளர் செயல்முறைகளுடன் எங்கள் Flask பயன்பாட்டை இயக்குகிறது.
Gunicorn systemd மூலம் நிர்வகிக்கப்படுகிறது, இது செயலிழந்தால் அல்லது சேவையகம் மீண்டும் துவங்கினால் தானாகவே மீண்டும் தொடங்குவதை உறுதி செய்கிறது. இது கைமுறை தலையீடு இல்லாமல் அதிக கிடைக்கும் தன்மையை நமக்கு வழங்குகிறது.
Nginx - தலைகீழ் ப்ராக்ஸி & சுமை சமநிலையாக்கி
Nginx எங்கள் தலைகீழ் ப்ராக்ஸி மற்றும் சுமை சமநிலையாக்கியாக செயல்படுகிறது. இது Gunicornக்கு முன்னால் அமர்ந்து கையாள்கிறது:
-
SSL/TLS முடிவு: HTTPS குறியாக்கம்/குறிவிலக்கம்
-
நிலையான கோப்பு சேவை: CSS, JavaScript, படங்கள் (நேரடியாக வட்டிலிருந்து வழங்கப்படுகிறது)
-
தலைகீழ் ப்ராக்ஸி: டைனமிக் கோரிக்கைகளை Gunicornக்கு முன்னோக்கி அனுப்புதல்
-
விகித வரம்பு: தவறாக பயன்படுத்துவதிலிருந்து பாதுகாத்தல்
-
கோரிக்கை சுருக்கம்: வேகமான பரிமாற்றத்திற்கான Gzip சுருக்கம்
Ubuntu - இயக்க முறைமை
அனைத்து EC2 நிகழ்வுகளும் Ubuntu இயக்கப்படுகின்றன, இது எங்கள் தேர்ந்தெடுக்கப்பட்ட லினக்ஸ் விநியோகமாகும். கிடைக்கும் போது pipக்கு மேல் Ubuntu பைதான் தொகுப்புகளைப் பயன்படுத்த நாங்கள் விரும்புகிறோம்.
வழக்கமான கோரிக்கை ஓட்டம்:
flowchart LR
A[Client Browser] -->|HTTPS Request| B[Nginx]
B -->|Proxy to| C[Gunicorn]
C -->|WSGI| D[Flask App]
D -->|Query| E[Valkey Cache]
E -->|Miss| F[DynamoDB]
F -->|Response| E
E -->|Hit| G[Response]
G --> B
B -->|Response| ACloudFront - உள்ளடக்க விநியோக பிணையம்
CloudFront எங்கள் CDN ஆகும், இது வழங்குகிறது:
-
DDoS பாதுகாப்பு: விநியோகிக்கப்பட்ட தாக்குதல்களுக்கு எதிராக உள்ளமைக்கப்பட்ட பாதுகாப்பு
-
மூல கேடயமிடல்: எங்கள் மூல சேவையகங்களை போக்குவரத்து உச்சங்களிலிருந்து பாதுகாக்கிறது
எங்கள் CloudFront விநியோகத்தில் இரண்டு மூலங்கள் உள்ளன:
-
பின்நிலை சேவையகம்: பின்நிலை Flask பயன்பாடு
-
S3: நிலையான சொத்துக்களுக்கான S3 வாளி
கேஷ் நடத்தைகள் கட்டமைக்கப்பட்டுள்ளன:
-
/s/*- நிலையான சொத்துக்கள் (CSS, JS, படங்கள்) 24-மணி நேர TTL உடன் -
/ds/*.pdf- தரவுத்தாள்கள் 24-மணி நேர TTL உடன் -
/api/*- API இறுதிப்புள்ளிகள் எந்த கேச்சிங் இல்லாமல் -
/cart- கார்ட் 24-மணி நேர TTL உடன் -
/set-language- கேச்சிங் இல்லை (டைனமிக்)
தரவு அடுக்கு
DynamoDB - முதன்மை தரவுத்தளம்
எங்கள் முதன்மை தரவுத்தளமாக Amazon DynamoDBஐப் பயன்படுத்துகிறோம். DynamoDB என்பது ஒரு NoSQL தரவுத்தளமாகும்.
எங்கள் DynamoDB அட்டவணைகளில் அடங்கும்:
-
பரிந்துரைகள்: AI உருவாக்கப்பட்ட தயாரிப்பு பரிந்துரைகள்
-
தயாரிப்பு விளக்கங்கள்: பல மொழிகளில் தயாரிப்பு விளக்கங்கள்
-
வினவல் பக்கங்கள்: SEOக்காக பாகுபடுத்தப்பட்ட வினவல் பக்கங்கள்
நாங்கள் PynamoDBஐப் பயன்படுத்துகிறோம், இது DynamoDBக்கான பைதானிக் ORM ஆகும், இது வழங்குகிறது:
- மாதிரி வரையறைகள்: தரவுத்தள அட்டவணைகளுக்கான பைதான் வகுப்புகள்
Valkey - நினைவகத்தில் உள்ள கேச்
Valkey (Redis இன் ஒரு கிளை) எங்கள் நினைவகத்தில் உள்ள கேச் அடுக்காகும், இது வழங்குகிறது:
-
அமர்வு சேமிப்பகம்: 30-நாள் சறுக்கல் காலாவதியுடன் பயனர் அமர்வுகள்
-
அடிக்கடி அணுகப்படும் தரவு: தயாரிப்பு எண்ணிக்கைகள், பிரபலமான வினவல்கள்
-
தானியங்கி நிறைவு கேச்: தேடல் பரிந்துரைகள்
-
படம் மேனிஃபெஸ்ட்: தயாரிப்பு பட இருப்பிடங்கள்
Valkey குறிப்பிடத்தக்க செயல்திறன் நன்மைகளை வழங்குகிறது:
-
100 மடங்கு வேகமானது வாசிப்பு செயல்பாடுகளுக்கு DynamoDB உடன் ஒப்பிடும்போது
-
குறைக்கப்பட்ட தரவுத்தள சுமை: கேச் வெற்றிகள் DynamoDB வினவல்களைத் தவிர்க்கின்றன
-
அமர்வு நிலைப்புத்தன்மை: கோரிக்கைகளில் Valkey ஆதரவு அமர்வுகள்
நாங்கள் Valkeyஐ பயன்படுத்துகிறோம்:
-
அமர்வுகள்: பயனர் உள்நுழைவு நிலை, கார்ட் தரவு
-
கேச்சிங்: பிரபலமான வினவல்கள், தானியங்கி நிறைவு பரிந்துரைகள்
-
எண்ணிகள்: தயாரிப்பு பங்கு எண்ணிக்கைகள் (செயல்திறனுக்காக கேச் செய்யப்பட்டது)
-
வரிசைகள்: பின்னணி வேலை செயலாக்கம்
S3 - பொருள் சேமிப்பகம்
Amazon S3 எங்கள் பொருள் சேமிப்பக சேவையாகும்.
நாங்கள் S3ஐ பயன்படுத்துகிறோம்:
-
தயாரிப்பு படங்கள்: உயர் தெளிவுத்திறன் கொண்ட தயாரிப்பு புகைப்படங்கள்
-
தரவுத்தாள்கள்: PDF தயாரிப்பு விவரக்குறிப்புகள்
-
நிலையான சொத்துக்கள்: CSS, JS, படங்கள்
DNS & வழித்தடமிடல்
Route53 - டொமைன் நிர்வாகம்
Route53 எங்கள் DNS நிர்வாகத்தை கையாள்கிறது:
- டொமைன் பதிவு: thinvent.in மற்றும் தொடர்புடைய டொமைன்கள்
Nginx வழித்தடமிடல்
Nginx URL வடிவங்களின் அடிப்படையில் கோரிக்கைகளை வழிநடத்துகிறது:
-
/→ Flask பயன்பாடு (முகப்பு, தயாரிப்புகள், கார்ட், செக்அவுட்) -
/q/→ Flask பயன்பாடு (வினவல் பக்கங்கள், தேடல் முடிவுகள்) -
/api/→ Flask பயன்பாடு (API இறுதிப்புள்ளிகள்) -
/static/→ CloudFront/S3 (நிலையான சொத்துக்கள்)
தேடல் & AI உள்கட்டமைப்பு
தேடல் சேவை
தேடல் செயல்பாட்டிற்காக நாங்கள் ஒரு தனி Flask பயன்பாட்டை இயக்குகிறோம். இந்த சேவை வழங்குகிறது:
-
திசையன் தேடல்: தொடர்புடைய வினவல்களுக்கான செமான்டிக் ஒற்றுமை
-
தானியங்கி நிறைவு: முன்னொட்டு அடிப்படையிலான தேடல் பரிந்துரைகள்
-
பிரபலமான வினவல்கள்: அதிகம் தேடப்பட்ட சொற்கள்
-
வடிகட்டி பிரித்தெடுத்தல்: கூறுகளுக்காக தேடல் வினவல்களை பாகுபடுத்துதல்
தேடல் சேவை பயன்படுத்துகிறது:
-
Valkey RediSearch: திசையன் ஒற்றுமை தேடல்
-
SentenceTransformer: உட்பொதிப்பு உருவாக்கம்
-
சொற்றொடர் மேப்பிங்ஸ்: துணைச் சரம் பொருத்தம் மூலம் வடிகட்டி பிரித்தெடுத்தல்
AI வழங்குநர்கள்
பல்வேறு பணிகளுக்காக பல AI வழங்குநர்களை நாங்கள் பயன்படுத்துகிறோம்:
DeepSeek
-
மாதிரி: deepseek-chat
-
பயன்பாட்டு வழக்குகள்: தயாரிப்பு விளக்கங்கள், வினவல் பக்க உள்ளடக்கம், மொழிபெயர்ப்பு
-
API: Together.ai காப்பு வழியுடன் DeepSeek API
-
கேச்சிங்: கேச்சிங் திறனுக்கான கேட்குறிப்பு கேச்சிங் அமைப்பு கேட்குறிப்புகள்
Gemini
-
மாதிரி: Gemini (குறிப்பிட்ட மாதிரி)
-
பயன்பாட்டு வழக்குகள்: உள்ளடக்கம் உருவாக்கம்
-
ஒருங்கிணைப்பு: நேரடி API அழைப்புகள்
Amazon Bedrock
-
மாதிரிகள்: Nova Pro
-
பயன்பாட்டு வழக்குகள்: உள் அரட்டை
-
ஒருங்கிணைப்பு: boto3 SDK
Amazon Bedrock
-
மாதிரிகள்: Nova Lite
-
பயன்பாட்டு வழக்குகள்: வாடிக்கையாளர் அரட்டை பாட்
-
ஒருங்கிணைப்பு: boto3 SDK
முழுமையான கோரிக்கை ஓட்டம்
ஒரு பொதுவான கோரிக்கை எங்கள் உள்கட்டமைப்பு வழியாக எவ்வாறு பாய்கிறது என்பது இங்கே:
flowchart TD
A[Client Browser] -->|DNS Query| B[Route53]
B -->|IP Address| C[CloudFront]
C -->|Cache Check| D{Cache Hit?}
D -->|Yes| E[Return Cached Content]
D -->|No| F[Nginx]
F -->|Proxy| G[Gunicorn]
G -->|WSGI| H[Flask App]
H -->|Cache Check| I[Valkey]
I -->|Hit| J[Return Cached Data]
I -->|Miss| K[DynamoDB]
K -->|Query| L[Return Data]
L --> I
J --> M[Build Response]
E --> M
M --> N[Send to Client]கண்காணிப்பு & ஆரோக்கியம்
UptimeRobot - வெளிப்புற கண்காணிப்பு
அனைத்து பொ