Εξοικονομούμε χρόνο, νεύρα και εργατοώρες

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

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

Ονομάζομαι Ruslan και υποστηρίζω τα πληροφοριακά συστήματα του Ομίλου BARS και ανάπτυξη ενός killer bot για βίαια σειριακά DBA. Αυτή η ανάρτηση δεν είναι για άτομα με λιποθυμία - υπάρχουν πολλά γράμματα και εικόνες.

Εξοικονομούμε χρόνο, νεύρα και εργατοώρες

/awr

Ορισμένες από τις εφαρμογές μας εκτελούνται σε Oracle DBMS. Υπάρχουν επίσης έργα στο PostgreSQL DBMS. Η Oracle έχει ένα θαυμάσιο πράγμα - τη συλλογή στατιστικών στοιχείων για το φόρτο στο DBMS, το οποίο επισημαίνει τα υπάρχοντα προβλήματα και κάνει ακόμη και συστάσεις για εξάλειψη - Αυτόματο Αποθετήριο φόρτου εργασίας (AWR). Σε ένα σημείο (δηλαδή τη στιγμή του πόνου), οι προγραμματιστές ζητούσαν συνεχώς να συλλέξουν Αναφορές AWR για ανάλυση απόδοσης. Πήγαμε ειλικρινά στον διακομιστή DBMS, συλλέξαμε αναφορές, τις μεταφέραμε σε εμάς και τις στείλαμε στην παραγωγή για ανάλυση. Μετά την 5η φορά έγινε ενοχλητικό... μετά την 10η έγινε εκνευριστικό...

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

Και τότε σκέφτηκα: "Δεν χρειάζονται διαχειριστές για τη δημιουργία αναφοράς...". Εξάλλου, η συλλογή μιας αναφοράς σημαίνει εκτέλεση του σεναρίου sql @$ORACLE_HOME/rdbms/admin/awrrpt.sql και μεταφορά της αναφοράς από τον διακομιστή στη θέση σας... Ω, ναι, δεν επιτρέπουμε την ανάπτυξη για παραγωγή.

Στη συνέχεια έψαξα στο Google τις απαραίτητες πληροφορίες, δημιούργησα τη συνάρτηση από το άρθρο στη δοκιμαστική βάση, έτρεξα το σενάριο και το θαύμα - η αναφορά συντάχθηκε και μπορεί να αποθηκευτεί τοπικά. Δημιούργησε λειτουργίες όπου συχνά χρειάζονταν αναφορές AWR και ενημέρωσε τους προγραμματιστές πώς να τις χρησιμοποιήσουν.

Εκείνη την εποχή, στον ελεύθερο χρόνο μου, αφού μίλησα με τον @BotFather, δημιούργησα ένα bot Telegram για μένα, μόνο για διασκέδαση. Βίδωσα μια απλή λειτουργικότητα εκεί - δείξω την τρέχουσα ώρα, τις ισοτιμίες συναλλάγματος, τον καιρό, το έμαθα να στέλνω φιλοφρονήσεις στη σύζυγό μου (τότε στη φίλη) σε ένα πρόγραμμα. Ίσως, εκείνη την εποχή, η αποστολή φιλοφρονήσεων ήταν η πιο δημοφιλής λειτουργία του bot μου και η γυναίκα μου το εκτιμούσε.

Ετσι. Οι προγραμματιστές μας γράφουν στο Telegram, τους στέλνουμε αναφορά στο Telegram... Τι γίνεται αν δεν γράψουν σε εμάς, αλλά σε ένα bot; Άλλωστε, θα είναι καλύτερα για όλους, η αναφορά θα λαμβάνεται πιο γρήγορα, και το πιο σημαντικό, παρακάμπτοντάς μας. Έτσι γεννήθηκε η ιδέα της πρώτης δημοφιλής λειτουργικότητας για το bot μου.

Ξεκίνησα την εφαρμογή. Το έκανα, όσο καλύτερα μπορούσα, σε PHP (η ίδια η εφαρμογή μας είναι σε PHP, είμαι πιο έμπειρος σε αυτήν παρά στην Python). Δεν είμαι καλός κωδικοποιητής, οπότε δεν θα σας δείξω τον κωδικό μου :)

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

