Δυναμικά προσθέτουν σελίδες σε εμπορευματοκιβώτιο Zend_Navigation κατά το χρόνο εκτέλεσης

Με Steven Lloyd Watkin , Πέμπτη 7 Ιανουαρίου 2010 22:50

Σε μια συνέχεια στην θέση μου για το τελευταίο Zend_Navigation, Route αιτήσεις sitemap.xml με το έθιμο υπεύθυνο / δράσης , αυτή η θέση είναι σχετικά με την προσθήκη dymnamically σελίδες σε ένα δοχείο Zend_Navigation κατά το χρόνο εκτέλεσης / εκτέλεση του κώδικα.

Του όλα ωραία και καλά προσδιορίζοντας τις σελίδες σας σε ένα ini ή xml αρχείο αλλά κάποια στιγμή θα πάμε να έχει μεταβαλλόμενο σελίδες στην τοποθεσία σας που θέλετε ως μέρος ενός μενού, sitemap, ή να περιληφθούν στο μονοπάτι σας τριμμένη φρυγανιά. Ως εκ τούτου αυτό που χρειάζεται να κάνετε είναι να προσθέσετε τις σελίδες στο δοχείο Zend_Navigation μας κατά την εκτέλεση. Παραδείγματα για αυτό θα ήταν στην προσθήκη ειδήσεων, blog θέσεις, ή μια σελίδα σχόλια, κλπ.

Συνέχεια ανάγνωση "πρόσθεσε Δυναμικά σελίδες εμπορευματοκιβωτίων Zend_Navigation κατά το χρόνο εκτέλεσης» »

Διαδρομή αιτήσεις για sitemap.xml με το έθιμο υπεύθυνο / δράση

Με Steven Lloyd Watkin , Τετάρτη 6 του Ιανουαρίου, 2010 12:13 am

Για την απευθείας αιτήσεις / sitemap.xml σε μια προσαρμοσμένη ελεγκτή και τη δράση σας Zend-πλαίσιο εφαρμογής απλά προσθέστε το ακόλουθο κείμενο σε εναλλακτικές σας application.ini ή αρχείο ρυθμίσεων (π.χ. μπορώ να χρησιμοποιήσω navigation.ini):

 resources.router.routes.sitemap.route = "sitemap.xml"
 resources.router.routes.sitemap.defaults.controller δείκτης =
 resources.router.routes.sitemap.defaults.action sitemap =

Παράδειγμα κώδικα για outputting μπορεί να δει με τη δημιουργία μιας δράσης στον κατάλληλο ελεγκτή (π.χ. sitemap μου έγκειται στο ελεγκτή δείκτη, sitemap δράση):

 < php
 τάξη IndexController
     επεκτείνει Zend_Controller_Action
 {
     / **
      * Αποδίδει ένας χάρτης ιστοτόπου που βασίζεται σε Zend_Navigation setup
      * /
     δημόσια sitemapAction λειτουργία ()
     {
    	 echo $ this-> view-> πλοήγησης () -> sitemap ()?
    	 $ This-> view-> διάταξης () -> disableLayout ()?
    	 $ This-> _helper-> viewRenderer-> setNoRender (αλήθεια)?
     }
 }

Sitemaps μπορεί γρήγορα και εύκολα να παραχθεί με τη χρήση Zend_Navigation , μια μεγάλη γρήγορη φροντιστήριο (και γενικά πολύ χρήσιμο για την Zend-πλαίσιο tutorials) είναι Zend Εκμαγείων - Δυναμική δημιουργία ενός μενού sitemap και τριμμένη φρυγανιά .

Zend-πλαίσιο Per-Ενότητα με βάση τις ρυθμίσεις

Με Steven Lloyd Watkin , Παρασκευή 1 Ιανουαρίου 2010 22:40

Έχω δημιουργήσει ένα σε αυτή τη θέση η οποία απαιτεί λιγότερη ρύθμιση, ανατρέξτε στην Ενότητα Βασισμένο Διάταξη - Zend-πλαίσιο .

Όταν χρησιμοποιείτε το Zend-πλαίσιο με τις ενότητες, προφανές, ότι αν τρέχετε διαφόρων (υπο-) περιοχές από την ίδια αίτηση δεν θέλετε αναγκαστικά το ίδιο σενάρια διάταξη για κάθε τμήμα. Αποφάσισα να πάω με την ακόλουθη δομή της ιστοσελίδας:

  / Εφαρμογή
     / Ελεγκτές
         ...
     / Μοντέλα
     / Modules
         / Default
             / Ελεγκτές
             / Layout
                 / Σενάρια
             / Απόψεις
                 / Σενάρια
         / AnotherModule
             ...
     / Σενάρια

