इन्फ्रास्ट्रक्चर ओव्हरव्ह्यू

हा लेख Thinvent सार्वजनिक वेबसाइटला शक्ती देणाऱ्या इन्फ्रास्ट्रक्चरचा सर्वसमावेशक आढावा देतो. आम्ही वेब सर्व्हरपासून डेटाबेस लेयरपर्यंतचा संपूर्ण तंत्रज्ञान स्टॅक कव्हर करू आणि सर्व घटक एकत्रितपणे कसे काम करतात ते स्पष्ट करू जेणेकरून एक वेगवान, विश्वासार्ह आणि स्केलेबल ई-कॉमर्स अनुभव वितरित केला जाईल.

वेब अॅप्लिकेशन स्टॅक

Flask - पाया

आमची वेबसाइट Flask वर बांधली आहे, हा एक हलका आणि लवचिक Python वेब फ्रेमवर्क आहे. Flask कोर राउटिंग, विनंती/प्रतिसाद हाताळणी आणि ब्लूप्रिंट सिस्टम प्रदान करतो जे आमच्या अॅप्लिकेशनला मॉड्यूलर घटकांमध्ये संघटित करते.

आम्ही वापरत असलेल्या Flask च्या प्रमुख वैशिष्ट्यांमध्ये हे समाविष्ट आहे:

  • ब्लूप्रिंट्स: अॅप्लिकेशनला तार्किक मॉड्यूल्समध्ये संघटित करा (वेब, api, cart, product, इ.)

  • Jinja2 टेम्प्लेटिंग: टेम्प्लेट इनहेरिटन्ससह सर्व्हर-साइड HTML जनरेशन

  • विनंती संदर्भ: HTTP विनंत्या आणि सत्रांचे स्वयंचलित हाताळणी

  • Werkzeug: डेव्हलपमेंट सर्व्हर आणि उपयुक्तता कार्ये

Flask अॅप्लिकेशन वेब मॉड्यूलमध्ये आरंभ केले जाते जिथे आम्ही:

  • वेब ब्लूप्रिंट तयार करा

  • आंतरराष्ट्रीयीकरणासाठी Babel आरंभ करा

  • Valkey सत्र स्टोरेज कॉन्फिगर करा

  • टेम्प्लेट व्हेरिएबल्ससाठी संदर्भ प्रोसेसर सेट अप करा

Gunicorn - प्रोडक्शन सर्व्हर

प्रोडक्शनसाठी, आम्ही Gunicorn (ग्रीन युनिकॉर्न) वापरतो, हा एक Python WSGI HTTP सर्व्हर आहे. Gunicorn आमचे Flask अॅप्लिकेशन एकाधिक वर्कर प्रक्रियांसह चालवतो.

Gunicorn systemd द्वारे व्यवस्थापित केले जाते, जे खात्री करते की तो क्रॅश झाल्यास किंवा सर्व्हर रीबूट झाल्यास तो स्वयंचलितपणे पुन्हा सुरू होईल. हे आम्हाला मॅन्युअल हस्तक्षेपाशिवाय उच्च उपलब्धता देते.

Nginx - रिव्हर्स प्रॉक्सी आणि लोड बॅलन्सर

Nginx आमचा रिव्हर्स प्रॉक्सी आणि लोड बॅलन्सर म्हणून काम करतो. तो Gunicorn च्या समोर बसतो आणि हाताळतो:

  • SSL/TLS टर्मिनेशन: HTTPS एन्क्रिप्शन/डिक्रिप्शन

  • स्थिर फाइल सर्व्हिंग: CSS, JavaScript, प्रतिमा (डिस्कमधून थेट सर्व्ह केल्या जातात)

  • रिव्हर्स प्रॉक्सी: डायनॅमिक विनंत्या Gunicorn कडे फॉरवर्ड करा

  • दर मर्यादा: गैरवापरापासून संरक्षण

  • विनंती कॉम्प्रेशन: वेगवान हस्तांतरणासाठी Gzip कॉम्प्रेशन

Ubuntu - ऑपरेटिंग सिस्टम

सर्व EC2 इन्स्टन्सेस Ubuntu चालवतात, आमची निवडलेली Linux वितरण. आम्ही पाइप ऐवजी, जेव्हा उपलब्ध असेल तेव्हा Ubuntu python पॅकेजेस वापरण्यास प्राधान्य देतो.

ठराविक विनंती प्रवाह आहे:

flowchart LR
    A[क्लायंट ब्राउझर] -->|HTTPS विनंती| B[Nginx]
    B -->|प्रॉक्सी करा| C[Gunicorn]
    C -->|WSGI| D[Flask अॅप्]
    D -->|क्वेरी| E[Valkey कॅश]
    E -->|मिस| F[DynamoDB]
    F -->|प्रतिसाद| E
    E -->|हिट| G[प्रतिसाद]
    G --> B
    B -->|प्रतिसाद| A

CloudFront - कंटेंट डिलिव्हरी नेटवर्क

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 साठी एक Pythonic ORM आहे, जे पुरवते:

  • मॉडेल व्याख्या: डेटाबेस टेबल्ससाठी Python वर्ग

Valkey - इन-मेमरी कॅश

Valkey (Redis चे एक फोर्क) आमची इन-मेमरी कॅश लेयर आहे, जी पुरवते:

  • सत्र स्टोरेज: 30-दिवस स्लाइडिंग एक्सपायरीसह वापरकर्ता सत्रे

  • वारंवार प्रवेश केलेला डेटा: उत्पादन संख्या, लोकप्रिय क्वेरी

  • स्वयंपूर्ण कॅश: शोध सूचना

  • प्रतिमा मॅनिफेस्ट: उत्पादन प्रतिमा स्थाने

Valkey महत्त्वपूर्ण कार्यक्षमता फायदे प्रदान करते:

  • 100x वेगवान वाचन ऑपरेशन्ससाठी 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[क्लायंट ब्राउझर] -->|DNS क्वेरी| B[Route53]
    B -->|IP पत्ता| C[CloudFront]
    C -->|कॅश तपासा| D{कॅश हिट?}
    D -->|होय| E[कॅश केलेली सामग्री परत करा]
    D -->|नाही| F[Nginx]
    F -->|प्रॉक्सी| G[Gunicorn]
    G -->|WSGI| H[Flask अॅप्]
    H -->|कॅश तपासा| I[Valkey]
    I -->|हिट| J[कॅश केलेला डेटा परत करा]
    I -->|मिस| K[DynamoDB]
    K -->|क्वेरी| L[डेटा परत करा]
    L --> I
    J --> M[प्रतिसाद तयार करा]
    E --> M
    M --> N[क्लायंटला पाठवा]

मॉनिटरिंग आणि आरोग्य

UptimeRobot - बाह्य मॉनिटरिंग

आम्ही सर्व सार्वजनिक-समोरच्या एंडपॉइंट्सच्या बाह्य मॉनिटरिंगसाठी UptimeRobot वापरतो:

  • बॅकएंड सर्व्हर: बॅकएंड वेबस