एक एडब्ल्यूएस पर्यावरण में Magento चल रहा है


54

होस्टिंग Magento, जैसा कि सभी जानते हैं, अन्य PHP अनुप्रयोगों की मेजबानी करने जैसा नहीं है। 2013 में अमेज़ॅन वेब सर्विसेज वातावरण में मैगनेटो को चलाना कितना संभव है?

मैडेंटो के साथ उपयोग करने के लिए AWS सेवाओं का कौन सा जादू संयोजन है? "चक्की चलाने" की दुकान के लिए स्मार्ट स्तर क्या हैं? (हां, मुझे पता है, मिल स्टोरों का कोई संचालन नहीं है)

किन लोगों (ईबीएस?) से बचा जाना चाहिए?

किसी भी टिप्स, ट्रिक्स, परिनियोजन स्ट्रेटजी इस सेटअप को पाने में होने वाले दर्द से बचने के लिए?

जवाबों:


44

मैं 2011 तक 2013 तक AWS पर Magento की मेजबानी कर रहा था। पारंपरिक समर्पित या साझा होस्टिंग के बजाय क्लाउड बुनियादी ढांचे का उपयोग करने से आपको प्राप्त होने वाली बहुत सी चीजें DevOps के विषय के तहत अधिक प्रासंगिक रूप से वर्णित हैं, जो AWS के लिए अनन्य नहीं हैं, लेकिन अधिक आसानी से सक्षम हैं इसके प्रयोग।

  • अपनी क्षमता नियोजन का पूर्ण और लचीला नियंत्रण - मार्केटिंग इवेंट्स के आगे बड़े पैमाने पर, एलिस्टेंट बीनस्टॉक के माध्यम से डायनेमिक प्रोविजनिंग को सक्षम करें, कम वॉल्यूम पीरियड्स के दौरान स्केल डाउन करें, एक साइट को एक दो हफ़्तों में स्पिन करें, इसे फाड़ें और इसे फेंक दें।
  • आसानी से सेटअप देव / परीक्षण / मंचन वातावरण और उनके बीच परिवर्तनों को दोहराने।
  • अपने व्यवस्थापक पृष्ठों को एक अलग होस्ट पर होस्ट करें।
  • सेशन मैनेजमेंट और ElastiCache को कैश w / o के लिए अतिरिक्त संचालन ओवरहेड के लिए DynamoDB का उपयोग करें, सावधान रहें ElastiCache वर्तमान में VPC में कार्य नहीं करता है।
  • लोडिंग के लिए ईएलबी का उपयोग करें, लेकिन अनुरोध करें कि 60 सेकंड से अधिक समय लगे तो उन्हें असामयिक रूप से समाप्त कर दिया जाएगा
  • ईमेल भेजने के लिए AmazonSES का उपयोग करें (अब नियमित SMTP के माध्यम से और भी आसान), हालांकि अंतराल अभी भी ट्रैकिंग बाउंस / शिकायतों के लिए टूलिंग में मौजूद हैं
  • मीडिया की मेजबानी के लिए AmazonS3 का उपयोग करें, और CDN के लिए क्लाउडफ्रंट।
  • आरडीएस के माध्यम से डेटाबेस गतिविधि के लिए कम परिचालन लागत, जो समय की पुनर्स्थापना, स्वचालित विफलता, स्वचालित बैकअप और स्वचालित उन्नयन में बिंदुओं को दर्शाती है।
  • रूट प्रबंधन मार्ग53 में सुपर आसान है, लेकिन आम तौर पर बैलेंसरों को लोड करने के लिए उपडोमेन की आसानी के लिए सिफारिश की जाती है।
  • VPC अपने सभी मशीनों को अपने निजी नेटवर्क पर रखने के लिए और अधिक दानेदार नियंत्रण रखती है और पहुंच को उजागर करती है जैसा कि आप अपने खुद के वीपीएन सुरंगों के माध्यम से फिट देखते हैं।
  • क्लाउडवेच और एसएनएस के माध्यम से आसान प्रदर्शन मैट्रिक्स और अलर्ट (मेमोरी उपयोग और डिस्क उपयोग से अलग)

