Κατηγορία: Άρθρα

OAuth / Twitter Auth Προσαρμογέας για Zend-πλαίσιο

Με , Σάββατο 23 Απριλίου 2011 15:57

Συνεχίζονται οι εργασίες (αργά) για τα νέα μου Twitter -based εφαρμογή. Κατά τη διάρκεια των επόμενων δύο αργίες Ελπίζω να πάρει την ορμή και πάλι για το έργο (σε-παρά τις υπέροχες καιρικές συνθήκες προς το παρόν). Τέλος πάντων, επόμενος στόχος μου ήταν να δημιουργήσει έναν προσαρμογέα ταυτότητας για την Zend-πλαίσιο . Είχα μια εργασία υλοποίηση σύνδεσης, αλλά με μια σταγόνα στον Auth προσαρμογέα για Zend-πλαίσιο φαινόταν σαν μια ελκυστική πρόταση, γι 'αυτό το δημιούργησε ....

(Είμαι δεν πρόκειται να περάσει από OAuth ή την καταχώρηση της αίτησής σας με το Twitter, υπάρχει εκατοντάδες οδηγούς και του αρκετά απλή διαδικασία ούτως ή άλλως.)
Συνέχεια 'OAuth / Twitter Auth Προσαρμογέας για Zend-πλαίσιο «ανάγνωση»

"Σύνδεση με το Twitter" που χρησιμοποιούν Zend-πλαίσιο

Με , είμαι Πέμπτη 17 Μαρ 2011 1:07

Παρ 'όλες τις μίσος twitter αυτή τη στιγμή, έχω έθεσε ως στόχο να δημιουργήσει μια νέα twitter -based εφαρμογή. Όντας κάποιος που διαχειρίζεται περισσότερους από έναν λογαριασμούς (τόσο σε προσωπικό όσο και για το φιλανθρωπικό έργο μου) έχω να χρειάζεται ένα εργαλείο για λίγο ότι είμαι απλώς να πάρει γύρω στο γράψιμο (περισσότερα από ότι στο εγγύς μέλλον ...).

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

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

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

Συνέχεια ανάγνωση "Σύνδεση με το Twitter» με τη χρήση Zend-πλαίσιο »»

Zend Certified Engineer (ZCE) 5.3

Με , Πέμπτη 30 Σεπ. 2010 21:00

Με την επίσημη κυκλοφορία του Zend Certified Engineer (ZCE) πρόγραμμα για 5,3 σκέφτηκα ότι θα δώσει γρήγορη εντύπωση μου για το τι σκέφτηκα της εξέτασης.

Ένα μικρό ιστορικό για τον εαυτό μου: I εισήχθη για πρώτη φορά σε PHP περίπου 7 χρόνια και έχουν εργαστεί επαγγελματικά στην PHP από το 2006. Εγώ σήμερα το έργο για ένα συναρπαστικό εκκίνησης ονομάζεται Brightpearl με έδρα το Μπρίστολ, Ηνωμένο Βασίλειο , που παράγουν ολοκληρωμένο CRM, λογιστικής, και ηλεκτρονικού εμπορίου λογισμικού. Δεν έχουν λάβει προηγουμένως κανένα από τα προηγούμενα προσόντα ZCE. Έχω σήμερα την ανάπτυξη στην 5.2.X σειρά και δεν έχουν χρησιμοποιήσει πραγματικά καμία από τις ειδικές 5,3 χαρακτηριστικά (Είμαι σε αναμονή για Zend-πλαίσιο 2 και Δόγμα 2) σε αναπτυξιακά προγράμματα μου.
Συνέχεια 'Zend Certified Engineer (ZCE) 5.3 «ανάγνωση»

Γρήγορη symfony DI Έναρξη (Injection εξάρτηση) Tutorial

Με , Σάββατο 14 Αύγ. 2010 14:21

Τι είναι η εξάρτηση Injection (DI);

