मोबाइल एप्लिकेशन के बैकएंड को कैसे व्यवस्थित करें?

छवि

हम क्या कर रहे हैं? मोबाइल एप्लिकेशन के लिए उपयोगकर्ता पंजीकरण और प्राधिकरण सेवा

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

एक नियम के रूप में, शुरुआत में हर कोई कम से कम प्रतिरोध के मार्ग के साथ (अच्छी तरह से या सबसे अधिक) जाता है। हम एक टर्नकी समाधान की तलाश में हैं और देखते हैं कि यह कितनी जल्दी हमारी जरूरतों के अनुकूल हो सकता है।

इस स्तर पर, पहली चीज़ जो आप "google" कर सकते हैं, वह है Firebase सेवाएं, जिनमें से मुफ्त सीमाएं एक छोटे मोबाइल एप्लिकेशन के बैकएंड को व्यवस्थित करने के लिए पर्याप्त से अधिक हैं। लेकिन इस मामले में, वास्तव में रूसी डेवलपर पर विचार करते हुए, हम अपने विधान की सीमा पर कदम रखने का जोखिम उठाते हैं - उपयोगकर्ता के व्यक्तिगत डेटा के सीमा पार डेटा हस्तांतरण और भंडारण।

(संघीय कानून 152 "व्यक्तिगत डेटा पर", अनुच्छेद 12, अध्याय 2)

फायरबेस का उपयोग करने का प्रलोभन महान है, लेकिन अगर हम विभिन्न पर्यवेक्षी एजेंसियों के साथ अनावश्यक उपद्रव के खिलाफ खुद का बीमा करना चाहते हैं, तो हम वैकल्पिक विकल्पों को देखना शुरू करते हैं।

अगला चरण कुछ प्रकार के ओपन-सोर्स या फ्रीमियम समाधान के साथ एक वीडीएस सर्वर का उपयोग है, जहां तैयार "सेवा-ए-ए-सेवा" या इसी तरह की कार्यक्षमता को तैनात करने की अनुमति वाले समाधान को आधार के रूप में लिया जाता है।

Habré पर कई साल पहले मैंने पहले से ही एक विस्तृत BaasBox सेटअप गाइड लिखा था (किराए की सर्वर पर पुरानी जानकारी के कारण लेख को जनता से हटा दिया गया था) और उद्देश्यपूर्ण सी भाषा के लिए iOS एप्लिकेशन में विभिन्न कॉल का उपयोग करने का एक उदाहरण दिया था। लेकिन BaasBox वास्तव में "भारी वजन" और हुक्म है। किराए के सर्वर के लिए आपका न्यूनतम। उसके साथ थोड़ा खेलने के बाद, एक अलग समाधान का उपयोग करने का निर्णय लिया गया। उस समय, पार्स-सर्वर को केवल हाल ही में फेसबुक द्वारा ओपन-सोर्स डेवलपमेंट में डाला गया था, इसमें वर्तमान में उतने एडाप्टर्स नहीं थे, लेकिन इसकी क्षमता निजी परियोजनाओं और निजी ग्राहकों के अनुप्रयोगों के लिए पर्याप्त से अधिक थी (कई प्रोजेक्ट अभी भी हैं मौजूद है और stably काम)।

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

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

हाल ही में, मेरी मुख्य विकास भाषा स्विफ्ट है।इसलिए, यह वह है जो मुख्य रूप से सर्वर-साइड कोड लिखने में मेरी रुचि है। स्विफ्ट खुद को यूनिक्स सिस्टम पर स्थापित करना आसान है, लेकिन यह कोई स्पष्ट लाभ नहीं देगा। इसके मूल में, यह जटिल तर्क के साथ कंसोल एप्लिकेशन के विकास से मिलता जुलता होगा। सर्वर में आवश्यक बुनियादी तरीकों को फिर से बनाने में बहुत समय लगेगा।

कई अन्य भाषाओं की तरह, सर्वर साइड स्विफ्ट की अपनी रूपरेखाएँ हैं और इन समाधानों के विकास में समुदाय शामिल हैं।

फिलहाल, सर्वर साइड स्विफ्ट को विकसित करने के लिए तीन सबसे महत्वपूर्ण समाधान हैं:

  • उत्तम
  • वाष्प
  • Kitura

अन्य विकल्प भी हैं, लेकिन लंबे समय से रुके हुए विकास और उनकी मृत्यु के कारण वे ध्यान देने योग्य नहीं हैं।

प्रलेखन और समर्थन के संदर्भ में, मुझे वाष्प अधिक पसंद है, लेकिन यह स्वाद की बात है। अन्य समाधान किसी के करीब होंगे। एक तरीका या दूसरा, कई क्षणों में वे समान होते हैं।

