Προγραμματισμός

5 ανόητοι λόγοι που δεν χρησιμοποιείτε το Heroku

Ο Russell Smith είναι συνιδρυτής και CTO της Rainforest QA.

Όταν λέω σε άλλους CTO και μηχανικούς ότι στηριζόμαστε σε μεγάλο βαθμό στο Heroku για να διευθύνουμε την επιχείρησή μας, έχουν πάντα την ίδια αντίδραση: Γιατί; Γιατί όχι AWS; Αστειεύεσαι? Έχετε ακούσει για το Google Cloud; Είσαι ηλίθιος?

Αυτό συμβαίνει χωρίς αποτυχία. Με. Εξω. Αποτυγχάνω. Το επιχείρημα συνήθως έχει κάτι τέτοιο: Γιατί πληρώνετε περισσότερα για ένα PaaS όταν μπορείτε να το δημιουργήσετε μόνοι σας στο Google ή στο AWS - και να το έχετε ακριβώς όπως το θέλετε; Στο οποίο λέω: Poppycock. Αυτοί οι άνθρωποι χάνουν τα πραγματικά οφέλη του PaaS, και ίσως και κάποια βασική οικονομική αίσθηση επίσης.

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

Εδώ είναι τα κύρια επιχειρήματα που ακούω εναντίον του Heroku και γιατί νομίζω ότι είναι (κυρίως) πλαστά.

# 1. Το Heroku είναι NIH (δεν εφευρίσκεται εδώ)

Εάν δεν συνδυάζεται με αγάπη από την ομάδα μας, δεν μπορεί να είναι τέλειο για εμάς, επομένως δεν είναι αρκετά καλό. Η προεπιλογή αυτές τις μέρες είναι να χρησιμοποιήσετε το AWS (το οποίο, παρεμπιπτόντως, είναι επίσης NIH), και στη συνέχεια να προσλάβετε άτομα για να συνδυάσετε την τρέχουσα, μοντέρνα υποδομή my-startup-is-a-snowflake στην κορυφή. Αυτή η σκέψη έχει πολλά ελαττώματα:

  • Η ομάδα μηχανικών σας δεν έχει το χρόνο να μάθει τις δεξιότητες και να κάνει τη δουλειά σωστά - εκτός αν προσλάβετε επιπλέον άτομα που είναι εξαιρετικά έξυπνοι.
  • Δεν μπορείτε να προσλάβετε επιπλέον άτομα που είναι εξαιρετικά έξυπνα. Οι σπουδαίοι άνθρωποι είναι πολύ ακριβοί, δύσκολο να βρεθούν και πιθανώς ήδη εργάζονται κάπου αλλού.
  • Σπάνια πρέπει να χτίσετε μια υποδομή μόνο μία φορά. Όταν αλλάξουν οι ανάγκες σας, θα πρέπει να το χτίσετε ξανά.
  • Η προσαρμοσμένη υποδομή σας δεν θα δοκιμαστεί σε μάχη έως ότου το δοκιμάσετε. Ή μάλλον, έως ότου έχουν οι πελάτες και οι μηχανικοί σας. Μην τα βάζετε μέσα από αυτό. Απλά μην.

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

Να γιατί προτιμώ τη διαδρομή μου:

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

Εδώ είναι μερικά από τα χαρακτηριστικά Heroku που αγαπάμε:

  • Postgres υψηλής διαθεσιμότητας
  • Η κρυπτογράφηση για Postgres είναι ενεργοποιημένη από προεπιλογή
  • Αποχετεύσεις κορμών (ένας τυπικός τρόπος για τη συλλογή και προώθηση κορμών)
  • Ελέγξτε τις εφαρμογές (που εκτελούν τον κώδικα σε οποιοδήποτε αίτημα τραβήγματος του GitHub σε μια πλήρη, εφαρμογή μιας χρήσης στο Heroku)
  • Η αγορά του πρόσθετου Heroku

Μια πρόσφατη σημαντική προσθήκη που αξίζει να αναφερθεί είναι η Heroku Shield, η οποία μας δίνει BAA (συμφωνία συνεργάτη για συμμόρφωση με το HIPAA από το Salesforce.com. Έχει ορισμένα προβλήματα οδοντοφυΐας, αλλά αν θέλαμε να δημιουργήσουμε οι ίδιοι τη συμμόρφωση με το HIPAA, θα χρειαζόταν μερικούς μηχανικούς να μήνα ή περισσότερο δουλειά. Αντ 'αυτού, αυτοί οι μηχανικοί προωθούν το προϊόν μας και κάνουν τους πελάτες μας πιο ευτυχισμένους.

# 2. Το PaaS είναι πολύ ακριβό

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

Στη συνέχεια, υπάρχει το κόστος ευκαιρίας της πρόσληψης ατόμων σε ρόλους devops και sysadmin αντί της μηχανικής προϊόντων. Και αυτό το κόστος αυξάνεται γραμμικά καθώς η επιχείρησή σας κλιμακώνεται. Με το Heroku, έχετε μειωμένο οριακό κόστος σε κλίμακα.

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

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

# 3. Το PaaS είναι πολύ περιοριστικό

Αλλά ... αλλά ... η νιφάδα χιονιού μου! Πολλοί άνθρωποι πιστεύουν ότι η εφαρμογή ή η αρχιτεκτονική τους έχει μοναδικές ανάγκες. Στις περισσότερες περιπτώσεις, δεν είναι - και αν το κάνει, μάλλον δεν θα έπρεπε. Ωστόσο, είμαι έτοιμος να αποδεχτώ μερικούς νόμιμους λόγους που ενδέχεται να μην μπορείτε να χρησιμοποιήσετε το Heroku. Εδώ είναι:

  • Χρειάζεστε τόνους CPU ή RAM. Το Heroku δεν θα κλιμακωθεί όσο το AWS και οι διαμορφώσεις είναι λίγο λιγότερο ευέλικτες. Εάν χρειάζεστε πραγματικά χιλιάδες διακομιστές, το AWS (ή ακόμα και το bare metal) μπορεί να είναι πιο οικονομικό. Αλλά το Heroku υποστηρίζει μερικές αρκετά σημαντικές περιπτώσεις. Για τους περισσότερους ανθρώπους, θα πρέπει να είναι περισσότερο από αρκετό.
  • Χρειάζεστε διακομιστές bare-metal ή ειδικούς επεξεργαστές. Εάν κάνετε μηχανική εκμάθηση ή άλλη εντατική GPU εργασία, το Heroku μπορεί να μην είναι ιδανικό. Ωστόσο, μπορείτε να ακολουθήσετε μια υβριδική προσέγγιση όπως εμείς. Χρησιμοποιούμε το Heroku, αλλά και διακομιστές γυμνού μετάλλου για να έχουμε την καλύτερη απόδοση για την πλατφόρμα εικονικοποίησης.
  • Χρειάζεστε μη HTTP RPC, όπως gRPC. Τυχόν εισερχόμενη κίνηση που δεν είναι WebSocket, HTTP ή HTTPS δεν υποστηρίζεται από το δρομολογητή Heroku σήμερα.
  • Δεν μπορείτε να εργαστείτε στα υποστηριζόμενα μοντέλα εφαρμογών. Για παράδειγμα, εάν χρειάζεστε εσωτερικές επικοινωνίες, έτσι ώστε μια ομάδα διακομιστών εφαρμογών να μπορεί να συμπεριφέρεται ως ένας για κάτι όπως το Erlang ή το Elixir ή χρειάζεστε μια μοναδική ρύθμιση δρομολόγησης, τότε το Heroku δεν είναι κατάλληλο για εσάς.

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

# 4. Ο Heroku δεν κάνει Docker

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

# 5. Το Heroku δεν είναι αρκετά ασφαλές

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

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

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

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

Το New Tech Forum παρέχει έναν χώρο για να εξερευνήσετε και να συζητήσετε την αναδυόμενη τεχνολογία σε πρωτοφανές βάθος και εύρος. Η επιλογή είναι υποκειμενική, με βάση την επιλογή των τεχνολογιών που πιστεύουμε ότι είναι σημαντικές και έχουν μεγάλο ενδιαφέρον για τους αναγνώστες. δεν αποδέχεται ασφάλεια μάρκετινγκ για δημοσίευση και διατηρεί το δικαίωμα να επεξεργαστεί όλο το περιεχόμενο. Στείλτε όλες τις ερωτήσεις στο[email protected].