Έχοντας λάβει μια εντολή όπως /awr N, όπου N είναι ο αριθμός των πλήρους ωρών για τις οποίες χρειάζεται μια αναφορά (από προεπιλογή - 1 ώρα), ακόμη και για μια εβδομάδα, εάν η βάση δεδομένων δεν έχει επανεκκινηθεί, το bot αρχίζει αμέσως να λειτουργεί, συλλέγει την αναφορά, τη δημοσιεύει ως ιστοσελίδα και αμέσως (σχεδόν εκεί) παρέχει έναν σύνδεσμο προς την τόσο αναγκαία αναφορά.

Ακολουθήστε τον σύνδεσμο και εδώ είναι η αναφορά AWR:

Εξοικονομούμε χρόνο, νεύρα και εργατοώρες

Όπως ήταν αναμενόμενο, οι προγραμματιστές αντιμετώπισαν τέτοια δημιουργία αναφορών και κάποιοι μάλιστα μας ευχαρίστησαν.

Έχοντας εκτιμήσει την άνεση της ομάδας, οι διαχειριστές έργων από άλλες περιοχές ήθελαν το ίδιο, καθώς λαμβάνουν τα περισσότερα από τον πελάτη και ανησυχούν για την απόδοση και τη διαθεσιμότητα των συστημάτων. Πρόσθεσα το bot σε άλλες συνομιλίες. Το χρησιμοποιούν ακόμα και χαίρομαι γι' αυτό.

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

/pgBadger

Έχουμε επίσης άλλες εφαρμογές στην PHP σε συνδυασμό με την PostgreSQL. Υλοποίησα τη συλλογή αναφορών pgBadger για όσους έχουν ανάγκη χρησιμοποιώντας την ίδια αρχή - σε ομαδικές συνομιλίες. Στην αρχή το χρησιμοποίησαν, αλλά μετά σταμάτησαν. Η λειτουργικότητα κόπηκε ως περιττή.

/καθήκον

Το τμήμα μας έχει νυχτερινές βάρδιες και κατά συνέπεια έχει ωράριο. Είναι στα Φύλλα Google. Δεν είναι πάντα βολικό να ψάχνεις για έναν σύνδεσμο, να ανοίγεις ένα γράφημα, να ψάχνεις τον εαυτό σου... Ένας από τους πρώην συναδέλφους μου έπαιξε επίσης με το bot του Telegram και το εισήγαγε στη συνομιλία του τμήματός μας ειδοποιήσεις για την έναρξη της βάρδιας των υπαλλήλων του τμήματος. Το bot αναλύει το πρόγραμμα, καθορίζει το άτομο που είναι σε υπηρεσία μέχρι την τρέχουσα ημερομηνία και, σύμφωνα με το πρόγραμμα ή κατόπιν αιτήματος, αναφέρει ποιος είναι σε υπηρεσία σήμερα. Αποδείχθηκε υπέροχο και βολικό. Είναι αλήθεια ότι δεν μου άρεσε πολύ η μορφή των μηνυμάτων. Επίσης, για υπαλλήλους άλλου τμήματος (για παράδειγμα, BC "Medicine"), πληροφορίες σχετικά με τους εφημερεύοντες σε άλλες κατευθύνσεις δεν χρειάζονται πραγματικά, αλλά πρέπει να γνωρίζετε ποιος είναι σε υπηρεσία στην "Ιατρική" σε περίπτωση προβλημάτων. Αποφάσισα να «δανειστώ» τη λειτουργικότητα, αλλά να αλλάξω αυτό που δεν μου άρεσε. Έκανα μια μορφή μηνύματος βολική για τον εαυτό μου και τους άλλους, αφαιρώντας περιττές πληροφορίες.

/tnls

