Πώς να φτιάξετε σελίδα κατάστασης: συνιστώσες, περιστατικά και έλεγχοι λειτουργίας
Μια σελίδα κατάστασης δείχνει στους χρήστες σας, σε ένα μέρος, αν η υπηρεσία σας λειτουργεί. Για να τη φτιάξετε χρειάζεστε μια λίστα συνιστωσών (ιστότοπος, API, πληρωμές, αποστολή email), την τρέχουσα κατάσταση καθεμιάς, περιστατικά με χρονοσημασμένες ενημερώσεις, ιστορικό παλαιότερων περιστατικών και, προαιρετικά, συνδρομές ώστε οι άνθρωποι να μαθαίνουν για προβλήματα χωρίς να ελέγχουν μόνοι τους. Η ίδια η σελίδα είναι απλή. Η σημαντική απόφαση είναι πού θα τρέχει: μια σελίδα κατάστασης πρέπει να παραμένει διαθέσιμη όταν η εφαρμογή σας είναι εκτός λειτουργίας, οπότε δεν πρέπει να μοιράζεται φιλοξενία, βάση δεδομένων ή pipeline ανάπτυξης με αυτό που αναφέρει.
Τι είναι για τη σελίδα κατάστασης
Όταν κάτι χαλάσει, οι χρήστες θέλουν να μάθουν τρία πράγματα: είναι το πρόβλημα μόνο δικό μου, το ξέρετε, και πότε θα διορθωθεί. Μια σελίδα κατάστασης απαντά και στα τρία χωρίς να κατακλύζει την υποστήριξη με μηνύματα. Με τον καιρό χτίζει και εμπιστοσύνη, γιατί ένα ορατό ιστορικό περιστατικών με ειλικρινείς αναφορές δείχνει πώς αντιμετωπίζετε τα προβλήματα.
Δεν είναι ημερολόγιο αλλαγών. Τα νέα χαρακτηριστικά μπαίνουν σε μια σελίδα ιστορικού αλλαγών· οι διακοπές και οι προγραμματισμένες συντηρήσεις μπαίνουν εδώ.
Τι χρειάζεται η σελίδα
Δεδομένα
| Πίνακας | Βασικά πεδία |
|---|---|
| Συνιστώσες | Όνομα (Web εφαρμογή, API, Πληρωμές, Αποστολή email), περιγραφή, τρέχουσα κατάσταση, σειρά εμφάνισης, ομάδα |
| Περιστατικά | Τίτλος, επίπτωση (μικρή, μεγάλη, κρίσιμη), κατάσταση (Διερεύνηση, Εντοπίστηκε, Παρακολούθηση, Επιλύθηκε), επηρεαζόμενες συνιστώσες, ώρα έναρξης, ώρα επίλυσης |
| Ενημερώσεις περιστατικών | Περιστατικό, μήνυμα, κατάσταση εκείνη τη στιγμή, ώρα δημοσίευσης, ποιος δημοσίευσε |
| Προγραμματισμένες συντηρήσεις | Τίτλος, επηρεαζόμενες συνιστώσες, προγραμματισμένη έναρξη και λήξη, μήνυμα |
| Συνδρομητές | Email, επιβεβαιωμένο ναι/όχι, συνιστώσες που τους ενδιαφέρουν, διακριτικό διαγραφής από τη λίστα |
Οι καταστάσεις των συνιστωσών είναι συνήθως μια σύντομη, σταθερή λίστα: Λειτουργεί, Μειωμένη απόδοση, Μερική διακοπή, Σοβαρή διακοπή, Σε συντήρηση.
Σελίδες
- Δημόσια σελίδα κατάστασης: ένα συνολικό banner («Όλα τα συστήματα λειτουργούν» ή η χειρότερη τρέχουσα κατάσταση), κάθε συνιστώσα με την κατάστασή της, ενεργά περιστατικά με τις ενημερώσεις τους, επερχόμενες συντηρήσεις και μια λωρίδα ιστορικού 90 ημερών, αν έχετε δεδομένα ελέγχων.
- Σελίδα περιστατικού: πλήρες χρονολόγιο ενημερώσεων για ένα περιστατικό, με δικό του URL ώστε η υποστήριξη να μπορεί να το στείλει.
- Ιστορικό: παλαιότερα περιστατικά ανά μήνα.
- Εγγραφή: εγγραφή με email, επιβεβαίωση και προτιμήσεις ανά συνιστώσα.
- Διαχείριση: δημιουργία περιστατικού, δημοσίευση ενημερώσεων, αλλαγή καταστάσεων συνιστωσών, προγραμματισμός συντήρησης.
Δικαιώματα
Το κοινό βλέπει ό,τι δημοσιεύεται. Μόνο η ομάδα σας δημοσιεύει. Αν μπορείτε, κρατήστε τη σύνδεση διαχείρισης χωριστά από το σύστημα σύνδεσης της κύριας εφαρμογής, ώστε μια βλάβη του παρόχου ταυτοποίησης να μην σας κλειδώσει έξω από τη δική σας σελίδα κατάστασης.
Η κρίσιμη απόφαση: να μένει ανεξάρτητη
Εδώ αποτυγχάνουν συνήθως οι σελίδες κατάστασης που φτιάχνονται μόνες τους. Αν η σελίδα σας:
- τρέχει στον ίδιο server ή στον ίδιο λογαριασμό φιλοξενίας με την εφαρμογή,
- διαβάζει από την ίδια βάση δεδομένων,
- βρίσκεται πίσω από το ίδιο domain ή την ίδια ρύθμιση CDN,
- ή αναπτύσσεται από το ίδιο pipeline,
τότε πολλές διακοπές θα την ρίξουν κι αυτήν, ακριβώς τη στιγμή που οι άνθρωποι τη χρειάζονται. Πρακτικά βήματα:
- Ξεχωριστή φιλοξενία. Διαφορετικό project ή πάροχος από την κύρια εφαρμογή.
- Δικός της υποτομέας, για παράδειγμα
status.example.com, με ξεχωριστή ρύθμιση DNS. Δείτε πώς λειτουργούν τα domains και το DNS. - Δικά της δεδομένα. Τα περιστατικά ζουν στον δικό της αποθηκευτικό χώρο, όχι στη βάση της εφαρμογής.
- Στατικό εφεδρικό. Κάποιες ομάδες κάνουν τη δημόσια σελίδα στατική και την ξαναχτίζουν σε κάθε ενημέρωση, ώστε να υπάρχει σχεδόν τίποτα που μπορεί να χαλάσει.
Χειροκίνητες ενημερώσεις ή αυτόματοι έλεγχοι
Χειροκίνητα (ξεκινήστε από εδώ)
Η ομάδα σας δημοσιεύει περιστατικά και αλλάζει καταστάσεις συνιστωσών με το χέρι, από τη σελίδα διαχείρισης. Έτσι λειτουργούν πολλές σελίδες κατάστασης στην πράξη, γιατί μια ανθρώπινη κρίση («οι πληρωμές με ορισμένους τύπους καρτών είναι αργές») είναι πιο χρήσιμη από μια αυτόματη κόκκινη κουκκίδα.
Για να μαθαίνετε γρήγορα για προβλήματα, χρησιμοποιήστε έναν εξωτερικό έλεγχο διαθεσιμότητας που ελέγχει την εφαρμογή σας κάθε λίγα λεπτά και σας ειδοποιεί με email, SMS ή μήνυμα σε chat. Πολλές υπηρεσίες παρακολούθησης έχουν δωρεάν επίπεδο.
Αυτόματα
Η αυτοματοποίηση σημαίνει ότι κάτι ελέγχει τακτικά κάθε συνιστώσα και ενημερώνει την κατάστασή της. Χρειάζεται κώδικας που τρέχει με προγραμματισμό, έξω από την υποδομή της κύριας εφαρμογής. Δύο συνηθισμένα μοτίβα:
- Ένας εξωτερικός έλεγχος καλεί τη σελίδα κατάστασης μέσω webhook όταν μια δοκιμή αποτυγχάνει ή αποκαθίσταται, και η σελίδα ενημερώνει τη συνιστώσα.
- Μια προγραμματισμένη εργασία στη φιλοξενία της σελίδας κατάστασης ελέγχει κάθε συνιστώσα και καταγράφει το αποτέλεσμα. Ελέγξτε πώς η φιλοξενία σας χειρίζεται τις προγραμματισμένες εργασίες πριν βασιστείτε σε αυτό· ο οδηγός μας για εκτέλεση εργασιών στο παρασκήνιο εξηγεί τις επιλογές.
Οι αυτόματες αλλαγές μπορούν να τρεμοπαίζουν (πάνω, κάτω, πάνω) σε αργό δίκτυο. Απαιτήστε δύο ή τρεις αποτυχημένους ελέγχους πριν αλλάξει μια κατάσταση, και αφήστε έναν άνθρωπο να επιβεβαιώσει πριν ανακοινωθεί μεγάλη διακοπή.
Πώς γράφονται οι ενημερώσεις περιστατικών
- Δημοσιεύστε νωρίς. Το «Διερευνούμε αναφορές για αποτυχημένες συνδέσεις» μέσα σε λίγα λεπτά είναι καλύτερο από ένα τέλειο μήνυμα μία ώρα αργότερα.
- Πείτε τι θα προσέξουν οι χρήστες, όχι τι χάλασε εσωτερικά.
- Υποσχεθείτε την ώρα της επόμενης ενημέρωσης και τηρήστε την.
- Κλείστε με σύντομη περίληψη μόλις λυθεί: τι συνέβη, πόση ώρα κράτησε, τι αλλάζετε.
Ένα πρώτο prompt που δουλεύει
Φτιάξε μια αυτόνομη σελίδα κατάστασης για την εφαρμογή μας Parcelio, φιλοξενούμενη χωριστά στο status.parcelio.com. Συνιστώσες: Website, Tracking API, Notifications, Payments, με κατάσταση Operational, Degraded performance, Partial outage, Major outage ή Under maintenance (στα ελληνικά: Λειτουργεί, Μειωμένη απόδοση, Μερική διακοπή, Σοβαρή διακοπή ή Σε συντήρηση). Η δημόσια σελίδα δείχνει ένα συνολικό banner με τη χειρότερη τρέχουσα κατάσταση, κάθε συνιστώσα με την κατάστασή της, ενεργά περιστατικά με χρονοσημασμένες ενημερώσεις (νεότερες πρώτα), επερχόμενες συντηρήσεις και λίστα παλαιότερων περιστατικών ανά μήνα. Κάθε περιστατικό έχει τη δική του σελίδα. Πρόσθεσε μια σελίδα διαχείρισης προστατευμένη με κωδικό, για δημιουργία περιστατικών (τίτλος, επίπτωση, επηρεαζόμενες συνιστώσες), δημοσίευση ενημερώσεων (μήνυμα και κατάσταση: Διερεύνηση, Εντοπίστηκε, Παρακολούθηση, Επιλύθηκε), αλλαγή καταστάσεων συνιστωσών και προγραμματισμό συντήρησης. Πρόσθεσε ένα endpoint POST /api/check-result που δέχεται το όνομα μιας συνιστώσας και up/down από έναν εξωτερικό έλεγχο, προστατευμένο με μυστικό διακριτικό, και σημειώνει μια συνιστώσα ως Degraded performance μόνο μετά από τρεις συνεχόμενες αποτυχίες. Αποθήκευσε τα πάντα στη βάση δεδομένων της ίδιας της εφαρμογής. Απλός, ήρεμος σχεδιασμός που φορτώνει γρήγορα στα κινητά.
Βήματα κατασκευής
- Δημόσια σελίδα και διαχείριση με χειροκίνητα περιστατικά. Μόνο αυτό είναι ήδη μια λειτουργική σελίδα κατάστασης.
- Φιλοξενήστε την χωριστά και δείξτε σε αυτήν έναν υποτομέα.
- Σελίδες περιστατικών και ιστορικό.
- Προγραμματισμένες συντηρήσεις.
- Συνδρομές. Εγγραφή με email με διπλή επιβεβαίωση και ειδοποιήσεις για νέα περιστατικά και ενημερώσεις. Το email χρειάζεται πάροχο· δείτε πώς να στέλνετε email από την εφαρμογή σας.
- Webhook παρακολούθησης, αν θέλετε αυτόματες αλλαγές καταστάσεων.
- Κάντε δοκιμή. Δημιουργήστε ένα ψεύτικο περιστατικό, δημοσιεύστε ενημερώσεις, λύστε το, ελέγξτε τα email και διαγράψτε το.
Συνηθισμένα λάθη
- Φιλοξενία μαζί με την εφαρμογή. Το πιο συνηθισμένο και το πιο σοβαρό λάθος.
- Σελίδα που λέει πάντα «Όλα τα συστήματα λειτουργούν». Αν δεν δείχνει ποτέ προβλήματα, οι χρήστες παύουν να την εμπιστεύονται.
- Χωρίς ώρες ή ζώνη ώρας. Δείχνετε πάντα τις ώρες μαζί με τη ζώνη τους.
- Εξάρτηση από τη σύνδεση της κύριας εφαρμογής για τη σελίδα διαχείρισης.
- Σιωπή ανάμεσα στις ενημερώσεις. Το «Χωρίς αλλαγή, ακόμη δουλεύουμε πάνω του» είναι έγκυρη ενημέρωση.
- Τρεμοπαίζουσες αυτόματες καταστάσεις. Απαιτήστε επαναλαμβανόμενες αποτυχίες πριν από μια αλλαγή.
Πότε είναι καλύτερη επιλογή μια έτοιμη υπηρεσία σελίδας κατάστασης
Οι υπηρεσίες φιλοξενούμενων σελίδων κατάστασης είναι φτιαγμένες γύρω από το πρόβλημα της ανεξαρτησίας: τρέχουν σε ξεχωριστή υποδομή, διαχειρίζονται τις ειδοποιήσεις συνδρομητών με email και SMS, και συχνά περιλαμβάνουν παρακολούθηση και ολοκληρώσεις με εργαλεία περιστατικών. Αν η διαθεσιμότητα είναι μέρος αυτού που πληρώνουν οι πελάτες σας, ή έχετε συμβατικές υποχρεώσεις να αναφέρετε περιστατικά, μια αφιερωμένη υπηρεσία συνήθως αξίζει το κόστος. Πολλές έχουν δωρεάν ή φθηνά επίπεδα για μικρές ομάδες, οπότε ελέγξτε πριν χτίσετε.
Φτιάξτε τη δική σας όταν θέλετε πλήρη έλεγχο του σχεδιασμού και της διατύπωσης, όταν οι ανάγκες σας είναι απλές (λίγες συνιστώσες, χειροκίνητες ενημερώσεις), ή όταν η σελίδα κατάστασης είναι μέρος ενός προϊόντος που φτιάχνετε για άλλους.
Φτιάχνοντάς το με το Mythex
Στο Mythex μπορείτε να φτιάξετε τη σελίδα κατάστασης ως δικό της project, ξεχωριστό από την κύρια εφαρμογή, ώστε να έχει χωριστή φιλοξενία και τη δική του βάση δεδομένων. Περιγράψτε την στη συνομιλία, ελέγξτε την στην ζωντανή προεπισκόπηση, και μετά δημοσιεύστε την και συνδέστε έναν υποτομέα όπως το status.yourdomain.com (τα custom domains είναι στο Pro). Έχετε υπόψη ότι οι δημοσιευμένες εφαρμογές και οι βάσεις τους στο Mythex κοιμούνται όταν είναι αδρανείς και ξυπνούν στην επόμενη επίσκεψη, οπότε η πρώτη φόρτωση μετά από ήσυχο διάστημα μπορεί να είναι πιο αργή· μια απλή, ελαφριά σελίδα βοηθάει.
Το Mythex δεν τεκμηριώνει προγραμματισμένες εργασίες, οπότε για αυτόματους ελέγχους χρησιμοποιήστε έναν εξωτερικό έλεγχο διαθεσιμότητας που καλεί ένα endpoint webhook της σελίδας κατάστασης (δείτε τη συνταγή για webhooks). Τις ειδοποιήσεις email προς τους συνδρομητές τις στέλνει ο δικός σας πάροχος, με το κλειδί αποθηκευμένο ως μυστικό του project (συνταγή αποστολής email).
Ερωτήσεις
Τι είναι μια σελίδα κατάστασης;
Μια δημόσια σελίδα που δείχνει αν λειτουργεί κάθε μέρος της υπηρεσίας σας, εμφανίζει τρέχοντα και παλαιότερα περιστατικά με χρονοσημασμένες ενημερώσεις, και συχνά επιτρέπει στους χρήστες να εγγραφούν για ειδοποιήσεις. Μειώνει τον όγκο των αιτημάτων υποστήριξης κατά τις διακοπές.
Πρέπει η σελίδα κατάστασης να φιλοξενείται μαζί με την εφαρμογή μου;
Όχι. Αν μοιράζεται φιλοξενία, ρυθμίσεις domain ή βάση δεδομένων με την εφαρμογή, μπορεί να πέσει στην ίδια διακοπή που θα έπρεπε να αναφέρει. Φιλοξενήστε την χωριστά, σε υποτομέα όπως status.yourdomain.com.
Χρειάζομαι αυτόματη παρακολούθηση;
Βοηθάει, αλλά δεν απαιτείται για να ξεκινήσετε. Πολλές μικρές ομάδες δημοσιεύουν τα περιστατικά με το χέρι και χρησιμοποιούν έναν εξωτερικό έλεγχο διαθεσιμότητας για να ειδοποιούνται οι ίδιες. Οι αυτόματες αλλαγές καταστάσεων μπορούν να έρθουν αργότερα.
Τι πρέπει να λέει μια ενημέρωση περιστατικού;
Ποια μέρη επηρεάζονται, τι θα προσέξουν οι χρήστες, τι κάνετε και πότε θα έρθει η επόμενη ενημέρωση. Σύντομη, απλή και με ώρα, ακόμη κι αν η ενημέρωση λέει «ακόμη διερευνούμε».