वेब डेवलपमेंट रोल में मुझे सर्वर के बारे में क्या पता होना चाहिए? [बन्द है]


12

मुझे पता है कि थोड़ा अस्पष्ट लग सकता है, इसलिए मैं कोशिश करूंगा और थोड़ा और समझाऊंगा ...

कई वर्षों के लिए स्व-नियोजित डेवलपर होने के बाद अब मैं एक वाणिज्यिक वेब डेवलपर की भूमिका की तलाश में हूं। सर्वर और होस्टिंग के साथ मेरा एकमात्र अनुभव एफ़टीपी के माध्यम से अपलोड हो रहा है और सीपीएनेल / डब्ल्यूएचएम के साथ थोड़ा खेल रहा है। भूमिका के लिए मैं वेब विकास PHP, MySQL, HTML, CSS प्रकार की भूमिकाएँ निभा रहा हूँ, लेकिन हाल ही के साक्षात्कारों में मुझे सर्वर पर चीजें स्थापित करने के बारे में सवाल पूछे गए हैं, मुझे पता नहीं था कि क्या कहा जा रहा है ... जो आदर्श नहीं था!

मेरे द्वारा किए गए अधिक जानने के बिना, यह समझाना मुश्किल है कि मैं वास्तव में क्या सीखना चाह रहा हूं, लेकिन यह मूल रूप से सिर्फ सर्वर तत्व हैं जिन्हें मुझे वेब डेवलपर के रूप में जानना चाहिए? यदि आप एक वेब डेवलपर हैं, तो क्या आपके पास फ़ाइलों को अपलोड करने के अलावा सर्वर के साथ कोई व्यवहार है, और यदि हां, तो क्या? क्या वेब डेवलपमेंट टीम द्वारा अक्सर सबवर्सन (एसवीएन) और संस्करण नियंत्रण प्रणाली जैसी चीजें स्थापित की जाती हैं, क्या ऐसा हो सकता है?



3
मुझे लगता है कि यह सर्वरों के बारे में अधिक विशिष्ट है :)
माइकल डुरंट

2
मुझे आपसे इसे तोड़ने से नफरत है, लेकिन अगर आप एक वेब सर्वर को कॉन्फ़िगर नहीं कर सकते हैं तो आप बहुत मूल्यवान वेब डेवलपर नहीं हैं और यह ऐसी चीज नहीं है जिसे आप जल्दी से एक किताब में सीख सकते हैं। बजाय एक पुस्तक से सर्वर घटकों को सीखने में आधा गधा काम करते हैं। आप अपने PHP कौशल को सही करने और PHP प्रोग्रामर के रूप में लागू करने के लिए बेहतर हैं।
रिएक्टगुलर

@ मैथ्यू फोसकारिनी क्योंकि मैं इससे अच्छा नहीं हूं कि मुझे इससे बचना चाहिए और केवल वही जानता हूं जो मैं जानता हूं? क्या इस सलाह के कारण दुनिया रुक नहीं पाएगी? not a very valuable web developerजो मैं दूर करने की कोशिश कर रहा हूं, इसलिए मैं इसके बारे में ठीक से जानकर खुश हूं, मुझे नहीं पता कि इस सीखने के बारे में कितना अच्छा है, और पहले किन क्षेत्रों पर ध्यान केंद्रित करना है।
जॉन

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

जवाबों:


10

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

आप उल्लेख करते हैं कि आप एक भूमिका के लिए जा रहे हैं जिसमें PHP और MySQL विकास शामिल है। ये ऐसी चीजें हैं जिन्हें सर्वर पर निष्पादित करने की आवश्यकता होती है। एक डेवलपर के रूप में अच्छे तकनीकी निर्णय लेने में सक्षम होने के लिए आपको यह समझने की आवश्यकता है कि ये चीजें सर्वर पर कैसे काम करती हैं और वेब फ्रंट-एंड के साथ कैसे बातचीत करती हैं। तो, आपको स्पष्ट रूप से सर्वर की समझ विकसित करने की आवश्यकता है।

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

