Ερωτήσεις Συνέντευξης για Μικροϋπηρεσίες

Από Aaron Cao · Ενημερώθηκε

Ερωτήσεις Συνέντευξης για Μικροϋπηρεσίες
Οι συνεντεύξεις για μικροϋπηρεσίες ελέγχουν τα όρια υπηρεσιών, τις επιλογές επικοινωνίας, τη συνέπεια δεδομένων και τον χειρισμό αστοχιών, όχι λεπτομέρειες για frameworks. Περιμένετε να χρειαστεί να χωρίσετε ένα monolith, να υπερασπιστείτε σύγχρονες κλήσεις έναντι ασύγχρονων μηνυμάτων, να εξηγήσετε πώς κρατάτε τα δεδομένα σωστά μεταξύ υπηρεσιών, και να παρακολουθήσετε ένα αίτημα από την αρχή ως το τέλος.

Οι συνεντεύξεις για μικροϋπηρεσίες ελέγχουν τα όρια υπηρεσιών, τις επιλογές επικοινωνίας, τη συνέπεια δεδομένων και τον χειρισμό αστοχιών, όχι λεπτομέρειες για frameworks. Περιμένετε να χρειαστεί να χωρίσετε ένα monolith, να υπερασπιστείτε σύγχρονες κλήσεις έναντι ασύγχρονων μηνυμάτων, να εξηγήσετε πώς κρατάτε τα δεδομένα σωστά μεταξύ υπηρεσιών, και να παρακολουθήσετε ένα αίτημα από την αρχή ως το τέλος.

Τι ελέγχουν πραγματικά οι συνεντεύξεις για μικροϋπηρεσίες;

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

  • Αποσύνθεση. Πού κόβετε, και γιατί εκεί; Οι συνεντευκτές θέλουν ένα όριο σχεδιασμένο κατά μήκος επιχειρηματικής ικανότητας ή ιδιοκτησίας δεδομένων, όχι κατά μήκος τεχνικών επιπέδων.
  • Επικοινωνία. Σύγχρονο αίτημα/απόκριση ή ασύγχρονα events, και τι σπάει σε καθένα. Η επιθυμητή απάντηση είναι ένας συμβιβασμός, όχι μια προτίμηση.
  • Δεδομένα. Μία βάση δεδομένων ανά υπηρεσία σημαίνει καμία join μεταξύ υπηρεσιών και καμία κατανεμημένη συναλλαγή. Πώς κρατάτε το σύστημα σωστό παρόλα αυτά;
  • Λειτουργίες. Deployment, versioning, tracing, και τι συμβαίνει στις τρεις τα ξημερώματα όταν μια υπηρεσία είναι αργή αντί για πεσμένη.

Παρατηρήστε ότι τίποτα από αυτά δεν αφορά ένα framework. Ένας υποψήφιος που εξηγεί γιατί χώρισε το checkout από το inventory κερδίζει πάντα υψηλότερη βαθμολογία από κάποιον που απλώς απαριθμεί annotations.

Ποιες ερωτήσεις αποσύνθεσης και επικοινωνίας εμφανίζονται πιο συχνά;

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

  • Πώς θα χωρίζατε αυτό το monolith σε υπηρεσίες; Ελέγχει αν κόβετε κατά μήκος επιχειρηματικών ικανοτήτων και ιδιοκτησίας δεδομένων, ή κατά μήκος επιπέδων controller, service και repository. Η δεύτερη απάντηση παράγει ένα κατανεμημένο monolith.
  • Πώς επικοινωνούν δύο υπηρεσίες μεταξύ τους; Ελέγχει αν μπορείτε να ονομάσετε το κόστος κάθε επιλογής: οι σύγχρονες κλήσεις δίνουν ένα απλό νοητικό μοντέλο αλλά συζευγνύουν τη διαθεσιμότητα, τα ασύγχρονα events αποσυζευγνύουν τη διαθεσιμότητα και δίνουν eventual consistency που πρέπει να εξηγήσετε σε έναν product owner.
  • Τι είναι ένα κατανεμημένο monolith και πώς το αποφεύγετε; Ελέγχει αν ξέρετε ότι υπηρεσίες που πρέπει να αναπτύσσονται μαζί δεν είναι πραγματικά ξεχωριστές.
  • Πόσο μεγάλη πρέπει να είναι μια υπηρεσία; Ελέγχει αν αντιστέκεστε σε έναν αριθμό. Το μέγεθος ακολουθεί το όριο και την ομάδα που το κατέχει.
  • Χρειάζεστε ένα API gateway, και τι κάνει; Ελέγχει αν μπορείτε να διαχωρίσετε routing, authentication και rate limiting από την επιχειρηματική λογική.
  • Πώς βρίσκουν οι υπηρεσίες η μία την άλλη; Ελέγχει βασική εξοικείωση με service discovery και γιατί οι hardcoded hosts αποτυγχάνουν σε ένα κλιμακούμενο περιβάλλον.

Πείτε τον συμβιβασμό δυνατά σε κάθε απάντηση. Μια επιτροπή δεν μπορεί να δώσει βαθμούς για μια σύγκριση που κάνατε σιωπηλά στο μυαλό σας.

