మౌలిక సదుపాయాల అవలోకనం
ఈ వ్యాసం Thinvent పబ్లిక్ వెబ్సైట్ను నడిపించే మౌలిక సదుపాయాల సమగ్ర అవలోకనాన్ని అందిస్తుంది. మేము వెబ్ సర్వర్ నుండి డేటాబేస్ పొర వరకు మొత్తం టెక్నాలజీ స్టాక్ను కవర్ చేస్తాము మరియు వేగవంతమైన, విశ్వసనీయమైన మరియు స్కేలబుల్ ఈ-కామర్స్ అనుభవాన్ని అందించడానికి అన్ని భాగాలు ఎలా కలిసి పనిచేస్తాయో వివరిస్తాము.
వెబ్ అప్లికేషన్ స్టాక్
ఫ్లాస్క్ - పునాది
మా వెబ్సైట్ Flask పై నిర్మించబడింది, ఇది తేలికైన మరియు సౌకర్యవంతమైన పైథాన్ వెబ్ ఫ్రేమ్వర్క్. Flask మా అప్లికేషన్ను మాడ్యులర్ భాగాలుగా నిర్వహించే కోర్ రూటింగ్, రిక్వెస్ట్/రెస్పాన్స్ హ్యాండ్లింగ్ మరియు బ్లూప్రింట్ వ్యవస్థను అందిస్తుంది.
మేము ఉపయోగించే కీలక Flask ఫీచర్లు:
-
Blueprints: అప్లికేషన్ను లాజికల్ మాడ్యూల్స్గా (web, api, cart, product, మొదలైనవి) నిర్వహిస్తాయి.
-
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 ను నడుపుతాయి, ఇది మా ఎంచుకున్న Linux పంపిణీ. అందుబాటులో ఉన్నప్పుడు 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/*- 24-గంటల TTLతో స్టాటిక్ ఆస్తులు (CSS, JS, చిత్రాలు) -
/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 గణనీయమైన పనితీరు ప్రయోజనాలను అందిస్తుంది:
-
రీడ్ ఆపరేషన్ల కోసం DynamoDB కంటే 100x వేగంగా
-
తగ్గిన డేటాబేస్ లోడ్: కాష్ హిట్స్ 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 - బాహ్య పర్యవేక్షణ
అన్ని పబ్లిక్-ఫేసింగ్ ఎండ్పాయింట్ల బాహ్య పర్యవేక్షణ కోసం మేము UptimeRobot ను ఉపయోగిస్తాము:
-
బ్యాకెండ్ సర్వర్: బ్యాకెండ్ వెబ్సైట్
-
www.thinvent.in: పబ్లిక్ వెబ్సైట్
హెల్త్ చెక్లు
-
Gunicorn: systemd పునఃప్రారంభాలను నిర్వహిస్తుంది
-
Flask:
/healthఎండ్పాయింట్ స్థితిని తిరిగి ఇస్తుంది -
Valkey: కనెక్షన్ ఆరోగ్యం పర్యవేక్షించబడుతుంది
-
DynamoDB: జాప్యం మరియు థ్రూపుట్ పర్యవేక్షించబడతాయి
లాగింగ్
-
అప్లికేషన్ లాగ్లు: Gunicorn error.log
-
యాక్సెస్ లాగ్లు: Gunicorn access.log
-
ఇమెయిల్: పైథాన్ ట్రేస్బ్యాక్లతో క్లిష్టమైన సంఘటనలకు నిజ-సమయ నోటిఫికేషన్లు
సారాంశం
మా మౌలిక సదుపాయాలు దీని కోసం రూపొందించబడింది:
-
పనితీరు: బహుళ కాషింగ్ పొరలు, CDN, ఆప్టిమైజ్ చేసిన క్వెరీలు
-
స్కేలబిలిటీ: ఆటో-స్కేలింగ్ డేటాబేస్లు, లోడ్ బ్యాలెన్సింగ్
-
వ్యయ-ప్రభావం: పే-పర్-యూజ్, డేటాబేస్ లోడ్ తగ్గించడానికి కాషింగ్
Flask, Gunicorn, Nginx, Ubuntu, DynamoDB, Valkey, CloudFront మరియు UptimeRobot ల కలయిక మా ఈ-కామర్స్ ప్లాట్ఫారమ్కు బలమైన, స్కేలబుల్ పునాదిని అందిస్తుంది.
సంబంధిత కథనాలు
-
అనలిటిక్స్ ఆర్కిటెక్చర్ - మా హైబ్రిడ్ అనలిటిక్స్ విధానం గురించి తెలుసుకోండి
-
SEO పైప్లైన్ - శోధన క్వెరీలు ఉత్పత్తి పేజీలుగా ఎలా మారతాయో అర్థం చేసుకోండి
-
శోధన సేవ ఆర్కిటెక్చర్ - మా శోధన మౌలిక సదుపాయాలలోకి ప్రవేశించండి
-
కాషింగ్ వ్యూహం - అన్ని పొరలలో కాషింగ్ను అన్వేషించండి
-
డిప్లాయ్మెంట్ ఆర్కిటెక్చర్ - సిస్టమ్ ఎలా డిప్లాయ్ చేయబడిందో చూడండి
-
భద్రతా పరిగణనలు - భద్రతా చర్యలను సమీక్షించండి