ΑΡΧΕΙΟ ΕΝΑΡΞΗΣ

Μια εξήγηση για το Technical Stack και τον τρόπο επιλογής του σωστού

Το Technical Stack εμφανίζεται σε όλες τις πλατφόρμες και αναφέρεται από όλους τους προγραμματιστές.

Φωτογραφία από τον Vadim Sherbakov στο Unsplash

Ας κάνουμε μια αναζήτηση ή συμμετέχουμε σε μια διάσκεψη σχετικά με την ανάπτυξη λογισμικού ή DevOps, παίρνουμε πολλά αποτελέσματα με φράσεις: LAMP στοίβα, MEAN στοίβα, MERN στοίβα, ... Κατά την πρώιμη φάση της κατασκευής προϊόντων, οι άνθρωποι αναφέρουν επίσης τη σημασία της επιλογής της σωστής τεχνικής στοίβας . Τι σημαίνει αυτό και γιατί είναι σημαντικό;

Τι είναι το Stack;

Υπενθύμισα τις πρώτες μέρες που εργάζονταν για μια εταιρεία, ήταν τόσο συναρπαστικό κατά τη δημιουργία του πρώτου έργου, την πρώτη φορά που άκουσα για τους τόνους των νέων όρων: Vagrant, Symfony, Nginx, Load Balancing, CI Runners, ... " πράγματα σε ένα έργο! ", ήμουν ενθουσιασμένος. Ποτέ δεν είχα ακούσει γι 'αυτούς πριν από τη στιγμή που είμαι αυτοδίδακτος, δεν ήρθα στα σχολεία ούτε έχω φίλους στο δίκτυό μου. Μετά από να δουλέψω για λίγο, συνειδητοποίησα τον συνδυασμό αυτού που ανέφερα, ονομάζεται τεχνική στοίβα. Ένα πλήρως τρέξιμο σύστημα δεν περιέχει μόνο κώδικες, αλλά και λειτουργικό σύστημα και απαιτούμενο λογισμικό όπως web server, βάση δεδομένων, ... Συγκροτούμε αυτά τα μέρη, όπως παίζοντας το Lego, σε μια στοίβα.

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

Πώς μοιάζει με μια στοίβα;

Υπάρχουν κοινά στοιχεία σε μια στοίβα και κάθε στοιχείο παίζει έναν συγκεκριμένο ρόλο:

  • Λειτουργικό σύστημα
  • Διακομιστή HTTP
  • Διακομιστή βάσης δεδομένων
  • Γλώσσα πλευράς διακομιστή

Για παράδειγμα, μια στοίβα LAMP περιλαμβάνει:

  • Linux
  • Απάχης
  • MySQL ή MariaDB
  • PHP ή Python

Η παραπάνω εικόνα εξηγεί μια απλή λειτουργία εφαρμογής ιστού. Πείτε μια στοίβα LAMP, ο διακομιστής εκτελεί λειτουργικό σύστημα Linux, το Apache παίζει ως διακομιστή HTTP. Όταν ο χρήστης στείλει ένα αίτημα, ο διακομιστής HTTP επικυρώνει και παραδίδει το αίτημα στον διακομιστή App, στην περίπτωση αυτή είναι PHP. Η εφαρμογή μπορεί να ανακτήσει δεδομένα από βάση δεδομένων, MySQL, και να επιστρέψει την απάντηση σε μορφή JSON / XML / HTML.

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

Πώς να επιλέξετε τη σωστή στοίβα;

Συνήθως εξαρτάται από το επίπεδο, την εξοικείωση της ομάδας. Εάν οι συμπαίκτες σας συνηθίσουν να αναπτύσσουν PHP, η στοίβα LAMP είναι η καλύτερη επιλογή. Αν είναι καταρτισμένοι στο ASP.NET, ίσως θέλετε το οικοσύστημα της Microsoft.

Το Slack χρησιμοποιεί επίσης LAMP. (Πηγή)

Μερικές φορές, μια στοίβα επιλέγεται με βάση την ανάπτυξη των εταιρειών. Το Twitter είναι ένα καλό παράδειγμα, η εταιρεία χρησιμοποίησε την Ruby on Rails στην αρχή, αλλά ανακοίνωσε την επανεγγραφή σε Java / Scala το 2010 για να χειριστεί μεγαλύτερη κίνηση.

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

Οι δημοφιλείς στοίβες

LAMP στοίβα

Η πιο δημοφιλής στοίβα που χρησιμοποιείται από τους περισσότερους ιστότοπους. Περιέχει: Linux, Apache, MySQL, PHP / Python / Perl. Καλά γνωστά CMS όπως το Wordpress, το Drupal τρέχουν στην ίδρυση αυτής της στοίβας.

Εικόνα από την DigitalOcean.

Το μεγάλο πράγμα κατά τη χρήση LAMP είναι όλα τα συστατικά του είναι ανοιχτές πηγές, μπορείτε εύκολα να λάβετε βοήθεια από τη μεγάλη κοινότητα, και το Linux server είναι προσιτό.

Υπάρχουν ορισμένες παραλλαγές αυτής της στοίβας:

  • MAMP - MacOS
  • WAMP - Windows
  • XAMPP - Cross-πλατφόρμα
  • LEMP - Αντικαταστήστε το Apache με Nginx

MEAN στοίβα

Ένα από τα πιο γνωστά στοίβα τα τελευταία χρόνια, περιλαμβάνει: MongoDB, Express, γωνιακή, NodeJS. Μια άλλη παραλλαγή είναι το MERN, αντικαθιστώντας το Angular με το React.

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

Παρόμοια με τη στοίβα LAMP, όλα τα μέρη αυτής της στοίβας είναι δωρεάν, το πιο συναρπαστικό είναι ότι μπορείτε να δημιουργήσετε ολόκληρη την εφαρμογή χρησιμοποιώντας μόνο Javascript, τόσο για back-end όσο και για front-end, εξοικονομώντας χρόνο και προϋπολογισμό.

Δομή WISA

Αυτή η στοίβα περιέχει: Windows, IIS, SQL Server, ASP.NET. Όλα χαλάω τη Microsoft!

Το WISA χρησιμοποιείται ως επί το πλείστον από μεγάλες επιχειρήσεις, λόγω δαπανηρής αμοιβής άδειας (Visual Studio, Windows, SQL Server, ...). Τα πλεονεκτήματα είναι η ταχεία ανάπτυξη και συντηρησιμότητα. C # είναι μια αρκετά στερεά γλώσσα, ASP.NET είναι ένας καλός συνεργάτης με τον SQL Server και η Microsoft μας δίνει πολλά χρήσιμα εργαλεία. Είναι ακριβώς όπως εσείς είστε premium παίκτης παιχνιδιών.

Ωστόσο, το C # τώρα γίνεται γλώσσα ανοιχτού κώδικα. Υπάρχει το Visual Studio για Mac, το .NET Core γεννήθηκε, ο SQL Server κυκλοφόρησε για το Linux και στο μέλλον ίσως είμαστε σε θέση να τρέξουμε μια στοίβα Microsoft στο Linux;

Τα τελευταία μου λόγια

Κάθε προγραμματιστής έχει τη δική του αγαπημένη τεχνική στοίβα. Δεν υπάρχει σωστό ή λάθος, εξαρτάται από πολλούς παράγοντες: προϋπολογισμός, εξοικείωση, αγορά, περιβάλλον, προθεσμία ... Δεν υπάρχει επίσης περιορισμός για τα στοιχεία σε μια στοίβα, όπως μπορείτε να αντικαταστήσετε την MySQL στο LAMP με PostgreSQL. Έτσι, η συμβουλή μου είναι να επιλέξετε εκείνο που εσείς και η ομάδα σας αισθάνεστε άνετα και κάνετε εξαιρετική εφαρμογή.

βιβλιογραφικές αναφορές

  • Επιλέγοντας τη σωστή στοίβα λογισμικού για τον ιστότοπό σας
  • Στοίβα λύσεων - Wikipedia