Το πρόβλημα ήταν για τη σύσταση της διάταξης σενάρια για μια ανά μονάδα βάσης. Η απάντηση ήρθε μέσα από τη χρήση Δράσης Helper. Ρύθμιση του σχεδιαγράμματα σε ένα ανά μονάδα βάσης περιλαμβάνει τρία βήματα:

  1. Application.ini (ή παρόμοια εγκατάσταση διαμόρφωση):
      admin.resources.layout.layoutPath = APPLICATION_PATH "/ modules / admin / layouts / scripts"
     default.resources.layout.layoutPath = APPLICATION_PATH "/ modules / default / layouts / scripts"
     member.resources.layout.layoutPath = APPLICATION_PATH "/ modules / μέλος / layouts / scripts"
     affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ modules / θυγατρικών / layouts / scripts" 
  2. Δημιουργήστε Δράση Helper σας:
      <? Php
     / **
      * Ορίζει τη διαδρομή διάταξης σε μια ανά μονάδα βάσης
      *
      * @ Συγγραφέας Λόιντ Watkin <lloyd@evilprofessor.co.uk>
      * @ Δεδομένου 01/01/2010
      * /
     τάξη Pro_Controller_Action_Helper_SetLayoutPath
         επεκτείνει Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Διαδρομή διάταξης Σετ που βασίζονται στην ενότητα
          * /
         δημόσια preDispatch λειτουργία ()
         {
        	 $ Ενότητα = $ this-> getRequest () -> getModuleName ()?
    
    	     if ($ bootstrap = $ this-> getActionController ()
    	                        -> GetInvokeArg («εκκίνησης»)) {
    
    	         $ Config = $ bootstrap-> getOptions ()?
    
    	         αν (isset ($ config ['layout'] [$ ενότητα] ['πόρων'] ['layoutPath'])) {
    	             $ LayoutPath =
    	                  $ Config [$ ενότητα] ['layout'] ['πόρων'] ['layoutPath']?
    	             $ This-> getActionController ()
    	                  -> GetHelper («διάταξη»)
    	                  - SetLayoutPath> ($ layoutPath)?
    	         }
        	 }
         }
     } 
  3. Και boostrap τέλος, η βοηθός δράσης:
      ...
         / **
          * Διαμορφώνει σενάρια διάταξης στην ανά μονάδα βάσης
          * /
         προστατεύονται _initLayoutHelper λειτουργία ()
    	 {
    	     $ This-> bootstrap («frontController ')?
    	     $ Layout = Zend_Controller_Action_HelperBroker:: addHelper (
    	         νέα Pro_Controller_Action_Helper_SetLayoutPath ())?
    	 }
     ... 

Δόγμα: DATETIME default NOW ()

Με Steven Lloyd Watkin , Τετάρτη 30 Δεκεμβρίου 2009 18:30

Έχω ήδη αγωνίζεται με τη δημιουργία ενός σχήματος βάσης δεδομένων για ένα νέο Zend-πλαίσιο του έργου. Είμαι χρησιμοποιώντας προσπαθεί να χρησιμοποιήσει Δόγμα ORM για τα μοντέλα βάση δεδομένων μου. Πρέπει να δημιουργηθεί το σχήμα, έτσι ώστε να μου επέτρεψε να ορίσετε μια προεπιλεγμένη ημερομηνία και ώρα για μια «datetime` στήλη, π.χ. κατά την προσθήκη ενός νέου μηνύματος παίρνω το τρέχον timestamp. Μετά από πολύ ψάξιμο και πειραματισμό βρήκα τη λύση έτσι είμαι το μοιράζονται.

Στο σχήμα σας YAML αρχείο κάνει απλά τα εξής:

 Μήνυμα:
   Actas:
     Timestampable:
       Δημιουργία:
         Όνομα: created_at
         Τύπος: timestamp
         μορφή: YMD H: i: s
       τροποποίησης:
         Όνομα: last_updated
         Τύπος: timestamp
         μορφή: YMD H: i: s
   στήλες:
     id:
       Τύπος: ακέραιος
       πρωτογενή: αλήθεια
       αυτόματης προσαύξησης: αλήθεια
     Όνομα: string (255)
     e-mail: string (300)
     Μήνυμα: string (2000)

Αν από την άλλη πλευρά δεν θέλετε ένα «updated_at` στήλη μπορείτε να χρησιμοποιήσετε το ακόλουθο κείμενο:

 Μήνυμα:
   Actas:
     Timestampable:
       Δημιουργία:
         Όνομα: created_at
         Τύπος: timestamp
         μορφή: YMD H: i: s
       τροποποίησης:
         άτομα με ειδικές ανάγκες: αλήθεια
   στήλες:
     id:
       Τύπος: ακέραιος
       πρωτογενή: αλήθεια
       αυτόματης προσαύξησης: αλήθεια
     Όνομα: string (255)
     e-mail: string (300)
     Μήνυμα: string (2000)

PHP τα σχεδιαστικά πρότυπα - Pattern Παρατηρητής

Με Steven Lloyd Watkin , Τρίτη 29 Δεκεμβρίου του 2009 22:02

Έχω ανάγνωση Head First Design Patterns πρόσφατα και αποφάσισε να γράψει μερικά από τα μοτίβα όπως PHP παραδείγματα προς όφελός μου. Το πρώτο που έχω αποφασίσει να κωδικός επάνω είναι η Παρατηρητής Pattern . Ο επίσημος ορισμός των παρατηρητών Pattern είναι:

Το μοτίβο του παρατηρητή (ένα υποσύνολο της ασύγχρονης δημοσιεύσεων / συνδρομών μοτίβο ) είναι ένα λογισμικό πρότυπο σχεδιασμού στην οποία ένα αντικείμενο , που ονομάζεται το θέμα, διατηρεί μια λίστα των εξαρτωμένων του, κάλεσε τους παρατηρητές, και ενημερώνει τους αυτόματα τυχόν αλλαγές της κατάστασης, συνήθως με την κλήση ένας από τους μεθόδους . Χρησιμοποιείται κυρίως για την υλοποίηση κατανεμημένων συστημάτων χειρισμού συμβάντος.

Καθώς τα συστήματα γίνονται πιο χαλαρά συνδεδεμένες να διασφαλίσουμε ότι, όταν ένα γεγονός που συμβαίνει σε όλα τα συστήματα που απαιτούν τη γνώση αυτών των ενημερωμένων εκδόσεων είναι ενημερωμένοι. Για παράδειγμα, ένα blog post, μετά από την αποθήκευση μια θέση που μπορεί να χρειαστεί να ενημερώσετε μια μηχανή αναζήτησης (π.χ. Lucene), ενημέρωση sitemap, ετικέτες μας, e-mail εγγεγραμμένους χρήστες, κλπ. Το μοτίβο του παρατηρητή επιτρέπει στους προγραμματιστές να προσθέσουν επιπλέον ακροατές χωρίς μοντάζ παρατηρήσιμο αντικείμενο . Με την ένεση παρατηρητές (δηλαδή μια μηχανή αναζήτησης παρατηρητή ενημέρωση, μια γεννήτρια sitemap, κλπ) σε ένα θέμα (δηλ. μετά το σύστημα μοντάζ blog) μπορούμε να επιτρέψουμε τη φέρει σε πέρας όλες τις απαραίτητες ενημερώσεις χωρίς καμία αλλαγή.

Συνέχεια ανάγνωση "PHP Design Patterns - Παρατηρητής μοτίβο» »

Γραφείο Grid Computing που χρησιμοποιούν εικονικά περιβάλλοντα - Μέρος 4

Με Steven Lloyd Watkin , Παρασκευή 4 Δεκέμβρη 2009 23:59

Εισαγωγή

Δουλεύω σε μια εταιρεία όπου θα τρέξει πολλές θέσεις εργασίας batch επεξεργασία εκατομμύρια αρχεία με τα δεδομένα κάθε μέρα και να έχω σκεφτεί πρόσφατα για όλες τις μηχανές που κάθονται κάθε μέρα να μην κάνουμε τίποτα για αρκετές ώρες. Δεν θα ήταν καλό αν μπορούσαμε να χρησιμοποιήσουν τις μηχανές αυτές για να ενισχύσει την επεξεργαστική ισχύ των συστημάτων μας; Σε αυτό το σύνολο των άρθρων Πάω να εξετάσουμε τα πιθανά οφέλη από την απασχόληση ενός γραφείου πλέγματος χρησιμοποιώντας εικονικοποιημένων περιβάλλοντα.

Στο μέρος 3 δημιουργήσαμε μας μηχανή επεξεργασίας εικονικά και να δημιουργήσει τα παράθυρα μηχανήματα για να γίνει αδρανής απασχολουμένων εργαζομένων.

Τρέχοντας τις τελευταίες κώδικα

Αναπόφευκτα, μετά τη δημιουργία της επιχείρησής σας λογική των εργαζομένων θα αλλάξει, bugs θα βρεθεί πιο γρήγορα πιο αποδοτικό κώδικα θα παράγεται αφήνοντας έτσι τους εργαζόμενους σας καθίσαμε επεξεργασίας δεδομένων με τη χρήση παλαιών δύσοσμο κωδικό . Πώς λοιπόν μπορούμε να εξασφαλίσουμε ότι είμαστε χρησιμοποιείτε πάντα την πιο πρόσφατη και βελτιωμένη έκδοση της επεξεργασίας σεναρίων μας;

Υπάρχουν μερικές πολύ εύκολο απλοί τρόποι που θα μπορούσαμε να το κάνετε αυτό, το τέχνασμα, όμως, είναι η μείωση επεξεργαστική ισχύ και την κυκλοφορία του δικτύου για την επίτευξη αυτού. Ας ξεκινήσουμε με τις πιο απλές λύσεις και να βελτιωθεί αργά πάνω από μια-δυο επαναλήψεις.

Η πρώτη μέθοδος θα ήταν να απλά να συνδεθεί με τη δουλειά server μας ελέγχου (μέσω samba, FTP, ή κάτι παρόμοιο) και γκρεμίζουν την πιο πρόσφατη έκδοση του κώδικα. Δεν είναι πολύ αποτελεσματικό, αλλά θα κάνει τη δουλειά. Αφήνει να βελτιωθεί σε αυτό κάπως, πώς για τη δημιουργία ενός rsync σενάριο και χρησιμοποιώντας κάθε φορά αντ 'αυτού; Εναλλακτικά, τι γίνεται με τη θέση μας σενάριο αργότερο μεταποίηση σε ανατροπή ελέγξει έξω τον κώδικα αρχικά και στη συνέχεια, μόλις την ενημέρωση του κώδικα μας για κάθε διαδρομή ( ενημέρωση svn );

Στο τέλος θα μπορούσαμε να καταλήξουμε με ένα σενάριο bash (καλείται από το cron κάθε 10 λεπτά), το οποίο φαίνεται τόσο απλό όσο αυτό:

  #! / Bin / sh
 αν ps ax | grep-v grep | grep php > / dev / null
 συνέχεια
     echo "Εργασία είναι επί του παρόντος την επεξεργασία, την έξοδο"
 αλλού
     echo "Job δεν τρέχει, να αρχίσει τώρα»
     cd / path / to / εργασία / αντίγραφο
     svn ενημέρωση
     yourJobProcessingScript.php php
 fi 

Τώρα μπορούμε να είμαστε βέβαιοι ότι σε κάθε είμαστε τρέχει σίγουρα το πιο πρόσφατο κώδικα. Είμαστε επίτευξη αυτού, με την ενημέρωση βάσης κωδικό μας κάθε φορά που θα κάνουμε ένα τρέξιμο και τη μείωση της κίνησης του δικτύου από μόνο μεταφέροντας τις διαφορές αρχείο στο δίκτυό μας.

Στην εγκατάσταση επίδειξης μου, έκανα ακριβώς όπως παραπάνω. Subversion είχε εγκατασταθεί στον server επεξεργασίας δουλειά μου και τράβηξα απλά το πιο πρόσφατο κώδικα του υποκαταστήματος «εργαζόμενος» που χρησιμοποιούν «ενημέρωση svn». Πρόσθεσα επίσης μια ετικέτα αριθμό έκδοσης με την επεξεργασία σεναρίου μου που επέστρεψε στη βάση δεδομένων ως μέρος της επιστροφής αποτελεσμάτων. Με αυτό τον τρόπο θα μπορούσα να δω τον κωδικό μου ήταν να ενημερώνεται κάθε φορά που αντέγραψα κορμό μου στον κλάδο, δηλαδή εργαζόμενο που έτρεχα σίγουρα η τελευταία δέσμη ενεργειών μεταποίησης.

Χρησιμοποιώντας τα τελευταία στοιχεία

Εάν η επεξεργασία εργασία σας κάνει χρήση των πηγών στοιχείων, στη συνέχεια, σε κάποια στιγμή αυτά θα πρέπει να ενημερώνονται επίσης. Αν δεν έχετε κλήση πηγές δεδομένων σας σε ένα πολύ σπάνιο βάση θα πάμε να κατακλύσουν το δίκτυό σας με την κυκλοφορία το συντομότερο οι εργαζόμενοι σας αρχίσουν να προβάλλονται φέρνοντας τα πάντα σε ακινησία. Για λύση που μου αποφάσισε ότι θα ήθελα να προχωρήσουμε πηγές δεδομένων μου γύρω με VMs μου.

Κρατήστε είστε άλογα εκεί! Τι θα συμβεί εάν πηγές δεδομένων μου είναι τεράστια; Λοιπόν αυτό είναι πραγματικά μια περίπτωση πόσα δεδομένα μιλάμε; Μπορεί να είναι πιο αποδοτικό να εγκαταστήσει έναν ακόμη μεγαλύτερο σκληρό δίσκο σε κάθε μηχάνημα από το να αγοράσουν ένα επιπλέον server επεξεργασίας. Αυτό είναι ένα ζήτημα του προϋπολογισμού και είναι μέχρι την επιχείρηση να αποφασίζει. Είναι ίσως ότι οι πηγές των δεδομένων σας είναι τόσο μεγάλες που ανέφικτο του μόνο για να κρατήσει το ποσό των στοιχείων στις μηχανές των εργαζομένων σας. Σε αυτή την περίπτωση, τι θα κάνατε; Καλά θα μπορούσαμε να εξετάσουμε καλώντας έναν τοπικό διακομιστή δεδομένων, αλλά αυτό μπορεί να προκαλέσει προβλήματα με το δίκτυο. Σε αυτήν την περίπτωση ένα σύστημα πλέγματος, όπως αυτό μπορεί να γίνει ρεαλιστικό να συμπεριλάβετε στο περιβάλλον του γραφείου σας. Μπορεί επίσης να είναι ότι μπορείτε να εξετάσετε εναλλακτικές στρατηγικές τρέξιμο, για παράδειγμα, καλώντας μόνο τους εργαζόμενους σας μεταξύ 20:00 και έξι κάθε νύχτα και / ή την πηγή αιτήματα στοιχείων throttling.

Προχωρώντας ας πούμε δεδομένα ποσό μας πηγές για 100GB δεδομένων. Λοιπόν ναι αυτό είναι αρκετά ένα κομμάτι των δεδομένων να μετακινούνται στο δίκτυο σε μια ενημέρωση. Πώς θα διασφαλίσουμε ότι έχουμε την πιο πρόσφατη αντίγραφο των δεδομένων σε αυτή την περίπτωση; Rsync είναι μια δυνατότητα, αλλά προσωπικά πιστεύω ότι με το τρέξιμο τελευταία πηγή δεδομένων σας στον server επεξεργασία δουλειά σας και αυτήν τη ρύθμιση ως ένα master στην αντιγραφή (με ένα ωραίο καιρό ημερολόγιο bin) μπορεί να είναι ο τρόπος να πάει:

αντιγραφή Με τον καθορισμό κάθε ένα από τους εργαζομένους σας ως ένας σκλάβος για τις ενημερωμένες εκδόσεις server εργασία ελέγχου στις πηγές των δεδομένων σας θα κατηφορίσουν ωραία για τους εργαζομένους σας χωρίς μια τεράστια αύξηση της δραστηριότητας του δικτύου (δηλαδή αν δεν εκτελέσετε μια τεράστια ενημέρωση των δεδομένων και όλων των εργαζομένων σας κλωτσιά στο με τη μία). Αυτό έχει πλεονεκτήματα σε σχέση με το rsync στο ότι δεν θα πάρετε μια μεγάλη παύση πριν από κάθε εργασία? Ως τις ενημερώσεις της βάσης δεδομένων, η MySQL daemon στον εργαζόμενο θα σας ενημερώνει συνεχώς τα δεδομένα της, ενώ η επεξεργασία συνεχίζεται.

Αυτό είναι το πώς θα ρυθμίσετε το διακομιστή επίδειξης μου. Για να ρυθμίσετε αναπαραγωγή Ακολούθησα τον οδηγό για το mySQL site ( Εγκατάσταση αναπαραγωγή ) και μέσα σε 20 λεπτά είχα εργαζόμενος μου inital αναπαράγει τη δέσμη στοιχείων των θέσεων εργασίας τον έλεγχο των διακομιστών. Για κάθε επιπλέον εργαζόμενο τις ρυθμίσεις αντιγραφής και της διαδικασίας εργαστεί κάθε φορά, όταν η VM έχει αντιγραφεί.

Περίληψη

Σε αυτό το τμήμα του άρθρου έχουμε δει πόσο εύκολο και ανώδυνο είναι να κρατήσει την επεξεργασία κωδικό σας ενημερωμένο με using rsync ή subverion (SVN) για να κάνει τη δουλειά και τη μείωση της κυκλοφορίας του δικτύου, στην ίδια time. Συζητήσαμε επίσης πώς να διατηρούνται τα δεδομένα τις πληροφορίες σας πηγή up-to-ημερομηνία, επιτρέποντάς της να φθάσουν τους σε κάθε τους εργαζομένους σας. Έτσι περιοχή εξασφάλιση ότι θα διατηρηθεί η επαφή με επιχειρηματική λογική και τις πληροφορίες στο δίκτυο του γραφείου μας. Θα υπάρχουν προφανώς αμέτρητες εναλλακτικές λύσεις για την εκτέλεση αυτών των καθηκόντων, αλλά εδώ ήταν δύο απλά παραδείγματα για να δείξει πόσο εύκολο μια λύση είναι να έρθει κοντά.

Την επόμενη φορά

Στο τελευταίο μέρος αυτής της σειράς, που εύστοχα ονομάστηκε Μέρος 5 , θα συζητήσουμε την ανάπτυξη αυτού του συστήματος για. Θα συνοψίσω ό, τι έχει μάθει και τι έχω καταφέρει να δημιουργήσουν.

Γραφείο Grid Computing που χρησιμοποιούν εικονικά περιβάλλοντα - Μέρος 3

Με Steven Lloyd Watkin , Παρασκευή 4 Δεκέμβρη 2009 23:37

Εισαγωγή

Δουλεύω σε μια εταιρεία όπου θα τρέξει πολλές θέσεις εργασίας batch επεξεργασία εκατομμύρια αρχεία με τα δεδομένα κάθε μέρα και να έχω σκεφτεί πρόσφατα για όλες τις μηχανές που κάθονται κάθε μέρα να μην κάνουμε τίποτα για αρκετές ώρες. Δεν θα ήταν καλό αν μπορούσαμε να χρησιμοποιήσουν τις μηχανές αυτές για να ενισχύσει την επεξεργαστική ισχύ των συστημάτων μας; Σε αυτό το σύνολο των άρθρων Πάω να εξετάσουμε τα πιθανά οφέλη από την απασχόληση ενός γραφείου πλέγματος χρησιμοποιώντας εικονικοποιημένων περιβάλλοντα.

Στο μέρος 2, εξετάσαμε τις θέσεις εργασίας σε διακομιστή θα τρέξει, και πώς θέσεις εργασίας θα πρέπει να ρυθμιστεί ώστε να επιτευχθεί μεγαλύτερη ποσότητα επεξεργασίας, εξασφαλίζοντας ταυτόχρονα ότι κάθε θέση απασχόλησης που υποβάλλεται σε επεξεργασία χωρίς αποτύχει.

Ρύθμιση των εργαζομένων σας - ή Limp διακομιστή

Το επόμενο βήμα στη διαδικασία είναι να δημιουργούν εικονικές εργαζομένους σας. Γι 'αυτό είμαι πρόκειται να χρησιμοποιήσετε μια εγκατάσταση του CentOS που χρησιμοποιούν VirtualBox. Πάω να εγκαταστήσετε mySQL και PHP στον server, επίσης γνωστό ως λειτουργία σε έκτακτες περιπτώσεις (Li NUX, μ ySQL, P HP) Servera (μπορεί να έκανα αυτό το όνομα επάνω).

  • Εγκατάσταση VirtualBox στα παράθυρα μηχανή σας (ακολουθήστε τον σύνδεσμο)
  • Λήψη και εγκατάσταση του CentOS (τρέχουσα έκδοση 5.3) μέσα σε ένα εικονικό μηχάνημα που δημιουργήθηκε

Δεν υπάρχει κανένα σημείο να συνεχίσω σε αυτό υπάρχει πιθανότατα είναι 1.000 μεγάλη tutorials εκεί έξω (εντάξει, εδώ είναι ένα: Δημιουργία και Managing CentOS εικονικής μηχανής κάτω από το VirtualBox ). Το σημαντικό, αξίζει να επισημανθεί υποθέτω είναι ότι ζήτησα GridMachine μου μηχάνημα εικονικής.

Όσον αφορά τις επιλογές μου από τον πελάτη εικονικοποίησης και λειτουργικό σύστημα πάει, δεν υπάρχει μεγάλη επιτακτικός λόγος για κάθε επιλογή. Το VirtualBox είναι κάτι που μπορώ να χρησιμοποιήσω στον υπολογιστή στο σπίτι μου και υποστηρίζεται από τις τρεις μεγάλες λειτουργικά συστήματα. Επέλεξα CentOS ως της καλής σταθερό λειτουργικό σύστημα και θα το χρησιμοποιήσει για δικό του web server μου. Είμαι ένθερμος οπαδός της τα κατάλληλα εργαλεία για τη δουλειά (αν και είμαι εφαρμογή «χρησιμοποιούν τον ταχύτερο και ευκολότερο για σας» νοοτροπία εδώ), οπότε αν το λειτουργικό σύστημα X εκτελείται κωδικό σας πιο γρήγορα και πιο αποτελεσματικά τη χρήση ότι αντ 'αυτού:)

Είναι σημαντικό να βεβαιωθείτε ότι VM σας χρησιμοποιεί DHCP, διαφορετικά για κάθε νέα εικονική μηχανή θα πρέπει να ρυθμιστούν χωριστά η οποία είναι κάτι που δεν το χρησιμοποιούν want.By DHCP δεν χρειάζεται να διαμορφώσετε τις ρυθμίσεις δικτύου ξεχωριστά για τις μηχανές των εργαζομένων, DHCP θα το χέρι έξω ΕΠ για εσάς. Συνεπώς, μπορείτε να αντιγράψετε εικονική μηχανή σας σχετικά με το γραφείο χωρίς να ανησυχείτε για τη κάθε μία τους (αυτό βελτιώνει τη δυνατότητα κλιμάκωσης και μειώνει την διοίκηση των εργαζομένων).

Η διαδικασία θα πρέπει να αποσκοπούν στην επίτευξη θα ήταν να αποκτήσει μια νέα φυσική μηχανή, να εγκαταστήσετε το VirtualBox, και στη συνέχεια, λίγο πολύ αναπτύξετε την εικονική εικόνα χωρίς τίποτε άλλο. Θα ήταν ίσως συνετό να στήσετε όλους τους εργαζομένους σας σε διαφορετικό υποδίκτυο έτσι ώστε να μπορεί τουλάχιστον να δείτε πόσα μηχανήματα τρέχουν. Θα πρέπει επίσης να δημιουργήσουν μηχανές σας σε μια μακροχρόνια μίσθωση ή απεριόριστης μίσθωσης DHCP.

Πώς να τρέξει την απασχόληση του εργαζομένου

Αυτή είναι μια ενδιαφέρουσα περιοχή και υπάρχουν πολλές έγκυρες μέθοδοι για την επεξεργασία θέσεων εργασίας από τον εργαζόμενο. Εδώ θα συζητήσουμε μόνο τα δύο πιο προφανείς:

  • Διαρκώς τρέχει σενάριο: Μια δέσμη ενεργειών, είτε πρόκειται για ένα shell script, ή ένα PHP script εκτελείται μία φορά από τον εργαζόμενο και θα διαρκέσει ως μέρος ενός άπειρου βρόχου. Έχω έκπτωση αυτής της μεθόδου ως μια συντριβή του σεναρίου και, ενδεχομένως, των εργαζομένων σας θα σταματήσει να τρέχει χωρίς κάποιου είδους παρέμβαση.
  • Cron βασίζεται η εκτέλεση του script: κάθε X λεπτά ο δαίμονας cron ξεκινά μια κλήση στο script σας να πάρει τα πράγματα πηγαίνουν. Χωρίς κάποιο έλεγχο αυτό θα μπορούσε να οδηγήσει σε πολλά πολλά αντίγραφα του σεναρίου των εργαζομένων σας σε λειτουργία.

Η απόφασή μου ήταν να πάει με το cron το οποίο ξεκινά ένα shell script κάθε 10 minutes. shell script μου εκτελεί τα εξής καθήκοντα:

  1. Πάρτε μια λίστα διαδικασία και grep αυτό για 'php'. Αν δεν βρεθεί μετά συνεχίστε.
  2. Καλέστε τον κωδικό σας δουλειά, στην περίπτωσή μου αυτό θα ήταν κάτι PHP βασίζονται
  3. Εργαζόμενος σενάριο ολοκληρώνει το τρέξιμό της
  4. Έτοιμοι να πάμε ξανά στην επόμενη κατάλληλη πρόσκληση

σενάριο bash μου μοιάζει κάτι σαν το παρακάτω:

  #! / Bin / sh
 αν ps ax | grep-v grep | grep> PHP / dev / null
 συνέχεια
     echo "Εργασία είναι επί του παρόντος την επεξεργασία, την έξοδο"
 αλλού
     echo "Job δεν τρέχει, να αρχίσει τώρα»
     yourJobProcessingScript.php php
 fi 

Σημείωση: η ηχώ είναι σχεδόν εντελώς άσκοπο, αλλά μπορεί να βοηθήσει το επόμενο άτομα που έρχεται για να προσπαθήσει και να τα επεξεργαστείτε.

Εδώ ολοκληρώνεται η δημιουργία του εργαζομένου εικονική μηχανή, γρήγορο, απλό και εύκολο να αντιγράψετε σε κάθε νέο κομμάτι του υλικού που παραλαμβάνεται. «Εξυπνάδα» του συστήματος δικτύου πραγματικά δεν είναι προς το ορατό OS, όλοι του να κάνει με τον κώδικα που δημιουργήθηκε για τις θέσεις εργασίας της διαδικασίας, η διαμόρφωση θέσεων εργασίας, και να εξασφαλίσουν ότι η εργασία εκτελείται κατά περίπτωση (δηλαδή όταν το κράτος είναι σε αδράνεια ).

Ρύθμιση των Windows για να αρχικοποιήσετε Εργαζομένων

Ο πρώτος στόχος είναι να επεξεργαστεί την εντολή που απαιτείται για να τρέξει η εικονική μηχανή από τη γραμμή εντολών των Windows. Εάν έχετε εγκαταστήσει το VirtualBox στην προεπιλεγμένη θέση και έχετε το όνομα GridMachine εργαζομένου σας, τότε η εντολή που απαιτείται για να φορτώσει επάνω εργαζόμενος σας είναι:

  "C: \ Program Files \ Κυρ \ VirtualBox \ VBoxManage.exe" GridMachine startvm 

Ωστόσο, για να εκτελέσετε τη δέσμη ενεργειών σε μια «ακέφαλη», κατάσταση που πρέπει να χρησιμοποιήσετε:

  "C: \ Program Files \ Κυρ \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - vrdp = off 

Αυτό θα ξεκινήσει την εικονική μηχανή χωρίς το γραφικό περιβάλλον και θα του επιτρέψει να σώσει κατάσταση με χάρη. Το δεύτερο επιχείρημα σβήνει ΣΑΑ, ώστε να μην έρχεται σε σύγκρουση με τα παράθυρα ΠΑΑ, ή να σας δώσει ένα μήνυμα σχετικά με την ακρόαση στη θύρα 3389. Η εικονική μηχανή όνομα με κεφαλαία γράμματα!

Στη συνέχεια, θα χρειαστεί να ρυθμίσετε τα παράθυρα μέχρι το εναρκτήριο λάκτισμα VM εργαζόμενο μας αφού το μηχάνημα έχει μείνει αδρανής. Για να γίνει αυτό (για Windows XP), θα χρειαστεί να πάνε Έναρξη -> Όλα τα προγράμματα -> Accessories -> System Tools -> Προγραμματισμένες εργασίες, όπως παρακάτω:

προγραμματισμένες εργασίες

Στη συνέχεια κάντε κλικ στο "Add Scheduled Task" και ακολουθούνται από περιηγηθείτε για να προσθέσετε ένα προσαρμοσμένο πρόγραμμα. Πλοηγηθείτε στο script VBoxManage σας και κάντε κλικ στο ΟΚ. Χρονοδιάγραμμα εργασιών σας για οποιαδήποτε από τις επιλογές (θα το αλλάξετε αυτό σε ένα λεπτό) και να συνεχίσει. Μετά παρακάμπτοντας τα επόμενα παράθυρα στην οθόνη θα σας ρωτήσει που θέλετε να εκτελέσετε το έργο αυτό, θα πρότεινα είτε ως «διαχειριστής» ή τη δημιουργία ενός νέου προνομιακή χρήστη. Θυμηθείτε ότι δεν θέλουμε να παρεμβαίνουν με το πρότυπο λογαριασμό του προσωπικού για το μηχάνημα σε οποιοδήποτε σημείο. Κάντε κλικ στο επόμενο και να ελέγξετε δείχνουν προηγμένες επιλογές για το έργο αυτό.

Προς το τέλος του τρεξίματος textbox προσθήκη εγχόρδων «GridMachine startvm» μας και να διασφαλίσουμε ότι τρέχει μόνο όταν συνδεθεί έχει απομείνει unticked. Επισκεφθείτε το έργο χρονοδιάγραμμα επόμενο και να αλλάξετε το χρονοδιάγραμμα πτώση κάτω από την επιλογή «όταν είναι σε αδράνεια», επιλέξτε το χρονικό διάστημα που θα θέλατε η μηχανή να παραμένει αδρανής πριν προχωρήσουμε στην επόμενη καρτέλα.

Τέλος untick η επιλογή η οποία αναφέρει σταματήσει το έργο, αν έχει τρέξει Χ ποσό του χρόνου, αλλά κάνει μαρκάρετε την επιλογή να σταματήσουν το έργο, εφόσον το μηχάνημα δεν είναι πλέον αδρανής.

χρονοδιάγραμμα

Αυτό είναι, στη συνέχεια, για την εγκατάσταση υποδοχής παράθυρα!

Περίληψη

Στο τμήμα αυτό έχουμε δημιουργήσει μια εικονική μηχανή για να λειτουργήσει ως εργαζόμενος, καθώς και τον τρόπο με τον οποίο καλούμε και να εκτελούν τη δουλειά μας scripts επεξεργασίας (για τον εαυτό μου ένα PHP script). Από εδώ κοιτάξουμε πώς να δημιουργήσουν αντίγραφα μας από τα παράθυρα για να ξεκινήσει η εικονική μηχανή στο ακέφαλο αναμονής όταν ο υπολογιστής τίθεται σε αδράνεια, και να αποθηκεύσετε κατάσταση όταν ο χρήστης ξαναρχίσει τη χρήση του μηχανήματος. Ας ελπίσουμε ότι σε αυτό το σημείο που βλέπετε πόσο απλό είναι να δημιουργηθεί ένα τέτοιο σύστημα και είναι ο κνησμός να πάρετε κάποια πειράματα στον εαυτό σας πηγαίνει!

Την επόμενη φορά

In Μέρος 4 θα εξετάσουμε να χρησιμοποιεί εργαλεία για να διασφαλίσει ότι τρέχετε την πιο πρόσφατη έκδοση του και πηγές δεδομένων κώδικα, ώστε να λαμβάνονται τα αποτελέσματα είναι πάντα ενημερωμένο με τις τελευταίες πληροφορίες των επιχειρήσεων και τη λογική.

Γραφείο Grid Computing που χρησιμοποιούν εικονικά περιβάλλοντα - Μέρος 1

Με Steven Lloyd Watkin , Παρασκευή 4 Δεκέμβρη 2009 23:23

Εισαγωγή

Δουλεύω σε μια εταιρεία όπου θα τρέξει πολλές θέσεις εργασίας batch επεξεργασία εκατομμύρια αρχεία με τα δεδομένα κάθε μέρα και να έχω σκεφτεί πρόσφατα για όλες τις μηχανές που κάθονται κάθε μέρα να μην κάνουμε τίποτα για αρκετές ώρες. Δεν θα ήταν καλό αν μπορούσαμε να χρησιμοποιήσουν τις μηχανές αυτές για να ενισχύσει την επεξεργαστική ισχύ των συστημάτων μας; Σε αυτό το σύνολο των άρθρων Πάω να εξετάσουμε τα πιθανά οφέλη από την απασχόληση ενός γραφείου πλέγματος χρησιμοποιώντας εικονικοποιημένων περιβάλλοντα.

Ως PHP developer Πάω να χρησιμοποιούν εργαλεία που χρησιμοποιώ κάθε μέρα, δηλαδή το Linux, mySQL , PHP, το VirtualBox και το Subversion (SVN). Ωστόσο, ελπίζω ότι αυτός ο οδηγός θα προσαρμοστεί και σε άλλες γλώσσες και τεχνολογίες εξίσου καλά.

Η λύση που προσφέρει θα είναι πολύ χαλαρά με βάση το είδος της επεξεργασίας είχαμε ανάγκη να επιτευχθεί όμως αυτό δεν μπορεί να ισχύει σε όλο το άρθρο, όπως εγώ θα αλλάξει τα πράγματα για την απλότητα, ή για να παράγουν πιο ενδιαφέροντα σενάρια χρήσης.

Αυτές εικονικοποιημένων περιβάλλοντα θα τρέχει σε Windows μηχανήματα δεδομένου ότι αυτό είναι ό, τι η πλειοψηφία των γραφείων τρέχει. Η επεξεργασία ότι οι μηχανές γραφείου, δεν θα πρέπει να παρεμβαίνει το προσωπικό που χρησιμοποιούν τις μηχανές αυτές, θα πρέπει να απαιτούν όχι συντήρησης στο μηχάνημα, και να είναι εύκολα να αναπτυχθούν σε νέες μηχανές, όπως αυτές γίνουν διαθέσιμες. Επίσης, οι νέες εικονικές μηχανές δεν πρέπει να απαιτείται καμία επιπλέον ρυθμίσεις δεδομένου ότι αυτό μειώνει σημαντικά την επεκτασιμότητα και ευκολία κατά την οποία το δίκτυο μπορεί να επεκταθεί.

Γιατί να αναπτύσσετε έναν Grid Computing του Office;

Αρχικά μπορεί να σκέφτεστε, γιατί να μην χρησιμοποιούν μόνο έναν πόρο το cloud computing, όπως η πλατφόρμα EC2 της Amazon ; Καλά οι λόγοι μπορεί να είναι πολλές, όπως για παράδειγμα:

  • Δεν θα αναθέσει ορισμένα στοιχεία σε ένα περιβάλλον το cloud computing
  • Δεν μπορείτε να θέσει ορισμένα στοιχεία σε ένα περιβάλλον το cloud computing για νομικούς λόγους (π.χ. δεδομένα που εξέρχονται από τη χώρα), πιθανώς για νομικούς λόγους, π.χ. NHS εγγραφές.
  • Θέλετε να κρατήσετε μονάδων επεξεργασίας σας κοντά και να έχουν τον πλήρη έλεγχο του υλικού είναι πολύ
  • Δεν έχετε τα κεφάλαια για το σχέδιο για την εκτέλεση εμφανίσεων σύννεφο
  • Το γραφείο σας δεν διαθέτει σύνδεση στο Διαδίκτυο και συνεπώς της δεν είναι δυνατόν να χρησιμοποιήσει έναν πόρο σύννεφο
  • Δεν σας αρέσει η βροχή, τα σύννεφα βροχή υποδηλώνουν, ως εκ τούτου να σας κρατήσει μακριά

Είμαι βέβαιος ότι ο κατάλογος θα μπορούσε να συνεχιστεί, αλλά νομίζω ότι είναι αρκετό για τώρα.

Πλεονεκτήματα του Grid Computing του Office

Λοιπόν, ας κάνουμε κάποια μαθηματικά (και το αυθεντικό στυλ της φυσικής αφήνει να κάνει κάποια σαρωτικές υποθέσεις). Φανταστείτε ότι έχετε μεγάλη σωματώδης διακομιστή μεταποίησης εκτελεί 100 θέσεις εργασίας ανά ημέρα. Στο γραφείο σας, έχετε 50 μηχανές που είναι σε αδράνεια 16 ώρες την ημέρα, κάθε ένα από αυτά τα μηχανήματα είναι 10% τόσο ισχυρό όσο σωματώδης επεξεργασία σας κόβω. (Όλα τα αποτελέσματα εδώ στρογγυλοποιούνται να υποτιμούν την αύξηση των επιδόσεων).

Έτσι, 1 μηχανή * 10% * ισχύος 2 / 3 του χρόνου = 0,067 δηλ. 1 επεξεργασία στην επιφάνεια εργασίας σε χρόνο αδράνειας θα μπορούσαν διαδικασία 6 θέσεις πλήρους απασχόλησης ανά ημέρα.

Αν τώρα αυτή η κλίμακα μέχρι που παίρνει 15 ρελαντί υπολογιστές να επεξεργαστούν τόσες θέσεις εργασίας ανά ημέρα, όπως σας διακομιστή επεξεργασία κύρια κάνει.

Έτσι, στο γραφείο μας προσποιούνται των 50 μηχανές θα μπορούσαν να αυξήσουν τη δύναμή μας από την επεξεργασία 1 server έως και 4 servers πλήρη επεξεργασία, ή θα μπορούσαμε να είμαστε επεξεργασίας 400 θέσεις εργασίας ανά ημέρα αντί για 100.

Ανακοίνωση, για τα μη επένδυση σε νέο hardware της εταιρείας σας έχει μόλις αυξηθεί η μεταποίησή του ικανότητα παρτίδα 4 φορές! Δυνητικά θα πάμε να αυξηθεί η χρήση δύναμή σας, αλλά από περισσότερα περιβάλλοντα γραφείου Έχω πάει σε μηχανές είναι γενικά αριστερά στην διάρκεια της νύχτας έτσι κι αλλιώς, έτσι θα μπορούσατε να δείτε αυτό ως ένα πράσινο πρωτοβουλία.

Άλλα πλεονεκτήματα σημαίνει επίσης ότι οι επενδύσεις σε νέες (ή ενημερωμένο) η επεξεργασία τους διακομιστές μπορεί να καθυστερήσει εάν μηχανών γραφείου σας είναι επαρκείς και ότι, όπως να βελτιώσετε την ισχύ των μηχανών γραφείου σας στο δίκτυο του γραφείου σας γίνεται πιο ισχυρή αυτόματα.

Τεχνολογίες

Τι χρειάζεστε; (Ή πιο σωστά τι έκανα χρήση):

  • Idle μηχανές γραφείου (στην περίπτωσή μου μια εφεδρική παλιά παράθυρα XP ο φορητός υπολογιστής)
  • Το VirtualBox (ή άλλου λογισμικού πελάτη εικονικοποίησης)
  • Μια εικονική μηχανή με την PHP, mySQL running λειτουργία μιας περικοπή OS, καλώ αυτούς Limp διακομιστές μου:)
  • Εργασία για την εκτέλεση
  • Εργασία server (μπορεί να είναι μια άλλη εικονική μηχανή κάπου)

Τυπικές θέσεις εργασίας

Τα είδη των θέσεων εργασίας που αυτό το σύστημα είναι σχεδιασμένο να λειτουργεί ως εξής:

  • Σύστημα παραλαμβάνει μια λίστα δεδομένων στα οποία πρέπει να ταιριάζει και να επιστρέψει τα αποτελέσματα
  • Matching σημαίνει τον έλεγχο / έρευνα αρκετές (αρκετά στατική) πηγές δεδομένων
  • Τα αποτελέσματα από τις πηγές δεδομένων που μπορούν να απαιτούν περαιτέρω επικύρωση, τη συγχώνευση, τον έλεγχο της συμπληρωματικές πηγές δεδομένων, σε απάντηση των αποτελεσμάτων
  • Επιστρέφονται δεδομένα που ταιριάζουν με τα αρχεία, είναι πλήρως επικυρωμένες και μεταποιημένων
  • Κάθε εγγραφή σε μια θέση εργασίας είναι ανεξάρτητο από τα υπόλοιπα

Έτσι, βασικά ψάχνουμε στο τρέξιμο θέσεις εργασίας που απαιτούν ένα μείγμα αναζητήσεις βάση δεδομένων και μερικά τραγάνισμα αριθμό, ένα τυπικό σενάριο σε ένα επιχειρηματικό περιβάλλον.

Grid λύσεις δεν είναι μόνο επωφελής για την επεξεργασία θέσεων εργασίας αυτού του τύπου. Βασικά, κάθε μέθοδος η οποία μπορεί να χωρισθεί σε ανεξάρτητες μονάδες μπορούν να λειτουργήσουν παράλληλα. Δείτε αυτό το wikipedia για παραδείγματα και περισσότερες πληροφορίες: Grid Computing , αλλά μερικά από τα διάσημα παραδείγματα είναι Seti @ Home και BIONC . Υπάρχουν πλαίσια για τη λειτουργία των δικτύων υπολογιστών, και αυτά είναι καλά αξίζει να εξετάσουμε.

Αυτό που θα επιτύχουμε;

Μέχρι το τέλος του εν λόγω άρθρων ελπίζω να δείξουμε ότι αναπτύσσοντας ένα πλέγμα γραφείο δεν χρειάζεται να είναι εξαιρετικά δαπανηρές και χρονοβόρες. Πάω να συζητήσουν:

  • Εγκατάσταση του συστήματος ελέγχου της εργασίας, τη διαμόρφωση θέσεων εργασίας
  • Δημιουργία κατάλληλης επεξεργασίας εικονική μηχανή
  • Πως να ρυθμίσετε το σύστημα σε μια μηχανή παραθύρων
  • Διασφάλιση σας χρησιμοποιώντας τις τελευταίες κώδικα και δεδομένων
  • Ανάπτυξη και συγκριτική αξιολόγηση
  • Κοιτώντας προς το μέλλον

Θα είμαι κτιρίου (εντάξει έχτισα, στη συνέχεια, έγραψε αυτό) μια αίτηση παράδειγμα για τη δοκιμή των εννοιών σε ένα τοπικό μηχάνημα με windows XP και το μηχάνημα εικονικής πραγματικότητας «GridMachine» μου. έλεγχος μου server δουλειά θα είναι το μηχάνημά μου κύριος που τρέχει Fedora 11 .

Αυτό σε καμία περίπτωση δεν προορίζεται να αποδείξει ένα πλήρως εργασίας ισχυρό σύστημα, του σήμαινε περισσότερα από μια διαδήλωση και τη συζήτηση που δείχνουν ότι αυτά τα πράγματα μπορούν να επιτευχθούν μέσα σε εύλογα σύντομο χρονικό διάστημα και με χαμηλό κόστος. Διστάσετε να μου στείλετε τυχόν παρατηρήσεις, διορθώσεις, ή βελτιώσεις και εγώ θα κάνω ότι καλύτερο μπορώ για να κρατήσει αυτό το άρθρο ενημερωθεί ώστε να ταιριάζουν.

Την επόμενη φορά

Στο μέρος 2 θα αρχίσω με την εξέταση του συστήματος ελέγχου της εργασίας, και να διερευνήσει τον τρόπο θέσεις εργασίας θα πρέπει να διαμορφωθεί έτσι ώστε να επιτευχθεί μεγαλύτερη ποσότητα επεξεργασίας, εξασφαλίζοντας ταυτόχρονα ότι κάθε θέση απασχόλησης που υποβάλλεται σε επεξεργασία χωρίς αποτύχει.

Γραφείο Grid Computing που χρησιμοποιούν εικονικά περιβάλλοντα - Μέρος 2

Με Steven Lloyd Watkin , Παρασκευή 4 Δεκέμβρη 2009 23:23

Εισαγωγή

Δουλεύω σε μια εταιρεία όπου θα τρέξει πολλές θέσεις εργασίας batch επεξεργασία εκατομμύρια αρχεία με τα δεδομένα κάθε μέρα και να έχω σκεφτεί πρόσφατα για όλες τις μηχανές που κάθονται κάθε μέρα να μην κάνουμε τίποτα για αρκετές ώρες. Δεν θα ήταν καλό αν μπορούσαμε να χρησιμοποιήσουν τις μηχανές αυτές για να ενισχύσει την επεξεργαστική ισχύ των συστημάτων μας; Σε αυτό το σύνολο των άρθρων Πάω να εξετάσουμε τα πιθανά οφέλη από την απασχόληση ενός γραφείου πλέγματος χρησιμοποιώντας εικονικοποιημένων περιβάλλοντα.

In Part 1 I gave an overview of the system and technologies I will be using as well as discussed some of the potential reasons why you would want to create an office grid.

Job Control

If you're going to be running jobs then you're going to need some way to manage them. Your job control system (on your job server) needs to be really well thought out before even attempting to run an office grid. So firstly, what are the tasks for a job control system:

  • Hand out jobs upon request from workers
  • Tell workers what type of jobs to run
  • Track jobs
  • Ensure that jobs are only run once
  • Provide job data to workers, or at least tell them where to get it

The system also needs to be extensible, a solution that works for now in a single case may be extended to run several types of jobs as the business sees the worth in a grid solution. For example, jobs may gain priorities, more than one job type may exist (ie several code bases), eventually you may even run several different worker machines that are optimised for each type of job (although that does move away from the 'generic worker' idea). Always try to think about the future when developing systems, a short term vision can lead to longer term frustration and increased development time.

Job Server

We're going to need somewhere to control our jobs from, this should be the only system in your grid that has a fixed resource locator, be that an IP address, host name, URL (using internal DNS), etc. This is because the workers need to know where to look for jobs, workers need to find the job control system (not the job control system find the workers).

The job server itself doesn't really have a complicated task (in a basic system anyhow), it needs to store a list of jobs, hand out jobs, receive results, and subsequently store them for later retrieval. How these parts (such as 'hand out jobs') are defined can be very basic. Later on we can extend the system to include an administration interface to add, edit, delete, suspend jobs but this is beyond this exercise.

There is no reason whatsoever then that your job server could not be a virtual machine running within your main processing server provided it doesn't drain too many resources from it. The job server however does need high availability, if it goes down on a Friday evening you're going to lose a whole weekend of processing, potentially costing you a couple of weeks worth of processing time (when compared to your main processing server alone). You may want to consider putting your job server on a load balanced environment for high availability.

Βασική Εγκατάσταση

Η βασική ρύθμιση για το διακομιστή δουλειά μας θα αποτελείται από ό, τι είμαι καλώντας έναν από τους διακομιστές Limp μου (που είναι Li NUX, ySql m, P HP). Ο κώδικας που εκτελείται σε thea εργαζομένων θα έχει κανένα αποτέλεσμα η δουλειά που μπορεί να τρέξει με την αλληλεπίδραση με βάσεις δεδομένων με το σύστημα εργασίας ελέγχου. Αργότερα θα μπορούσαμε να δημιουργήσουμε μια υπηρεσία web και πραγματικά το χέρι έξω θέσεις εργασίας αντί να έχουν οι εργαζόμενοι κάνουν σκληρή δουλειά των ίδιων των, αλλά προς το παρόν θα συνεχίσει να χρησιμοποιεί την αρχή KISS (Φροντίστε να είναι απλή, ανόητε!).

Έτσι, αφήνει να δημιουργήσει τρεις mySQL πίνακες για την αντιμετώπιση των θέσεων εργασίας. Αυτές θα είναι «θέσεις εργασίας», «jobRecords», και «jobResults».

θέσεις εργασίας πίνακα Εδώ είμαι με τη χρήση του SQL Buddy μια μεγάλη μικρή εναλλακτική λύση για το phpMyAdmin μόνο και μόνο επειδή είναι ευκολότερο να το εγκαταστήσετε σε CentOS (για τους άλλους δείτε: 10 Μεγάλη εναλλακτικές λύσεις για το phpMyAdmin )

Ο πίνακας αυτός αποτελείται από 5 απλών πεδίων,

  • id: τον επακριβή προσδιορισμό της εργασίας
  • Όνομα: Θα μπορούσε να είναι σημείο αναφοράς τον πελάτη, ή οποιοδήποτε αριθμό άλλων αναγνωριστικών
  • Κατάσταση: Πρέπει να ξέρετε όπου η δουλειά είναι, π.χ.
    • 0: Δεν έχει ξεκινήσει
    • 1: επιταχύνθηκε
    • 2: Ολοκληρώθηκε
  • started_by: Ποιος ξεκίνησε να κάνει τη δουλειά; Αυτό δεν είναι απολύτως απαιτείται, αλλά είναι καλό να υπάρχει. Θα πρότεινα τον εντοπισμό των εργαζομένων από τη διεύθυνση IP τους στο δίκτυό σας
  • started_at: Πότε ο εργαζόμενος ξεκινήσει τη δουλειά; Με την παρακολούθηση θέσεις εργασίας που δεν έχουν ολοκληρωθεί μέσα σε Χ ποσό του χρόνου ξέρουμε ότι πρέπει να πάρει τη δουλειά για μια ακόμη φορά και να αρχίσει την επεξεργασία από άλλη εργαζόμενο. Οι εργαζόμενοι θα μπορούσε να σταματήσει την επεξεργασία / go offline για οποιοδήποτε αριθμό λόγων, τη διακοπή ρεύματος, συντριβή, δίκτυο απώλεια, κ.λπ.

Είναι εύκολο τρόπο με τον οποίο ο πίνακας αυτός θα μπορούσε να επεκταθεί με μερικά επιπλέον πεδία για να καταστεί δυνατή η παρακολούθηση στατιστικών στοιχείων, μια στήλη ώρα λήξης για να δούμε πόσο καιρό πήρε τη δουλειά, έναν μετρητή για να δείτε πόσοι εργαζόμενοι πήραν την εργασία (προφανώς αυτό πρέπει να τείνουν να 1), προτεραιότητα των εργασιών, ο κατάλογος μπορεί να συνεχιστεί και επάνω. Σε πιο πολύπλοκα σενάρια εργασίας θα ήταν δυνατό να προσδιοριστεί το μέγεθος της μνήμης, ο εργαζόμενος θα πρέπει να έχουν πρόσβαση σε (και επομένως η χρήση μόνο κατάλληλο εργαζομένων), ή ακόμα και ποιος τύπος εργαζομένου θα ήταν απαραίτητη.

Αφήνει να προσθέσετε μερικές θέσεις εργασίας παράδειγμα:

θέσεις εργασίας π.χ.

Ο πίνακας που ακολουθεί είναι και πάλι αρκετά απλό να κατανοήσει, αυτά είναι τα αρχεία δουλειά μας. Συνδέονται με τον κύριο πίνακα θέσεων εργασίας από μια στήλη «jobs_id». Το make up του πίνακα αυτού εξαρτάται σε μεγάλο βαθμό τα δεδομένα που πρέπει να παρέχουν στους εργαζομένους σας, αφήνει να κάνει ένα πολύ απλό παράδειγμα, όπου έχουμε τέσσερις στήλες:

  • ID: ID της εγγραφής
  • Όνομα: το όνομα Πρόσωπο
  • διεύθυνση: διεύθυνση του Ατόμου
  • jobs_id: Το αναγνωριστικό εργασίας που αυτό το αρχείο είναι συνδεδεμένο με

Το τρίτο και τελικό τραπέζι αποτελείται από ένα πίνακα αποτελεσμάτων, έχει περίπου το ίδιο κάνει ως επιτραπέζια αρχεία μας, και με την προσθήκη ορισμένων στήλες θα μπορούσαν να είναι μέρος του πίνακα εγγραφών:

  • job_record_id: Link το αποτέλεσμα στο τραπέζι των θέσεων εργασίας
  • αποτέλεσμα: Τα στοιχεία που προκύπτουν από

... Και αυτό είναι όλα όσα χρειάζεστε για τον έλεγχο των θέσεων εργασίας! (Αν και σε πολύ βασικό επίπεδο) Στην περίπτωσή μου είμαι επισήμανε σε άλλο πίνακα, όπου τα στοιχεία μου για την διαδικασία βρισκόταν, αλλά αυτό θα μπορούσε κάλλιστα να έχει ένα αρχείο, οι παράμετροι για την εκτέλεση κώδικα προσομοίωσης, εσείς το όνομα.

Επιλέγοντας μια θέση εργασίας

Όπως αναφέρθηκε προηγουμένως, οι εργαζόμενοι θα κάνουν τη διαχείριση δουλειά μας για μας για τώρα, οπότε το μόνο που χρειάζεται πραγματικά να κάνουμε είναι να βρούμε μια δουλειά που χρειάζεται επεξεργασία και να πάρετε τις πληροφορίες. Πώς θα το κάνουμε αυτό; Καλά πάρει τη δουλειά μας κριτήρια επιλογής και να αναζητήσει απασχόληση, σε SQL έκανα το εξής:

  1. Πάρτε οποιοδήποτε θέσεις που δεν χαρακτηρίζονται ως πλήρεις, αλλά από εργαζόμενο μας και επαναφορά τους (__ME__ αντικαταστήσει με ένα αναγνωριστικό, ευκολότερο θα είναι η διεύθυνση IP):
      UPDATE »θέσεις εργασίας», όπως προβλέπεται `κατάστασης» = 0 όταν «καθεστώς» = 1 ΚΑΙ `started_by» = __ME__? 
  2. Χρησιμοποιώντας τη δουλειά μας κριτήρια επιλογής, επιλέξτε μια θέση εργασίας και να πει το σύστημα ελέγχου ότι η εν λόγω εργαζόμενος έχει την αντιμετώπισή του:
      UPDATE »θέσεις εργασίας», όπως προβλέπεται `κατάστασης» = 1, στο εξής started_by »= __ME__,` started_at »= NOW () όταν« καθεστώς »= 0 ή
     («Καθεστώς» = 1 ΚΑΙ `started_at»> DATE_SUB (NOW (), το διάστημα Χ ΩΡΑ)) ORDER BY `id` ASC? 

    Με την αρπαγή θέσεις εργασίας που δεν έχουν επιστρέψει τα αποτελέσματα στο ποσό Χ χρονικό διάστημα να διασφαλίσουμε ότι όλες οι εργασίες εκτελούνται σε περίπτωση που ένας εργαζόμενος συντρίβοντας ή πηγαίνει AWOL.

  3. Στη συνέχεια πιάσε τα στοιχεία απασχόλησης που ακολουθείται από τα αρχεία οι ίδιοι:
      SELECT * FROM `θέσεις εργασίας», όταν «started_by» = __ME__ ορίου του 1?
     SELECT * FROM `job_records« Όταν `id` = __JOBID__? 

Μετά την ολοκλήρωση της εργασίας που εισάγετε τα αρχεία μας αποτέλεσμα και το σήμα του εργασία ως ολοκληρωμένη. Να θυμάστε ότι η απασχόληση μπορεί να αναστείλει / συνέχιση ανά πάσα στιγμή θα επιτρέψει σε ορισμένες στιβαρότητα στο script σας. Θα μπορούσε να είναι ότι το καθήκον αναστέλλει μισά επικαιροποίηση του συστήματος ελέγχου της εργασίας, έτσι τον έλεγχο του αριθμού των εγγραφών σε μια θέση εργασίας και ο αριθμός των αποτελεσμάτων αποθηκεύεται πίσω στο σύστημα ελέγχου της εργασίας θα ήταν μια σοφή κίνηση.

Επιπλέον, αν και αυτό δείχνει πόσο θέσεις εργασίας μπορούν να επιλεγούν και να διαχειρίζεται από ένα SQL ερώτημα-πλαίσιο θα πρέπει πραγματικά να υδροληψίες ελέγχου της εργασίας σας, έτσι ώστε, αν αποφασίσει να στραφεί προς τη χρήση των υπηρεσιών web, ένα αρχείο συστήματος, XML , ή οποιαδήποτε άλλη αριθμός των συστημάτων δεν θα επηρεάσει τον κώδικα πάνω από αυτό.

Εργασία διαμόρφωσης

Η επόμενη πτυχή που εξετάζει είναι το μέγεθος και τη διαμόρφωση θέσεων εργασίας. Με το παιχνίδι με τη διαμόρφωση θέσεων εργασίας που μπορεί να επιτύχει μια εξαιρετική ισορροπία μεταξύ της ταχύτητας, αναπαραγωγή της διαδικασίας, και την αξιοπιστία. Πάρτε ένα ζευγάρι ΟΦΑ σενάρια:

  1. Εργασία λάβει 1 ημέρα κάθε για να εκτελέσετε: Αυτό σημαίνει ότι οι εργαζόμενοι σας χρειάζονται 15 ημέρες για την επεξεργασία κάθε θέση εργασίας (θυμηθείτε το 10% της ισχύος για 2/3rds του χρόνου). Αυτό δεν είναι προφανώς μια σοφή διάταξη, μέγεθος της εργασίας σας είναι πάρα πολύ μεγάλη! Θα χρειαστεί τουλάχιστον διπλάσιο χρόνο για να βρουν μια θέση εργασίας σε επεξεργασία σε περίπτωση που η αρχική εργαζόμενος πάει AWOL (χρόνος για να πάρει ότι δεν έχει επιστρέψει αποτέλεσμα συν επανεπεξεργασία του χρόνου). Σε ένα ιδανικό θα είχατε τουλάχιστον μία πλήρη απασχόληση εύκολα εκκαθαρίζονται από το τέλος κάθε μακρά περίοδο αδράνειας, με αυτόν τον τρόπο να κρατήσει τις θέσεις εργασίας που περνάει πάνω και στη χειρότερη περίπτωση μια εργασία θα διαρκέσει δύο ημέρες για την επεξεργασία θα πρέπει το πρώτο χάνονται.
  2. Εργασία λάβει 1 λεπτό για να εκτελέσετε: Αυτό σημαίνει ότι οι εργαζόμενοι σας πάρει περίπου 15 λεπτά για να τρέχει σε κάθε θέση εργασίας. Ενώ αυτό μπορεί να φαίνεται αρχικά ιδανικά, θα αποκτήσουν πρόσθετη επεξεργασία εργασία κατά τη διάρκεια του χρόνου του γεύματος, coffee breaks, συναντήσεις, κ.λπ. με το σενάριο αυτό βάζει πίεση στους άλλους τομείς του συστήματός σας και να εισάγει τα δικά του προβλήματα. Για παράδειγμα, κατ 'αρχάς σας εγκατάσταση / αναλογία του χρόνου επεξεργασίας πρόκειται να πάει δεξιά προς τα κάτω, ως εκ τούτου χάνει την αποτελεσματικότητα του συστήματος. Το δίκτυό σας θα είναι συνεχώς συνεχούς ροής πληροφοριών θέσεων εργασίας στους διάφορους εργαζόμενους απογοητευτικό το προσωπικό που είναι ντονγκ την καθημερινή τους εργασία. Είστε, επίσης, θα δοθεί μεγαλύτερη πίεση στον server επεξεργασίας εργασία σας δεδομένου ότι πρέπει να πιάτο από πάρα πολλά μικρά κομμάτια της εργασίας σε τακτική βάση. Τέλος, σε αυτή την κατάσταση αν ο διακομιστής τη δουλειά σας πηγαίνει κάτω θα πάμε να δημιουργήσουμε μια τεράστια πλάτη αρχείο καταγραφής των ημιτελών εργασιών ενώ μεγαλύτερες θέσεις εργασίας θα μπορούσαν της συνεχούς επεξεργασίας μακαρίως αγνοεί ότι ο διακομιστής η εργασία που αντιμετωπίζουν δυσκολίες.

Στην πραγματικότητα δεν θα υπάρχει μία ιδανική ρύθμιση για την εγκατάσταση του δικτύου σας, πολλά εξαρτώνται από τους διαθέσιμους πόρους, τα είδη των θέσεων εργασίας, τις απαιτήσεις του χρόνου εργασίας ανάκαμψη, την ικανότητα του δικτύου, και ούτω καθεξής. Ωστόσο, ορισμένες κατευθυντήριες γραμμές θα είναι:

  • θέσεις εργασίας Μέγεθος έτσι ώστε κάθε εργαζόμενος μπορεί να πάρει μέσα από τουλάχιστον 3-4 θέσεις εργασίας σε μια περίοδο 15 ωρών (η μεγαλύτερη πιθανή ρελαντί χρονική περίοδο)
  • Παίξτε με το μέγεθος της εργασίας έτσι ώστε ο χρόνος εγκατάστασης γίνεται αρκετά ασήμαντη σε σύγκριση με το χρόνο επεξεργασίας (λαμβάνοντας υπόψη το ανωτέρω σημείο).
  • Εάν μια εργασία δεν ολοκληρωθεί με το διπλάσιο του ποσού του χρόνου (ίσως και λιγότερο) το περιμένετε να ολοκληρωθεί η υποθέσουμε ότι του πάει AWOL και να αρχίσει την επεξεργασία με ένα άλλο εργαζόμενο. Αυτό σημαίνει ότι ίσως χρειαστεί να περιμένουν μέχρι και τρεις φορές τη συνήθη διάρκεια μιας εργασίας για την ολοκλήρωση της (ενδεχομένως περισσότερο, αν η μεταγενέστερη εργασία αποτυγχάνει). Μπορεί να θέλετε να μειώσει αυτή τη φορά, αλλά πρέπει να προσέξουμε να μην το μειώσει πάρα πολύ, όπως μπορείτε να ξεκινήσετε επανάληψη επεξεργασίας καθήκοντα σε τακτική βάση.
  • Εργασία θα πρέπει να είναι ανεξάρτητη των εξωτερικών απαιτήσεων όσο το δυνατόν περισσότερο. Ο διακομιστής δουλειά, για παράδειγμα, θα πρέπει να απευθυνθεί στην αρχή και στο τέλος κάθε εργασία.
  • Να μην κορεστεί το δίκτυό σας, αυτό θα έχει δύο αρνητικά αποτελέσματα, τη διάρκεια της ημέρας το προσωπικό σας θα βρει τη χρήση του δικτύου απογοητευτικό και τα προβλήματα που μπορεί να προκύψει σε σχέση με τις συνδέσεις χρονικό όριο για ένα πρόβλημα που θα πάρει μόνο χειρότερα καθώς κλίμακας δίκτυο σας.
  • Εξασφάλιση θέσεων εργασίας μπορεί να τρέξει σε εργαζομένους σας. Αν οι εργασίες γίνονται πολύ απαιτητικές σε μνήμη ή χώρο στο δίσκο υψηλής έντασης εργασίας θα αρχίσει εγκατάλειψης και το μόνο πράγμα που θα παρατηρήσετε είναι μια σταγόνα στον αριθμό των θέσεων εργασίας σε επεξεργασία που δεν πραγματικός λόγος.

Υποβολή Αποτελέσματα Εργασίας

Κατά την υποβολή των αποτελεσμάτων της εργασίας, είναι σημαντικό να ελέγχεται ότι τα αποτελέσματα δεν έχουν υποβληθεί, από άλλον εργαζόμενο, ειδικά εάν η τρέχουσα εργαζόμενος ήταν ανενεργό για κάποιο χρονικό διάστημα.

Όταν τα αποτελέσματα υποβάλλονται εξασφαλιστεί ότι ο αριθμός των αποτελεσμάτων που αντιστοιχεί στον αριθμό των εγγραφών κατά την εργασία.

Όπως αναφέρθηκε προηγουμένως, και δεν μπορεί να είναι πάνω τόνισε, να χτίσουν την ανοχή σε βλάβες στην ανάκτηση θέσεων εργασίας και των υποβληθέντων αποτελεσμάτων. Οι εργαζόμενοι μπορούν (και πιθανότατα θα) πάει σε κατάσταση αναστολής στο πιο ενοχλητικό φορές και αυτό πρέπει να ικανοποιηθούν. Επίσης, για άλλη μια φορά υδροληψίες μακριά αποτελέσματα υποβολή σας θα βοηθήσει να ληφθεί μέριμνα για μελλοντικές αλλαγές στη δουλειά σας σύστημα ελέγχου πολύ πιο εύκολο να αντιμετωπίσουμε.

Περίληψη

Σε αυτό το section έχουμε εξετάσει σε ποιο ένα διακομιστή ελέγχου της εργασίας που πρέπει να κάνει και πώς να πάρει ένα πολύ βασικό σύστημα που έχει συσταθεί. Συζητήσαμε πώς να ανακτήσει μια εργασία από το σύστημα ελέγχου και τον καλύτερο τρόπο για να ρυθμίσετε θέσεις εργασίας για να αξιοποιήσετε στο έπακρο μας δίκτυο του γραφείου σας. Για να ολοκληρώσετε, μια παράγραφο ή δύο για την υποβολή των αποτελεσμάτων πίσω στο διακομιστή ελέγχου της εργασίας παρουσιάστηκε.

  • Ένας διακομιστής ελέγχου της εργασίας διαχειρίζεται θέσεις εργασίας και εξασφαλίζει ότι ολοκληρώνονται όλες οι υπηρεσιακές μονάδες
  • Με υδροληψίες δουλειά σας επιλογή / υποβολή αποτελέσματα μπορούμε να αλλάξουμε την τεχνολογία του διακομιστή ελέγχου χωρίς πολλά προβλήματα
  • Διαμόρφωση θέσεων εργασίας σας για να βεβαιωθείτε ότι είναι τρέχουν γρήγορα και αποτελεσματικά χωρίς βάζοντας πάρα πολλή πίεση σχετικά με την υποδομή του δικτύου σας, και χωρίς επικαλύψεις μεταποίηση καθήκοντα σε τακτική βάση.
  • Βεβαιωθείτε ότι έχετε χτίσει ανοχή λαθών και checking λάθος σε ρουτίνες σας, οι εργαζόμενοι μπορούν να αναστέλλουν και να επαναλαμβάνεται και το πιο ενοχλητικό φορές. Θυμηθείτε να ελέγξετε αν τα αποτελέσματα έχουν ήδη υποβληθεί από άλλον εργαζόμενο.

Την επόμενη φορά

Στο μέρος 3 θα δημιουργήσουμε μας μηχανή εικονικής επεξεργασία και δημιουργία μηχανές μας παράθυρα για να γίνει αδρανής απασχολουμένων εργαζομένων.

Γραφείο Grid Computing που χρησιμοποιούν εικονικά περιβάλλοντα - Μέρος 5

Με Steven Lloyd Watkin , Παρασκευή 4 Δεκέμβρη 2009 23:03

Εισαγωγή

Δουλεύω σε μια εταιρεία όπου θα τρέξει πολλές θέσεις εργασίας batch επεξεργασία εκατομμύρια αρχεία με τα δεδομένα κάθε μέρα και να έχω σκεφτεί πρόσφατα για όλες τις μηχανές που κάθονται κάθε μέρα να μην κάνουμε τίποτα για αρκετές ώρες. Δεν θα ήταν καλό αν μπορούσαμε να χρησιμοποιήσουν τις μηχανές αυτές για να ενισχύσει την επεξεργαστική ισχύ των συστημάτων μας; Σε αυτό το σύνολο των άρθρων Πάω να εξετάσουμε τα πιθανά οφέλη από την απασχόληση ενός γραφείου πλέγματος χρησιμοποιώντας εικονικοποιημένων περιβάλλοντα.

Στο Μέρος 4 κοιτάξαμε να χρησιμοποιεί εργαλεία για να διασφαλίσουμε ότι θα τρέχετε την πιο πρόσφατη έκδοση του και πηγές δεδομένων κώδικα έτσι ώστε λαμβανόμενα αποτελέσματα είναι πάντα ενημερωμένο με τις τελευταίες πληροφορίες των επιχειρήσεων και τη λογική.

Προ-Ανάπτυξη

Πριν από την εγκατάσταση δικτύου παροχής σας, αν υπάρχει ένα πράγμα που κάνεις και ένα πράγμα μόνο του είναι σημείο αναφοράς το σύστημά σας ρεύμα! Δεν έχει σημασία τι θα πείτε στους συναδέλφους σχετικά με το πόση επιπλέον εργασία σύστημά σας πρόκειται να κάνει εάν δεν έχετε αριθμούς να το υποστηρίζουν εγγυήσεις σας δεν είναι τίποτα. Έτσι,

  • πόσες εγγραφές μπορείτε να τη διαδικασία επί του παρόντος; Την ημέρα; Ανά ώρα;
  • Πόσος χρόνος χρειάζεται συνήθως να λάβει για να γυρίσει μια εργασία;
  • Πόσο μεγαλύτερη χωρητικότητα έχετε;

There's also additional questions:

  • Εάν η επεξεργασία server σας (ή σε μία από την επεξεργασία τους διακομιστές σας), κατεβαίνει το πώς αυτό θα επηρεάσει τις δυνατότητές σας, θα είστε ανάπηρος;
  • Τι πλεονεκτήματα έχετε ελπίδα / περιμένετε να πάρετε από ένα σύστημα δικτύου;
  • Οι μηχανές γραφείου σας που μπορούν να λειτουργούν οι θέσεις εργασίας;
  • Σας είναι (ή μπορεί να σας θέσεις εργασίας να μετατραπεί) να εργαστούν σε αυτό το ύφος της λειτουργίας;

The last major point is to take your time on any major change like this. Ενημέρωση επεξεργασία κωδικό σας στην εργασία χρησιμοποιώντας τη νέα μεθοδολογία, σημείο αναφοράς και πάλι. Ενδεχόμενη δημιουργία επεξεργασία server σας να τρέχει μια εικονική μηχανή, μετά από κάθε επεξεργασία server σας θα είναι ακριβώς ένα άλλο εργαζόμενο (μόνο ένα πολύ ισχυρό έναν σχετικά). Αφήστε τη νέα διαδικασία για τη διευθέτηση.

Ανάπτυξη

Η πρότασή μου θα ήταν να εμφανιστεί στο γραφείο ένα Σαββατοκύριακο να διενεργούν όλες τις εγκαταστάσεις και εγκατάστασης. Κάνετε αυτό ακριβώς πριν από δύο εβδομάδες διακοπών ένα και το αφήνουμε έτσι άλλες φτωχές σκάσιμο για την αντιμετώπιση των συνεπειών ... ίσως όχι ...

Ανάπτυξη ενός συστήματος όπως αυτό πρέπει να είναι αργή. Παρόλο που είναι σχετικά απλό να δημιουργηθεί αυτό το σύστημα θα επηρεάσει ολόκληρη την υποδομή του γραφείου σας (καθώς το ψηφιακό). Πρώτον, ανοίγουμε με ένα ζευγάρι των μηχανών σε μια στιγμή, την παρακολούθηση της κίνησης δικτύου, πώς οι οικοδεσπότες εργαζόμενος εκτελεί μία ημέρα σε καθημερινή βάση. Μπορεί να χρειαστεί να αλλάξει διαμόρφωση δουλειά σου σε απάντηση των διαπιστώσεων σας.

Όταν το σύστημα έχει διευθετηθεί με μερικές μηχανές (ας πούμε το 10% του συνόλου των μηχανών γραφείου, δηλαδή 5) να εξακολουθήσουν να ελέγχουν την κυκλοφορία του δικτύου και της χώρας υποδοχής performance. μηχανή Επόμενο σημείο αναφοράς και πάλι, θα πρέπει τώρα να μεταποίησης κατά 33% περισσότερες θέσεις εργασίας από την πρώτη αναφοράς σας. Ελέγξτε αυτό είναι έτσι, ή ότι είστε τουλάχιστον σε αυτό το γήπεδο. Αν όχι, να διερευνήσει τι συμβαίνει πριν προχωρήσουμε. Repeat this cycle until you happily have all office machines running without killing individual machine performance or grinding your network to a standstill.

Ανά πάσα στιγμή διατηρεί τη συγκριτική αξιολόγηση, ακόμη και μετά γίνονται όλα αναπτύξεις. Ελέγξτε πώς οι νέες ενημερώσεις κώδικα επηρεάζουν την ταχύτητα του συστήματός σας, ελέγξτε το σύνολο των εργαζομένων αναφέρουν στην επεξεργασία και την απασχόληση. Σιγά-σιγά (πολύ αργά) αύξηση διαμόρφωση δουλειά σας να πάρει το καλύτερο από τους εργαζόμενους και το δίκτυό σας.

Σταματήστε!

Τι και αν θέλετε να σταματήσετε τους εργαζομένους σας από το τρέξιμο σε κάποια χρονική στιγμή; Είναι όλα εκεί έξω τρέξιμο, αναγέννηση, και προσπαθώντας καλύτερο εαυτό τους για την επεξεργασία δεδομένων όπως πεινασμένο έντομα. Η απάντηση μπορεί να φαίνεται προφανής, αλλά αξίζει, προσθέτοντας μόνο στην περίπτωση του αγνοείται. Απλά να επεξεργαστείτε επεξεργασία της δέσμης ενεργειών σας με μια έξοδο (0) ή να πεθάνει () ή κάποια άλλη δήλωση για να σκοτώσει την επεξεργασία δουλειά σας. Ένας σημαντικός λόγος που πάντα προσπαθούμε να ενημερώσετε με την τελευταία επεξεργασία της δέσμης ενεργειών πριν από κάθε διαδρομή!

Επίδειξη Συστήματος

Για να γράψω αυτό το σύνολο των σύντομων άρθρων Δημιούργησα ένα πολύ μικρό πλέγμα για να αποδείξει τις τεχνολογίες και μεθοδολογίες. I read lots of articles, tutorials, and used various tools to setup and monitor what was going on. Με κανένα τρόπο δεν έχω πάει έξω και κορεσμένα σύνολο γραφείο με την κυκλοφορία και ούτε έχουν είχα πρόσβαση σε ένα κανονικό υπολογιστή μέλη του προσωπικού, για να δει πώς οι επιδόσεις υποδοχής έχει επηρεαστεί.

σύστημα επίδειξης μου ήταν πολύ ταπεινό πράγματι. Θα χρησιμοποιηθεί για κανονική επιφάνεια εργασίας μου που έχει συσταθεί ως διακομιστής ελέγχου της εργασίας. Σε αυτό το είχα εγκαταστήσει mySQL server έχει εγκατασταθεί συσταθεί ως master στην αντιγραφή, PHP , Β και SVN συνδέονται μεταξύ τους μέσω apache (για πρόσβαση μέσω εργαζόμενο VM).

Δημιούργησα στη συνέχεια μια CentOS μηχανή εργαζόμενος σε VirtualBox σε 6 χρόνια παλιό φορητό υπολογιστή Windows XP. Μπορώ να ρυθμίσω προγραμματισμένες εργασίες όπως καθορίζεται μετά την αντιγραφή του VM πάνω στο μηχάνημα και αφήστε το να πάει.

Η εικονική μηχανή συστάθηκε με την PHP, ανατροπής, και mySQL. Θα ελεγχθεί το υποκατάστημα που ονομάζεται «εργαζόμενος», από τους servers του δουλειά τον έλεγχο μου αποθετήριο και φρόντισε να μπορεί να ενημερώνεται με «ενημέρωση svn». Στη συνέχεια μπορώ να ρυθμίσω mySQL ως σκλάβος και να ελέγχεται ότι τα δεδομένα ήταν αντιγραφή από mySQL στο διακομιστή ελέγχου της εργασίας προς τα κάτω στο VM εργαζόμενο. Μετά από όλα αυτό το σκηνικό εγώ το σενάριο bash και την περιοδική εργασία.

My processing script basically went along the lines of this (very simple stuff):

  • Read in the name field
  • Συνυπολογίζονται στον αριθμό των παρόμοιων ονομάτων σε έναν πίνακα από την προέλευση δεδομένων που πραγματοποιήθηκε στο VM
  • Συνυπολογίζονται στον αριθμό των ονομάτων όπως παραπάνω, αλλά διάσπαση το όνομα τους με κενά (π.χ. όνομα, μεσαίο, επώνυμο)
  • Η επαναλαμβανόμενη αυτή τη διαδικασία 1.000 φορές

Κάθε δουλειά πήρε περίπου 20 λεπτά για να τρέξει. At one point I opened several copies of the worker VM on the windows laptop and watched the jobs be checked off by each of the worker IP addresses. At this point I also confirmed that replication automatically restarted.

Leaving the laptop to idle resulted in a worker starting to process jobs from the job control server. Κατά την επανέναρξη της χρήσης φορητού υπολογιστή υπήρξε μια καθυστέρηση περίπου 30-60 δευτερόλεπτα, αυτό είναι ένα δίκαιο ποσό του χρόνου και το προσωπικό θα πρέπει να συνειδητοποιήσουν ότι η συσκευή τους μπορεί να σταματήσει για λίγο όταν επιστρέψει στο μηχάνημα. Νεότερες μηχανήματα δεν μπορούν να έχουν μια παύση αυτής της μακροχρόνιας. Το όφελος από το ποσό της μεταποίησης που πραγματοποιούνται από αυτές τις μηχανές κατά τη διάρκεια περιόδων αδράνειας θα ήταν περισσότερο ότι υπερισχύουν τα μέλη του προσωπικού να πρέπει να περιμένουν μια σύντομη περίοδο (δηλαδή 1 λεπτό) κατά την είσοδό του μηχανές τους από μια πρωινή (Ι συχνά περιμένει περισσότερο ότι αυτό για το Windows Defender ενημέρωση θα λάβει χώρα), εφόσον είχαν ενημερωθεί γι 'αυτό (χρήσιμο χρόνο για να πάρετε έναν καφέ το πρωί!).

Overall I feel confident that I have demonstrated the technologies that could be used to create such a system. Έχω δείξει ότι ένα τέτοιο σύστημα να λειτουργήσει σε ένα (πολύ) μικρής κλίμακας και με κάποιες πιο πειραματίζονται θα μπορούσαν να αναβαθμιστούν χρήση των πόρων των μηχανών γραφείου του. Αν δεν φτάσουμε στο σημείο για να γίνει αυτό, θα με ενδιέφερε πολύ να μάθω / δείτε πότε κάποιος άλλος κάνει.

Συμπεράσματα / Αξιολόγηση

Το επόμενο προφανές βήμα θα ήταν να πάρετε πραγματικά ένα πραγματικό παγκόσμιο παράδειγμα και να αρχίσει να αναπτύξει ένα σύστημα όπως αυτό μέσα σε ένα περιβάλλον γραφείου και να δούμε τι θα συμβεί. Ζητώντας μια επιχείρηση να δεσμευτούν σε αυτό χωρίς ένα ίχνος blazing εταιρεία να αποδείξει την τεχνολογία και την αποτελεσματικότητα μπορεί να είναι λίγο δύσκολο. Grid / Κατανεμημένοι υπολογισμοί είναι πολύ δημοφιλές είναι κάποιους κύκλους και έχει μερικές μεγάλες εφαρμογές (BIONC, SETI @ Home, Folding @ Home, κλπ). Δεν το έκανα, ωστόσο, να βρουν και σε μικρότερη κλίμακα και απλό σύστημα σαν αυτό στις αναζητήσεις μου, που θα μπορούσε να ξεδιπλώσει μέσα σε ένα περιβάλλον γραφείου.

Δημιούργησα ένα βασικά ελεύθερο σύστημα που χρησιμοποιεί ως επί το πλείστον λογισμικό ανοικτού κώδικα και εργαλεία που είναι διαθέσιμα σχεδόν σε κάθε γραφείο. Οι τεχνολογίες που ήταν κατά βάση θα επιδεικνύονται και θα δείτε να εκτελεί και να λειτουργούν όπως αναμένεται. Ας ελπίσουμε ότι έχω αποδείξει ότι δεν με πολύ δουλειά και με μια πολύ απλή εγκατάσταση, μπορείτε να αναπτύξετε ένα δίκτυο γραφείων υπολογιστικό σύστημα που είναι ισχυρό, φθηνή, Β και κλιμακούμενη όλοι την ίδια στιγμή.

Once a system is up and running there is almost no end to the amount of customisation and improvements you can make. Για παράδειγμα, στατιστικές / συγκριτική αξιολόγηση μπορούν εύκολα να προστεθούν δείχνει την αξία ενός τέτοιου συστήματος κάθε μέρα. Νέες μηχανές μπορεί να προστεθεί εύκολα και γρήγορα, όπως και όταν φτάσουν με αναβαθμίσεις υφιστάμενων hardware ενίσχυση επεξεργαστική ισχύ σας.

Ελπίζω έχετε απολαμβάνουν την ανάγνωση αυτής της σειράς άρθρων και του έδωσα τροφή για σκέψη σχετικά με τη λειτουργία μιας δίκτυο γραφείου. Η λύση που παρουσιάζεται εδώ δεν θα είναι αναγκαστικά εργάζονται σε όλες τις καταστάσεις, αλλά θα πρέπει να προσαρμόζεται ώστε να μπορείτε να πάρετε τα δεδομένα σας μεταποιήσεις που πραγματοποιούνται χρησιμοποιώντας τη δική σας λύση.

Διστάσετε να μου στείλετε τυχόν παρατηρήσεις, διορθώσεις, ή βελτιώσεις και εγώ θα κάνω ότι καλύτερο μπορώ για να κρατήσει αυτό το άρθρο ενημερωθεί ώστε να ταιριάζουν.













Πανόραμα Θέμα από Themocracy

4 επισκέπτες online τώρα
1 επισκέπτες, 3 bots, 0 μέλη
Max visitors today: 11 at 12:56 am UTC
Αυτό το μήνα: 22 στις 06/08/2011 12:30 π.μ. UTC
Αυτό το έτος: 130 στις 28-03-2011 22:40 UTC
Όλες οι εμφανίσεις: 130 στις 28-03-2011 22:40 UTC