FastAPI बैकएंड डेवलपमेंट बूटकैंप · पाठ

Gunicorn और Uvicorn के साथ परिनियोजन

समझें कि Uvicorn वर्कर के साथ प्रक्रिया प्रबंधक के रूप में Gunicorn का उपयोग करके FastAPI को उत्पादन परिवेश में कैसे परिनियोजित किया जाता है।

पाठ 2, कुल 4 में से11 चरण

Gunicorn और Uvicorn के साथ परिनियोजन, CoddyKit पर FastAPI बैकएंड डेवलपमेंट बूटकैंप का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह FastAPI बैकएंड डेवलपमेंट बूटकैंप सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। FastAPI बैकएंड डेवलपमेंट बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

विकास से उत्पादन तक

जब आप FastAPI ऐप विकसित कर रहे होते हैं, तो अक्सर उसे uvicorn main:app --reload जैसी सरल command से चलाते हैं।

विकास के लिए यह बहुत अच्छा है, क्योंकि बदलाव करने पर यह आपके सर्वर को अपने-आप फिर से शुरू कर देता है। लेकिन उत्पादन परिवेश के लिए यह उपयुक्त नहीं है।

क्यों? एकल प्रक्रिया न तो मज़बूत होती है, न ही विस्तार योग्य। यदि वह क्रैश हो जाए, तो आपका पूरा API बंद हो जाता है! उत्पादन के लिए स्थिरता, प्रदर्शन और त्रुटि-सहनशीलता आवश्यक हैं।

Uvicorn: ASGI का हृदय

FastAPI एक ASGI फ़्रेमवर्क है। ASGI का अर्थ Asynchronous Server Gateway Interface है, जो Python वेब सर्वरों के लिए असिंक्रोनस वेब अनुप्रयोगों से संचार करने का एक मानक है।

Uvicorn एक अत्यंत तेज़ ASGI सर्वर कार्यान्वयन है। यही आपके FastAPI अनुप्रयोग को अनुरोधों को असिंक्रोनस और कुशलता से संभालने की सुविधा देता है।

Uvicorn को अपने FastAPI वाहन के इंजन की तरह समझें। यह तेज़ है, लेकिन अपने-आप इसमें केवल एक चालक यानी प्रक्रिया होती है।

सीधे Uvicorn को चलाना

यहाँ एक बुनियादी FastAPI अनुप्रयोग है। इसे Uvicorn के साथ सीधे चलाने के लिए, जैसा कि आप विकास के दौरान कर सकते हैं, terminal में एक command चलाएँगे।

uvicorn main:app --host 0.0.0.0 --port 8000 command Uvicorn को main.py file से app object चलाने के लिए कहती है और उसे पोर्ट 8000 पर सभी नेटवर्क इंटरफ़ेस से पहुँच योग्य बनाती है।

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "Hello from FastAPI!"}

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

Uvicorn की उत्पादन संबंधी कमियाँ

Uvicorn उत्कृष्ट है, लेकिन उसे सीधे चलाना, विशेषकर --reload के साथ, उत्पादन के लिए आदर्श नहीं है क्योंकि:

  • एकल प्रक्रिया: यह सामान्यतः एकल प्रक्रिया के रूप में चलता है, इसलिए केवल एक CPU कोर का उपयोग कर सकता है।
  • कर्मी प्रबंधन नहीं: यदि वह एकल प्रक्रिया क्रैश हो जाए, तो आपका API पूरी तरह रुक जाता है।
  • प्रक्रिया निगरानी नहीं: Uvicorn क्रैश हुए कर्मियों को अपने-आप फिर से शुरू नहीं करता और न ही भार संतुलन के लिए कई उदाहरणों का प्रबंधन करता है।

उत्पादन के लिए हमें Uvicorn कर्मियों का प्रबंधन करने वाले किसी उपकरण की आवश्यकता है।

Gunicorn: मज़बूत प्रबंधक

Gunicorn (Green Unicorn) का परिचय! Gunicorn उत्पादन के लिए तैयार WSGI HTTP सर्वर है, जो विशिष्ट कर्मी classes का उपयोग करके ASGI अनुप्रयोगों, जैसे FastAPI, का भी प्रबंधन कर सकता है।

इसका मुख्य काम प्रक्रिया प्रबंधक के रूप में कार्य करना है। यह कई कर्मी प्रक्रियाएँ शुरू करके उनकी निगरानी करता है और आने वाले अनुरोधों को उनके बीच बाँटता है।

Gunicorn को पिट क्रू प्रमुख की तरह समझें, जो यह सुनिश्चित करता है कि आपके सभी Uvicorn इंजन सुचारु रूप से चल रहे हों और किसी एक के विफल होने पर उसे बदल देता है।

शक्तिशाली जोड़ी: Gunicorn और Uvicorn

उत्पादन में FastAPI को तैनात करने का अनुशंसित तरीका Gunicorn को Uvicorn कर्मियों के साथ मिलाकर उपयोग करना है।

यह इस प्रकार काम करता है:

  • Gunicorn (मुख्य प्रक्रिया): आने वाले अनुरोधों को सुनता और बाँटता है। यह अपने कर्मियों की निगरानी भी करता है।
  • Uvicorn (कर्मी प्रक्रियाएँ): Gunicorn कई Uvicorn उदाहरण शुरू करता है। प्रत्येक Uvicorn कर्मी आपका FastAPI अनुप्रयोग चलाता है।

