श्रेणी: वेब प्रोग्रामिंग

कस्टम नियंत्रक / कार्रवाई करने के लिए sitemap.xml के लिए रूट अनुरोध

, बुधवार, 6 जनवरी 2010 12:13 रहा हूँ

बस अपने application.ini या वैकल्पिक config फाइल में / के लिए सीधे अनुरोध करने के क्रम में sitemap.xml एक कस्टम और अपने में नियंत्रक कार्रवाई करने के लिए Zend फ्रेमवर्क आवेदन निम्नलिखित जोड़ने के लिए (जैसे मैं navigation.ini उपयोग ):

 resources.router.routes.sitemap.route = "sitemap.xml"
 resources.router.routes.sitemap.defaults.controller = सूचकांक
 resources.router.routes.sitemap.defaults.action = साइटमैप

Outputting के लिए उदाहरण कोड उपयुक्त नियंत्रक (जैसे मेरे साइटमैप सूचकांक नियंत्रक, साइटमैप कार्रवाई में निहित है) में एक कार्रवाई बनाने के द्वारा देखा जा सकता है:

 < php
 वर्ग IndexController
     Zend_Controller_Action फैली
 {
     / **
      * एक Zend_Navigation सेटअप के आधार पर साइटमैप Renders
      * /
     सार्वजनिक समारोह (sitemapAction)
     {
    	 गूंज $ इस -> दृश्य> नेविगेशन () -> (साइटमैप);
    	 $ इस -> दृश्य -> ​​लेआउट () -> disableLayout ();
    	 $ इस -> _helper> viewRenderer> setNoRender (सच);
     }
 }

साइटमैप जल्दी और आसानी से का उपयोग करके उत्पन्न किया जा सकता Zend_Navigation, एक महान जल्दी ट्यूटोरियल (और आमतौर पर बहुत Zend फ्रेमवर्क ट्यूटोरियल के लिए उपयोगी ) Zend डाले - गतिशील मेनू एक साइटमैप और breadcrumbs बनाने.

Zend फ्रेमवर्क के प्रति मॉड्यूल आधारित सेटिंग्स

, शुक्रवार 1 जनवरी 2010 10:40 बजे

मैं इस पोस्ट है जो कम विन्यास की आवश्यकता है है करने के लिए एक follow बनाया है, कृपया देखें Zend फ्रेमवर्क - मॉड्यूल के आधार लेआउट.

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

  / आवेदन
     / नियंत्रकों
         ...
     / मॉडल
     / मॉड्यूल
         / डिफ़ॉल्ट
             / नियंत्रकों
             लेआउट /
                 / लिपियों
             / दृश्य
                 / लिपियों
         / AnotherModule
             ...
     / लिपियों