डोमेन के लिए न्यूनतम AZR, अलग-अलग AZs में 1 EC2 वेबसर्वर, 1 मल्टी-एज RDS, रूट 53 होस्टेड ज़ोन होगा। प्रारंभ में आप सत्र प्रबंधन को सरल बनाए रखने के लिए ELB पर चिपचिपा सत्रों का उपयोग कर सकते हैं, लेकिन जैसे-जैसे आपका ट्रैफ़िक बढ़ता है आप मीडिया को CDN (S3 & CloudFront) और अलग-अलग मशीनों के सत्रों में स्थानांतरित करना चाहेंगे।

वे क्षेत्र जिन्हें मैंने देखा नहीं है, लेकिन फिर भी आशाजनक हैं: मेग्नेटो स्टैक की आसान तैनाती के लिए क्लाउडफार्मेशन स्क्रिप्ट, डायनामोडीबी के माध्यम से ऑफलोडिंग ऑर्डर क्रिएशन और अधिक चेकआउट थ्रूपुट के लिए कार्यकर्ता कतार (किसी ने पहले ही हैकथॉन में से एक में मोंगबीडीबी के माध्यम से ऐसा करने के लिए एक परियोजना शुरू कर दी है। हाल ही में), और रूट 53 के साथ विलंबता आधारित मार्ग के माध्यम से एक बहु-क्षेत्र की उपस्थिति की स्थापना।

मुझे लगता है कि मैं बादल के लिए एक प्रचारक की तरह हूँ। AWS के लिए विशिष्ट, c3.large उत्पादन webservers के लिए एक सभ्य उदाहरण का आकार है, लेकिन मैं प्रत्येक उदाहरण वर्ग में सबसे छोटे के साथ शुरू करूँगा और प्रदर्शन को मापता हूं और कोड को मापता या अनुकूलित करता हूं जैसा कि आप फिट देखते हैं, यही कारण है कि मैं सभी को संदर्भित करता हूं xhgui लगातार।


मैं वास्तव में डेटाबेस के लिए RDS का उपयोग नहीं करने का सुझाव दूंगा। सर्वर के अनुकूलन पर आपका कोई नियंत्रण नहीं है, जो कुछ अच्छा प्रदर्शन करने के लिए, Magento की जरूरत है। एक श्वेत पत्र है जो मैगेंटो ने एक स्टैक ट्यूनिंग पर रखा है जो ट्यूनिंग MySql पर विवरण दिखाता है। मूल रूप से यदि आप अधिकतम गति की पैमाने पर या अपेक्षा करते हैं, तो आपको अपना स्वयं का डेटाबेस सर्वर चलाना होगा
davidalger

3
@davidalger क्षमा करें, लेकिन यह भयानक सलाह है। आपको डेटाबेस पैरामीटर समूहों और उनके उपयोग पर पढ़ना होगा। aws.amazon.com/rds/faqs/#34 इसके अलावा, कैशिंग या कोड ऑप्टिमाइज़ेशन से कहीं अधिक प्रदर्शन लाभ है जो आप डेटाबेस से कर सकते हैं जब तक कि आप पूरी तरह से चेकआउट प्रक्रियाओं पर ध्यान केंद्रित नहीं कर रहे हों, जिस स्थिति में आपको देखना चाहिए github.com/magento-hackathon/MongoDB-OderTransactions
राल्फ टाइस

3
मैं सबसे निश्चित रूप से आरडीएस का उपयोग करूंगा। अधिकतर आप सिस्टम फ़ंक्शंस बनाने की क्षमता खो देते हैं, इसके बारे में। यह अत्यधिक अनुकूलित है, अत्यधिक उपलब्ध है, और आप कुछ क्लिक के साथ प्रतिकृतियों को स्पिन कर सकते हैं। लाभ किसी भी संभावित कमियों को दूर करते हैं।
8'13

ईबीएस (ब्लॉक स्टोरेज) के बारे में क्या? आपने इसे अपने सेटअप में शामिल क्यों नहीं किया है? इसके अलावा, एकाधिक EC2 में मीडिया निर्देशिका को सिंक्रनाइज़ करने का अनुशंसित तरीका क्या है?
डिटसन