ऐसे तीन क्षेत्र हैं जहाँ आपको गति प्राप्त करने की आवश्यकता होगी:

  1. लिनक्स ऑपरेटिंग सिस्टम की मूल बातें। शायद उबंटू जैसे वितरण को स्थापित करने के लिए एक आसान के साथ शुरू करें।
  2. एक वेब सर्वर और PHP की स्थापना। अपाचे स्थापित करना शुरू करने के लिए एक अच्छी जगह है। अन्य विकल्प हैं, लेकिन यह वह जगह है जहां ज्यादातर लोग शुरू करते हैं।
  3. MySQL को स्थापित करने और चलाने की मूल बातें सीखना। बहुत कम से कम, एक डेवलपर के रूप में, आपको संभवतः डेटाबेस में तालिकाओं और अन्य संरचनाओं को बनाने के लिए DDL लिखने में सक्षम होना होगा और आपको निश्चित रूप से डेटा का पता लगाने और यह सुनिश्चित करने के लिए सर्वर पर डेटाबेस को क्वेरी करने में सक्षम होने की आवश्यकता होगी आवेदन डेटाबेस में क्या है मैच बाहर थूकना है।

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

डेवलपर्स को सर्वर के साथ बातचीत करने की आवश्यकता के संदर्भ में, फ़ाइलों को अपलोड करने से परे, मुझे लगता है कि यह संगठन से संगठन में बहुत भिन्न होता है।

  1. डेवलपर्स अक्सर कम से कम विकास के माहौल के प्रशासन के साथ काम कर रहे हैं। कभी-कभी, यह डेवलपर्स हैं जो संशोधन नियंत्रण प्रणाली (उदाहरण के लिए SVN) और परिनियोजन प्रक्रिया (वातावरण में बढ़ते कोड) स्थापित कर रहे हैं।
  2. आपकी बात के लिए, बहुत कम से कम डेवलपर्स को सर्वर पर रहने वाले संशोधन नियंत्रण प्रणाली का उपयोग करने की आवश्यकता होगी।
  3. समस्याओं के निदान और समाधान में मदद करने के लिए क्या संदेश उत्पन्न किए जा रहे हैं, यह देखने के लिए आपको सर्वर पर लॉग को देखने जैसी चीजों को करने की आवश्यकता होगी।
  4. आपको नेटवर्क कॉन्फ़िगरेशन या सर्वर के भंडारण कॉन्फ़िगरेशन जैसी चीजों को निर्धारित करने के लिए एक बुनियादी ढांचे की टीम के साथ काम करने की आवश्यकता हो सकती है। अक्सर, एप्लिकेशन समस्याएं कॉन्फ़िगरेशन और कोड का एक संयोजन होती हैं।

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


शानदार जवाब, धन्यवाद! इसलिए जब मैं स्थानीय काम के लिए 'मम्प' स्थापित कर रहा हूं, तो क्या यह वही है लेकिन बाहरी दुनिया तक पहुंच के बिना? मैंने कुछ लिनक्स OS स्थापित किए हैं और थोड़ा कमांड लाइन सामान जानता हूं, लेकिन कुछ भी मुझे आसानी से याद नहीं होगा। सर्वरों के बारे में मेरा ज्ञान गैर-मौजूद है, लेकिन मैं हमेशा उन्हें केवल कमांड लाइन द्वारा एक्सेस करने के बारे में सोचता हूं, और उपयोगकर्ता के अनुकूल ओएस की तरह नहीं, क्या यह मामला है?
जॉन

2
कमांड लाइन का उपयोग करके आरामदायक होना सबसे अच्छा है। अधिकांश 'वास्तविक' वेब सर्वर, जिनसे आप निपटेंगे, दूरस्थ मशीनें होंगी और अभ्यस्त जीयूआई स्थापित नहीं होंगे।
ग्रैंडमास्टरबी

2
जैसा कि @GrandmasterB ने लिखा, कमांड लाइन के साथ हाथ मिलाना उपयोगी है। मेरी राय में, लिनक्स एक अच्छा सीखने का मंच है क्योंकि यह आपको यह जानने के लिए मजबूर करता है कि स्क्रीन पर जो आप देख रहे हैं उससे परे ओएस क्या कर रहा है, यह जानने के लिए "धातु के करीब" प्राप्त करें। Httpd.conf फ़ाइल को देखें, समझें कि वेब सर्वर वास्तव में क्या कर रहा है और PHP मॉड्यूल इसे कैसे एकीकृत करता है। प्लेटफ़ॉर्म की मूलभूत समझ प्राप्त करें और यह आपको एक बेहतर डेवलपर बना देगा।
डेमेट्रीकॉट्स

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

2

मेरी पहली सलाह यह है कि किसी एक भूमिका के लिए विशेष रूप से खुद को सीमित न रखें। यह एक विशेषज्ञ होने के लिए बहुत अच्छा है और एक विशेष कौशल सेट (PHP, उदाहरण के लिए) में एक गहरा ज्ञान है। हालाँकि, यह उतना ही महत्वपूर्ण है जितना कि एक व्यापक ज्ञान होना चाहिए जो आपके डोमेन के बाकी हिस्सों में फैला हो।

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

एक और चीज जो मैंने अपने करियर के दौरान सीखी है, वह यह है कि चीजें तेजी से आगे बढ़ती हैं, और यदि आप नहीं रखते हैं तो आप पीछे रह जाएंगे। जितना अधिक आप अपने पूरे वातावरण (व्यावसायिक पहलुओं सहित) के बारे में जानते हैं कि आप बेहतर हैं। यह कहने की ज़रूरत नहीं है कि आप जो कुछ भी करते हैं उसमें आपको एक विशेषज्ञ होने की ज़रूरत है, लेकिन कम से कम आपके पास ज्ञान नहीं है, जो कि कुलीन के रूप में लेबल नहीं किया जाएगा। आप जितने अधिक परिचित हैं, आप उतने ही अनुकूल हैं, और आपकी कंपनी के लिए जितनी अधिक मूल्यवान संपत्ति है।

विशेष रूप से अपने सवालों के जवाब देने के लिए ...

  • एक डेवलपर के रूप में मुझे किन सर्वर तत्वों को जानना चाहिए?

संपूर्ण एप्लिकेशन स्टैक से परिचित हों। जानिए कि वेब सर्वर, डेटाबेस, कैशिंग मैकेनिज्म इत्यादि का क्या उपयोग किया जा रहा है। और जो संस्करण, भी। पर्याप्त परिचित हैं कि आप अपने स्वयं के सर्वर पर पर्यावरण को फिर से बना सकते हैं। जो, और अपने आप में, महत्वपूर्ण महत्वपूर्ण है। आपको विकास और उत्पादन में कमोबेश वैसा ही माहौल बनाने का प्रयास करना चाहिए, क्योंकि यह आश्चर्य को कम करता है ( http://12factor.net/dev-prod-parity )।

  • एक डेवलपर के रूप में आप सर्वर के साथ क्या व्यवहार करते हैं?

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

तो अब क्या?

मेरे सुझाव के रूप में यह सब सीखने के लिए कैसे सबसे अच्छा है? अपने पैर हिलाओ । इस विषय पर आप जो कुछ भी कर सकते हैं उसे पढ़ने की कोशिश करने के बारे में चिंता न करें, इसका अधिकांश हिस्सा आपके दिमाग से तब तक लीक होगा जब तक आप समाप्त नहीं होते हैं। इसके बजाय जमीन से कुछ विकसित करना शुरू करें। वज्र्ट से शुरू करें ; यह आपको एक आभासी मशीन बनाने और प्रबंधित करने की अनुमति देगा, जिसे आप अपने नए खेल के मैदान के रूप में उपयोग कर सकते हैं। फिर, एक वेब सर्वर और एक डेटाबेस स्थापित करें और बनाना शुरू करें। यदि आपके पास एक ऐप के लिए एक विचार है, तो सही, इसके लिए जाएं ... यदि नहीं, तो एक ट्यूटोरियल ढूंढें या किसी मौजूदा ऐप को फिर से बनाने की कोशिश करें। बिंदु सिर्फ पूरी प्रक्रिया से परिचित होना है। इसके अलावा, एक PHP डेवलपर के रूप में, PHP की जाँच करना सुनिश्चित करें : सही तरीका... यह वास्तव में उत्कृष्ट जानकारी का एक बहुत कुछ शामिल है। और सबसे महत्वपूर्ण बात, अपने आप को तनाव न दें। मुझे लगता है कि आपने एक डेवलपर के मार्ग का अनुसरण किया है क्योंकि यह कुछ ऐसा है जो आप आनंद लेते हैं और इसके बारे में भावुक हैं ... उस पर दृष्टि न खोएं!


1

पर ध्यान केंद्रित क्या आप को पता है सर्वर के बारे में एक वेब डेवलपर होने की जरूरत है? ...

वास्तव में आश्चर्यजनक रूप से बहुत कम। आपके ज्ञान का मुख्य क्षेत्र प्रोग्रामिंग, एचटीएमएल, पीएचपी आदि होना चाहिए।

आपको यह जानने की आवश्यकता है कि चीजों को स्थानीय रूप से कैसे चलाया जाए और जब आप ऐसा करते हैं तो आप अपने बॉक्स को 'सर्वर' के रूप में उपयोग कर रहे हैं। इसलिए जब आप स्थानीय रूप से चल रहे हैं तो आप पृष्ठों को देखने के लिए एक वेब ब्राउज़र का उपयोग करते हैं, जैसे कि किसी भी इंटरनेट साइट के साथ ... आपके अलावा http://localhostया होगाhttp://127.0.0.1

के रूप में cgi, http, आदि को कॉन्फ़िगर करने के लिए मुझे उम्मीद नहीं है कि आपको यह जानने की आवश्यकता है। आप हमेशा जिस ओएस में काम करते हैं उसके लिए एक वेब सर्वर की स्थापना पर किसी भी सामान्य पुस्तक के माध्यम से काम कर सकते हैं और सामान्य शब्दों को जानने के लिए पर्याप्त कवरेज होगा।

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

अंत में मैं आपको उन क्षेत्रों के बारे में साक्षात्कार के दौरान नोट्स बनाने की सलाह दूंगा जिनके बारे में आप पर्याप्त नहीं जानते हैं। यह मदद करेगा यदि आपका प्रश्न सिर्फ उन शर्तों के बारे में अधिक विशिष्ट था, जिन्हें आप नहीं जानते थे।


धन्यवाद। मैं वैसे भी सीखना चाहूँगा अगर समय की अनुमति हो। क्या 'डमीज़' प्रकार की पुस्तक के लिए 'लिनक्स' यहाँ मेरी मदद करेगा। मैं जल्द ही होस्ट करने जा रहा हूं, क्या अमेज़ॅन एडब्ल्यूएस क्लाउड होस्टिंग कुछ ऐसा है जो मुझे थोड़े काम से लाभान्वित करेगा, या क्या यह पूरी तरह से अलग है?
जॉन

1
मैं एक डमी बुक का उपयोग नहीं करता। बहुत कुछ प्रासंगिक नहीं हो सकता है। मैं वेब सर्वर, जैसे cengagebrain.com/shop/en/US/storefront/…
Michael Durrant

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

0

वेब विकास चक्र को पूरा करने के लिए आपको नीचे दी गई बातों को जानना होगा

1) आईडीई (नेटबीन और ग्रहण आदि)

2) कोडिंग के लिए कोई प्रोग्रामिंग भाषा। (PHP, जावा, आदि)

पेज डिजाइनिंग के लिए 3) फ्रंट टेक्नोलॉजी (HTML, CSS आदि)

4) डेटा संग्रहीत और पुनर्प्राप्त करने के लिए समर्थित डेटाबेस। (MySQL आदि)

3) संस्करण नियंत्रण प्रणाली की जाँच के लिए और आप कोड फार्म भंडार को पुनः प्राप्त।

4) आप निर्भर फ़ाइलों के साथ कोड संकलन करने के लिए उपकरण बनाएँ। (एंट, मावेन)

6) आप को तैनात करने और चलाने के लिए वेब सर्वर।

7) आपको वेब और ईजेबी घटक को चलाने और परीक्षण करने के लिए सर्वर पर बुनियादी तैनाती प्रक्रिया को जानना होगा। (टॉमकैट, वेब-लॉजिक सर्वर)


0

DemetriKots जवाब के अलावा, मैं भी स्वचालित तैनाती और निरंतर एकीकरण के लिए समाधान देख रहा हूँ। सर्वर को शुरू में स्थापित करना केवल एक कदम है, और एफ़टीपी पर तैनात करना दर्दनाक है और त्रुटि प्रवणता है, पीछे की खराब अवधियों को रोल करने के लिए कोई उचित समाधान नहीं है।

  • हडसन - निरंतर एकीकरण सर्वर
  • Phing - Ant के आधार पर, विशेष रूप से PHP के लिए स्वचालित बिल्ड टूल
  • चींटी - स्वचालित निर्माण उपकरण
  • Capistrano - अपने वेब एप्लिकेशन को स्वचालित करने और आसानी से लागू करने के लिए परिनियोजन स्क्रिप्ट बनाएँ।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.