समस्या की स्थापना था एक प्रति मॉड्यूल के आधार पर लेआउट लिपियों. जवाब एक कार्य हेल्पर का उपयोग के माध्यम से आया था. प्रति - मॉड्यूल के आधार पर लेआउट की स्थापना के तीन चरण होते हैं:

  1. Application.ini (या समान विन्यास सेटअप):
      admin.resources.layout.layoutPath = APPLICATION_PATH "/ / व्यवस्थापक / / लेआउट लिपियों मॉड्यूल"
     default.resources.layout.layoutPath = "/ मॉड्यूल / डिफ़ॉल्ट / / लेआउट लिपियों" APPLICATION_PATH
     member.resources.layout.layoutPath = "/ मॉड्यूल / सदस्य / / लेआउट लिपियों" APPLICATION_PATH
     affiliate.resources.layout.layoutPath = "/ मॉड्यूल / / सहबद्ध / लेआउट लिपियों" APPLICATION_PATH 
  2. अपनी लड़ाई हेल्पर बनाएँ:
      <Php?
     / **
      * प्रति मॉड्यूल के आधार पर लेआउट पथ समूह
      *
      * लेखक @ लॉयड Watkin <lloyd@evilprofessor.co.uk>
      * @ 2010/01/01 के बाद
      * /
     वर्ग Pro_Controller_Action_Helper_SetLayoutPath
         Zend_Controller_Action_Helper_Abstract फैली
     {
         / **
          * मॉड्यूल पर आधारित लेआउट पथ समूह
          * /
         सार्वजनिक समारोह (preDispatch)
         {
        	 $ मॉड्यूल = $ इस -> getRequest () -> getModuleName ();
    
    	     अगर (बूटस्ट्रैप $ = $ इस -> (getActionController)
    	                        -> GetInvokeArg ('बूटस्ट्रैप')) {
    
    	         Config $ = $ bootstrap-> getOptions ();
    
    	         अगर (isset [मॉड्यूल $] (config डॉलर ['संसाधनों'] ['लेआउट'] ['layoutPath'])) {
    	             LayoutPath = $
    	                  $ Config [$ मॉड्यूल] ['संसाधनों'] ['लेआउट'] ['layoutPath'];
    	             $ इस -> (getActionController)
    	                  -> GetHelper ('लेआउट')
    	                  -> SetLayoutPath (layoutPath $);
    	         }
        	 }
         }
     } 
  3. और अंत में कार्रवाई सहायक बूटस्ट्रैप:
      ...
         / **
          * प्रति मॉड्यूल के आधार पर सेट लेआउट लिपियों
          * /
         संरक्षित समारोह (_initLayoutHelper)
    	 {
    	     $ इस -> बूटस्ट्रैप ('frontController');
    	     लेआउट = $ Zend_Controller_Action_HelperBroker: addHelper (
    	         नई Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 

सिद्धांत: datetime अब डिफ़ॉल्ट ()

द्वारा , बुधवार 30 दिसंबर, 2009 6:30

मैं एक नए के लिए एक डेटाबेस स्कीमा सेटिंग के साथ संघर्ष कर रहा है Zend फ्रेमवर्क परियोजना. मैं हूँ का उपयोग उपयोग करने के लिए कोशिश कर रहा सिद्धांत अपने डेटाबेस मॉडल के लिए ORM. मैं इतना है कि यह मुझे एक `` datetime स्तंभ के लिए डिफ़ॉल्ट दिनांक और समय सेट करने के लिए अनुमति दी, जैसे जब एक नया संदेश है मैं वर्तमान टाइमस्टैम्प जोड़ने स्कीमा सेट की जरूरत है. ज्यादा खोज और प्रयोग करने के बाद मैं हल मिल गया तो मैं इसे साझा कर रहा हूँ.

बस अपने स्कीमा YAML फ़ाइल में निम्न कार्य करें :

 संदेश:
   actAs:
     Timestampable:
       निर्मित:
         नाम: created_at
         प्रकार: टाइमस्टैम्प
         प्रारूप: Ymd एच: i:
       अद्यतन:
         नाम: last_updated
         प्रकार: टाइमस्टैम्प
         प्रारूप: Ymd एच: i:
   कॉलम:
     आईडी:
       प्रकार: पूर्णांक
       प्राथमिक: सच
       autoincrement: सच
     नाम: स्ट्रिंग (255)
     ईमेल: स्ट्रिंग (300)
     संदेश: स्ट्रिंग (2000)

दूसरी तरफ अगर आप एक `updated_at` स्तंभ नहीं करना चाहते हैं आप निम्नलिखित का उपयोग कर सकते हैं:

 संदेश:
   actAs:
     Timestampable:
       निर्मित:
         नाम: created_at
         प्रकार: टाइमस्टैम्प
         प्रारूप: Ymd एच: i:
       अद्यतन:
         विकलांग: सच
   कॉलम:
     आईडी:
       प्रकार: पूर्णांक
       प्राथमिक: सच
       autoincrement: सच
     नाम: स्ट्रिंग (255)
     ईमेल: स्ट्रिंग (300)
     संदेश: स्ट्रिंग (2000)

PHP डिजाइन पैटर्न प्रेक्षक पैटर्न -

, मंगलवार 29 दिसम्बर 2009 10:02 बजे

मैं पढ़ रहा हूँ सिर पहले डिजाइन पैटर्न और हाल ही में करने के लिए अपने स्वयं के लाभ के के लिए PHP उदाहरण के रूप में पैटर्न के कुछ लिखने का फैसला किया है. पहले एक है कि मैं कोड का फैसला किया है अप प्रेक्षक पैटर्न . प्रेक्षक पैटर्न के औपचारिक परिभाषा है:

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

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

पढ़ने 'PHP डिजाइन पैटर्न - प्रेक्षक पैटर्न' जारी रखें »

कार्यालय ग्रिड आभासी वातावरण का उपयोग कम्प्यूटिंग - भाग 4

, शुक्रवार 4 दिसम्बर 2009 11:59 बजे

परिचय

मैं एक कंपनी में जहाँ हम कई बैच प्रसंस्करण नौकरियों डेटा के अभिलेखों का लाखों प्रत्येक दिन चलाने के लिए और मैं सभी मशीनों है कि प्रत्येक के आसपास बैठते हैं और हर दिन कई घंटे के लिए कुछ नहीं कर रही के बारे में किया गया है हाल ही में सोच काम करते हैं. यह अच्छा नहीं होगा अगर हम उन मशीनों का उपयोग करने के लिए हमारे सिस्टम के प्रसंस्करण शक्ति सिलेंडर सकता है? लेख के इस सेट में मैं एक कार्यालय रोजगार के संभावित लाभ को देखने जा रहा हूँ ग्रिड virtualised वातावरण का उपयोग .

इन भाग 3 हम हमारे आभासी प्रसंस्करण मशीन बनाया और स्थापित खिड़कियां मशीनों के लिए निष्क्रिय समय श्रमिकों बनने .

नवीनतम कोड रनिंग

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

वहाँ कुछ बहुत आसान सरल तरीके से हम यह कर सकता है, चाल है, तथापि, इस को प्राप्त करने में प्रसंस्करण शक्ति और नेटवर्क यातायात को कम करने के लिए है. सरल समाधान के साथ शुरू और इसे पुनरावृत्तियों के एक जोड़े पर धीरे धीरे सुधार चलो.

पहली विधि बस हमारा काम नियंत्रण सर्वर (साम्बा, FTP, या इसी तरह के माध्यम से) से कनेक्ट करने और नीचे कोड के नवीनतम संस्करण खींच होगा. कुशल नहीं, बहुत है, लेकिन यह काम करना होगा. चलो पर सुधार है कि कुछ हद तक, एक rsync स्क्रिप्ट बनाने और है कि प्रत्येक समय के बजाय का उपयोग करने के बारे में कैसे? वैकल्पिक रूप से तोड़फोड़ बाहर कोड की जाँच शुरू में हमारे नवीनतम प्रसंस्करण स्क्रिप्ट डालने और फिर बस प्रत्येक रन (पर हमारे कोड को अद्यतन करने svn अद्यतन के बारे में) क्या?

अंत में हम एक bash स्क्रिप्ट (हर 10 मिनट क्रॉन द्वारा कहा जाता है) जो के रूप में इस के रूप में सरल लग रहा है के साथ खत्म हो सकता है:

  # / Bin / श
 यदि पी एस कुल्हाड़ी | grep grep-v | grep php > / dev / बातिल
 फिर
     गूंज "नौकरी वर्तमान में, बाहर निकलें प्रसंस्करण है"
 अन्य
     गूंज "नौकरी नहीं चल रहा है, अब शुरू"
     सीडी पथ / / / / कॉपी काम
     svn अद्यतन
     php yourJobProcessingScript.php
 इंटरनेट 

अब हम सुनिश्चित करें कि प्रत्येक रन के साथ हम निश्चित रूप से नवीनतम कोड चला रहे हैं हो सकता है. हम हमारे कोड बेस प्रत्येक और हर बार हम एक रन प्रदर्शन अद्यतन और केवल हमारे नेटवर्क भर में फ़ाइल मतभेद के हस्तांतरण से नेटवर्क यातायात को कम करने के द्वारा यह सुनिश्चित करना है कर रहे हैं.

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

नवीनतम डेटा का उपयोग करना

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

पकड़ो तुम वहाँ घोड़ों रहे हैं क्या होगा यदि मेरे डेटा स्रोत विशाल कर रहे हैं !? खैर यह वास्तव में कितना डेटा हम बात कर रहे हैं का एक मामला है? यह और अधिक लागत प्रभावी प्रत्येक मशीन में एक अतिरिक्त बड़ा हार्ड ड्राइव को स्थापित करने की तुलना में एक अतिरिक्त संसाधन सर्वर खरीद करने के लिए हो सकता है. यह बजट का एक सवाल है और तय व्यापार पर निर्भर है. यह हो सकता है कि आपके डेटा स्रोत इतनी बड़ी हैं कि अपनी बस अपने कार्यकर्ता मशीनों में डेटा की है कि राशि रखने के लिए unfeasible है. उस मामले में आप क्या करना चाहते हैं? खैर, हम एक स्थानीय डेटा सर्वर बुला देखो सकता है, लेकिन इस नेटवर्क के साथ मुद्दों का कारण हो सकता है. इस मामले में इस तरह के रूप में एक ग्रिड प्रणाली अपने कार्यालय वातावरण में शामिल करने के लिए अवास्तविक हो सकता है. यह भी हो सकता है कि आप वैकल्पिक चल रणनीतियों में देखो, उदाहरण के लिए केवल 8:00 और 6:00 हर रात और / या थ्रॉटलिंग डेटा स्रोत अनुरोध के बीच अपने कर्मचारियों को बुला कर सकते हैं हो सकता है.

आगे बढ़ते देता है 100Gb डेटा के लिए हमारे डेटा स्रोतों राशि कहना. वैसे, हाँ है कि डेटा की काफी एक बिट के लिए एक अद्यतन के नेटवर्क पर कदम के आसपास है. हम यह कैसे सुनिश्चित है कि हम इस मामले में डेटा का नवीनतम नकल है? Rsync एक संभावना है, लेकिन व्यक्तिगत तौर पर मुझे लगता है कि अपनी नौकरी प्रसंस्करण सर्वर पर अपने नवीनतम डेटा स्रोत चल रहा है और इस प्रतिकृति (एक अच्छा समय बिन लॉग के साथ) में एक मास्टर के रूप में स्थापित कर जाने के लिए रास्ता हो सकता है:

प्रतिकृति अपने कार्यकर्ताओं में से प्रत्येक के एक दास के रूप में स्थापित करने के काम पर नियंत्रण सर्वर अद्यतन अपने डेटा स्रोतों से नीचे अच्छी तरह से अपने कार्यकर्ताओं को मिलने नेटवर्क गतिविधि में एक भारी वृद्धि के बिना (वह यह है कि जब तक आप एक बड़ा डेटा अद्यतन करते हैं और अपने सभी कार्यकर्ताओं में लात एक ही बार में). डेटाबेस अद्यतन के रूप में, यह rsync के प्रयोग से अधिक लाभ है कि आप हर काम से पहले एक लंबा ठहराव नहीं मिलेगा mysql अपने कार्यकर्ता पर डेमॉन लगातार अपने डेटा अद्यतन जबकि प्रसंस्करण जारी है.

यह कैसे मैं अपने प्रदर्शन सर्वर की स्थापना की. प्रतिकृति सेट मैं MySQL साइट पर गाइड ( बाद प्रतिकृति स्थापना ) और 20 मिनट के भीतर मैं मेरी inital नौकरी नियंत्रण सर्वर डाटासेट नकल कार्यकर्ता था. प्रत्येक अतिरिक्त कार्यकर्ता के लिए प्रतिकृति सेटिंग्स और प्रक्रिया हर बार काम किया जब वी एम नकल की थी.

सारांश

लेख के इस खंड में हम कितना आसान है और पीड़ारहित अपने प्रसंस्करण कोड रखने rsync using या subverion (SVN) द्वारा तिथि करने के लिए काम करते हैं और उसी time. में नेटवर्क यातायात को कम है पर ध्यान दिया है हम भी कैसे चर्चा की यह नीचे अपने कार्यकर्ताओं में से प्रत्येक के लिए मिलने के लिए अनुमति देकर आपके डेटा स्रोत अप करने की तारीख जानकारी रखने के लिए. इस प्रकार हम क्षेत्र सुनिश्चित करना है कि हम व्यापार और हमारे कार्यालय ग्रिड प्रणाली में तर्क जानकारी के साथ रखने के. वहाँ स्पष्ट रूप से इन कार्यों का प्रदर्शन करने के लिए अनगिनत विकल्प हो जाएगा, लेकिन यहाँ दो सरल उदाहरण को दिखाने के लिए कैसे एक आसान समाधान के लिए आ रहा है.

अगली बार

इस श्रृंखला, aptly नाम के अंतिम भाग में भाग 5 , हम के लिए इस प्रणाली की तैनाती पर चर्चा करेंगे. मैं क्या सीखा गया है संक्षेप में प्रस्तुत करना है और मैं क्या बनाने में कामयाब हूँ.

कार्यालय ग्रिड आभासी वातावरण का उपयोग कम्प्यूटिंग - भाग 3

, शुक्रवार 4 दिसंबर, 2009 11:37 बजे

परिचय

मैं एक कंपनी में जहाँ हम कई बैच प्रसंस्करण नौकरियों डेटा के अभिलेखों का लाखों प्रत्येक दिन चलाने के लिए और मैं सभी मशीनों है कि प्रत्येक के आसपास बैठते हैं और हर दिन कई घंटे के लिए कुछ नहीं कर रही के बारे में किया गया है हाल ही में सोच काम करते हैं. यह अच्छा नहीं होगा अगर हम उन मशीनों का उपयोग करने के लिए हमारे सिस्टम के प्रसंस्करण शक्ति सिलेंडर सकता है? लेख के इस सेट में मैं एक कार्यालय रोजगार के संभावित लाभ को देखने जा रहा हूँ ग्रिड virtualised वातावरण का उपयोग .

भाग 2 हम एक सर्वर चलेंगे नौकरियों पर देखा, और नौकरियों सुनिश्चित करना है कि प्रत्येक नौकरी के बिना असफल हो संसाधित है whilst प्रसंस्करण की सबसे बड़ी राशि प्राप्त करने के क्रम में कैसे कॉन्फ़िगर किया जाना चाहिए.

अपने कार्यकर्ता की स्थापना या लंगड़ा सर्वर

प्रक्रिया में अगला कदम अपने आभासी कार्यकर्ताओं सेट है. इस के लिए मैं VirtualBox का उपयोग CentOS के एक अधिष्ठापन का उपयोग करने के लिए जा रहा हूँ. मैं स्थापित करने के लिए जा रहा हूँ MySQL और PHP सर्वर भी एक लंगड़ा (ली nux, मीटर ySQL, पी हिमाचल प्रदेश) Server (मैं बना दिया है कि नाम हो सकता है) के रूप में जाना जाता है पर.

  • अपने विंडोज़ मशीन पर VirtualBox स्थापित (लिंक का अनुसरण करें)
  • डाउनलोड करें और एक बनाया आभासी मशीन के भीतर CentOS (वर्तमान संस्करण 5.3) स्थापित

वहाँ कोई मतलब नहीं है मुझे इस के लिए जा रहा है वहाँ शायद 1000 'वहाँ से बाहर महान ट्यूटोरियल के (ठीक है, यहाँ एक है: बनाना और VirtualBox के तहत Managing CentOS आभासी मशीन ). महत्वपूर्ण बिंदु है ध्यान दें करने के लिए मुझे लगता है कि मैं अपने वर्चुअल मशीन GridMachine बुलाया.

जहाँ तक वर्चुअलाइजेशन ग्राहक और ऑपरेटिंग सिस्टम के मेरे विकल्प के रूप में जाना वहाँ प्रत्येक विकल्प के लिए कोई बड़ा सम्मोहक कारण है. VirtualBox के कुछ मैं मेरे घर मशीन पर उपयोग और तीन प्रमुख ऑपरेटिंग सिस्टम के द्वारा समर्थित है. मैं इसकी एक अच्छा स्थिर ओएस के रूप में चुना CentOS और मैं इसे अपने स्वयं के वेब सर्वर पर उपयोग. मैं काम के लिए सही उपकरण में एक महान विश्वास रखता हूँ (हालांकि मैं आवेदन कर रहा हूँ मानसिकता यहाँ आप के लिए तेज और आसान का उपयोग करें '), तो अगर ऑपरेटिंग सिस्टम एक्स अपने कोड तेज चलाता है और अधिक कुशलता से कि बजाय का उपयोग करें :)

महत्वपूर्ण बात यह सुनिश्चित करें कि आपके VM DHCP का उपयोग करता है, अन्यथा प्रत्येक नए आभासी मशीन के लिए अलग से विन्यस्त किया जा जो कुछ हम want.By DHCP का उपयोग नहीं कर हम व्यक्तिगत कार्यकर्ता मशीनों के लिए नेटवर्क सेटिंग्स कॉन्फ़िगर की जरूरत नहीं है की आवश्यकता होगी, तो DHCP हाथ में कर देगा आप के लिए बाहर आईपी. इसलिए आप हर एक की स्थापना (इस scalability के सुधार और कार्यकर्ता प्रशासन को कम कर देता है) के बारे में चिंता किए बिना अपने कार्यालय के बारे में आभासी मशीन की नकल कर सकते हैं.

प्रक्रिया में आप को प्राप्त करने के उद्देश्य होना चाहिए एक नए भौतिक मशीन प्राप्त करने के लिए, VirtualBox स्थापित, और तब बहुत ज्यादा बहुत कुछ बिना आभासी छवि की तैनाती होगी. यह एक अलग सबनेट पर अपने सभी कार्यकर्ताओं का सेटअप इतना है कि आप कम से कम देखने के लिए कितने मशीनों चल रहे हैं कर सकते हैं बुद्धिमान हो सकता है. तुम भी एक लंबे पट्टे या असीमित पट्टा DHCP पर अपने मशीन को सेट करने की आवश्यकता होगी.

कैसे कार्यकर्ता पर नौकरियां चलाने के लिए

यह एक दिलचस्प क्षेत्र है और वहाँ कई कार्यकर्ता पर नौकरियों प्रसंस्करण के लिए वैध तरीके हैं. यहाँ मैं सिर्फ दो सबसे स्पष्ट चर्चा करेंगे:

  • सदा स्क्रिप्ट चलाने: एक स्क्रिप्ट, यह एक खोल स्क्रिप्ट हो सकता है, या एक PHP स्क्रिप्ट एक बार कार्यकर्ता पर मार डाला है और एक अनंत लूप के भाग के रूप में चलाता है. मैं स्क्रिप्ट का एक दुर्घटना के रूप में इस विधि को रियायती है और संभवतः अपने कार्यकर्ताओं के हस्तक्षेप के कुछ प्रकार के बिना चलाने के लिए संघर्ष करेंगे.
  • क्रॉन आधारित स्क्रिप्ट निष्पादन: हर एक्स मिनट क्रॉन डेमॉन बंद अपनी स्क्रिप्ट के लिए एक कॉल करने के लिए बातें जा पाने के kicks. कुछ जाँच के बिना यह अपने कार्यकर्ता स्क्रिप्ट चलाने के कई कई प्रतियां ले सकता है.

मेरा फैसला क्रॉन जो दूर हर 10 minutes. एक खोल स्क्रिप्ट kicks मेरा खोल स्क्रिप्ट निम्नलिखित कार्य करता है के साथ जाना था:

  1. एक प्रक्रिया की सूची जाओ और 'php' के लिए इस grep. अगर नहीं मिला तो जारी है.
  2. अपनी नौकरी कोड को बुलाओ, मेरे मामले में यह कुछ आधारित PHP होगा
  3. कार्यकर्ता स्क्रिप्ट अपनी दौड़ पूरी
  4. अगले उपयुक्त फोन पर फिर से जाने के लिए तैयार

मेरा bash स्क्रिप्ट निम्नलिखित की तरह कुछ दिखता है:

  # / Bin / श
 यदि पी एस कुल्हाड़ी | grep grep-v | grep php> / dev / बातिल
 फिर
     गूंज "नौकरी वर्तमान में, बाहर निकलें प्रसंस्करण है"
 अन्य
     गूंज "नौकरी नहीं चल रहा है, अब शुरू"
     php yourJobProcessingScript.php
 इंटरनेट 

नोट: गूंज लगभग पूरी तरह से बेकार हैं, लेकिन अगले व्यक्ति है जो साथ आता है के लिए प्रयास करें और उन्हें संपादित मदद कर सकते हैं.

यही कार्यकर्ता आभासी मशीन के लिए, जल्दी, सरल है, और हार्डवेयर के प्रत्येक नए टुकड़ा है कि प्राप्त है को कॉपी करने के लिए आसान सेट अप निष्कर्ष निकाला है. ग्रिड प्रणाली के 'चतुराई' वास्तव में कल्पना ओएस में नहीं है अपने रोजगार, नौकरी, विन्यास, और सुनिश्चित करने कि नौकरी जब उचित रन (यानी में जब मेजबान बेकार है की प्रक्रिया बनाया कोड के साथ क्या करने के लिए सभी ).

विंडोज के लिए श्रमिक initialise स्थापना

पहला काम करने के लिए आदेश खिड़कियां कमांड लाइन से आभासी मशीन चलाने के लिए आवश्यक काम है. यदि आप डिफ़ॉल्ट स्थान में VirtualBox स्थापित किया है और आप अपने कार्यकर्ता GridMachine नाम है, तो आदेश करने के लिए लोड करने के लिए अपने कार्यकर्ता है की आवश्यकता:

  "C: \ Program Files \ रवि VirtualBox \ \ VBoxManage.exe" startvm GridMachine 

हालांकि एक 'नेतृत्वहीन' राज्य हम उपयोग करने के लिए की जरूरत में स्क्रिप्ट चलाने के लिए:

  "C: \ Program Files \ रवि VirtualBox \ \ VBoxHeadless.exe startvm GridMachine - vrdp = बंद 

इस GUI के बिना आभासी मशीन शुरू और यह राज्य इनायत बचाने के लिए अनुमति देगा. दूसरा तर्क बंद हो जाती है RDP तो यह खिड़कियों RDP के साथ संघर्ष नहीं है, या आप के बारे में 3389 बंदरगाह पर सुन एक संदेश देना वर्चुअल मशीन का नाम केस संवेदी है.!

अगला, हम खिड़कियों सेट अप के लिए रवाना हमारे कार्यकर्ता VM लात एक बार मशीन निष्क्रिय किया गया है की आवश्यकता होगी. > सभी प्रोग्राम - सहायक उपकरण> -> सिस्टम उपकरण - आप (Windows XP पर) शुरू करने के लिए जाने की आवश्यकता होगी नीचे के रूप में अनुसूचित कार्य:

अनुसूचित कार्य

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

रन पाठ बॉक्स के अंत करने के लिए हमारे 'startvm GridMachine' स्ट्रिंग जोड़ने के लिए और सुनिश्चित चला है कि केवल जब में लॉग इन करने के लिए छोड़ दिया है unticked. अनुसूची कार्य अगले पर जाएँ और शेड्यूल बदलने के विकल्प के लिए ड्रॉप डाउन 'निष्क्रिय जब, समय की राशि है जो आप मशीन अगले टैब पर जाने से पहले निष्क्रिय होने के लिए करना चाहते हैं चुनें.

अंत में विकल्प है जो यदि यह समय की एक्स राशि से चल रहा है काम रोक राज्यों untick, लेकिन कार्य को रोकने के विकल्प टिकटिक अगर मशीन नहीं रह गया है बेकार.

अनुसूची

यही तो खिड़कियों मेजबान सेटअप के लिए!

सारांश

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

अगली बार

इन भाग 4 हम उपकरण का उपयोग करने के लिए सुनिश्चित करें कि आप कोड और डेटा स्रोतों के नवीनतम संस्करण चला रहे हैं इतना है कि प्राप्त परिणामों हमेशा नवीनतम व्यापार जानकारी और तर्क के साथ करने वाली तारीख में देख रहे होंगे .

कार्यालय ग्रिड आभासी वातावरण का उपयोग कम्प्यूटिंग - भाग 1

, शुक्रवार 4 दिसंबर, 2009 11:23 बजे

परिचय

मैं एक कंपनी में जहाँ हम कई बैच प्रसंस्करण नौकरियों डेटा के अभिलेखों का लाखों प्रत्येक दिन चलाने के लिए और मैं सभी मशीनों है कि प्रत्येक के आसपास बैठते हैं और हर दिन कई घंटे के लिए कुछ नहीं कर रही के बारे में किया गया है हाल ही में सोच काम करते हैं. यह अच्छा नहीं होगा अगर हम उन मशीनों का उपयोग करने के लिए हमारे सिस्टम के प्रसंस्करण शक्ति सिलेंडर सकता है? लेख के इस सेट में मैं एक कार्यालय रोजगार के संभावित लाभ को देखने जा रहा हूँ ग्रिड virtualised वातावरण का उपयोग .

मैं एक के रूप में PHP डेवलपर उपकरण है कि मैं हर दिन अर्थात् का उपयोग करते हैं, लिनक्स, उपयोग जा रहा हूँ MySQL , PHP, VirtualBox और तोड़फोड़ (SVN) . हालांकि मुझे उम्मीद है कि इस गाइड अन्य भाषाओं और प्रौद्योगिकियों के लिए बस के रूप में अच्छी तरह से अनुकूल होगा.

समाधान मैं प्रदान बहुत शिथिल हम लेकिन पूरे लेख के माध्यम से यह सच नहीं हो सकता है को प्राप्त करने की आवश्यकता के रूप में मैं सादगी के लिए चीजों को बदलने, या अधिक दिलचस्प उपयोग परिदृश्यों का उत्पादन चाहते हैं प्रसंस्करण के प्रकार पर आधारित होगा.

इन virtualised वातावरण खिड़कियों मशीनों पर चलाने के बाद से इस है कार्यालयों के बहुमत क्या चलाने के. प्रसंस्करण कि कार्यालय मशीनों उन मशीनों का उपयोग करते हुए कर्मचारियों के साथ हस्तक्षेप नहीं करना चाहिए, मशीन पर कोई रखरखाव की आवश्यकता होती है, और नई मशीनों के लिए आसानी से deployable होना चाहिए के रूप में वे उपलब्ध हो जाते हैं. इसके अलावा, नई वर्चुअल मशीनों के रूप में यह बहुत scalability और आसानी जिस पर ग्रिड प्रणाली बढ़ाया जा सकता है कम कर देता है किसी भी अतिरिक्त विन्यास की आवश्यकता नहीं चाहिए.

क्यों एक कार्यालय कम्प्यूटिंग ग्रिड तैनात?

पहले तुम सोच हो सकता है, जैसे बादल कंप्यूटिंग संसाधन का उपयोग नहीं क्यों अमेज़न EC2 मंच ? वैसे कई कारणों से हो सकता है उदाहरण के लिए,

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

मुझे यकीन है कि सूची जारी सकता हूँ, लेकिन मुझे लगता है कि अब के लिए काफी है.

किसी Office कम्प्यूटिंग ग्रिड के लाभ

खैर, चलो कुछ गणित (और सच भौतिकी शैली में कुछ व्यापक मान्यताओं बनाने की सुविधा देता है). कल्पना कीजिए कि आप बड़ी मांसल प्रसंस्करण सर्वर प्रति दिन 100 नौकरियां चल रहा है. अपने कार्यालय में आप 50 मशीनों जो निष्क्रिय कर रहे हैं 16 घंटे एक दिन, प्रत्येक इन मशीनों के 10% के रूप में अपने मांसल प्रसंस्करण तोड़ के रूप में शक्तिशाली है. (सभी परिणाम यहाँ के प्रदर्शन को बढ़ाने के बहुत मूल्यवान समझना के लिए गोल कर रहे हैं).

तो, निष्क्रिय समय में 1 मशीन * 10% * 2 / 3 बार = 0.067 यानी एक डेस्कटॉप प्रसंस्करण शक्ति प्रति दिन 6 पूर्ण नौकरियों प्रक्रिया सकता है.

यदि आप अब इस पैमाने पर यह 15 निष्क्रिय डेस्कटॉप लेता है प्रति दिन के रूप में कई काम की प्रक्रिया के रूप में अपने मुख्य प्रसंस्करण सर्वर करता है.

तो हमारे 50 मशीनों के नाटक कार्यालय में हम 4 पूर्ण प्रसंस्करण सर्वर के लिए एक सर्वर से हमारे प्रसंस्करण शक्ति, बढ़ाया जा सकता है या हम प्रति दिन 400 नौकरियों प्रसंस्करण किया जा सकता है 100 के बजाय.

सूचना, नए हार्डवेयर में कोई निवेश के लिए आपकी कंपनी सिर्फ अपने बैच प्रसंस्करण क्षमता 4 बार बढ़ गया है ! संभावित आप अपने बिजली के उपयोग को बढ़ाने जा रहे हैं, लेकिन आम तौर पर मैं मशीनों के लिए किया गया है सबसे कार्यालय वातावरण से रातोंरात वैसे भी पर छोड़ दिया जाता है, तो आप एक हरे रंग की पहल के रूप में इस देख सकता था.

अन्य लाभ भी नए (या अद्यतन) में है कि निवेश प्रसंस्करण सर्वर विलंब हो सकता है मतलब है कि अगर अपने कार्यालय मशीनों के लिए पर्याप्त हैं और अपने कार्यालय के रूप में आप अपने कार्यालय मशीनों की शक्ति में सुधार ग्रिड अधिक शक्तिशाली स्वचालित रूप से हो जाता है कि.

टेक्नोलॉजीज

तुम क्या जरूरत है? : (या अधिक सही ढंग से मैंने क्या उपयोग किया)

  • निष्क्रिय कार्यालय मशीनों (मेरे मामले में एक अतिरिक्त पुराने विंडोज़ XP लैपटॉप)
  • VirtualBox के (या एक और वर्चुअलाइजेशन क्लाइंट सॉफ्टवेयर)
  • PHP, MySQL running के साथ एक आभासी मशीन के ओएस नीचे एक कट चल रहा है, मैं इन मेरे लंगड़ा सर्वरों को बुला रहा हूँ:)
  • चलाने नौकरियां
  • नौकरी सर्वर (एक और आभासी मशीन कहीं जा सकता है)

ठेठ नौकरियां

नौकरियों के प्रकार है कि इस प्रणाली को चलाने के लिए डिज़ाइन किया गया है निम्नानुसार है:

  • सिस्टम जिस पर हम मैच और परिणाम की जरूरत है डेटा की एक सूची प्राप्त
  • मिलान की जाँच शामिल है / कई (काफी स्थिर) डेटा स्रोतों की खोज
  • परिणाम के डेटा स्रोतों से आगे सत्यापन की आवश्यकता होती है, विलय, परिणामों के जवाब में अतिरिक्त डेटा स्रोतों की जाँच कर सकते हैं
  • डाटा मिलान रिकॉर्ड के साथ वापस आ रहा है, पूरी तरह से मान्य है और संसाधित
  • एक नौकरी के भीतर प्रत्येक रिकॉर्ड आराम से स्वतंत्र है

तो बुनियादी तौर पर हम नौकरियों जो डेटाबेस lookups और कुछ संख्या crunching, एक कारोबारी माहौल में एक काफी ठेठ परिदृश्य का एक मिश्रण की आवश्यकता चल रहा है पर देख रहे हैं.

ग्रिड समाधान केवल इस प्रकार की नौकरियों के प्रसंस्करण के लिए फायदेमंद नहीं हैं. असल में, किसी भी प्रक्रिया है जो स्वतंत्र इकाइयों में विभाजित किया जा सकता के समानांतर में चलाया जा सकता है. उदाहरण और अधिक जानकारी के लिए देखिए यह विकिपीडिया : ग्रिड कम्प्यूटिंग, लेकिन प्रसिद्ध उदाहरण के एक जोड़े हैं SETI @ होम और BIONC . कंप्यूटिंग ग्रिड चलाने के लिए व्यवस्थाएं हैं, और इन अच्छी तरह से में देख के लायक हैं.

हम क्या हासिल होगा?

इन लेखों के अंत तक मुझे पता चलता है कि एक कार्यालय ग्रिड तैनाती बेहद महंगा या समय लेने की जरूरत नहीं है उम्मीद है. मैं चर्चा करने जा रहा हूँ:

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

मैं इमारत (ठीक है मैं बनाया है, तो यह लिखा था) एक उदाहरण के आवेदन के लिए एक स्थानीय मशीन पर Windows XP और मेरा 'GridMachine' वर्चुअल मशीन का उपयोग अवधारणाओं परीक्षण हूँ. मेरा काम - नियंत्रण सर्वर मेरे मुख्य मशीन है जो रन Fedora 11 .

यह कोई रास्ता नहीं है एक मजबूत प्रणाली पूरी तरह से काम का प्रदर्शन करने का मतलब में है, इसकी एक प्रदर्शन के और अधिक दिखा रहा है कि इन बातों को समय का एक यथोचित कम अंतरिक्ष में और कम कीमत पर हासिल किया जा सकता है है पर चर्चा का मतलब है. कृपया मुझे कोई टिप्पणी, सुधार, सुधार या भेजने के लिए स्वतंत्र महसूस हो रहा है और मैं अपना सर्वश्रेष्ठ करने के लिए इस लेख के लिए मैच के लिए अद्यतन रख देती हूँ.

अगली बार

भाग 2 मैं नौकरी नियंत्रण प्रणाली को देख द्वारा शुरू होगा और कैसे नौकरियों सुनिश्चित करना है कि प्रत्येक नौकरी के बिना असफल हो संसाधित है whilst प्रसंस्करण की सबसे बड़ी राशि प्राप्त करने के क्रम में कॉन्फ़िगर किया जाना चाहिए में देखो.

कार्यालय ग्रिड आभासी वातावरण का उपयोग कम्प्यूटिंग - भाग 2

, शुक्रवार 4 दिसंबर, 2009 11:23 बजे

परिचय

मैं एक कंपनी में जहाँ हम कई बैच प्रसंस्करण नौकरियों डेटा के अभिलेखों का लाखों प्रत्येक दिन चलाने के लिए और मैं सभी मशीनों है कि प्रत्येक के आसपास बैठते हैं और हर दिन कई घंटे के लिए कुछ नहीं कर रही के बारे में किया गया है हाल ही में सोच काम करते हैं. यह अच्छा नहीं होगा अगर हम उन मशीनों का उपयोग करने के लिए हमारे सिस्टम के प्रसंस्करण शक्ति सिलेंडर सकता है? लेख के इस सेट में मैं एक कार्यालय रोजगार के संभावित लाभ को देखने जा रहा हूँ ग्रिड virtualised वातावरण का उपयोग .

में भाग 1 मैं प्रणाली और प्रौद्योगिकियों मैं के रूप में उपयोग किया जाएगा अच्छी तरह के रूप में संभावित कारणों तुम क्यों एक कार्यालय ग्रिड बनाने के लिए चाहते हो जाएगा के कुछ चर्चा के एक सिंहावलोकन दिया.

कार्य नियंत्रण

यदि आप जा रहे हैं नौकरियों चल रहा हो तो आप कुछ तरह उन्हें प्रबंधित की आवश्यकता के लिए जा रहे हैं. आपका काम नियंत्रण प्रणाली (अपनी नौकरी सर्वर पर) के लिए भी एक कार्यालय ग्रिड को चलाने का प्रयास करने से पहले वास्तव में अच्छी तरह से बाहर सोचा की जरूरत है. सबसे पहले तो, एक नौकरी नियंत्रण प्रणाली के लिए कार्य क्या कर रहे हैं:

  • कामगारों से अनुरोध पर हाथ बाहर नौकरियों
  • श्रमिकों नौकरियों के लिए किस प्रकार चलाने के लिए को बताएँ
  • ट्रैक नौकरियों
  • सुनिश्चित करें कि नौकरियों केवल एक बार चला रहे हैं
  • श्रमिकों को नौकरी डेटा प्रदान करें, या कम से कम उन्हें बताओ यह कहाँ पाने के लिए

इस प्रणाली को भी एक्स्टेंसिबल, एक समाधान है कि एक भी मामले में अब के लिए काम करता है के लिए नौकरियों के कई प्रकार के भाग के रूप में व्यापार में एक ग्रिड समाधान के लायक देखता बढ़ाया जा सकता है है की जरूरत है. उदाहरण के लिए, नौकरियों प्राथमिकताओं लाभ, एक नौकरी से अधिक प्रकार मौजूद हो सकता है हो सकता है (यानी कई कोड अड्डों), अंततः आप भी कई अलग अलग कार्यकर्ता मशीनों है कि नौकरी के प्रत्येक प्रकार के लिए अनुकूलित कर रहे हैं रन आउट (हो सकता है कि हालांकि 'सामान्य कार्यकर्ता से दूर कदम नहीं 'विचार). हमेशा के भविष्य के बारे में लगता है कि जब प्रणाली विकसित करने की कोशिश, एक अल्पकालिक दृष्टि लंबी अवधि हताशा और वृद्धि विकास के समय के लिए नेतृत्व कर सकते हैं.

नौकरी सर्वर

हम कहीं जरूरत करने के लिए हमारी नौकरियों नियंत्रण से जा रहे हैं, यह अपने ग्रिड में केवल प्रणाली है कि एक निश्चित रिसोर्स लोकेटर है हो सकता है, होना चाहिए कि एक आईपी पता, मेजबान का नाम, यूआरएल (आंतरिक DNS का उपयोग), आदि इसका कारण यह है श्रमिकों नौकरियों के लिए कहाँ देखना पता करने की जरूरत है, कामगारों को नौकरी नियंत्रण प्रणाली (नौकरी नियंत्रण प्रणाली नहीं कार्यकर्ताओं को खोजने के) खोजने की जरूरत है.

नौकरी सर्वर ही वास्तव में एक जटिल कार्य नहीं है (एक बुनियादी तंत्र में किसी भी तरह), यह नौकरियों की एक सूची की दुकान, हाथ नौकरियों बाहर परिणाम प्राप्त करने के लिए, और बाद में उन्हें बाद में पुनः प्राप्ति के लिए दुकान की जरूरत है. कैसे इन भागों (जैसे 'नौकरियों बाहर हाथ') को परिभाषित कर रहे हैं बहुत ही बुनियादी हो सकता है. बाद में हम प्रणाली का विस्तार करने के लिए एक प्रशासन इंटरफ़ेस जोड़ने, संपादित करने, हटाने, रोजगार निलंबित लेकिन इस व्यायाम से परे है शामिल कर सकते हैं.

वहाँ कोई कारण जो भी तो है कि अपनी नौकरी सर्वर एक आभासी मशीन अपने मुख्य प्रसंस्करण सर्वर के भीतर चल रहे नहीं किया जा सकता है बशर्ते वह भी कई संसाधनों से पलायन नहीं करता है. नौकरी सर्वर लेकिन उच्च उपलब्धता की जरूरत नहीं है, अगर यह एक शुक्रवार की शाम आप प्रसंस्करण के एक पूरे सप्ताहांत खोने जा रहे हैं पर नीचे चला जाता है, संभवतः आप सप्ताह के प्रसंस्करण समय के लायक एक जोड़े (जब अपने मुख्य प्रसंस्करण अकेले सर्वर की तुलना में) लागत . आप एक लोड संतुलित वातावरण पर उच्च उपलब्धता के लिए अपनी नौकरी सर्वर डालने पर विचार करना चाहते हो सकता है.

मूल सेटअप

हमारा काम के सर्वर के लिए बुनियादी सेटअप क्या मैं बुला रहा हूँ मेरी लंगड़ा सर्वर के (कि ली nux, मीटर ySql, पी हिमाचल प्रदेश) से मिलकर करेंगे . Thea कार्यकर्ताओं पर चल रहे कोड वास्तव में बाहर काम नियंत्रण प्रणाली डेटाबेस के साथ के साथ बातचीत के द्वारा काम करेंगे क्या यह नौकरियों चला सकते हैं. बाद में हम कार्यकर्ता कड़ी मेहनत खुद करते हैं बजाय एक वेब सेवा और रोजगार के बाहर वास्तव में हाथ बनाने के लिए, लेकिन हो सकता है अभी के लिए हम चूमने के सिद्धांत (यह सरल, बेवकूफ रखें !) का उपयोग जारी रखेंगे.

तो देता है, तीन बनाने mySQL तालिकाओं के लिए नौकरियों के साथ सौदा. ये `नौकरियों,` jobRecords `, और` jobResults जाएगा.

नौकरियों तालिका यहाँ मैं का उपयोग कर रहा हूँ SQL दोस्त एक महान थोड़ा वैकल्पिक phpMyAdmin सिर्फ इसलिए अपने CentOS पर स्थापित करने के लिए आसान (के लिए दूसरों को देखें: 10 phpMyAdmin करने के लिए महान विकल्प )

इस तालिका 5 सरल क्षेत्रों के होते हैं,

  • आईडी: विशिष्ट नौकरी की पहचान
  • नाम: एक ग्राहक संदर्भ, या अन्य identifiers के किसी भी संख्या हो सकता है
  • स्थिति: तुम्हें पता है, जहां काम उदाहरण के लिए, की जरूरत है
    • 0: प्रारंभ नहीं किया गया
    • 1: उठाया
    • 2: पूर्ण
  • started_by: कौन काम कर रही शुरू कर दिया है? यह पूरी तरह नहीं बल्कि आवश्यक है एक अच्छा है. मैं उनके अपने नेटवर्क पर आईपी पते के द्वारा ट्रैकिंग श्रमिकों सुझाव चाहते हैं
  • started_at: कर्मचारी काम कब शुरू किया? नौकरियों है कि समय की एक्स राशि है जो हम जानते हैं कि हम करने के लिए एक बार फिर से काम लेने और एक अन्य कार्यकर्ता द्वारा प्रसंस्करण शुरू करने की आवश्यकता के भीतर पूरा नहीं किया है पर नज़र रखने. श्रमिक रोक प्रसंस्करण / के किसी भी संख्या कारणों से, बिजली विफलता, दुर्घटना, नेटवर्क हानि, आदि के लिए ऑफ़लाइन जा सकते हैं

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

चलो कुछ उदाहरण नौकरियों जोड़ने:

उदाहरण नौकरियों

अगले तालिका फिर से समझने के लिए काफी सरल है, ये हमारा काम रिकॉर्ड कर रहे हैं. वे एक `स्तंभ jobs_id` द्वारा मुख्य नौकरियों तालिका से जुड़े हुए हैं. इस तालिका के मेकअप बहुत डेटा पर निर्भर करता है कि आप अपने कर्मचारियों के लिए आपूर्ति की जरूरत है देता है, एक बहुत ही सरल उदाहरण है, जहाँ हम चार स्तंभों:

  • आईडी: रिकॉर्ड के आईडी
  • नाम: व्यक्ति का नाम
  • पता: व्यक्ति के पते
  • नौकरी आईडी है कि इस रिकॉर्ड के लिए जुड़ा हुआ है : jobs_id

तीसरे और अंतिम तालिका एक परिणाम तालिका के होते हैं, यह बहुत ही हमारे रिकॉर्ड की तालिका के रूप में बनाने, और कुछ स्तंभों के अलावा के साथ रिकॉर्ड तालिका का हिस्सा हो सकता है:

  • job_record_id: नौकरी तालिका में परिणाम लिंक
  • परिणाम: परिणाम डेटा

... और कहा कि तुम सब काम पर नियंत्रण के लिए की जरूरत है! (हालांकि एक बहुत ही बुनियादी स्तर पर) मेरे मामले में मैं किसी अन्य तालिका जहां प्रक्रिया के लिए अपने डेटा स्थित था ओर इशारा कर रहा हूँ, लेकिन यह बस के रूप में आसानी से एक फाइल हो सकता था, पैरामीटर अनुकार कोड को चलाने के लिए, तुम यह नाम है.

एक नौकरी का चयन

जैसा कि पहले कहा, श्रमिकों के लिए हमें अब हमारा काम प्रबंधन के लिए क्या करेंगे, तो हम सब सच में करने की ज़रूरत है कि संसाधन की जरूरत है एक नौकरी खोजने के लिए और जानकारी मिल. हम यह कैसे करना चाहते हैं? खैर हमारा काम चयन मानदंड लेने और नौकरियों के लिए देखो, एसक्यूएल में मैं निम्नलिखित किया:

  1. ले लो किसी भी नौकरियों है कि पूरा के रूप में, लेकिन हमारे कार्यकर्ता से चिह्नित नहीं कर रहे हैं और उन्हें रीसेट (एक पहचानकर्ता के साथ __ME__ विकल्प, आसान IP पता होगा):
      अद्यतन `नौकरियों` सेट `स्थिति` = 0 कहां `स्थिति` = 1 और `started_by` = __ME__; 
  2. हमारी नौकरी के चयन के मापदंड का उपयोग, एक नौकरी का चयन करें और नियंत्रण प्रणाली बताओ कि इस कार्यकर्ता के साथ काम कर रहा है:
      अद्यतन `नौकरियों` `स्थिति` = 1, `started_by` = __ME__, `started_at` अब = () कहां `स्थिति` = 0 या सेट
     (`स्थिति` = 1 और `started_at`> DATE_SUB (अब), अंतराल एक्स HOUR ()) द्वारा `id` ए एस सी आदेश; 

    नौकरियों है कि परिणाम समय की एक्स राशि हम सुनिश्चित करें कि सभी नौकरियों को एक दुर्घटनाग्रस्त या AWOL जा कार्यकर्ता की घटना में चलाए जा रहे हैं में नहीं लौटे हैं हथियाने.

  3. अगले नौकरियों खुद रिकॉर्ड द्वारा पीछा विवरण हड़पने:
      SELECT * `से नौकरियों` जहां `started_by` = __ME__ एक सीमा;
     * `से job_records` का चयन करें जहाँ `आईडी` = __JOBID__; 

नौकरी हम अपने परिणाम रिकॉर्ड डालने और पूरा के रूप में नौकरी का निशान के पूरा होने पर. याद रखें के रूप में नौकरी निलंबित / किसी भी समय कर सकते हैं फिर से शुरू अपनी स्क्रिप्ट में कुछ मजबूती के लिए अनुमति देते हैं. यह हो सकता है कि कार्य नौकरी नियंत्रण प्रणाली अद्यतन के माध्यम से आधे रास्ते निलंबित, तो एक नौकरी में अभिलेखों की संख्या की जाँच और नौकरी नियंत्रण प्रणाली के लिए वापस बचाया परिणामों की संख्या एक बुद्धिमान कदम होगा.

इसके अलावा, whilst यह दर्शाता है कैसे नौकरियों और चयनित किया जा सकता है एक एसक्यूएल क्वेरी फ्रेम तुम सच में जाना चाहिए से प्रबंधित abstracting अपनी नौकरी नियंत्रण इतना है कि यदि आप एक वेब सेवा, एक फ़ाइल आधारित प्रणाली का उपयोग करने के लिए स्विच करने का फैसला XML, या किसी अन्य सिस्टम की संख्या यह ऊपर कोड को प्रभावित नहीं करेगा.

नौकरी विन्यास

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

  1. नौकरियां 1 दिन ले प्रत्येक चलाने के लिए इसका मतलब यह है कि अपने कर्मचारियों को 15 दिनों की जरूरत है हर काम प्रक्रिया (समय के 2/3rds के लिए शक्ति का 10 % याद). यह स्पष्ट रूप से एक बुद्धिमान विन्यास नहीं है, अपनी नौकरी का आकार रास्ता भी बड़ा है! यह कम से कम दोगुना समय लेने के लिए एक संसाधित नौकरी पाने के प्रारंभिक कार्यकर्ता AWOL (समय लेने के लिए कि यह एक परिणाम प्लस पुनर्संसाधन समय नहीं वापस आ गया है) जाना चाहिए. एक आदर्श आप कम से कम एक पूरा काम आसानी से प्रत्येक लंबे समय से निष्क्रिय अवधि के अंत तक मंजूरी दे दी है, तरीका है कि आप अधिक और सबसे खराब स्थिति में एक नौकरी बजाते नौकरियों रखना चाहते हैं और प्रक्रिया के लिए दो दिन लगेंगे पहली लापता जाना चाहिए.
  2. नौकरियां 1 मिनट लेने के लिए चलाएँ: इसका मतलब यह है कि अपने कर्मचारियों के बारे में 15 मिनट लेने के लिए हर काम चलाने है . Whilst यह शुरू में आदर्श लग सकता है, आप दोपहर के भोजन के समय के दौरान अतिरिक्त काम प्रसंस्करण हासिल करने के लिए, कॉफी ब्रेक, बैठकों, आदि इस परिदृश्य में अपने सिस्टम के अन्य क्षेत्रों पर दबाव डालता है और अपनी ही समस्याओं का परिचय. उदाहरण के लिए, सबसे पहले अपने समय सेटअप / प्रसंस्करण अनुपात ठीक नीचे जाना है, इसलिए प्रणाली दक्षता को खोने जा रहा है. अपने नेटवर्क के लिए लगातार विभिन्न कार्यकर्ताओं को निराशा कर्मचारियों के साथ जो दांग उनके दैनंदिन कार्य कर रहे हैं के लिए काम की जानकारी स्ट्रीमिंग होने जा रहा है. तुम भी अपनी नौकरी प्रसंस्करण सर्वर पर अधिक दबाव डाल के रूप में यह बहुत सारे और एक नियमित आधार पर काम के छोटे टुकड़ों के बहुत सारे के लिए बाहर पकवान के लिए जा रहे हैं. अन्त में, इस स्थिति में अगर अपनी नौकरी सर्वर नीचे चला जाता है तुम जबकि बड़ी नौकरियों के अपूर्ण काम का एक बड़ा वापस लॉग बनाने जा रहे हैं blissfully अनजान प्रसंस्करण कि नौकरी सर्वर कठिनाइयों का सामना कर रहा था जारी रखा सकता है.

वास्तविकता में वहाँ अपने ग्रिड की स्थापना के लिए नहीं एक आदर्श विन्यास हो जाएगा, बहुत उपलब्ध संसाधनों, नौकरी, नौकरी प्रतिवर्तन समय आवश्यकताओं, नेटवर्क की क्षमता, और इतने पर के प्रकार पर निर्भर करता है. हालांकि कुछ दिशानिर्देश होगा:

  • साइज नौकरियों इतना है कि प्रत्येक कार्यकर्ता को 15 घंटे की अवधि में कम से कम 3-4 जॉब (सबसे लंबे समय तक होने की संभावना निष्क्रिय समय अवधि) के माध्यम से प्राप्त कर सकते हैं
  • नौकरी के आकार के साथ खेलो ताकि सेटअप समय काफी प्रसंस्करण समय (मन में ऊपर बिंदु असर) की तुलना में नगण्य हो जाता है.
  • यदि एक नौकरी डबल समय की राशि (शायद कम) आप इसे पूरा करने के की उम्मीद में पूरा नहीं करता है यह लगता है कि अपने से चला गया AWOL और यह अन्य कार्यकर्ता के साथ प्रसंस्करण शुरू. इसका मतलब है आप तीन बार इसके लिए एक नौकरी की सामान्य लंबाई के लिए प्रतीक्षा को पूरा करने के लिए (संभवतः अब अगर बाद में काम विफल रहता है) हो सकता है. आप इस समय को कम करने के लिए, लेकिन नहीं यह भी बहुत कम है के रूप में आप एक नियमित आधार पर प्रसंस्करण कार्यों duplicating शुरू हो सकता है सावधान रहना चाहते हो सकता है.
  • नौकरियां जितना संभव बाहर आवश्यकताओं के स्वतंत्र होना चाहिए. नौकरी सर्वर, उदाहरण के लिए, केवल और हर काम के शुरू और अंत में संपर्क किया जाना चाहिए.
  • अपने नेटवर्क तर नहीं है, इस दो नकारात्मक प्रभाव पड़ेगा, अपने दिन कर्मचारियों नेटवर्क निराशा होती है और समस्याओं कनेक्शन बाहर एक समस्या यह है कि केवल बिगड़ के रूप में आप अपने ग्रिड पैमाने पर होगा समय के साथ अनुभव किया जा सकता है का उपयोग कर पाएंगे.
  • सुनिश्चित नौकरियों अपने कार्यकर्ताओं पर चला सकते हैं. यदि नौकरियों भी स्मृति बन गहन या डिस्क स्थान गहन नौकरियों निरस्त शुरू करने के लिए और केवल एक बात तुम नोटिस हूँ कोई वास्तविक कारण के साथ कार्रवाई की नौकरियों की संख्या में एक बूंद है.

एक नौकरी के सबमिट परिणाम

जब एक नौकरी के परिणाम प्रस्तुत यह महत्वपूर्ण है कि परिणाम एक अन्य कार्यकर्ता द्वारा नहीं किया गया है प्रस्तुत किया है, खासकर अगर वर्तमान कार्यकर्ता कुछ समय के लिए निष्क्रिय किया गया है की जाँच करने के के लिए.

जब परिणाम प्रस्तुत कर रहे हैं सुनिश्चित करें कि परिणामों की संख्या नौकरी के भीतर अभिलेखों की संख्या से मेल खाता है.

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

सारांश

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

  • एक काम पर नियंत्रण सर्वर नौकरियों और यह सुनिश्चित करता है कि सब काम इकाइयों पूरा कर रहे हैं का प्रबंधन
  • अपने काम का चयन परिणाम प्रस्तुत / abstracting करके हम ज्यादा समस्याओं के बिना नियंत्रण सर्वर के प्रौद्योगिकी बदल सकते हैं
  • अपनी नौकरियों को कॉन्फ़िगर करने के लिए सुनिश्चित करें कि वे जल्दी से और कुशलता से अपने नेटवर्क बुनियादी सुविधाओं पर बहुत अधिक दबाव डालने के बिना चलाए जा रहे हैं, और प्रसंस्करण एक नियमित आधार पर कार्य duplicating के बिना.
  • सुनिश्चित करें कि आप गलती सहिष्णुता और अपनी दिनचर्या में त्रुटि checking निर्माण, श्रमिकों को निलंबित और फिर से शुरू कर सकते हैं और समय की सबसे असुविधाजनक. चेक यदि परिणाम पहले से ही एक अन्य कार्यकर्ता द्वारा दर्ज़ हो गया है याद रखें.

अगली बार

इन भाग 3 हम अपने आभासी प्रसंस्करण मशीन बनाने के लिए और हमारे खिड़कियां मशीनों को सेट करने के लिए निष्क्रिय समय श्रमिकों बन हूँ .

कार्यालय ग्रिड आभासी वातावरण का उपयोग कम्प्यूटिंग - भाग 5

, शुक्रवार 4 दिसंबर, 2009 11:03 बजे

परिचय

मैं एक कंपनी में जहाँ हम कई बैच प्रसंस्करण नौकरियों डेटा के अभिलेखों का लाखों प्रत्येक दिन चलाने के लिए और मैं सभी मशीनों है कि प्रत्येक के आसपास बैठते हैं और हर दिन कई घंटे के लिए कुछ नहीं कर रही के बारे में किया गया है हाल ही में सोच काम करते हैं. यह अच्छा नहीं होगा अगर हम उन मशीनों का उपयोग करने के लिए हमारे सिस्टम के प्रसंस्करण शक्ति सिलेंडर सकता है? लेख के इस सेट में मैं एक कार्यालय रोजगार के संभावित लाभ को देखने जा रहा हूँ ग्रिड virtualised वातावरण का उपयोग .

में भाग 4 हम उपकरण का उपयोग करने के लिए सुनिश्चित करें कि हम कोड और डेटा स्रोतों के नवीनतम संस्करण चला रहे हैं इतना है कि प्राप्त परिणामों हमेशा नवीनतम व्यापार जानकारी और तर्क के साथ करने वाली तारीख को देखा .

प्री - तैनाती

तुम अगर वहाँ एक बात है अपने ग्रिड प्रणाली की तैनाती से पहले करते हैं और एक बात अकेले यह अपने वर्तमान प्रणाली बेंचमार्क है ! कोई फर्क नहीं पड़ता कि तुम क्या आपके सिस्टम कितना अतिरिक्त काम करने जा रहा है के बारे में सहयोगियों बताओ जब तक आप अपने गारंटी देता है इस वापस संख्या है कुछ भी नहीं कर रहे हैं. तो,

  • आप वर्तमान में कितने रिकॉर्ड की प्रक्रिया कर सकते हैं? प्रति दिन? प्रति घंटे?
  • कब तक यह आम तौर पर ले करता है एक नौकरी के लिए चारों ओर बारी है?
  • आप कितना अधिक क्षमता है?

वहाँ भी अतिरिक्त प्रश्न:

  • यदि आपके प्रसंस्करण सर्वर (या अपने प्रसंस्करण सर्वर के) नीचे चला जाता है यह अपनी क्षमताओं को कैसे प्रभावित करेगा है, तो आप अपंग हो जाएगा?
  • क्या लाभ / आप उम्मीद है एक ग्रिड प्रणाली से प्राप्त करने की उम्मीद है?
  • अपने कार्यालय मशीनों नौकरियों चल करने में सक्षम है?
  • क्या आपके (या आप नौकरी परिवर्तित किया जा सकता है) चल रहा है की इस शैली में काम करने के लिए?

पिछले प्रमुख बिंदु इस तरह से किसी भी बड़े बदलाव पर अपना समय ले रहा है. आपके प्रसंस्करण कोड का अद्यतन करने के लिए नई पद्धति बेंचमार्क, फिर का उपयोग कर काम है. संभवत: आपके प्रसंस्करण सर्वर स्थापित करने के लिए एक आभासी मशीन चलाने के लिए, अपने सभी संसाधन सर्वर के बाद सिर्फ एक और कार्यकर्ता (सिर्फ एक बहुत शक्तिशाली एक अपेक्षाकृत). नई प्रक्रिया को व्यवस्थित करने की अनुमति दें.

परिनियोजन

मेरा सुझाव कार्यालय एक सप्ताह के अंत में पॉप के सभी प्रतिष्ठानों और सेटअप प्रदर्शन होगा . Do this just before a fortnight's holiday and leave so other poor chap to deal with the consequences… maybe not…

Deployment for a system like this needs to be slow. Despite it being relatively simple to set up this system will affect your entire office infrastructure (well the digital one). Firstly, roll out to a couple of machines at a time, monitor network traffic, how the worker hosts perform on a day-to-day basis. You may need to alter your job configuration in response to your findings.

Once the system has settled with a few machines (lets say 10% of all office machines, ie 5) keep monitoring network traffic and host machine performance. Next benchmark again, you should now be processing 33% more jobs than your first benchmarks. Check this is so, or that you're at least in this ballpark. If not, investigate what is going on before moving on. Repeat this cycle until you happily have all office machines running without killing individual machine performance or grinding your network to a standstill.

At all times keep benchmarking, even after all deployments are made. Check how new code updates affect speed of your system, check all workers are reporting in and processing jobs. Slowly (very slowly) increment your job configuration to get the best from your workers and network.

बंद करो!

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

प्रदर्शन सिस्टम

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

मेरा प्रदर्शन प्रणाली वास्तव में बहुत ही विनम्र था. मैं अपने नियमित रूप से एक नौकरी नियंत्रण सर्वर के रूप में सेट डेस्कटॉप का इस्तेमाल किया. मैं इस में स्थापित किया था mySQL सर्वर एक मास्टर के रूप में प्रतिकृति में सेट स्थापित , PHP, एक और SVN के माध्यम से जुड़ा हुआ एपाचे (कार्यकर्ता VM के माध्यम से पहुँच के लिए ).

मैं तो VirtualBox पर एक 6 साल पुराने विंडोज़ XP लैपटॉप पर एक CentOS कार्यकर्ता मशीन बनाया. मैं सेटअप अनुसूचित के रूप में मशीन पर VM नकल के बाद निर्दिष्ट कार्य और इसे जाने.

वर्चुअल मशीन PHP, तोड़फोड़, और mySQL के साथ स्थापित किया गया था. मैं बाहर मेरे काम पर नियंत्रण सर्वर रिपॉजिटरी से 'कार्यकर्ता' नाम शाखा की जाँच और यकीन है कि यह 'svn अद्यतन' का उपयोग कर अद्यतन किया जा सकता बनाया है. अगला एक दास के रूप में सेटअप mySQL और मैं जाँच की है कि डेटा mySQL से काम पर नियंत्रण सर्वर पर नकल कार्यकर्ता VM के लिए नीचे था. इस सब के बाद मैं bash स्क्रिप्ट और क्रॉन नौकरी सेटअप.

मेरा प्रसंस्करण स्क्रिप्ट को मूल रूप से इस की तर्ज (बहुत सरल सामान) के साथ चला गया:

  • नाम फ़ील्ड में पढ़ें
  • किसी तालिका में इसी तरह के नामों की VM पर आयोजित डेटा स्रोत से संख्या की गिनती
  • रिक्त स्थान द्वारा उपरोक्त लेकिन बंटवारे नाम (यानी मुख्यनाम, मध्यम, उपनाम) के रूप में नामों की संख्या की गिनती
  • इस प्रक्रिया को 1,000 बार दोहराया

प्रत्येक नौकरी लगभग 20 मिनट चलाने के लिए ले लिया. एक बिंदु पर मैं खिड़कियों लैपटॉप पर कार्यकर्ता VM के कई प्रतियां खोला और देखा नौकरियों प्रत्येक कार्यकर्ता आईपी पते के द्वारा जाँच की जानी है. इस बिंदु पर मैं यह भी है कि स्वचालित रूप से पुनरारंभ प्रतिकृति की पुष्टि की.

एक नौकरी नियंत्रण सर्वर से नौकरियों प्रक्रिया शुरू कार्यकर्ता में परिणामस्वरूप निष्क्रिय लैपटॉप छोड़कर. जब लैपटॉप उपयोग शुरू करने के बारे में 30-60 सेकंड के एक देरी था, इस समय और स्टाफ के एक निष्पक्ष राशि की आवश्यकता होगी पता है कि उनके मशीन थोड़ी देर के लिए विरामित जब मशीन से लौट सकता है बनाया जा. नई मशीनों के इस लंबे समय से एक ठहराव नहीं हो सकता है. निष्क्रिय अवधि के दौरान इन मशीनों द्वारा प्रदर्शन प्रसंस्करण की राशि का लाभ है कि कर्मचारियों को एक सुबह उनकी मशीनों पर पहुंचने पर एक छोटी सी अवधि (1 मिनट कहते हैं) की प्रतीक्षा करने के सदस्यों पल्ला झुकना और अधिक (मैं बार बार होगा अब इंतजार है कि एक Windows Defender के लिए इस जगह ले) अद्यतन प्रदान वे इस के बारे में पता किए गए थे (उपयोगी समय के लिए सुबह की कॉफी हड़पने!).

कुल मिलाकर मुझे विश्वास है कि मैं प्रौद्योगिकियों कि एक ऐसी प्रणाली बनाने के लिए इस्तेमाल किया जा सकता का प्रदर्शन किया है लगता है. मुझे पता चला है कि एक ऐसी प्रणाली (बहुत) छोटे पैमाने पर और कुछ और अधिक प्रयोग को बढ़ाया जा सकता है और एक कार्यालय मशीन के संसाधनों का उपयोग के साथ काम करता है. यदि मैं ऐसा करने की बात को नहीं मिलता है मैं बहुत पता करने के लिए दिलचस्पी हो / देखो जब किसी करता है.

निष्कर्ष मूल्यांकन /

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

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

एक बार एक प्रणाली है और वहाँ चल रहे लगभग अनुकूलन और सुधार कर सकते हैं की राशि का कोई अंत नहीं है. उदाहरण के लिए आँकड़े / बेंच मार्किंग आसानी से एक ऐसी प्रणाली के लायक दिखा हर दिन जोड़ा जा सकता है. नई मशीनों जल्दी और आसानी से के रूप में जोड़ा जा सकता है और जब वे अपने प्रसंस्करण शक्ति को सहारा देने के मौजूदा हार्डवेयर के उन्नयन के साथ पहुंचें.

मुझे आशा है कि आप लेख की इस श्रृंखला को पढ़ने का आनंद लिया है और अपने आप एक कार्यालय ग्रिड प्रणाली पर चल रहे विचार के लिए भोजन दिया. यहाँ प्रस्तुत समाधान के लिए जरूरी सभी स्थितियों में काम नहीं, लेकिन अनुकूलनीय होना करने के लिए तुम्हें पाने के लिए अपने डाटा प्रोसेसिंग किया है अपने खुद के समाधान का उपयोग की अनुमति चाहिए.

कृपया मुझे कोई टिप्पणी, सुधार, सुधार या भेजने के लिए स्वतंत्र महसूस हो रहा है और मैं अपना सर्वश्रेष्ठ करने के लिए इस लेख के लिए मैच के लिए अद्यतन रख देती हूँ.

Zend फ्रेमवर्क: बुनियादी बातों - समीक्षा

By , Saturday 28th November 2009 10:42 pm

मेरा नियोक्ता हाल ही में हम डेवलपर्स के एक समूह के लिए भुगतान करने के लिए ले Zend फ्रेमवर्क : बुनियादी बातों कोर्स, यहाँ मैं दूसरों के लिए पाठ्यक्रम पर मेरे विचार और राय संक्षेप हूँ. For those looking to save time, here's my summary:

डेवलपर्स, जो समय पर देखने नहीं पड़ा है Zend फ्रेमवर्क आप प्रमुख क्षेत्रों के लिए शुरू करने और पर्याप्त जानकारी देने के क्रम में जारी रखने के लिए रूपरेखा का एक अच्छा समग्र चित्र प्रदान करता है: इस पाठ्यक्रम (बुनियादी बातों Zend फ्रेमवर्क) के लिए. उन जो समय बिताया है ढांचे को देख और एक या दो ट्यूटोरियल बाद के लिए इस पाठ्यक्रम के बहुत से परे प्रदान नहीं करता है .

Background

मैं एक किया गया है PHP के आसपास 5-6 साल के लिए डेवलपर, और Zend फ्रेमवर्क के साथ एक घटक के आधार पर पिछले 6 महीनों से अधिक काम शुरू कर दिया है. मैं विकसित किया है और / या छोटे Zend फ्रेमवर्क के एक जोड़े पर एक डेवलपर MVC sites. मैं ईमानदार हो जाएगा, मैं को देखने के एक कोडन बिंदु से दूसरे चौखटे के लिए जोखिम की एक बड़ी राशि नहीं था, लेकिन कई खर्च घंटे परियोजना वेबसाइटों शोध और them. मूल्यांकन ढांचे और आसपास के समुदाय Zend फ्रेमवर्क यह काफी रोमांचक है और वहाँ के लिए जहां इसकी जा रहा में विशाल संभावनाओं लग रहे हो.

पाठ्यक्रम के बारे में

बेशक 9 दो घंटे WebEx सत्र में दिया है (बीच में एक 10 मिनट का ब्रेक के साथ). समय किसी भी समय पर चर्चा के साथ Zend द्वारा प्रदान की स्लाइड्स का एक सेट के माध्यम से जा रहा करने के लिए खर्च किया जाता है. आप प्रशिक्षक से बात करने के लिए एक माइक्रोफोन का उपयोग कर सकते हैं, लेकिन ईमानदार होना मुझे नहीं देखा था किसी चैट विंडो से अधिक कुछ का उपयोग करें. इसके अलावा एक VMWare Ubuntu मशीन प्रदान की जाती है कि उदाहरण कोड है और परियोजनाओं Zend स्टूडियो के एक परीक्षण संस्करण की स्थापना की. या तो एक एकीकृत वीओआईपी समाधान पर, या आप एक संख्या में दुनिया भर में कई डायल के उपयोग में डायल कर सकते हैं पाठ्यक्रम नेता attendees करने के लिए वार्ता.

दौरान सामग्री एक नमूना गेस्टबुक आवेदन में शीर्षक से पहले फ्रेमवर्क की एक संक्षिप्त सिंहावलोकन और MVC पैटर्न के होते हैं. चर्चा का प्रदर्शन bootstrapping, Zend_Application, DB टेबल्स, डेटाबेस का उपयोग, प्रपत्र, फ़िल्टरिंग, एसीएल, मान्य, आदि, आदि मूलतः आप एक चल रहा है सब समय के ऊपर एक बुनियादी साइट तुम्हें देने के लिए उपकरणों की आवश्यकता होगी सभी विषयों को कवर जाओ और ढांचे में और अधिक उन्नत मिल (हालांकि यह राशि समय के बहुत 'वेबसाइट देखें).

समय अप करने के लिए कुछ उदाहरण कोड, और 'गेस्टबुक और सरल' विकी 'आवेदन विकसित करने के लिए दिया जाता है. निजी तौर पर मुझे लगा कि कोड या प्रत्येक बॉक्स उपलब्ध कराने और फिर हमें पूछ विकसित है क्या अनिवार्य रूप से एक प्रतिलिपि था बगल में वास्तव में एक अच्छा सीखने का अनुभव प्रदान नहीं करता था. I would have preferred to develop an application similar, but not identical. to the example application with the benefit of having a guide to refer to. Alternatively building the applications from scratch with the demonstrator would of possibly led to more questions about why and how , thus giving a better understanding of the framework, after all you can look up specifics after the course.

पिछले व्याख्यान / प्रशिक्षक से मदद और मार्गदर्शन के साथ विकी आवेदन पर काम करने की शामिल है. After the course feedback was taken, it was emphasised several times through the course that Zend takes feedback very seriously, in fact apparently our version of the course was quite new. Some of the other developers in the company will be taking the course soon so it will be interesting to see if this has happened.

पाठ्यक्रम शैली अनौपचारिक था, प्रतिक्रिया और उपस्थितगण और प्रशिक्षक के बीच सहयोग के लिए अनुमति दी. बेशक नेता अनुकूल था, approachable (ईमेल पते प्रश्नों के लिए साझा किया गया), और स्लाइड से अपनी प्रस्तुति, whilst एक अस्थिर सा ढांचे में पूरी तरह सक्षम लग रहा था. He was clearly someone who used the framework on a regular basis rather than someone who is taught to teach the course, I liked the 'real world' experience in that respect.

Overall Feeling

कुछ मायनों में मैं बिल्कुल समय की बर्बादी पाया है, दूसरों में यह बहुत आसान था. उम्मीद है कि मैं स्पष्ट रूप से भर में मेरे कारण मिलता है, और शायद सोचा या उपयोगी प्रतिक्रिया के लिए कुछ खाना (मुझे जानने यह संभावना नहीं है!) प्रदान.

For myself this course was aimed at too low a level. Having gone through the quickstart guide, read Rob Allen's Zend Framework in Action, and worked with the framework a little I didn't really get anything too much. मैं के पाठ्यक्रम quickstart के अंत से उठा और अतिरिक्त कौशल विकसित पसंद आया होगा.

That said, the course title does clearly state “Zend Framework: Fundamentals ” and in that aspect the course achieves what it sets out to do. विकास दल है कि समय खर्च नहीं ढांचे में देख के अन्य सदस्यों के उत्साह के साथ प्रत्येक सत्र समाप्त हो गया और सवाल है जो वास्तव में देखने के लिए अच्छा था पूछा.

All was not lost, it was good to spend time confirming the basic details of the framework and get to ask a couple of questions in areas where I wasn't 100%. यह भी समय है कि मैं प्रत्येक दिन बैठ जाओ और ढांचे और भविष्य की परियोजनाओं का उपयोग कर, मैं अन्यथा (आप अपनी कंपनी कि करने के लिए सहमत कल्पना कर सकते हैं?) करने में सक्षम नहीं होता कुछ कोडिंग के बारे में सोचना है). Last but not least you also get a nice certificate from Zend to say that you attended the course (albeit by email).

Zend फ्रेमवर्क प्रमाणन

यह एक सवाल है कि कोर्स के दौरान मन में आ रहा रखा था, यह मुझे प्रमाणीकरण के लिए तैयार होगा? The quick, easy is a resounding No . पाठ्यक्रम प्रशिक्षक अतिरिक्त सलाह है कि प्रमाणीकरण के लिए तुम सच में दिन पर दिन के आधार पर एक रूपरेखा चाहिए का उपयोग किया हैं और बहुत आरामदायक है और इसके उपयोग और तरीके में विश्वास महसूस के साथ उस पर काफी स्पष्ट था.

सारांश

Given everything I've written above, I'll summarise everything in two easy bullet points:

  • New to Zend Framework: This course does exactly what you'd expect, it gives you a nice introduction to the framework and a good grounding on the basics from which you can build. पाठ्यक्रम के लिए ब्याज और डेवलपर्स के बीच ढांचे के लिए उत्साह उत्पन्न लगता है.
  • प्रयुक्त Zend फ्रेमवर्क: हालांकि यह अच्छा था करने के लिए बहुत मूल के कुछ है, मैं समय और प्रयास लगा और धन किनारे करने के लिए पाठ्यक्रम के बेहतर कहीं और खर्च सकता है किया गया ले . It will be nice to see Zend create a new higher level course to take developers to the next level – at least to the standard of certification and beyond. For that I would sign up immediately.












पैनोरमा थीम द्वारा Themocracy

8 आगंतुकों ऑनलाइन अब
4 मेहमानों 4 बॉट, 0 सदस्यों
Max visitors today: 16 at 08:16 am UTC
इस महीने: 48 2011/12/09 02:18 बजे UTC
इस वर्ष: 130 28-03-2011 10:40 बजे UTC
सभी समय: 28-03-2011 10:40 बजे UTC 130