1
@Dayson अच्छा सवाल है। Magento काफी आई / ओ भारी है, यहां तक ​​कि जब स्मृति कैशिंग सिस्टमों को सत्र और कैश प्रबंधन को सौंपना। यही कारण है कि आप ईबीएस पर विचार करना चाह सकते हैं। हम वर्तमान में AWS पर नहीं हैं, लेकिन हम अपने Magento के वातावरण को उच्च उपलब्ध लोडबेल्ट स्टैक में चलाते हैं, जिसमें आपको CMS संग्रहण / मीडिया निर्देशिका जैसी समस्या होगी। 2 महीने पहले, हमने अपने webservers पर एक NFS को माउंट किया और उस बढ़ते बिंदु पर हमारे / घर / उपयोगकर्ता निर्देशिकाओं (जहाँ सभी वेबदटा संग्रहीत है) को सहानुभूति दी। प्रयोज्य POV से यह शानदार है। प्रदर्शन के लिहाज से यह अभी भी कुछ मोड़ का उपयोग कर सकता है।
जाप हागमंस

30

यह है कि हम इसे एंग्रीबर्ड्स के लिए कैसे करते हैं:

मैगेंटो इमेजिन 2012 में अंग्रेजी प्रस्तुति।

मीट मैगेंटो # 6.12 पर जर्मन प्रस्तुति

वर्तमान जर्मन "PHP मैगज़िन" में कुछ विवरणों के साथ 6-पृष्ठ लेख (जर्मन में) भी है

