Ανάπτυξη

Παράρτημα 2.5

Μεταφρασμένο Ποσοστό

Σε αυτό το κεφάλαιο θα:

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

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

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

    Παρουσιάζοντας τα Παραρτήματα

    Αυτό το κεφάλαιο είναι ένα παράρτημα. Τα παραρτήματα εμβαθύνουν σε ενότητες ανεξάρτητα από το υπόλοιπο βιβλίο.

    Συνεπώς, αν προτιμάτε να συνεχίσετε με την κατασκευή του Microscope, μπορείτε να παραλείψετε από το κεφάλαιο και να επιστρέψετε αργότερα.

    Ανάπτυξη στο Meteor.com

    Η ανάπτυξη σε υποτομέα (subdomain) του Meteor.com (πχ http://myapp.meteor.com) είναι η πιο εύκολη επιλογή, και η πρώτη που θα δοκιμάσουμε. Μπορεί να σας φανεί χρήσιμο για να δείξετε την εφαρμογή σας σε άλλους σε πρώιμα στάδια, ή αν θέλετε μια γρήγορη και πρόχειρη λύση.

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

    meteor deploy myapp.meteor.com
    

    Φυσικά, θα πρέπει να αντικαταστήσετε το “myapp” με ένα όνομα της επιλογής σας, το οποίο δεν χρησιμοποιείται ήδη.

    Αν είναι η πρώτη φορά που αναπτύσσετε μια εφαρμογή, θα σας ζητηθεί να δημιουργήσετε ένα λογαριασμό Meteor. Αν όλα πάνε καλά, σε μερικά δευτερόλεπτα θα μπορείτε να δείτε την εφαρμογή σας στο http://myapp.meteor.com.

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

    Ανάπτυξη στο Modulus

    Το Modulus είναι μια πολύ καλή επιλογή για την ανάπτυξη εφαρμογών Node.js. Είναι από τους λίγους παρόχους PaaS (platform-as-a-service, πλατφόρμα ως υπηρεσία) που υποστηρίζουν επίσημα το Meteor, και υπάρχουν ήδη αρκετοί χρήστες που το χρησιμοποιούν για την ανάπτυξη των εφαρμογών τους σε επίπεδο παραγωγής (production level).

    Demeteorizer

    Modulus open-sourced a tool called demeteorizer which converts your Meteor app into a standard Node.js app. Το Modulus παρέχει ένα εργαλείο ανοιχτού κώδικα το οποίο ονομάζεται demeteorizer και μετατρέπει την Meteor εφαρμογή σας σε τυπική εφαρμογή Node.js.

    Ξεκινήστε δημιουργώντας ένα λογαριασμό. Για να αναπτύξετε την εφαρμογή σας στο Modulus θα χρειαστεί να εγκαταστήσετε το εργαλείο γραμμής εντολών του Modulus.

    npm install -g modulus
    

    Και στη συνέχεια πρέπει να ταυτοποιηθείτε πληκτρολογώντας:

    modulus login
    

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

    modulus project create
    

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

    Μόλις δημιουργήσουμε την βάση δεδομένων μας, μπορούμε να βρούμε το MONGO_URL της από τον πίνακα ελέγχου του Modulus (Dashboard > Databases > Select your database > Administration) και να ρυθμίσουμε την εφαρμογή μας ως εξής:

    modulus env set MONGO_URL "mongodb://<user>:<pass>@mongo.onmodulus.net:27017/<database_name>"
    

    Τώρα ήρθε η ώρα να αναπτύξουμε την εφαρμογή μας:

    modulus deploy
    

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

    Meteor Up

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

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

    Πριν από οτιδήποτε άλλο, θα χρειαστούμε ένα διακομιστή. Σαν πάροχο προτείνουμε είτε το Digital Ocean με κόστος που ξεκινά από $5 το μήνα, είτε το AWS που προσφέρει δωρεάν Micro instances (θα συναντήσετε γρήγορα περιορισμούς αλλά προς το παρόν είναι αρκετό για να δοκιμάσουμε το Meteor Up).

    Όποιο πάροχο και να επιλέξετε, θα χρειαστείτε τρία πράγματα: τη διεύθυνση IP του διακομιστή σας, το όνομα χρήστη (συνήθηως root ή ubuntu), και τον κωδικό πρόσβασης. Φυλάξτε αυτά τα στοιχεία με ασφάλεια, θα τα χρειαστείτε σύντομα!

    Αρχικοποίηση του Meteor Up

    Για να ξεκινήσουμε, θα χρειαστεί να εγκαταστήσουμε το Meteor Up μέσω του npm ως εξής:

    npm install -g mup
    

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

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

    Ας δημιουργήσουμε λοιπόν αυτό το φάκελο και ας αρχικοποιήσουμε τις ρυθμίσεις του Meteor Up:

    mkdir ~/microscope-deploy
    cd ~/microscope-deploy
    mup init
    

    Μοιραστείτε με το Dropbox

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

    Meteor Up Configuration

    Κατά την αρχικοποίηση μιας εφαρμογής το Meteor Up δημιουργεί δύο αρχεία: mup.json και settings.json.

    Το mup.json περιέχει όλες τις ρυθμίσεις σχετικά με την ανάπτυξη, ενώ το settings.json περίεχει όλες τις ρυθμίσεις σχετικά με την εφαρμογή (OAuth tokens, analytics tokens, κλπ).

    Το επόμενο βήμα είναι να ρυθμίσετε το αρχείο mup.json. Αυτό είναι το mup.json που δημιουργείται από την εντολή mup init, και το μόνο που πρέπει να κάνετε είναι να συμπληρώσετε τα κενά:

    {
      //server authentication info
      "servers": [{
        "host": "hostname",
        "username": "root",
        "password": "password"
        //or pem file (ssh based authentication)
        //"pem": "~/.ssh/id_rsa"
      }],
    
      //install MongoDB in the server
      "setupMongo": true,
    
      //location of app (local directory)
      "app": "/path/to/the/app",
    
      //configure environmental
      "env": {
        "ROOT_URL": "http://supersite.com"
      }
    }
    
    mup.json

    Ας δούμε τις παραπάνω ρυθμίσεις ξεχωριστά.

    Server Authentication (Ταυτοποίηση Διακομιστή)

    Προσέξτε ότι το Meteor Up υποστηρίζει ταυτοποίηση τόσο μέσω κωδικού πρόσβασης όσο και μέσω προσωπικού κλειδιού (PEM), οπότε μπορείτε να το χρησιμοποιήσετε με σχεδόν όλους τους παρόχους.

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

    MongoDB Configuration (Ρύθμιση MongoDB)

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

    Αν επιλέξατε το Compose, ορίστε την παράμετρο setupMongo ως false και προσθέστε τη μεταβλητή περιβάλλοντος MONGO_URL στο τμήμα env του αρχείου mup.json. Αν επιλέξατε να χρησιμοποιήσετε τοπική εγκατάσταση του MongoDB, ορίστε την παράμετρο setupMongo ως true και το Meteor Up θα φροντίσει τα υπόλοιπα.

    Meteor App Path (Διαδρομή Εφαρμογής Meteor)

    Εφόσον τα αρχεία ρυθμίσεων του Meteor Up βρίσκονται σε διαφορετικό φάκελο, θα πρέπει να επισημάνουμε στις ρυθμίσεις τη διαδρομή στην οποία βρίσκεται η εφαρμογή μας. Χρησιμοποιείστε την πλήρη διαδρομή, την οποία μπορείτε να βρείτε πληκτρολογώντας στο παράθυρο τερματικού την εντολή pwd από το φάκελο της εφαρμογής (πχ /home/user/app).

    Environment Variables (Μεταβλητές Περιβάλλοντος)

    Μπορείτε να ορίσετε όλες τις εφαρμογές περιβάλλοντος της εφαρμογής σας (όπως ROOT_URL, MAIL_URL, MONGO_URL, κλπ) μέσα στο τμήμα env του αρχείου mup.json.

    Ρύθμιση και Ανάπτυξη

    Προτού μπορέσουμε να αναπτύξουμε την εφαρμογή μας, θα πρέπει να ρυθμίσουμε το διακομιστή για να είναι έτοιμος να εκτελέσει εφαρμογές Meteor. Το Meteor Up πραγματοποιεί μαγικά όλη αυτή την περίπλοκη διαδικασία με μια μόνο εντολή!

    mup setup
    

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

    mup deploy
    

    Αυτή η εντολή θα ετοιμάσει την εφαρμογή Meteor και θα την αναπτύξει στον διακομιστή που μόλις ρυθμίσαμε.

    Εμφάνιση Αρχείων Καταγραφής

    Τα αρχεία καταγραφής είναι πολύ σημαντικά και το Meteor Up παρέχει ένα πολύ εύκολο τρόπο ανάγνωσής τους εξομοιώνοντας την εντολή tail -f. Απλά πληκτρολογήστε:

    mup logs -f
    

    Με αυτά ολοκληρώσαμε την επισκόπηση του Meteor Up. Για περισσότερες πληροφορίες προτείνουμε να επισκεφτείτε το Meteor Up’s GitHub repository.

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