Ένεση Εξάρτηση είναι μια τεχνική που επιτρέπει την χαλαρά συνδεδεμένες αντικειμένων στο εσωτερικό μιας εφαρμογής λογισμικού. Σε γενικές γραμμές, εάν ένα αντικείμενο απαιτεί την πρόσβαση στις λειτουργίες του άλλου, θα ήταν αρχικοποιείται στο εσωτερικό που οδηγεί σε στενά συνδεδεμένες συστήματα. Με την εφαρμογή ένεση εξάρτηση έχουμε ένεση από τα αντικείμενα που διατίθενται προς χρήση (μερικές φορές αναφέρεται επίσης αντιστροφή του ελέγχου - IOC). Πάρτε το ακόλουθο παράδειγμα:

  <? Php
 class DecisionMaker {
     δημόσια makeDecision λειτουργία (array $ παραμέτρων) {
         / / Ανάγκη τον προσαρμογέα βάσης δεδομένων
         $ Dp = νέα DecisionParameters ()?
         $ ParameterScore = $ DP-> getScore ($ παράμετροι)?
         / * ...  Κάποιοι πιο λογική απόφαση ...  * /
         επιστροφή ($ parameterScore> 50)?
     }
 } 

Αυτό το κομμάτι του κώδικα λέγεται ότι είναι στενά συνδεδεμένες με το αντικείμενο DecisionParameters. Ξαναγράφοντας το παραπάνω σε ένα χαλαρά συνδεδεμένες τρόπο θα είχαμε κάτι σαν ....

  <? Php
 class DecisionMaker {
     ιδιωτική $ _dp?
     δημόσια λειτουργία __construct ($ DP) {
         $ This-> _dp = $ dp?
     }
     δημόσια makeDecision λειτουργία (array $ παραμέτρων) {
         $ ParameterScore = $ this-> _dp-> getScore ($ παράμετροι)?
         / * ...  Κάποιοι πιο λογική απόφαση ...  * /
         επιστροφή ($ parameterScore> 50)?
     }
 } 

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

  $ Επιλογή = νέα DecisionMaker ()?
 echo $ επιλογή-> makeDecision (array ('προσπάθεια' => 'χαμηλά', 'επιστροφή' => 'υψηλά'))? 

τώρα γίνεται:

  $ Dp = νέα DecisionParameters ()?
 $ Επιλογή = νέα DecisionMaker ($ DP)?
 echo $ επιλογή-> makeDecision (array ('προσπάθεια' => 'χαμηλά', 'επιστροφή' => 'υψηλά'))? 

Η κατάσταση αυτή γίνεται όλο και πιο επώδυνη, όπως τον αριθμό των εξαρτήσεων για μια τάξη είναι αυξημένη, και τι θα γίνει αν οι εξαρτήσεις ίδιοι οι εξαρτήσεις; Αυτό μπορεί πολύ γρήγορα γίνει εφιάλτης διοίκηση αντικείμενο! Εισάγετε δοχεία ένεση εξάρτησης (ή πλαίσια) ...
Συνέχεια ανάγνωση "Quick symfony Έναρξη DI (Injection εξάρτηση) Tutorial '»

Γυμνή Zend_Layout και Zend_View

Με , Τρίτη 10 Αυγούστου του 2010 23:47

Σε αυτό το άρθρο θα εξετάσουμε τη χρήση Zend_Layout και Zend_View μαζί με ένα απλό χειριστήριο μπροστά για να δείξει πώς είναι δυνατό να ξεκινήσει το διαχωρισμό επιχειρηματική λογική και την παρουσίασή του στο πλαίσιο της αίτησής σας. Όλος ο κώδικας είναι διαθέσιμος σε github:
Γυμνή Zend_Layout και Zend_View σε GitHub .

Συνέχεια 'Naked Zend_Layout και Zend_View «ανάγνωση»

Zend-πλαίσιο για κάθε ενότητα Ρυθμίσεις Διάταξη - Παρακολούθηση

Με , Τρίτη 16 Φεβρουαρίου 2010 20:48

Ως συνέχεια στην προηγούμενη θέση μου σχετικά με ανά μονάδα με βάση τις ρυθμίσεις διάταξης για την Zend-πλαίσιο , έχω ενημερώσει τον κώδικα που θα απαιτούν λιγότερη ρύθμιση, στη συνέχεια, πριν από (όχι ότι απαιτείται περισσότερο από μερικές γραμμές στην διαμόρφωση της εφαρμογής σας!).
Συνέχεια ανάγνωση "Zend πλαισίου ανά Ρυθμίσεις Διάταξη Ενότητα - Παρακολούθηση» »