यह व्यवस्था बेहतर प्रदर्शन, त्रुटि-सहनशीलता और संसाधनों के कुशल उपयोग की सुविधा देती है।

Gunicorn और Uvicorn का वास्तविक उपयोग

Uvicorn कर्मियों के साथ Gunicorn का उपयोग करके उसी FastAPI ऐप को चलाने के लिए आप इस जैसी command का उपयोग करेंगे। यह व्यवस्था उत्पादन के लिए अधिक मज़बूत है।

यहाँ -w 4 का अर्थ 4 कर्मी प्रक्रियाएँ हैं और -k uvicorn.workers.UvicornWorker निर्दिष्ट करता है कि Gunicorn को Uvicorn कर्मियों का उपयोग करना चाहिए।

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "Hello from FastAPI!"}

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

कर्मियों की संख्या को अनुकूलित करना

प्रदर्शन के लिए यह तय करना अत्यंत महत्वपूर्ण है कि कितने Gunicorn वर्कर उपयोग किए जाएँ। CPU-आधारित अनुप्रयोगों के लिए एक सामान्य नियम (2 * CPU_CORES) + 1 है।

उदाहरण के लिए, 4 CPU कोर वाले सर्वर पर आप (2 * 4) + 1 = 9 वर्कर से शुरुआत कर सकते हैं। इससे कुछ वर्कर इनपुट/आउटपुट कार्य संभाल सकते हैं, जबकि अन्य CPU-गहन कार्यों को संसाधित कर सकते हैं।

अपने विशिष्ट अनुप्रयोग-भार के लिए इस संख्या को बेहतर बनाने हेतु सर्वर के संसाधन उपयोग (CPU, RAM) की हमेशा निगरानी करें।

अपने कॉन्फ़िगरेशन को सुरक्षित करना

उत्पादन परिवेश में डेटाबेस क्रेडेंशियल या API कुंजियों जैसी संवेदनशील जानकारी को सीधे अपने कोड में कभी भी हार्डकोड न करें।

इसके बजाय पर्यावरण चर का उपयोग करें। इससे आपके रहस्य कोडबेस से बाहर रहते हैं और आपका अनुप्रयोग अधिक पोर्टेबल तथा सुरक्षित बनता है।

FastAPI और Pydantic (जिसका उपयोग FastAPI करता है) पर्यावरण चरों से सेटिंग लोड करने के लिए उत्कृष्ट सहायता प्रदान करते हैं, जो अक्सर Pydantic के BaseSettings के माध्यम से होती है।

परिनियोजन जाँच

आइए उत्पादन FastAPI परिनियोजन में Gunicorn और Uvicorn की भूमिकाओं की आपकी समझ की जाँच करें।

पुनरावलोकन: सुदृढ़ परिनियोजन

आपने शक्तिशाली Gunicorn और Uvicorn संयोजन का उपयोग करके FastAPI अनुप्रयोगों को उत्पादन के लिए परिनियोजित करना सीखा है।

  • Uvicorn वह ASGI सर्वर है जो आपका FastAPI ऐप चलाता है।
  • Gunicorn वह प्रक्रिया प्रबंधक है जो कई Uvicorn वर्करों की निगरानी करता है।
  • यह व्यवस्था स्केलेबिलिटी, दोष-सहनशीलता और बेहतर संसाधन उपयोग प्रदान करती है।

अपने वर्करों की संख्या को अनुकूलित करना याद रखें और संवेदनशील कॉन्फ़िगरेशन के लिए हमेशा पर्यावरण चरों का उपयोग करें। इसके बाद आप क्लाउड परिनियोजन रणनीतियों का अध्ययन कर सकते हैं!

शुरुआत निःशुल्क

एआई शिक्षक के साथ FastAPI बैकएंड डेवलपमेंट बूटकैंप सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
21
पाठ
84

अक्सर पूछे जाने वाले प्रश्न

क्या “Gunicorn और Uvicorn के साथ परिनियोजन” पाठ निःशुल्क है?

हाँ — FastAPI बैकएंड डेवलपमेंट बूटकैंप अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Gunicorn और Uvicorn के साथ परिनियोजन” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। FastAPI बैकएंड डेवलपमेंट बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Gunicorn और Uvicorn के साथ परिनियोजन” में मैं क्या सीखूँगा?

समझें कि Uvicorn वर्कर के साथ प्रक्रिया प्रबंधक के रूप में Gunicorn का उपयोग करके FastAPI को उत्पादन परिवेश में कैसे परिनियोजित किया जाता है। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ FastAPI बैकएंड डेवलपमेंट बूटकैंप का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या FastAPI बैकएंड डेवलपमेंट बूटकैंप शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर FastAPI बैकएंड डेवलपमेंट बूटकैंप शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“Gunicorn और Uvicorn के साथ परिनियोजन” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस FastAPI बैकएंड डेवलपमेंट बूटकैंप पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर FastAPI बैकएंड डेवलपमेंट बूटकैंप पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. FastAPI अनुप्रयोगों को Docker कंटेनर में डालना
  2. Gunicorn और Uvicorn के साथ परिनियोजन
  3. क्लाउड परिनियोजन रणनीतियाँ
  4. पर्यावरण चर और गुप्त मानों का प्रबंधन
← FastAPI बैकएंड डेवलपमेंट बूटकैंप पर वापस जाएँ