फैब्रीज़ियो की सभी प्रस्तुतियों को कई बार ऊपर पढ़े जाने के बाद, मुझे लगता है कि यह उत्तर वास्तव में सबसे अच्छा है, हालांकि मैं मानता हूं कि यह अधिक स्पष्टीकरण और प्रस्तुतियों से महत्वपूर्ण विचारों के निष्कर्षण का उपयोग कर सकता है (विशेषकर जब से मूल पहला लिंक पहले से ही था जब तक मैंने यह अपडेट पोस्ट किया, तब तक 404 'हो चुका था।

प्रस्तुतियों में प्रमुख अवधारणाओं में केवल एक चीज जोड़ूंगा, यह है कि एडब्ल्यूएस / प्रतियोगी प्रौद्योगिकियों में आधुनिक प्रगति कुछ ट्विक्स का सुझाव देगी ... इस तथ्य की तरह कि क्लाउडफ्रंट सीडीएन के प्रदर्शन में सुधार के लिए अब gzip का समर्थन करता है, हालांकि यह उतना तेज़ नहीं है और न ही क्या यह आपको CloudFlare ऑफ़र की तरह मुफ्त SSL समाप्ति प्रदान करता है। उनका रूट 53 DNS भी क्लाउडफ़्लर्स की तरह तेज़ या फ़ीचर से भरपूर नहीं है, न ही एडब्ल्यूएस में एक तुलनीय वेब एप्लीकेशन फ़ायरवॉल या डीडीओएस सुरक्षा है, जो सभी क्लाउडफ़ेयर प्रसाद में शामिल हैं ...

Fabrizio की मूल प्रस्तुति में सुधार करने के लिए कुछ अन्य संभावित तरीके हैं, लेकिन मैं एक अच्छा सलाहकार नहीं होगा अगर मैंने हर बार मेरे द्वारा दिए गए प्रत्येक StackExchange पोस्ट पर मुझे पता था कि क्या मैंने कभी जवाब दिया था? इसके अलावा कुछ नवीनतम प्रसाद मूल प्रस्तुतियों में सुझावों को काफी हद तक बदल देंगे, जिनमें से सभी स्टिल महान प्रदर्शन की पेशकश करते हैं, भले ही उपयोग किए गए विभिन्न विकल्पों के साथ एडब्ल्यूएस से अधिक निचोड़ा जा सके।

मुख्य अवधारणाओं का सारांश :

  1. अपनी अड़चनों को तीव्रता से जानें : और उचित रूप से अनुकूलित करें। स्टैक के प्रत्येक टियर में विशिष्ट अड़चनें हैं (बैंडविड्थ, सीपीयू, डेटाबेस) और प्रत्येक टियर पर अड़चनों को हल करने के लिए प्रत्येक विशिष्ट चुनौती के लिए अनुकूलित एक अलग समाधान की आवश्यकता होती है, हालांकि वास्तव में कैशिंग हर स्तर पर सामान्य तत्व है, जो आगे बढ़ता है ...

  2. कैश ऑल द थिंग्स : लीवरेज एडब्ल्यूएस सिस्टम जहाँ संभव हो (एलिसिस के लिए इलास्टैच टाइप डेटा कैशिंग, कैशिंग इमेज के लिए क्लाउडफ्रंट, सीडीएस के माध्यम से एंड यूज़र्स के पास सीएसएस एसेट्स और शुरुआती एसेट-लेवल तक सर्वर इंस्टेंस प्रतिक्रियाओं को तेज करने के लिए वार्निश। CDN से कैशिंग अनुरोध। इसके अलावा, CDN के लिए अपनी तैनाती प्रणालियों में पहले से ही संक्षिप्त और संक्षिप्त करना सुनिश्चित करें

  3. ऑटोसैसलिंग आवश्यक है : डिमांड बार-बार और तेजी से बदलती है जिससे आप मैन्युअल रूप से निगरानी और प्रतिक्रिया कर सकते हैं। वास्तविक समय में इन परिवर्तनों का पालन करने के लिए ऑटो-स्केलिंग समूहों जैसे AWS में उपलब्ध स्वचालन उपकरणों का उपयोग करने की आवश्यकता होती है ताकि इस कार्य के लिए उपयुक्त सिस्टम के टुकड़े को स्पिन किया जा सके। AWS इसे CloudFront CDN, मार्ग 53 DNS, इलास्टिक लोड बैलेंसर और S3 बाल्टी के लिए पारदर्शी रूप से संभालता है, आपको इसे EC2 इंस्टेंसेस के लिए आकार और ऑटो-स्केलिंग द्वारा संभालना होगा, और RDS और Elasticache टियर के लिए केवल आकार देना / ट्यूनिंग करना होगा

  4. स्वचालन सभी को प्रभावी ढंग से एक साथ बाँधने का एकमात्र तरीका है : इतने सारे अंतर्संबंधित घटकों के साथ, जिनमें से कुछ को तैनाती के समय आरंभीकृत किया जाना है, कुछ को तैनाती के ठीक बाद, इष्टतम प्रदर्शन के लिए ट्यून किए गए सिस्टम के प्रबंधन के लिए स्वचालन की आवश्यकता होती है। कैश क्लियरिंग, कैश वार्मिंग, इमेज प्रोसेसिंग आदि के लिए तैनाती और सिस्टम ऑटोमेशन का उपयोग करना, यह कई अलग-अलग उप-प्रणालियों के प्रबंधन और उन्हें अच्छी तरह से तेल और समस्या मुक्त रखने का एकमात्र उचित तरीका है।

  5. लेकिन वास्तव में यहां तक ​​कि परीक्षण स्वचालन के बिना यह संभव नहीं है : कई चलती भागों के साथ, लगभग किसी भी बदलाव के साथ कुछ टूट जाएगा। और आपको Magento और AWS में विकास को बनाए रखने के लिए बदलना होगा। और उन होगा अक्सर । इसलिए परिवर्तन की लागत को कम से कम रखने के लिए, परीक्षण के सभी रूपों को लागू करने और पूरी तरह से स्वचालित दोनों करने की आवश्यकता है - इकाई परीक्षणों से एकीकरण परीक्षण सेलेनियम-आधारित कार्यात्मक परीक्षण वास्तविक साइट के वास्तविक परीक्षण कॉन्फ़िगरेशन में लॉन्च किए गए जो उत्पादन पर्यावरण की नकल करते हैं। अब आप वास्तव में खुश हैं कि आपने अपनी सभी तैनाती प्रक्रियाओं को स्वचालित कर दिया है, है ना?


2
लिंक का एक गुच्छा होने के लिए डाउनवोटिंग
राल्फ टाइस

9
@ राल्फटाइस मैं यहां अल्पमत में हो सकता हूं, लेकिन बहुत सारे लिंक ठीक हैं, खासकर जब वे एफबीएमसी के रूप में प्रासंगिक हैं, हर कोई अपनी सामग्री को सार्वजनिक डोमेन / रचनात्मक-कॉमन्स में डालकर स्टैकएक्सचेंज उत्तर में छोड़ देना चाहता है।
एलन स्टॉर्म

4
@AlanStorm का मतलब यह नहीं है कि सभी को डाउनवोट होना चाहिए क्योंकि यह लिंक का एक गुच्छा है, लेकिन सिर्फ इस बात के लिए स्पष्टीकरण छोड़ रहा हूं कि मैंने डाउनवोट क्यों चुना। जब मैं SE साइट पर आता हूं तो मुझे सामग्री के लिंक की तुलना में सामग्री मिलेगी, और मैं विशेष रूप से वीडियो और गैर-अंग्रेजी सामग्री से बचने के लिए SE का उपयोग करता हूं।
राल्फ टाइस

3
लोन लिंक को एक खराब उत्तर माना जाता है ( faq देखें ) क्योंकि यह अपने आप से अर्थहीन है और लक्ष्य संसाधन भविष्य में जीवित रहने की गारंटी नहीं है । यहां उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर होगा
j0k

2
पहला लिंक अब मौजूद नहीं है। : शायद यह यह जगह ले सकती slideshare.net/aoemedia/angrybirds-magento-cloud-deployment
ermannob

4

थोड़ा सरल () समाधान स्थापित करने के लिए है जैसा कि आप किसी अन्य वीपीएस पर करेंगे। मैं अब कुछ वर्षों के लिए एक मुफ्त छवि दे रहा हूं ... हाल ही में मैंने नए सिडनी डीसी पर ध्यान केंद्रित किया है क्योंकि यह स्थानीय होने के कारण - http://www.greengecko.co.nz/magento_on_amazon_ec2 पर अधिक विवरण है यदि आप उस में रुचि रखते हैं। व्यावहारिक रूप से शून्य दर्द शुरू हो रहा है - एक क्लिक और आप वहां हैं। उदाहरण के लिए अधिक विवरण के लिए अपने ब्राउज़र को इंगित करें। यह एक अच्छा शुरुआती बिंदु बना देगा - लेकिन यदि आप इस पर निर्माण करने जा रहे हैं तो /etc/rc.local को देखें और संशोधित करें।

एहसास करने के लिए महत्वपूर्ण चीजें हैं कि उदाहरण बहुत कम संचालित हैं। जाहिर तौर पर ऐप पर बहुत सारे पैसे फेंकने से इसमें सुधार होता है, लेकिन मामूली रूप से छोटे webshop के लिए भी एक मध्यम उदाहरण एक पूर्ण न्यूनतम है, बस कई कोर प्राप्त करने के लिए, और वास्तव में बड़ा सबसे छोटा आवश्यक है।

इसके अलावा, अमेज़ॅन स्टोरेज धीमा है। इस वजह से, यह संभवतः सामान्य से भी अधिक महत्वपूर्ण है कि आप जो कुछ भी संभव है, वह सब कुछ मेमोरी से वितरित कर सकते हैं: ट्यूनिंग डेटाबेस, मेमोरी समर्थित कैश, आदि अनिवार्य हैं।

एक बार जब आप उस क्रमबद्ध हो जाते हैं, तो यह ठीक काम करता है। VPC में चलाने की आवश्यकता है यदि आप चाहते हैं> 1 IP पता वास्तव में कष्टप्रद है (विशेषकर जब आपको इसका पता नहीं चलता है जब आप बाहर शुरू करते हैं!), और वास्तव में केवल एक ही गेटा आपके सामने आएगा।

प्लेटफ़ॉर्म को 'फ़्लाई पर विस्तार' करना सरल है - अंततः एकमात्र अड़चन PHP को उपलब्ध प्रसंस्करण शक्ति की मात्रा बन जाती है (अकुशल कोड एक तरफ!), और समानांतर में कई 'इंजन' चलाना संभवत: सबसे सरल विकल्प है - एक्स्ट्रा ऑनलाइन लाना ज़रूरी।

का आनंद लें!

स्टीव


नए AWS खातों के लिए VPC अब डिफ़ॉल्ट रूप से है। aws.typepad.com/aws/2013/03/…
राल्फ टाइस

4

हम RDS मल्टी AZ, दो NGINX ऑप्टिमाइज़्ड सर्वर, 2 वार्निश सर्वर + ELB और उसी वार्निश सर्वर (वार्निश के विभिन्न पोर्ट) SSL Nginx पर चला रहे हैं। हम मैगेंटो के सत्र प्रबंधन के लिए डायनास्टोबी को एकीकृत करते हुए जल्द ही इलास्टैचे का उपयोग करते हैं। हम S3 और Cloudfront का भी उपयोग करते हैं।

मेरे पास यूके आधारित होस्टिंग कंपनी के साथ एक दिलचस्प चैट थी जिसमें हमारे पास £ 700 एक महीने का सर्वर था। वे सब करते हैं अमेज़न AWS स्लेट है। सभी क्षेत्रों में सही सेटअप और ऑप्टिमाइज़ेशन के साथ जिसमें स्ट्रिपिंग मैगेंटो, डिसएबल मॉड्यूल, कैटिगरी काउंट फंक्शन वगैरह (हमारे पास बैलेंस लोड करने वाले डेटाबेस सर्वर के सामने बैठने के लिए एनजीआईएनएक्स और वार्निश सर्वर ठीक हैं) शामिल हैं।

हम वर्तमान में घर, श्रेणी, उत्पाद और CMS पृष्ठ (वार्निश पृष्ठ) पर 2400 - 3000 + प्रति सेकंड हिट प्राप्त कर सकते हैं। नॉन वार्निश पेज, हम स्टोर के आधार पर प्रति सेकंड 400 - 500 अनुरोधों को संसाधित कर सकते हैं। अब हम RDS मल्टी का उपयोग रीड्स के साथ कर रहे हैं।

Crons को चलाने के लिए, और ट्रैफ़िक को चलाने के लिए हमने Magento Admin को अपने स्वयं के नोड पर भी रखा। http://administraton.mymagestore.com/admin

हमने कभी पीछे मुड़कर नहीं देखा। हम यूके के सबसे अच्छे में से एक का उपयोग कर रहे थे, सभी बड़े पैमाने पर महंगे मेजबान होंगे।


1
सावधान रहें - व्यवस्थापक सत्र अपने आकार के कारण डायनमोबीडी के साथ काम नहीं करेंगे। मैं ध्यान से परीक्षण करूंगा - डायनेमोबेड ने अधिकतम आइटम आकार 64KB से 256KB तक बढ़ा दिया है, लेकिन यह अभी भी काफी बड़ा नहीं हो सकता है। मैंने फ़ाइल सत्रों का उपयोग करके इसके चारों ओर काम किया क्योंकि मेरे पास केवल एक व्यवस्थापक नोड और कई फ्रंटएंड नोड थे और इसलिए व्यवस्थापक बनाम वेब फ्रंट के लिए अलग से स्थानीय। Xml तैनात किया गया था।
राल्फ टाइस

2

आप अपने Magento के काम करने के लिए लगभग सभी मूल AWS सेवाओं का उपयोग कर सकते हैं। सुरक्षा विन्यास के लिए इलास्टिक IP और AWS VPC के साथ EC2 का उपयोग करना सबसे सरल दर्शनीय स्थल होगा।

स्मार्ट तरीका 2 सर्वर परिनियोजन है: वेब सर्वर + डेटाबेस। वेब सर्वर में Magento + Nginx + PHP + बैकएंड कैशिंग (Redis या APC एक अच्छा विकल्प है) और एक ही सबनेट में एक अलग MySQL सर्वर शामिल है। ये सर्वर निजी नेटवर्क में निजी आईपी (वीपीसी के माध्यम से कॉन्फ़िगर) के माध्यम से एक दूसरे को दिखाई दे सकते हैं। Nginx पसंद का वेब सर्वर है जैसे ही यह स्थिर फ़ाइलों को सुपर फास्ट वितरित कर सकता है।

डेटाबेस सर्वर शॉड किसी भी एक्सेस से छिपा हो सकता है। वेब सर्वर पोर्ट 80 और 443 पर दिखाई देगा। वेब सर्वर के लिए इलास्टिक आईपी आवंटित करना संभव है। बाद में डीएनएस को कॉन्फ़िगर करना उपयोगी होगा (उदाहरण के लिए एडब्ल्यूएस रूट 53 के माध्यम से) या एडब्ल्यूएस लोड संतुलन।

जैसा कि आपने उल्लेख किया है कि इस तरह के विन्यास को बनाने के लिए दर्द हो सकता है। तो, आप Deploy4Me के माध्यम से सेट अप को गति दे सकते हैं। यह सभी उल्लिखित सुरक्षा, वीएम और नेटवर्किंग को मिनटों में कॉन्फ़िगर कर देगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.