BugSense: Οριζοντας την ποιοτητα των mobile εφαρμογων

Η BugSense έχει στόχο να θέτει τα στάνταρ ποιότητας για τις mobile εφαρµογές. Αναλύοντας 5 δις µετρήσεις κάθε µήνα από διάφορες πλατφόρµες, η BugSense παρέχει σε πάνω από 16.000 developers από όλο τον κόσµο – συµπεριλαµβανοµένων και εταιρειών της λίστας Fortune 500 – µε αναφορές απόδοσης εφαρµογών, που τους βοηθούν να αναγνωρίζουν προβλήµατα των εφαρµογών, να τα διορθώνουν και µε αυτό τον τρόπο να προσφέρουν µια καλύτερη εµπειρία στους χρήστες των εφαρµογών.

Η λύση της BugSense στην ουσία παρακολουθεί τη συµπεριφορά των εφαρµογών, συγκεντρώνει όλα τα απαραίτητα στοιχεία για τα λάθη και τα προβλήµατά τους και τα αποστέλλει στους developers. Η διαδικασία εγκατάστασης είναι εξαιρετικά απλή, αφήνει ένα ελάχιστο footprint και παρέχει τεράστια αξία. Σύµφωνα µε το Appbrain, η λύση της BugSense έχει τη µεγαλύτερη διανοµή στη βιοµηχανία. Τα Insight Boxes της λύσης της εταιρείας συσχετίζουν δεδοµένα απόδοσης των mobile εφαρµογών αλλά και µετρήσεις που σχετίζονται µε τη συµπεριφορά και την ικανοποίηση των χρηστών. Με αυτό τον τρόπο οι developers έχουν τη δυνατότητα να εστιάσουν σε προβλήµατα των εφαρµογών και σε αναβαθµίσεις που έχουν σηµασία για τους πελάτες της εταιρείας. Ανάµεσα στους πελάτες της BugSense, ξεχωρίζουν οι Intel, Samsung Skype, HPO, Kellogg’s, Nuance και άλλες. Το SDK της εταιρεία είναι διαθέσιµο για Android, iOS, Windows Phone 8, Windows 8 και HTML 5.

Η ανάγκη
Λόγω της φύσης της λύσης της BugSense, οι servers της εταιρείας δέχονται δεδοµένα από όλα τα κινητά τηλέφωνα του πλανήτη. Κάτι τέτοιο ισοδυναµεί µε περισσότερο από 1 Gbit δεδοµένων, τα οποία καταλήγουν σε 4 load-balanced συστήµατα. Στην ουσία µιλάµε για 10.000 requests ανά δευτερόλεπτο, ένα πραγµατικά πολύ µεγάλο νούµερο.  Το µεγαλύτερο µέρος της επικοινωνίας πραγµατοποιείται µέσω HTTP και αυτός είναι ο λόγος που η εταιρεία έχει επιλέξει τη χρήση του NGINX παντού. 

Η λύση
Η BugSense επέλεξε για τη φιλοξενία των συστηµάτων της το Windows Azure. Ανάµεσα στα σηµεία, που ξεχώρισε η BugSense είναι το virtual network system. Το provisioning ενός server µέσα σε ένα virtual δίκτυο κάνει διαδικασίες όπως είναι η κατανοµή των διευθύνσεων IP εξαιρετικά προβλέψιµη κάτι που παρέχει τη δυνατότητα για την εφαρµογή εξαιρετικά λεπτοµερών ρυθµίσεων ασφάλειας. Παρά το γεγονός ότι στην αγορά υπήρχαν ανταγωνιστικές λύσεις, η ευκολία χρήσης έπαιξε ιδιαίτερα σηµαντικό ρόλο στην επιλογή. Σε αυτό το επίπεδο εξαιρετική σηµασία έπαιξε η δυνατότητα κατανοµής στατικών διευθύνσεων IP σε κάρτες δικτύου που είναι εσωτερικές ή εξωτερικές, µια δυνατότητα µε εξαιρετική σηµασία, η οποία όµως δεν ήταν διαθέσιµη από τον ανταγωνισµό.

Αντίστοιχα το εσωτερικό σύστηµα DNS καθιστά προβλέψιµη την απόδοση ονοµάτων, κάτι που λειτουργεί άψογα µε τα 2 παραπάνω σηµεία. Μεγάλη σηµασία έπαιξε και η εύκολη δηµιουργία server images. Με εξαιρετικά απλό τρόπο µπορεί να δηµιουργηθεί ένα golden image, το οποίο θα χρησιµοποιηθεί στη συνέχεια για την εγκατάσταση servers µε γρήγορο τρόπο ειδικότερα µε τη χρήση του Chef.

Η υποδοµή που χρησιµοποιεί η εταιρεία στηρίζεται σε 4 συστήµατα τύπου M µε 2 επεξεργαστές και 4 GΒ µνήµης (που λειτουργούν ως Sharders), τα οποία βρίσκονται πίσω από ένα load balanced endpoint του Azure. Ο τρόπος διαµόρφωσης των συστηµάτων είναι τέτοιος που επιτρέπει την άµεση και χωρίς προσπάθεια κλιµάκωση οριζόντια κλιµάκωση κυριολεκτικά απεριόριστα. Τα συστήµατα sharders χρησιµοποιούν Redis για την αναζήτηση των shards µια υποδοµή master/slave και ένα σύνολο Lua scripts που τρέχουν στο NGINX και αναλαµβάνουν την διαδικασία απόφασης για τα shards σε κάθε node της υποδοµής.

Οι βάσεις δεδοµένων που χρησιµοποιεί η BugSense είναι και αυτές σε συστήµατα Azure (τύπου XL µε 8 CPU και 14 GB µνήµης). Η πρόσβαση σε αυτά τα συστήµατα πραγµατοποιείται µέσω ενός bounce server µέσω SSH ή µέσω των sharders για τις αιτήσεις payload. Στο κοµµάτι των βάσεων δεδοµένων θα πρέπει να αναφέρουµε ότι η BugSense έχοντας να αναλύσει κυριολεκτικά Petabytes δεδοµένων, δηµιούργησε τη δική της stream βαση δεδοµένων (γραµµένη σε Erlang και C), που διακρίνεται για τον πρωτοποριακό τρόπο που αντιµετωπίζει τα ζητήµατα του replication των δεδοµένων στη βάση της λογικής ότι δεν υπάρχει µια λύση – πανάκεια. Στη λύση υπάρχουν και επιπλέον συµπληρωµατικοί servers, που περιλαµβάνουν ένα Opscode Chef 10 (που σύντοµα θα αναβαθµιστεί σε έκδοση 11) για θέµατα αυτοµατισµού που λειτουργεί σε ένα S instance στο Windows Azure, έναν server που χρησιµοποιείται για θέµατα monitoring και graphing (M instance) και έναν server που χρησιµοποιείται για logging (M instance).

Οφέλη
Οι βασικοί λόγοι που οδήγησαν τους υπεύθυνους της BugSense στο Windows Azure είναι η ιδιαίτερα υψηλή διαθεσιµότητα που παρέχεται από τη λύση της Microsoft, η απροβληµάτιστη κλιµάκωση και το ιδιαίτερα καλός λόγος κόστους/παρεχόµενες υπηρεσίες.
 

Related Posts