स्वाभाविक रूप से, मेरे उदाहरणों में लेखों के पूरे चक्र के दौरान मैं वाष्प का उपयोग करूंगा। इसके आधार पर, हम उपयोगकर्ता पंजीकरण / प्राधिकरण सेवा, ईमेल भेजने और पुष्टि करने, पासवर्ड रीसेट करने और बदलने की क्षमता को लागू करते हैं।

छविछवि
छविछवि
क्या व्यावहारिक लाभ के बिना इसे लागू करने के लायक है?

संभवतः नहीँ! इसलिए, हम आपके सर्वर पर उपयोगकर्ता डेटा संग्रहीत करने के लिए तर्क को व्यवस्थित करने के लिए सबसे अधिक वयस्क सेवा बना सकते हैं।

यदि निर्णय वयस्क है, तो यह जानबूझकर निर्णयों के उपयोग को मजबूर करता है। हमें स्केलिंग को सरल बनाना होगा, डेटा सत्यापन को लागू करना होगा और उपयोगकर्ता सत्र के भंडारण के लिए प्रदान करना होगा, ताकि हर बार उसे अपना उपयोगकर्ता नाम और पासवर्ड दर्ज करने के लिए मजबूर न किया जा सके।

इसके लिए हमें क्या चाहिए?

  • VAPOR 4 (हाँ, अभी भी बीटा में है, लेकिन रिलीज जल्द ही आ रही है, जैसा कि डेवलपर्स ने वादा किया था)
  • PostgreSQL (इस डेटाबेस के साथ काम करने के लिए एक उत्कृष्ट एडाप्टर है)
  • nginx
  • SSL (प्रमाणपत्र का उपयोग करके क्लाइंट से सर्वर के लिए हमारे सभी अनुरोधों को बंद करें)
  • लोकलहोस्ट (स्थानीय रूप से विकास विधि पर विचार करें, ताकि नेटवर्क से जुड़े न हों और बिना किसी समस्या के सड़क पर काम करें)

ठीक है, हम एक ही काम को सुनिश्चित करने के लिए, मौजूदा रनटाइम वातावरण से स्वतंत्र, यह सब पैक करेंगे

ईमानदारी से, मुझे एक समय में डॉकटर पर संदेह था, लेकिन मुझे इस तकनीक पर अधिक बारीकी से ध्यान देना चाहिए था। लेख का उद्देश्य उनके काम की व्याख्या करना और उनके साथ काम करने का तरीका सीखना नहीं है (मुझे संदेह है कि मुझे खुद अभी भी डॉकटर की कई दिलचस्प विशेषताओं को सीखना है)। लेकिन जो लोग इसके साथ काम करने के लिए यह क्या है और कैसे पता नहीं है, स्वतंत्र रूप से आधिकारिक लिंक के माध्यम से डोकर से परिचित हो सकते हैं: www.docker.com

आगे देखते हुए, मैं Kitematic आवेदन, जो डोकर कंटेनर के साथ काम को आसान बनाने के लिए बनाया गया है के लिए एक उपयोगी लिंक छोड़ देंगे : kitematic.com (उन लोगों के लिए होना चाहिए जो टर्मिनल का उपयोग करना पसंद नहीं करते हैं)।

तो, चलो मैक-कंप्यूटर पर डॉकर स्थापित करके शुरू करते हैं:

लिंक hub.docker.com/editions/community/docker-ce-desktop-mac लिंक का अनुसरण करें और मैक (स्थिर) के लिए गोदी डेस्कटॉप डाउनलोड करें।

छवि

परिणामी छवि खोलें और फिर कुछ भी स्थापित न करें। कार्यक्रम निर्देशिका के लिए आवेदन की मानक प्रतिलिपि से अलग है।

छवि

उसके बाद, बस आवेदन शुरू करें और सेवा पूरी तरह से शुरू होने तक प्रतीक्षा करें।

छविछवि

यदि अभी तक डॉकटर आईडी नहीं है, तो इसे hub.docker.com पर बनाया जाना चाहिए और यदि वहाँ है, तो बस आवेदन में लॉग इन करें।

छवि

बस इतना ही, डॉकर के इस्तेमाल की तैयारी पूरी है। यह केवल वर्तमान संस्करण और पर्यावरण के बारे में जानकारी की जाँच करने के लिए बनी हुई है।

> docker संस्करण
छवि

> docker जानकारी
छवि
यह प्राधिकरण सेवा के विकास के लिए तैयारी पूरी करता है। अगले भाग में, हम देखेंगे कि आप विभिन्न सेवाओं के कंटेनरों का उपयोग कैसे कर सकते हैं, हम अपने पर्यावरण की असेंबली को स्वचालित करने के लिए डॉक-कंपोज़ से निपटेंगे और कोड लिखना शुरू करेंगे।

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

छवि

लेख लेखक:
विटाली पोडॉल्स्की, हैकरू शिक्षक

All Articles