Πώς απαντάτε στις ερωτήσεις για δεδομένα και αστοχίες;

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

  • Πώς διατηρείτε τη συνέπεια δεδομένων μεταξύ υπηρεσιών; Ονομάστε πρώτα τον περιορισμό: δεν υπάρχει συναλλαγή μεταξύ υπηρεσιών. Μετά περιγράψτε μια saga, είτε χορογραφημένη μέσω events είτε ενορχηστρωμένη από έναν συντονιστή, και πείτε ξεκάθαρα ότι το σύστημα είναι eventually consistent και τι βλέπει ο χρήστης σε αυτό το διάστημα.
  • Τι συμβαίνει όταν μια downstream υπηρεσία είναι αργή; Timeouts, retries με backoff, και ένα circuit breaker ώστε μια αργή εξάρτηση να μην εξαντλήσει το thread pool σας. Το αργό είναι χειρότερο από το πεσμένο, και το να το πείτε δείχνει εμπειρία παραγωγής.
  • Πώς κάνετε ένα retry ασφαλές; Idempotency. Ένα idempotency key στο μονοπάτι εγγραφής, ώστε μια επαναλαμβανόμενη πληρωμή να χρεώνεται μόνο μία φορά.
  • Πώς χειρίζεστε μια μερική αστοχία σε μια πολυβηματική ροή; Αντισταθμιστικές ενέργειες, όχι rollback. Εξηγήστε πώς μοιάζει μια επιστροφή χρημάτων ή η απελευθέρωση μιας κράτησης.
  • Πώς κάνετε debug ένα αίτημα που άγγιξε έξι υπηρεσίες; Distributed tracing με ένα correlation ID που διαδίδεται σε κάθε hop, συν structured logs και μετρικές.

Ένας backend engineer που έδινε συνέντευξη για έναν ρόλο platform L5 σε έναν δημόσιο πάροχο cloud πήρε την ερώτηση για τη saga και απάντησε με μία κίνηση, με λεξιλόγιο προτύπων, χωρίς ποτέ να αναφέρει τι θα έβλεπε ο πελάτης. Η επόμενη ερώτηση, τι εμφανίζει η σελίδα παραγγελίας κατά το παράθυρο ασυνέπειας, είναι αυτή που πραγματικά αποφασίζει τον γύρο. Ετοιμάστε τη δεύτερη απάντηση, όχι μόνο την πρώτη.

Περισσότερες τράπεζες ερωτήσεων ανά ρόλο και θέμα συγκεντρώνονται στο ερωτήσεις συνέντευξης ανά ρόλο.

Πώς εξασκείστε σε αυτά δυνατά;

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

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

Ο Aaron Cao, ιδρυτής της SubcueAI, έχτισε τη λειτουργία εξάσκησης γύρω από αυτό το χάσμα, όχι γύρω από την παράδοση περιεχομένου. Οι λίστες ερωτήσεων είναι ελεύθερα διαθέσιμες παντού· αυτό που λείπει στους υποψηφίους είναι επαναλήψεις του να λένε την απάντηση ενώ κάποιος περιμένει. Κατά τη διάρκεια μιας πραγματικής συνέντευξης, η εφαρμογή desktop και το Side Panel της επέκτασης του browser μπορούν να εμφανίζουν δομημένα prompts καθώς μιλάει ο συνεντευκτής, αν και μια εξασκημένη εξήγηση πάντα νικά μία που διαβάζετε για πρώτη φορά. Τι κάνει και τι δεν κάνει ο βοηθός περιγράφεται στην επισκόπηση προϊόντος.

Συχνές ερωτήσεις

Πόσες ερωτήσεις για μικροϋπηρεσίες πρέπει να προετοιμάσω;

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

Χρειάζεται να ξέρω Kubernetes για μια συνέντευξη μικροϋπηρεσιών;

Για τους περισσότερους ρόλους backend πρέπει να εξηγήσετε τι πρέπει να παρέχουν το deployment και το scaling, όχι να λειτουργείτε ένα cluster. Οι ρόλοι platform και SRE είναι διαφορετικοί και πραγματικά εμβαθύνουν σε orchestration, service mesh και στρατηγική rollout.

Ποιο είναι το πιο συχνό λάθος σε αυτές τις συνεντεύξεις;

Το να χωρίζετε κατά μήκος τεχνικών επιπέδων αντί για επιχειρηματικές ικανότητες, που παράγει υπηρεσίες που πρέπει να αναπτύσσονται μαζί. Το δεύτερο πιο συχνό είναι να περιγράφετε μια saga χωρίς ποτέ να πείτε ότι το σύστημα γίνεται eventually consistent.

Οι ερωτήσεις για μικροϋπηρεσίες γίνονται σε γύρους coding ή design;

Κυρίως σε γύρους design και στον senior συμπεριφορικό γύρο, όπου οι συνεντευκτές ρωτούν για ένα σύστημα που είχατε. Οι γύροι coding μένουν σε αλγόριθμους και ευχέρεια γλώσσας, αν και μια take-home εργασία μπορεί να ζητήσει να προσθέσετε μία υπηρεσία σε ένα υπάρχον σύνολο.

Μπορεί ένας AI βοηθός να απαντήσει σε αυτές τις ερωτήσεις για μένα ζωντανά;

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

Σχετικές ερωτήσεις

← Περισσότερα για Ερωτήσεις συνέντευξης ανά ρόλο & θέμα