Αφού δοκίμασα την αυτοματοποίηση χρησιμοποιώντας ένα bot Telegram, εμφανίστηκαν πολλές διαφορετικές ιδέες, αλλά ήθελα να κάνω τα απολύτως απαραίτητα. Αποφάσισα να ηγούμαι στατιστικά σχετικά με αιτήματα. Για να αποκτήσουμε πρόσβαση στα έργα των πελατών μας, έχουμε εφαρμόσει τον λεγόμενο "jump server" ή διακομιστή προώθησης. Οι συνδέσεις VPN ανυψώνονται σε αυτό, στη συνέχεια οι θύρες εφαρμογών, οι βάσεις δεδομένων και άλλες βοηθητικές προωθήσεις προωθούνται στο τοπικό μας δίκτυο μέσω ssh, για εύκολη πρόσβαση στα έργα των υπαλλήλων μας, χωρίς προβλήματα με τις συνδέσεις VPN. Το μόνο που χρειάζεται να κάνετε είναι να δημιουργήσετε μια σύνδεση VPN στο εταιρικό μας δίκτυο.

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

«Πέφτετε» στο επιθυμητό στοιχείο μενού, επιλέγετε το έργο σας, περιμένετε ένα λεπτό και όλοι είναι ευχαριστημένοι και ικανοποιημένοι...

Με τη λήψη μιας εντολής, με μια ελαφρά κίνηση των bytes και των bit, το bot συνδέεται με τον διακομιστή προώθησης, γνωρίζοντας εκ των προτέρων ποια προώθηση πρέπει να επανεκκινηθεί και κάνει τη δουλειά του - επαναφέρει τη σύνδεση με το έργο. Έγραψα οδηγίες για να λύσετε τέτοια θέματα μόνοι σας. Και οι άνθρωποι επικοινωνούσαν μαζί μας μόνο εάν το παρεχόμενο εργαλείο δεν λειτουργούσε...

/ecp_to_pem

Περαιτέρω στατιστικά στοιχεία έδειξαν ότι είναι συχνά απαραίτητη η μετατροπή EDS Crypto Pro σε μορφή pem(Βάση64) για διάφορες ενσωματώσεις, και έχουμε πολλές από αυτές. Εργασία: πάρτε ένα κοντέινερ, αντιγράψτε το σε έναν υπολογιστή με Windows με εγκατεστημένο το βοηθητικό πρόγραμμα P12FromGostCSP (με πληρωμή, παρεμπιπτόντως), μετατρέψτε το σε pfx και, στη συνέχεια, μετατρέψτε το pfx χρησιμοποιώντας OpenSSL (με υποστήριξη για κρυπτογράφηση GOST) σε pem. Δεν είναι πολύ βολικό, αλλά το θέλετε με το πάτημα των δακτύλων σας.

Η Google ήρθε ξανά στη διάσωση. Βρέθηκαν χρησιμότητα κάποιου ευγενικού ανθρώπου. Το συναρμολόγησα όπως γράφτηκε στο README - λειτούργησε. Δίδαξα στο bot να δουλεύει με το βοηθητικό πρόγραμμα και έλαβα μια σχεδόν άμεση μετατροπή.
Εξοικονομούμε χρόνο, νεύρα και εργατοώρες

Μέχρι την τελική εφαρμογή, εκδόθηκε εντολή για μετάβαση σε νέα μορφή κρυπτογράφησης - gost-2012. Από όσο θυμάμαι, το βοηθητικό πρόγραμμα εκείνη τη στιγμή δούλευε μόνο με το παλιό GOST (2001), ίσως ήταν μια άλλη παρόμοια χρησιμότητα από άλλο ευγενικό άτομο, δεν θυμάμαι ακριβώς.
Μετά τη μετάβαση στο νέο GOST, η λειτουργικότητα του bot αφαιρέθηκε για λόγους ασφαλείας. Το εφάρμοσε σε δοχείο docker.

Dockerfile, σε περίπτωση που το χρειαστεί κάποιος:

