Από την εξωτερική ανάθεση στην ανάπτυξη (Μέρος 2)

В προηγούμενο άρθρο, μίλησα για το παρασκήνιο της δημιουργίας του Veliam και την απόφαση να διανεμηθεί μέσω του συστήματος SaaS. Σε αυτό το άρθρο, θα μιλήσω για το τι έπρεπε να κάνω για να κάνω το προϊόν όχι τοπικό, αλλά δημόσιο. Για το πώς ξεκίνησε η διανομή και ποια προβλήματα αντιμετώπισαν.

Σχεδιασμός

Το τρέχον backend για τους χρήστες ήταν στο Linux. Σχεδόν κάθε οργανισμός έχει διακομιστές Windows, κάτι που δεν μπορεί να ειπωθεί για το Linux. Η κύρια δύναμη του Veliam είναι οι απομακρυσμένες συνδέσεις με διακομιστές και εξοπλισμό δικτύου πίσω από το NAT. Αλλά αυτή η λειτουργικότητα ήταν πολύ στενά συνδεδεμένη με το γεγονός ότι ο δρομολογητής έπρεπε να είναι Mikrotik. Και αυτό προφανώς δεν θα ικανοποιούσε πολλούς. Αρχικά άρχισα να σκέφτομαι να προσθέσω υποστήριξη για δρομολογητές από τους πιο συνηθισμένους προμηθευτές. Αλλά κατάλαβα ότι αυτός ήταν ένας ατελείωτος αγώνας για την επέκταση της λίστας των υποστηριζόμενων εταιρειών. Επιπλέον, αυτές που υποστηρίζονται ήδη μπορεί να έχουν διαφορετικό σύνολο εντολών για την αλλαγή κανόνων NAT από μοντέλο σε μοντέλο. Η μόνη διέξοδος από την κατάσταση φαινόταν να είναι ένα VPN.

Εφόσον αποφασίσαμε να διανείμουμε το προϊόν, αλλά όχι ως ανοιχτού κώδικα, κατέστη αδύνατο να συμπεριλάβουμε διάφορες βιβλιοθήκες με ανοιχτές άδειες, όπως η GPL. Αυτό είναι γενικά ένα ξεχωριστό θέμα· αφού πήρα την απόφαση να πουλήσω το προϊόν, έπρεπε να περάσω από τις μισές βιβλιοθήκες λόγω του γεγονότος ότι ήταν GPL. Όταν έγραφαν για τον εαυτό τους, ήταν φυσιολογικό. Αλλά δεν είναι κατάλληλο για διανομή. Το πρώτο VPN που έρχεται στο μυαλό είναι το OpenVPN. Αλλά είναι GPL. Μια άλλη επιλογή ήταν να χρησιμοποιήσετε το ιαπωνικό SoftEther VPN. Η άδεια του επέτρεψε να το συμπεριλάβει στο προϊόν του. Μετά από μερικές ημέρες διάφορων δοκιμών σχετικά με τον τρόπο ενσωμάτωσής του με τέτοιο τρόπο ώστε ο χρήστης να μην χρειάζεται να ρυθμίσει τίποτα απολύτως και να γνωρίζει για το SoftEther VPN, αποκτήθηκε ένα πρωτότυπο. Όλα ήταν όπως έπρεπε. Αλλά για κάποιο λόγο αυτό το σχέδιο εξακολουθεί να μας μπέρδεψε και τελικά το εγκαταλείψαμε. Αλλά φυσικά αρνήθηκαν αφού βρήκαν άλλη επιλογή. Στο τέλος, όλα έγιναν σε κανονικές συνδέσεις TCP. Ορισμένες συνδέσεις λειτουργούν μέσω ενός συντονιστή, ορισμένες απευθείας μέσω της τεχνολογίας Nat Hole Punching (NHP), η οποία εφαρμόστηκε επίσης στο Free Pascal. Πρέπει να πω ότι δεν είχα καν ακούσει ποτέ πριν για το NHP. Και δεν μου πέρασε από το μυαλό ότι ήταν δυνατή η σύνδεση 2 συσκευών δικτύου, οι οποίες είναι και οι δύο ακριβώς πίσω από το NAT. Μελέτησα το θέμα, κατάλαβα την αρχή λειτουργίας και κάθισα να γράψω. Το σχέδιο υλοποιείται, ο χρήστης συνδέεται με ένα κλικ στην επιθυμητή συσκευή πίσω από το NAT μέσω RDP, SSH ή Winbox χωρίς να εισάγει κωδικούς πρόσβασης ή να ρυθμίσει VPN. Επιπλέον, οι περισσότερες από αυτές τις συνδέσεις ξεπερνούν τον συντονιστή μας, κάτι που έχει καλή επίδραση στο ping και στο κόστος εξυπηρέτησης αυτών των συνδέσεων.

Μεταφορά του τμήματος διακομιστή από το Linux στα Windows

Υπήρχαν πολλά προβλήματα κατά την εναλλαγή σε Windows. Το πρώτο είναι ότι το ενσωματωμένο wmic στα Windows δεν σας επιτρέπει να κάνετε ερωτήματα WQL. Και στο σύστημά μας όλα ήταν ήδη χτισμένα πάνω τους. Και υπήρχε και κάτι άλλο, αλλά τώρα ξέχασα γιατί τελικά εγκατέλειψαν τη χρήση του. Πιθανές διαφορές μεταξύ των εκδόσεων των Windows. Και το δεύτερο πρόβλημα είναι το multithreading. Μη βρίσκοντας ένα καλό βοηθητικό πρόγραμμα τρίτων με "αποδεκτή" άδεια για εμάς, κυκλοφόρησα ξανά το Lazarus IDE. Και έγραψα το απαραίτητο βοηθητικό πρόγραμμα. Η είσοδος είναι η απαιτούμενη λίστα αντικειμένων και ποια συγκεκριμένα ερωτήματα πρέπει να γίνουν, και ως απάντηση λαμβάνω δεδομένα. Και όλα αυτά σε λειτουργία πολλαπλών νημάτων. Εξαιρετική.

Αφού έστησα pthreads για PHP Windows, σκέφτηκα ότι όλα θα ξεκινούσαν αμέσως, αλλά δεν ήταν έτσι. Μετά από κάποιο χρονικό διάστημα εντοπισμού σφαλμάτων, συνειδητοποίησα ότι τα pthreads φαινόταν να λειτουργούν, αλλά δεν λειτουργούσαν στο σύστημά μας. Έγινε σαφές ότι υπάρχει κάποια ιδιαιτερότητα στην εργασία με pthreads στα Windows. Και έτσι έγινε. Διάβασα την τεκμηρίωση και γράφτηκε εκεί ότι για τα Windows ο αριθμός των νημάτων είναι περιορισμένος και, από όσο θυμάμαι, σιωπηρά. Αυτό έγινε πρόβλημα. Επειδή όταν άρχισα να μειώνω τον αριθμό των νημάτων στα οποία έτρεχε η εφαρμογή, έκανε τη δουλειά πολύ αργά. Άνοιξα ξανά το IDE και στο ίδιο βοηθητικό πρόγραμμα προστέθηκε η λειτουργικότητα για ping πολλαπλών νημάτων αντικειμένων. Λοιπόν, υπάρχει ήδη πολλή σάρωση θύρας και εκεί. Στην πραγματικότητα, μετά από αυτό, η ανάγκη για pthreads για την PHP εξαφανίστηκε και δεν χρησιμοποιείται πλέον. Επιπλέον, προστέθηκαν πολλές ακόμη λειτουργίες σε αυτό το βοηθητικό πρόγραμμα και εξακολουθεί να λειτουργεί μέχρι σήμερα. Μετά από αυτό, συναρμολογήθηκε ένα πρόγραμμα εγκατάστασης για Windows, το οποίο περιελάμβανε Apache, PHP, MariaDB, την ίδια την εφαρμογή PHP και ένα σύνολο βοηθητικών προγραμμάτων για αλληλεπίδραση με το σύστημα, γραμμένα σε Free Pascal. Όσο για το πρόγραμμα εγκατάστασης, σκέφτηκα ότι θα το λύσω γρήγορα αυτό το ζήτημα, γιατί... Αυτό είναι ένα πολύ κοινό πράγμα και απαραίτητο για σχεδόν κάθε λογισμικό. Είτε έψαχνα σε λάθος μέρος, είτε κάτι άλλο. Συνεχώς όμως συναντούσα προϊόντα που είτε δεν ήταν αρκετά ευέλικτα, είτε ακριβά και επίσης άκαμπτα. Και όμως, βρήκα ένα δωρεάν πρόγραμμα εγκατάστασης στο οποίο θα είναι δυνατή η παροχή οποιασδήποτε επιθυμίας. Αυτό είναι το InnoSetup. Γράφω για αυτό εδώ γιατί έπρεπε να το ψάξω σε περίπτωση που εξοικονομήσω χρόνο σε κάποιον.

Άρνηση του plugin υπέρ του πελάτη σας

Έγραψα προηγουμένως ότι το τμήμα πελάτη ήταν ένα πρόγραμμα περιήγησης με "πρόσθετο". Υπήρχαν λοιπόν στιγμές που το Chrome ενημερωνόταν και η διάταξη ήταν λίγο στραβή, μετά ενημερώθηκαν τα Windows και εξαφανίστηκε το προσαρμοσμένο σχήμα uri. Πραγματικά δεν ήθελα να έχω τέτοιου είδους εκπλήξεις στη δημόσια έκδοση του προϊόντος. Επιπλέον, το προσαρμοσμένο uri άρχισε να εξαφανίζεται μετά από κάθε ενημέρωση των Windows. Η Microsoft απλώς διέγραψε όλα τα υποκαταστήματά της στην απαιτούμενη ενότητα. Επίσης, το Google Chrome δεν σας επιτρέπει πλέον να θυμάστε την επιλογή να ανοίξετε ή όχι μια εφαρμογή από το προσαρμοσμένο uri και κάνει αυτήν την ερώτηση κάθε φορά που κάνετε κλικ σε ένα αντικείμενο παρακολούθησης. Λοιπόν, γενικά, ήταν απαραίτητη η κανονική αλληλεπίδραση με το τοπικό σύστημα του χρήστη, κάτι που δεν παρέχει το πρόγραμμα περιήγησης. Η απλούστερη επιλογή σε αυτό το σχήμα φαίνεται να είναι να φτιάξετε απλώς το δικό σας πρόγραμμα περιήγησης, όπως κάνουν πολλοί τώρα μέσω του Electron. Αλλά πολλά πράγματα είχαν ήδη γραφτεί στο Free Pascal, συμπεριλαμβανομένου του τμήματος διακομιστή, οπότε αποφασίσαμε να κάνουμε τον πελάτη στην ίδια γλώσσα και όχι να δημιουργήσουμε ζωολογικό κήπο. Έτσι γράφτηκε ένας πελάτης με ενσωματωμένο Chromium. Μετά από αυτό, άρχισε να αποκτά διάφορα λουριά.

Ελευθέρωση

Τελικά επιλέξαμε ένα όνομα για το σύστημα. Περνούσαμε συνεχώς από διάφορες επιλογές ενώ βρισκόταν σε εξέλιξη η διαδικασία μετατροπής από την τοπική έκδοση σε SaaS. Δεδομένου ότι αρχικά σχεδιάζαμε να εισέλθουμε όχι μόνο στην εγχώρια αγορά, το κύριο κριτήριο για την επιλογή ενός ονόματος ήταν η παρουσία ενός μη κατειλημμένου ή όχι πολύ ακριβού domain στη ζώνη «.com». Ορισμένες λειτουργίες/ενότητες δεν έχουν ακόμη μεταφερθεί από την τοπική έκδοση στο Veliam, αλλά αποφασίσαμε να τις κυκλοφορήσουμε με την τρέχουσα λειτουργικότητα και να ολοκληρώσουμε τις υπόλοιπες ως ενημερώσεις. Στην πρώτη κιόλας έκδοση δεν υπήρχε HelpDesk, Veliam Connector, ήταν αδύνατο να αλλάξουμε τα όρια για τις ενεργοποιήσεις ειδοποιήσεων και πολλά άλλα. Αγοράσαμε ένα Πιστοποιητικό υπογραφής κώδικα και υπογράψαμε τα μέρη του πελάτη και του διακομιστή. Συντάξαμε έναν ιστότοπο για το προϊόν, ξεκινήσαμε διαδικασίες για την καταχώριση λογισμικού, εμπορικού σήματος κ.λπ. Γενικά, είμαστε έτοιμοι να ξεκινήσουμε. Μια ελαφριά ευφορία από τη δουλειά που έγινε και από το γεγονός ότι ίσως κάποιος χρησιμοποιήσει το προϊόν σας, αν και δεν είχαμε καμία αμφιβολία για αυτό. Και μετά σταμάτα. Ο συνεργάτης είπε ότι είναι αδύνατη η είσοδος στην αγορά χωρίς ειδοποιήσεις μέσω messenger. Είναι δυνατό χωρίς πολλά άλλα πράγματα, αλλά όχι χωρίς αυτό. Μετά από κάποια συζήτηση, προστέθηκε η ενοποίηση με το Telegram, κάτι που μας ταίριαζε. Από όλα τα τρέχοντα instant messenger, αυτό είναι το μόνο που παρέχει δωρεάν πρόσβαση στα API του και χωρίς περίπλοκες διαδικασίες έγκρισης. Το ίδιο WhatsApp προτείνει να επικοινωνήσετε με παρόχους που χρεώνουν καλά χρήματα για τη χρήση των υπηρεσιών τους· όλες οι επιστολές που ζητούσαν πρόσβαση χωρίς παρεμβύσματα αγνοήθηκαν. Λοιπόν, Viber... Δεν ξέρω ποιος το χρησιμοποιεί τώρα, γιατί... τα ανεπιθύμητα μηνύματα και οι διαφημίσεις είναι εκτός γραφημάτων. Στα τέλη Δεκεμβρίου, μετά από μια σειρά εσωτερικών δοκιμών και δοκιμών μεταξύ φίλων, άνοιξαν οι εγγραφές για όλους και το λογισμικό έγινε διαθέσιμο για λήψη.

Έναρξη διανομής

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

Εδώ πρέπει να πούμε ότι η είσοδος στην αγορά όταν η εταιρεία σας δεν έχει διάσημο όνομα και ταυτόχρονα η παροχή λειτουργιών παρακολούθησης χωρίς πράκτορα στην οποία πρέπει να εισάγετε λογαριασμούς από τους διακομιστές και τους σταθμούς εργασίας σας είναι πολύ δύσκολο. Αυτό τρομάζει πολύ κόσμο. Καταλάβαμε από την αρχή ότι θα υπήρχαν προβλήματα με αυτό και ήμασταν προετοιμασμένοι για αυτό τόσο τεχνικά όσο και ηθικά. Όλες οι απομακρυσμένες συνδέσεις, παρά το γεγονός ότι τα RDP και SSH είναι ήδη κρυπτογραφημένα από προεπιλογή, κρυπτογραφούνται επιπλέον από το λογισμικό μας χρησιμοποιώντας το πρότυπο AES. Όλα τα δεδομένα από τοπικούς διακομιστές μεταφέρονται στο cloud μέσω HTTPS. Οι λογαριασμοί αποθηκεύονται σε κρυπτογραφημένη μορφή. Τα κλειδιά κρυπτογράφησης για όλα τα υποσυστήματα είναι ατομικά για όλους τους πελάτες. Για απομακρυσμένες συνδέσεις, χρησιμοποιούνται γενικά κλειδιά κρυπτογράφησης περιόδου λειτουργίας.

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

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

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

Έχουμε πλέον ολοκληρώσει τη διαδικασία για την απόκτηση Πιστοποιητικού Σήματος Κωδικού EV. Για να το αποκτήσετε, πρέπει να περάσετε από μια σειρά ελέγχων και να στείλετε ένα σωρό έγγραφα σχετικά με την εταιρεία, μερικά από τα οποία πρέπει να είναι πιστοποιημένα από δικηγόρο. Η απόκτηση πιστοποιητικού EV Code Sign κατά τη διάρκεια μιας πανδημίας είναι ένα ξεχωριστό θέμα για ένα άρθρο. Η διαδικασία κράτησε ένα μήνα. Και δεν ήταν μήνας αναμονής, αλλά συνεχών αιτημάτων για πρόσθετα έγγραφα. Ίσως η πανδημία δεν είχε καμία σχέση με αυτήν και η διαδικασία κράτησε τόσο πολύ για όλους; Μερίδιο.

Κάποιοι λένε ότι δεν θα το χρησιμοποιήσουμε επειδή δεν υπάρχει πιστοποιητικό FSTEC. Πρέπει να εξηγήσουμε ότι δεν μπορούμε να το αποκτήσουμε και δεν θα το αποκτήσουμε, επειδή για να αποκτήσουμε αυτό το πιστοποιητικό, η κρυπτογράφηση πρέπει να είναι σύμφωνη με το GOST και σχεδιάζουμε να διανείμουμε το λογισμικό όχι μόνο στη Ρωσία και να χρησιμοποιήσουμε το AES.

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

Προσθήκη λειτουργικότητας απομακρυσμένης πρόσβασης για υπαλλήλους

Μία από τις συχνές εργασίες από τους πελάτες είναι «να δώσει στον Vanya πρόσβαση στον υπολογιστή του από το σπίτι». Ανεβάσαμε το VPN στο Mikrotik και δημιουργήσαμε λογαριασμούς για τους χρήστες. Αλλά αυτό είναι ένα πραγματικό πρόβλημα. Οι χρήστες δεν μπορούν να παρακολουθήσουν τις οδηγίες και να τις ακολουθήσουν βήμα προς βήμα για να συνδεθούν μέσω VPN. Διαφορετικές εκδόσεις των Windows. Σε ένα Windows όλα συνδέονται καλά, σε ένα άλλο χρειάζεται διαφορετικό πρωτόκολλο. Και γενικά, αυτό σχετιζόταν πάντα με την αναδιαμόρφωση του εξοπλισμού δικτύου, ο οποίος λειτουργούσε ως διακομιστής VPN και δεν έχουν πρόσβαση όλοι οι εργαζόμενοι σε αυτόν και αυτό ήταν άβολο.

Αλλά έχουμε ήδη απομακρυσμένες συνδέσεις με διακομιστές και εξοπλισμό δικτύου. Γιατί να μην χρησιμοποιήσετε ένα έτοιμο μεταφορικό και να δημιουργήσετε ένα ξεχωριστό μικρό βοηθητικό πρόγραμμα που μπορείτε απλά να το δώσετε στον χρήστη για να συνδεθεί. Ήθελα απλώς να βεβαιωθώ ότι ο χρήστης δεν εισήγαγε κάτι παράλογο εκεί. Μόνο ένα κουμπί "σύνδεση". Αλλά πώς θα καταλάβει αυτό το βοηθητικό πρόγραμμα πού να συνδεθεί εάν έχει μόνο ένα κουμπί; Υπήρχε μια ιδέα να δημιουργήσουμε την απαιτούμενη εφαρμογή online στους διακομιστές μας. Ο διαχειριστής του συστήματος κάνει κλικ στο κουμπί "λήψη συντόμευσης" και μια εντολή αποστέλλεται στο cloud μας για τη δημιουργία ενός μεμονωμένου δυαδικού αρχείου με ενσύρματες πληροφορίες για σύνδεση στον επιθυμητό διακομιστή/υπολογιστή μέσω RDP. Σε γενικές γραμμές, αυτό θα μπορούσε να γίνει. Αλλά αυτό παίρνει πολύ χρόνο· ο διαχειριστής θα πρέπει να περιμένει πρώτα μέχρι να γίνει μεταγλώττιση του δυαδικού και στη συνέχεια λήψη. Φυσικά, θα ήταν δυνατό να προσθέσετε απλώς ένα δεύτερο αρχείο με το config, αλλά αυτό είναι ήδη 2 αρχεία και για λόγους απλότητας ο χρήστης χρειάζεται ένα. Ένα αρχείο, ένα κουμπί και κανένα πρόγραμμα εγκατάστασης. Αφού διάβασα λίγο στο Google, κατέληξα στο συμπέρασμα ότι αν προσθέσετε κάποιες πληροφορίες στο τέλος του μεταγλωττισμένου ".exe", τότε δεν χαλάει (καλά, σχεδόν). Μπορείτε τουλάχιστον να προσθέσετε πόλεμο και ειρήνη εκεί, και θα λειτουργήσει όπως πριν. Θα ήταν αμαρτία να μην το εκμεταλλευτούμε αυτό. Τώρα μπορείτε απλώς να αποσυσκευάσετε την εφαρμογή εν κινήσει, απευθείας στον ίδιο τον πελάτη, με τον τρόπο που ονομάζεται Veliam Connector, και απλώς να προσθέσετε τις απαραίτητες πληροφορίες για τη σύνδεση σε αυτήν στο τέλος. Και η ίδια η εφαρμογή ξέρει τι να την κάνει. Γιατί έγραψα «καλά σχεδόν» στην παρένθεση λίγο πιο πάνω; Επειδή πρέπει να πληρώσετε για αυτήν την ευκολία, καθώς η εφαρμογή χάνει την ψηφιακή της υπογραφή. Αλλά σε αυτό το στάδιο, πιστεύουμε ότι αυτό είναι ένα μικρό τίμημα για μια τέτοια ευκολία.

Άδειες Ενότητας Τρίτων

Έγραψα ήδη παραπάνω ότι αφού αποφασίστηκε να γίνει διαθέσιμο το προϊόν στο κοινό, και όχι μόνο για δική μας χρήση, έπρεπε να εργαστούμε σκληρά και να αναζητήσουμε αντικαταστάσεις για ορισμένες μονάδες που δεν επέτρεπαν στους εαυτούς μας να συμπεριληφθούν στο προϊόν μας. Αλλά μετά την κυκλοφορία, ανακαλύφθηκε κατά λάθος ένα πολύ δυσάρεστο πράγμα. Ο διακομιστής Veliam, ο οποίος βρισκόταν στην πλευρά του πελάτη, περιελάμβανε το MariaDB DBMS. Και έχει άδεια GPL. Η άδεια GPL υποδηλώνει ότι το λογισμικό πρέπει να είναι ανοιχτού κώδικα και εάν το προϊόν μας περιλαμβάνει τη MariaDB, η οποία διαθέτει αυτήν την άδεια, τότε το προϊόν μας πρέπει να είναι υπό αυτήν την άδεια. Αλλά ευτυχώς, ο σκοπός αυτής της άδειας είναι ανοιχτού κώδικα, όχι να τιμωρεί όσους κατά λάθος κάνουν λάθη στο δικαστήριο. Εάν ο κάτοχος των πνευματικών δικαιωμάτων έχει αξίωση, ειδοποιεί εγγράφως τον παραβάτη και πρέπει να εξαλείψει την παραβίαση εντός 30 ημερών. Ανακαλύψαμε μόνοι μας το λάθος μας και δεν λάβαμε κανένα γράμμα και αρχίσαμε αμέσως να εξετάζουμε επιλογές για το πώς να λύσουμε το πρόβλημα. Η λύση αποδείχθηκε προφανής - μεταβείτε στο SQLite. Αυτή η βάση δεδομένων δεν έχει περιορισμούς αδειοδότησης. Τα περισσότερα σύγχρονα προγράμματα περιήγησης χρησιμοποιούν το SQLite και ένα σωρό άλλα προγράμματα. Βρήκα πληροφορίες στο Διαδίκτυο ότι το SQLite θεωρείται το πιο διαδεδομένο DBMS στον κόσμο, ακριβώς λόγω των προγραμμάτων περιήγησης, αλλά δεν έψαξα απόδειξη, άρα πρόκειται για ανακριβείς πληροφορίες. Άρχισα να μελετώ τους κινδύνους από τη μετάβαση στο SQLite.

Αυτό γίνεται μια μη τετριμμένη εργασία όταν οι πελάτες έχουν αρκετές εκατοντάδες διακομιστές εγκατεστημένους με MariaDB και δεδομένα σε αυτό. Ορισμένες δυνατότητες του MariaDB δεν είναι διαθέσιμες στο SQLite. Λοιπόν, για παράδειγμα, στον κώδικα χρησιμοποιήσαμε ερωτήματα όπως

Select * FROM `table` WHERE `id`>1000 FOR UPDATE

Αυτή η κατασκευή όχι μόνο κάνει μια επιλογή από τον πίνακα, αλλά επίσης κλειδώνει τα δεδομένα της σειράς. Και πολλά άλλα σχέδια έπρεπε επίσης να ξαναγραφτούν. Αλλά εκτός από το γεγονός ότι έπρεπε να ξαναγράψουμε πολλά ερωτήματα, έπρεπε επίσης να καταλήξουμε σε έναν μηχανισμό που, κατά την ενημέρωση του διακομιστή Veliam του πελάτη, θα μεταφέρει όλα τα δεδομένα στο νέο DBMS και θα διαγράφει το παλιό. Επίσης, οι συναλλαγές στο SQLite δεν λειτούργησαν και αυτό ήταν ένα πραγματικό πρόβλημα. Αλλά αφού διάβασα την απεραντοσύνη του Παγκόσμιου Ιστού, διαπίστωσα χωρίς κανένα πρόβλημα ότι οι συναλλαγές στο SQLite μπορούν να ενεργοποιηθούν περνώντας μια απλή εντολή κατά τη σύνδεση

PRAGMA journal_mode=WAL;

Ως αποτέλεσμα, η εργασία ολοκληρώθηκε και τώρα το τμήμα διακομιστή του πελάτη εκτελείται στο SQLite. Δεν παρατηρήσαμε αλλαγές στη λειτουργία του συστήματος.

Νέο HelpDesk

Ήταν απαραίτητο να μεταφερθεί το σύστημα HelpDesk από την εσωτερική έκδοση στην έκδοση SaaS, αλλά με κάποιες αλλαγές. Το πρώτο πράγμα που ήθελα να κάνω ήταν η ενοποίηση με τον τομέα του πελάτη όσον αφορά τη διαφανή εξουσιοδότηση χρήστη στο σύστημα. Τώρα, για να συνδεθεί στο HelpDesk και να αφήσει ένα αίτημα στο σύστημα, ο χρήστης απλώς κάνει κλικ στη συντόμευση στην επιφάνεια εργασίας και ανοίγει το πρόγραμμα περιήγησης. Ο χρήστης δεν εισάγει διαπιστευτήρια. Η λειτουργική μονάδα για το Apache SSPI, η οποία αποτελεί μέρος του διακομιστή Veliam, εξουσιοδοτεί αυτόματα τον χρήστη σε έναν λογαριασμό τομέα. Για να αφήσει ένα αίτημα στο σύστημα όταν ο χρήστης βρίσκεται εκτός εταιρικού δικτύου, κάνει κλικ σε ένα κουμπί και λαμβάνει έναν σύνδεσμο στο email του μέσω του οποίου συνδέεται στο σύστημα HelpDesk χωρίς κωδικούς πρόσβασης. Εάν ένας χρήστης απενεργοποιηθεί ή διαγραφεί σε έναν τομέα, τότε ο λογαριασμός HelpDesk θα σταματήσει επίσης να λειτουργεί. Έτσι, ο διαχειριστής του συστήματος δεν χρειάζεται να παρακολουθεί λογαριασμούς τόσο στον τομέα όσο και στον ίδιο το HelpDesk. Ένας υπάλληλος αποχωρεί - αποσυνδέει τον λογαριασμό του στον τομέα και αυτό είναι όλο, δεν θα συνδεθεί στο σύστημα όχι από το εταιρικό δίκτυο, ούτε μέσω συνδέσμου. Για να λειτουργήσει αυτή η ενοποίηση, ο διαχειριστής του συστήματος πρέπει να δημιουργήσει ένα GPO, το οποίο προσθέτει μια εσωτερική τοποθεσία στη ζώνη intranet и διανέμει μια συντόμευση σε όλους τους χρήστες στην επιφάνεια εργασίας.

Το δεύτερο πράγμα που θεωρούμε εξαιρετικά απαραίτητο για τα συστήματα HelpDesk, τουλάχιστον για εμάς, είναι η σύνδεση με τον αιτούντα απευθείας από την εφαρμογή με ένα κλικ. Επιπλέον, οι συνδέσεις πρέπει να περάσουν εάν ο διαχειριστής του συστήματος βρίσκεται σε διαφορετικό δίκτυο. Για την εξωτερική ανάθεση αυτό είναι υποχρεωτικό, για τους διαχειριστές συστημάτων πλήρους απασχόλησης είναι επίσης συχνά πολύ απαραίτητο. Υπάρχουν ήδη αρκετά προϊόντα που κάνουν εξαιρετική δουλειά στις απομακρυσμένες συνδέσεις. Και αποφασίσαμε να κάνουμε ενσωματώσεις για αυτούς. Έχουμε πλέον ενσωματωθεί για το VNC και στο μέλλον σκοπεύουμε να προσθέσουμε Radmin και TeamViewer. Χρησιμοποιώντας τη μεταφορά δικτύου μας για απομακρυσμένες συνδέσεις υποδομής, κάναμε τη σύνδεση VNC σε απομακρυσμένους σταθμούς εργασίας πίσω από το NAT. Το ίδιο θα συμβεί και με το Radmin. Τώρα, για να συνδεθείτε με έναν χρήστη, πρέπει απλώς να κάνετε κλικ στο κουμπί «σύνδεση με τον αιτούντα» στην ίδια την εφαρμογή. Ο πελάτης VNC ανοίγει και συνδέεται με τον αιτούντα, ανεξάρτητα από το αν βρίσκεστε στο ίδιο δίκτυο ή κάθεστε στο σπίτι με παντόφλες. Πρώτον, ο διαχειριστής του συστήματος, χρησιμοποιώντας το GPO, πρέπει να εγκαταστήσει τον διακομιστή VNC στους σταθμούς εργασίας όλων.

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

Τι σκοπεύουμε να κάνουμε στη συνέχεια;

Όταν κυκλοφόρησε το προϊόν, δεν κάναμε κανένα τιμολόγιο επί πληρωμή, αλλά απλώς περιορίσαμε το δωρεάν τιμολόγιο σε 50 αντικείμενα παρακολούθησης. Πέντε δωδεκάδες συσκευές δικτύου και διακομιστές θα πρέπει να είναι αρκετοί για όλους, σκεφτήκαμε. Και μετά άρχισαν να έρχονται αιτήματα για αύξηση του ορίου. Το να πούμε ότι ήμασταν λίγο σοκαρισμένοι είναι να μην πω τίποτα. Οι εταιρείες που έχουν τόσους πολλούς διακομιστές ενδιαφέρονται πραγματικά για το λογισμικό μας; Επεκτείναμε το όριο δωρεάν για όσους υπέβαλαν τέτοια αιτήματα. Σε απάντηση στο αίτημά τους, ρωτήσαμε μερικούς γιατί χρειάζονταν τόσο πολύ, διέθεταν πραγματικά τόσο μεγάλο αριθμό διακομιστών και εξοπλισμού δικτύου. Και αποδείχθηκε ότι οι διαχειριστές του συστήματος άρχισαν να χρησιμοποιούν το σύστημα με τρόπους που δεν είχαμε σχεδιάσει καθόλου. Όλα αποδείχθηκαν απλά - το λογισμικό μας άρχισε να παρακολουθεί όχι μόνο διακομιστές, αλλά και σταθμούς εργασίας. Ως εκ τούτου, υπάρχουν πολλά αιτήματα για επέκταση των ορίων. Τώρα έχουμε ήδη εισαγάγει πληρωμένα τιμολόγια και τα όρια μπορούν να επεκταθούν ανεξάρτητα.

Οι διακομιστές σχεδόν πάντα λειτουργούν είτε με συστήματα αποθήκευσης είτε με τοπικούς δίσκους σε συστοιχία RAID. Και αρχικά φτιάξαμε το προϊόν για αυτούς. Και η SMART παρακολούθηση δεν ήταν ενδιαφέρουσα για αυτό το έργο. Λαμβάνοντας όμως υπόψη το γεγονός ότι οι άνθρωποι έχουν προσαρμόσει λογισμικό για την παρακολούθηση σταθμών εργασίας, έχουν εμφανιστεί αιτήματα για την εφαρμογή της παρακολούθησης SMART. Θα το εφαρμόσουμε σύντομα.

Με την εμφάνιση του Veliam Connector, κατέστη περιττή η ανάπτυξη ενός διακομιστή VPN στο εταιρικό δίκτυο ή η εκτέλεση RDGW ή απλώς η προώθηση θυρών στα απαραίτητα μηχανήματα για σύνδεση μέσω RDP. Πολλοί άνθρωποι χρησιμοποιούν το σύστημά μας μόνο για αυτές τις απομακρυσμένες συνδέσεις. Το Veliam Connector είναι διαθέσιμο μόνο για Windows και ορισμένοι εταιρικοί χρήστες συνδέονται από οικιακούς φορητούς υπολογιστές με MacOS σε σταθμούς εργασίας ή τερματικά στο εταιρικό δίκτυο. Και αποδεικνύεται ότι ο διαχειριστής του συστήματος αναγκάζεται, λόγω πολλών χρηστών, να επιστρέψει ακόμα στο θέμα της προώθησης ή του VPN. Επομένως, τώρα ολοκληρώνουμε την κατασκευή μιας έκδοσης του Veliam Connector για MacOS. Οι χρήστες της αγαπημένης τους τεχνολογίας Apple θα έχουν επίσης την ευκαιρία να συνδεθούν με την εταιρική υποδομή με ένα κλικ.

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

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

Πηγή: www.habr.com

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