Δημιουργία URL στο Zend Προσαρμοσμένη προβολή Helper

Με , Πέμπτη 28 Ιαν 2010 23:01

Αυτό μπορεί να φαίνεται απλό, αλλά ήμουν χτυπάς το κεφάλι μου, προσπαθώντας να δημιουργήσουμε ένα URL σε μια προσαρμοσμένη αρωγός θέα στο Zend-πλαίσιο . Έχω δρομολόγησης εγκατάσταση η οποία παίρνει τη μονάδα από το sub-domain σε χρήση γι 'αυτό δεν θα μπορούσε να χρησιμοποιήσει μια απλή hardcoded URL.

Συνέχεια 'Δημιουργία URL στο Zend Προσαρμοσμένη προβολή Helper "ανάγνωση»

Αιτήματα διαδρομή για sitemap.xml στην προσαρμοσμένη ελεγκτή / δράση

Με , Τετάρτη 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
 {
     / **
      * Αποδίδει ένα sitemap με βάση εγκατάστασης Zend_Navigation
      * /
     δημόσια sitemapAction λειτουργία ()
     {
    	 echo $ this-> view-> πλοήγησης () -> sitemap ()?
    	 $ This-> Προβολή-> Διάταξη () -> disableLayout ()?
    	 $ This-> _helper-> viewRenderer-> setNoRender (αλήθεια)?
     }
 }

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

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

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

Εισαγωγή

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

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

Τρέξιμο τις τελευταίες κώδικα

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

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

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

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

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

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

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

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

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

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

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

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

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

Περίληψη

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

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

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

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

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

Εισαγωγή

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

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

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

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

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

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

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

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

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

Τρόπος εκτέλεσης των θέσεων εργασίας των εργαζομένων

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

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

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

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

Bash script μου φαίνεται κάτι σαν το παρακάτω:

  #! / Bin / sh
 αν ps ax | grep-v grep | grep php> / dev / null
 τότε
     echo "θέσεων εργασίας είναι επί του παρόντος την επεξεργασία, την έξοδο"
 αλλού
     echo "Ιώβ δεν εκτελείται, ξεκινήστε τώρα"
     php yourJobProcessingScript.php
 fi 

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

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

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

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

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

Ωστόσο, για να τρέξει το script σε μια «ακέφαλο» κράτος θα πρέπει να χρησιμοποιήσετε:

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

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

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

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

Στη συνέχεια κάντε κλικ στο «Προσθήκη προγραμματισμένης εργασίας», ακολουθούμενη από περιηγηθείτε για να προσθέσετε ένα προσαρμοσμένο πρόγραμμα. Πλοηγηθείτε στο script VBoxManage σας και κάντε κλικ στο ΟΚ. Προγραμματίστε την εργασία σας για οποιαδήποτε από τις επιλογές (θα το αλλάξετε αυτό σε ένα λεπτό) και να συνεχίσει. Μετά από παρακάμπτοντας την επόμενη οθόνη των Windows θα σας ρωτήσει που θέλετε να εκτελέσετε αυτή την εργασία, θα πρότεινα είτε «διαχειριστή» ή τη δημιουργία ενός νέου προνομιακή χρήστη. Να θυμάστε ότι δεν θέλουμε να παρεμβαίνουν με το πρότυπο προσωπικό λογαριασμό στο μηχάνημα σε οποιοδήποτε σημείο. Κάντε κλικ στο επόμενο και ελέγχου Εμφάνιση προηγμένες επιλογές για το έργο αυτό.

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

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

πρόγραμμα

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

Περίληψη

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

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

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













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

7 επισκέπτες online τώρα
5 επισκέπτες, 2 bots, 0 μέλη
Max επισκέπτες σήμερα: 17 στις 04:02 π.μ. UTC
Αυτό το μήνα: 19 στις 19-08-2011 06:09 π.μ. UTC
Αυτό το έτος: 130 στις 28-03-2011 22:40 UTC
Όλα ώρα: 130 στις 28-03-2011 22:40 UTC