FROM ubuntu:16.04                                                                                                                                                                        
RUN apt update && apt -y install git sudo wget unzip gcc g++ make &&                        
   cd /srv/ && git clone https://github.com/kov-serg/get-cpcert.git &&                     
   cd get-cpcert && chmod +x *.sh && ./prepare.sh && ./build.sh &&                         
   mkdir -p /srv/{in,out} &&                                                               
   echo '#!/bin/bash' > /srv/getpem.sh &&                                                  
   echo 'cd /srv/get-cpcert' >> /srv/getpem.sh &&                                          
   echo './get-cpcert /srv/in/$CONT.000 $PASS > /srv/out/$CONT.pem' >> /srv/getpem.sh &&   
   chmod +x /srv/getpem.sh                                                                  ENTRYPOINT /srv/getpem.sh

Για να μετατρέψετε, πρέπει να τοποθετήσετε το αρχικό κοντέινερ (κατάλογος όπως xxx.000) στον κατάλογο /srv/in και να μεταφέρετε το τελικό pem στο /srv/out.

Μετατρέπω:

 docker run -t -i -e CONT='<имя директории с контейнером(без ".000")>' -e PASS='<пароль для контейнера>' -v /srv/in:/srv/in -v /srv/out:/srv/out --name ecptopem <адрес нашего репозитория>/med/ecptopem:latest 

/emstop και /emstart

Μια μέρα, μια πολύ ωραία Oracle DBA, με μεγάλη εμπειρία στη διαχείριση και ανάπτυξη DBMS, έπιασε δουλειά στην εταιρεία μας. Και αμέσως αντιμετώπισε πρόβλημα με τη σύνδεση με τους διακομιστές DBMS με ssh: δεν ξέρει πού ή πώς να συνδεθεί, η πρόσβαση δεν περιγράφεται ξεκάθαρα ή δεν μπορεί να προωθήσει κάτι που χρειάζεται στον εαυτό του. Λοιπόν, είμαστε στην ευχάριστη θέση να βοηθήσουμε, του είπαμε πώς να συνδεθεί και του προωθήσαμε τον Enterprise Manager. Αλλά τα πράγματα και πάλι δεν λειτούργησαν με το ssh. Ένας από τους συναδέλφους μου το εξήγησε απλά: ένα καθαρόαιμο DBA :) Αποφασίσαμε ότι αν χρειαστεί να τροποποιήσουμε κάτι στον διακομιστή, θα το κάνουμε μόνοι μας.

Το EM μερικές φορές κολλάει κάτω από μεγάλο φορτίο και για να το επανεκκινήσετε... πρέπει να συνδεθείτε μέσω ssh και να το επανεκκινήσετε μέσω του τερματικού. «Οι διαχειριστές είναι καλοί σε αυτό», αποφάσισε ο νέος συνάδελφός μας. Τα μεγάλα φορτία στο DBMS δεν είναι ασυνήθιστα για εμάς και τα αιτήματα για επανεκκίνηση του EM είναι επίσης συνηθισμένα. Μετά το ίδιο σενάριο: ένταση, εκνευρισμός και αναζήτηση λύσης στο πρόβλημα. Έτσι στις ίδιες ομαδικές συνομιλίες εμφανίστηκαν οι ακόλουθες εντολές: /emstop και /emstart.

Εξοικονομούμε χρόνο, νεύρα και εργατοώρες

/ σκοτώστε

Εάν υπάρχει ισχυρός ανταγωνισμός στη βάση δεδομένων και αυτό συμβαίνει μερικές φορές, είναι απαραίτητο να ξεφορτώσετε γρήγορα τη βάση δεδομένων. Ο πιο γρήγορος τρόπος είναι να σκοτώσετε την προβληματική διαδικασία... Για να το κάνετε αυτό, συνδεθείτε μέσω ssh, kill -9... Το bot θα σας βοηθήσει!

Εξοικονομούμε χρόνο, νεύρα και εργατοώρες

Ο Alexey εκτίμησε την ομάδα και της έδωσε ένα στοργικό όνομα - "Kilyalka" ή ένα όπλο.
Μια μέρα, αφού παρακολούθησα πώς ο Alexey προσπάθησε και υπέφερε, μπαίνοντας στο /kill xxx κάθε φορά για κάθε μια από τις διαδικασίες, αποφάσισα να προσθέσω "πολυκάννη" στο όπλο μας:

Εξοικονομούμε χρόνο, νεύρα και εργατοώρες

Αυτό είναι καλύτερο! Όλα είναι για σένα, Alexey, απλά δούλεψε, αγαπητέ!

Όπως ήταν φυσικό, μια τόσο σημαντική ομάδα ήταν περιορισμένη πρόσβαση από το user_id - "αλάθητο". Βλέποντας πώς ο Lesha σκοτώνει επιδέξια διεργασίες στον διακομιστή βάσης δεδομένων, αρκετοί άνθρωποι προσπάθησαν να εισαγάγουν μια εντολή με έναν τυχαίο αριθμό διαδικασίας, αλλά δεν μπορείτε να ξεγελάσετε το έξυπνο bot μου, αρνήθηκε αμέσως.

/alertlog

Λοιπόν, για κάθε περίπτωση, έκανα την εντολή:
/alertlog <αριθμός γραμμών> — λάβετε τον καθορισμένο αριθμό γραμμών καταγραφής ειδοποιήσεων
Το bot τραβάει ένα αρχείο καταγραφής ειδοποιήσεων και το στέλνει στην υπηρεσία μας, όπως το pastebin, που ονομάζεται pyste, και στέλνει έναν σύνδεσμο προς την επικόλληση στη συνομιλία αιτημάτων.

/επιταγές

Στη συνέχεια ήρθε ένα αίτημα για παρακολούθηση της πραγματικής απόδοσης της εφαρμογής μας. Μέχρι τώρα, η τεχνική υποστήριξη του έργου συνέλεγε αυτά τα δεδομένα με μη αυτόματο τρόπο. Δεν πειράζει! Οι γενναίοι δοκιμαστές μας έχουν αναπτύξει δοκιμές για αυτό. Το αρχείο καταγραφής δοκιμών που προκύπτει δεν είναι πολύ βολικό στην ανάγνωση· ένας άπειρος χρήστης θα χρειαστεί πολύ χρόνο για να κατανοήσει και δεν είναι σίγουρος ότι θα επισημάνει τις απαραίτητες πληροφορίες. Και δεν μας αρέσει να κάνουμε με τα χέρια μας ό,τι δεν μπορούμε να κάνουμε με τα χέρια μας... Μια νέα εργασία για το bot!

Εξοικονομούμε χρόνο, νεύρα και εργατοώρες

Η εντολή /checks εμφανίζει ένα απλό και ξεκάθαρο μενού· αυτή τη φορά τα παιδιά μας έμαθαν πώς να χρησιμοποιούν αυτήν την εντολή χωρίς οδηγίες!

Όταν επιλέγετε το επιθυμητό αντικείμενο, αντί για ένα μενού, εμφανίζεται μια ειδοποίηση σχετικά με την έναρξη της δοκιμής, έτσι ώστε οι ανυπόμονοι χρήστες να μην εκτελέσουν τη δοκιμή μας 100500 φορές:

Εξοικονομούμε χρόνο, νεύρα και εργατοώρες

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

Μετά την ολοκλήρωση της δοκιμής και τη λήψη του αρχείου καταγραφής, το bot το αναλύει και παράγει το αποτέλεσμα σε μια "αναγνώσιμη από τον άνθρωπο" μορφή:

Εξοικονομούμε χρόνο, νεύρα και εργατοώρες

Συλλογή μετρήσεων

Η λειτουργικότητα έφτασε και οι ενδιαφερόμενοι διαχειριστές έργων έχουν λάβει μια τέτοια λειτουργία για τις περιοχές τους. Και ένας συμπονετικός Project Manager είπε: «Θέλω να έχω στατιστικά χρόνου!» Κάποιος από το CIT της είπε ότι θα ήταν βολικό να παρακολουθούνται όλα αυτά στο Zabbix. Zabbix, άρα Zabbix...

