Τι είναι η στοίβα μηχανικής; + Παράδειγμα

Τι είναι η στοίβα μηχανικής; + Παράδειγμα
Anonim

Η σύντομη απάντηση είναι ότι χρησιμοποιούμε Flask για Python στο backend, backbone για Javascript στο front-end και αποθηκεύουμε τα δεδομένα μας σε MongoDB, Redis και ElasticSearch. Είμαστε φιλοξενούμενοι στο AWS.

Τι είναι μια στοίβα;

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

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

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

Η (σχεδόν) πλήρη στοίβα μας

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

  • Backbone για την οργάνωση του Javascript
  • Πυξίδα για επαναχρησιμοποίηση και οργάνωση του CSS
  • Flask, ένα πλαίσιο Python που εξυπηρετεί το JSON + HTML API και για την απόδοση πλήρων σελίδων HTML
  • πυρήνες για τις ουρές εργασιών μας (πιθανώς Σέλιρα σύντομα)
  • MongoDB για την αποθήκευση των δεδομένων μας (πιθανώς Postgres σύντομα)
  • Redis για να αποθηκεύσετε κρυφά τα πράγματα όπως οι ροές γύρω από τον ιστότοπο, τα ερωτήματα που αφορούν τις τάσεις και τα στατιστικά στοιχεία κάθε χρήσης
  • ElasticSearch to power search
  • Nginx για να εξυπηρετήσει τον ιστότοπο
  • Grunt για να μειώσουμε, να συμπιέσουμε και να αναθεωρήσουμε το Javascript και το CSS
  • Capistrano να αναπτύξει την εφαρμογή μας και να εκτελέσει μερικές άλλες χρήσιμες εργασίες
  • Puppet για να ρυθμίσετε το λογισμικό που χρειαζόμαστε σε νέους διακομιστές

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

  • AWS γνωστές ως Amazon Web Services για να φιλοξενήσουν τους διακομιστές μας, στατικά στοιχεία ενεργητικού και ως CDN
  • Cloudflare για DNS, προσωρινή αποθήκευση και κάποιο επίπεδο ασφάλειας
  • Google Analytics και Mixpanel για αναλύσεις
  • Papertrail για κεντρική καταγραφή
  • Sentry για τον εντοπισμό σφαλμάτων στην πλευρά του πελάτη
  • DataDog για την παρακολούθηση των διακομιστών και των υπηρεσιών μας
  • Νέο Relic για την παρακολούθηση της απόδοσης της εφαρμογής Flask
  • Customer.io για να στείλετε μηνύματα ηλεκτρονικού ταχυδρομείου με βάση το τι κάνετε ή δεν κάνετε στην εφαρμογή
  • Github για τη συνεργασία κώδικα και τη φιλοξενία

Και πιθανώς πολλοί άλλοι.

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