Σκέφτηκα ότι έπρεπε να προετοιμαστώ για την ανάγκη να επαναλάβω τη λύση... Έβαλα την ιδέα σε ένα δοχείο αποβάθρας. Στο κοντέινερ, το jmeter εκκινείται βάσει χρονοδιαγράμματος (μία φορά κάθε 10 λεπτά), τοποθετεί το αρχείο καταγραφής σε μια συγκεκριμένη θέση, η php το αναλύει και εμφανίζει τα απαραίτητα δεδομένα με τη μορφή ιστοσελίδας. Το Zabbix, χρησιμοποιώντας το κλειδί web.page.get, λαμβάνει αυτήν τη σελίδα, επιλέγει τακτικά τα απαραίτητα δεδομένα για ορισμένα εξαρτημένα στοιχεία και δημιουργεί ένα γράφημα.

Εξοικονομούμε χρόνο, νεύρα και εργατοώρες

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

Ανάπτυξη εφαρμογής

Τα στατιστικά στοιχεία σχετικά με παρόμοια καθήκοντα δημιούργησαν πρόσφατα περισσότερες ιδέες για την απλούστευση και τη διευκόλυνση της εργασίας. Σε ορισμένα έργα, σε διακομιστές εφαρμογών, υπάρχει ανάγκη εγκατάστασης βασικών κοντέινερ Crypto Pro, υπάρχουν πολλά από αυτά και η ψηφιακή υπογραφή λήγει με την πάροδο του χρόνου. Μερικές φορές φτάνουν 2 εργασίες την ημέρα. Αλλά θεώρησα μη ασφαλές να χρησιμοποιήσω ένα bot για αυτούς τους σκοπούς και αποφάσισα ότι θα δημιουργήσω τη λειτουργικότητα απευθείας στην εφαρμογή. Φυσικά με εξουσιοδότηση και έλεγχο δικαιωμάτων πρόσβασης. Εάν διαθέτετε τα απαραίτητα προνόμια, θα είναι διαθέσιμο ένα πρόσθετο στοιχείο μενού για εργασία με ψηφιακές υπογραφές, εγκατάσταση, διαγραφή, προβολή πληροφοριών κ.λπ. Η λειτουργία είναι υπό ανάπτυξη. Όπως αποδείχθηκε, αυτό δεν είναι πολύ δύσκολο, απλά πρέπει να διαβάσετε λίγο τις υπάρχουσες οδηγίες, να δείτε παραδείγματα κώδικα, να ζητήσετε από συναδέλφους πιο έμπειρους στην ανάπτυξη και στη συνέχεια να το κάνετε. Κατά τη διάρκεια της ερευνητικής διαδικασίας, προέκυψαν ιδέες για προσθήκη στην εφαρμογή. Δεν θα κάνω ναπολεόντεια σχέδια - υπάρχει ανάπτυξη, αφήστε τον καθένα να ασχοληθεί με τη δουλειά του. Αλλά ενώ είναι ενδιαφέρον, το κάνω μόνος μου.

Σχέδια

Όπως είπα, γεννήθηκαν πολλές διαφορετικές ιδέες για τη χρήση του bot μας και όχι μόνο - γενικά, ας πούμε, ιδέες για «σημεία αυτοματισμού», πολλές από αυτές ξεχάστηκαν, αφού δεν είχα χρόνο να τις γράψω. Τώρα προσπαθώ να γράψω ό,τι μου έρχεται στο μυαλό και συνιστώ σε άλλους να κάνουν το ίδιο.

Αλλά ο Alexey δεν ξεχνά να δώσει τις ευχές του. Από τα πιο πρόσφατα:
/kill_sql SQL_ID — σκοτώστε όλες τις συνεδρίες με αυτό το αίτημα SQL_ID
/kill_block - σκοτώστε τη συνεδρία αποκλεισμού ρίζας
/show_em — εμφανίστε μια εικόνα της απόδοσης ΗΜ
Είναι πονηρός, θέλει να ράψει DBA από το τηλέφωνό του =)

Έτσι εργαζόμαστε προς όφελος της Πατρίδος!

Πώς θα απαλλαγείτε από εργασίες ρουτίνας και χωρίς ενδιαφέρον;

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

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο