Client
Un fournisseur de logiciels de télécommunication danois-américain a chargé Elinext de développer une application Web pour gérer les réseaux et les routeurs à distance.
Défi
Les fournisseurs d'accès Internet doivent utiliser un grand nombre d'employés du service clientèle pour aider les clients à résoudre leurs problèmes de connexion. Chaque problème prend beaucoup de temps à gérer car les opérateurs doivent expliquer aux clients ce qu'ils doivent faire avec leur routeur.
Une entreprise danois-américain a décidé de changer cela. Ella a eu l'idée d'un logiciel Web qui donnerait aux opérateurs l'accès aux routeurs des clients et leur permettrait d'agir directement, en temps réel. Rien de tel n'avait jamais été fait auparavant.
L'entreprise cherchait un développeur et est tombée sur Elinext. Nous avions beaucoup d'expérience dans le traitement des Big Data en temps réel, donc notre équipe s'est avérée bien adaptée au projet.
Processus
Depuis le lancement du projet, nous avons utilisé la méthodologie Agile et une communication directe avec l'équipe du client quelques fois par jour. Parfois, nous avons organisé des réunions et des sessions de débogage qui pourraient être longues (jusqu'à 4 heures), mais toujours très productives.
Nous avons commencé par implémenter des adaptateurs cloud pour routeurs (CPE) et des firmwares sur lesquels les développeurs C++ de notre client travaillaient déjà. En parallèle, nous avons créé des adaptateurs pour des routeurs tiers et créé des API communes pour tous les éléments. Nous avons également ajouté un cluster Kubernetes qui peut être déployé sur n'importe quelle plateforme.
Au cours de la dernière étape, nous avons permis au logiciel de collecter et d'analyser 1,000,000 de points de données par seconde en temps réel.
Nous avons créé le MVP rapidement, en seulement deux mois, puis quatre mois plus tard, nous avons achevé le produit entièrement fonctionnel. Et la mise en œuvre de l'IA et du ML a pris 1,5 an depuis le début du projet.
Activation du Courtier de MessagerieLe client utilisait le courtier de messagerie Apache Pulsar. Et leurs développeurs l'ont appelé la mauvaise façon dont nous avons dû changer. Finalement, nous avons réussi à régler le courtier, mais le client a dû changer quelque chose dans son firmware.
Simulation des DonnéesIl est difficile de prédire le comportement de chaque appareil en fonction de l'environnement, car même des matériaux muraux particuliers peuvent affecter la qualité du signal. En plus de tout cela, nous devions générer 1,000,000 de charges utiles par seconde. Tout cela a rendu la simulation du comportement du système un peu difficile.
Ce que nous avons fait, c'est utiliser un cluster séparé sur Kotlin spécifiquement pour ces cas.
TestingNous n'avons fait que l'assurance qualité automatisée. Les tests manuels étaient du ressort de notre client.
Produit
Le système que nous avons construit est une plateforme logicielle unique pour une gestion transparente des abonnés et une visibilité du réseau. Il se compose d'un site Web, d'un ensemble d'outils d'analyse et d'une interface de ligne de commande. Nous avons également rendu le système conforme aux normes de télécommunication telles que TR-069, TR-181, TR-369, TR-089, TR-106, TR-131, TR-135, TR-140, TR-142, TR-143, TR-157, TR-196, TR-330, TR-247 et TR-255.
L'application améliore les performances par rapport à la connectivité de base grâce à une visibilité de bout en bout de l'ensemble du réseau. L'identification des problèmes en temps réel améliore la satisfaction, la fidélisation et la qualité de l'expérience client.
Grâce à des API communes, l'application peut être intégrée de manière transparente aux systèmes de support opérationnel existants et aux systèmes de support métier utilisés par les abonnés de notre client. L'équipement des locaux d'abonnés (CPE) ne doit pas nécessairement être l'appareil de notre client.
L'application fournit une multitude d'options de service et de personnalisations pour les fournisseurs de services Internet.
DéploiementNous avons utilisé un cluster Kubernetes avec des microservices Java et React pour GUI. L'utilisation de microservices permet à notre client de prendre en charge un débit de données énorme et d'évoluer à moindre coût.. De plus, il aide à maintenir l'analyse en temps réel pour toute charge utile que nous recevons.
Afin de permettre aux opérateurs de vérifier l'état du réseau, de configurer des alertes et d'utiliser la traçabilité, nous avons associé Grafana à Prometheus.
MicroservicesLe système se compose de plusieurs microservices, chacun avec un objectif spécifique.
- Les services Ingestors convertissent les modèles de données de n'importe quel routeur vers le modèle TR181, qui est standard pour l'industrie.
- Les adaptateurs traitent le modèle TR181 et créent des métriques (données de séries chronologiques) basées sur celui-ci. Les métriques ressemblent à un point avec un horodatage et une valeur telle que l'utilisation du processeur ou la force du signal à une période donnée.
- Le module de Contrôle CPE permet à l'opérateur de définir des commandes pour le périphérique – cela peut être fait juste après l'appel du point de terminaison. Les commandes incluent le redémarrage de l'appareil, la réinitialisation d'usine ou la spécification des mots de passe pour les points d'accès.
- Avec le module de Mise à Jour du Firmware, les opérateurs peuvent planifier la mise à jour du firmware pour tout appareil connecté à la plateforme.
- Dans le cadre de l'analyse en temps réel, les statuts indiquent si un routeur particulier est sain ou non. L'opérateur peut également vérifier les paramètres spécifiques du routeur via l'infrastructure cloud.
- Les utilisateurs appellent parfois le support lorsque leur signal WiFi est faible. Le module d'Alertes informera l'opérateur d'un problème et suggérera des correctifs avant que cela ne se produise.
- Le module Tableau de Bord permet aux opérateurs de configurer plus de 100 widgets disponibles avec l'application pour gérer certains types de données entrantes.
- Une autre fonctionnalité utile pour les opérateurs est le Gestionnaire de Session. En l'utilisant, ils peuvent déboguer les routeurs connectés au cluster.
- Enfin, le module avancé qui nous a pris le plus de temps à construire est le cloud ML/AI. Cela joue un rôle important dans le développement ultérieur du produit. Notre client peut utiliser le Cloud pour former le modèle d'intelligence artificielle afin de répondre aux besoins potentiels de ses abonnés.
Nous avons utilisé PostgreSQL pour stocker des valeurs statiques et des constantes, tandis que MongoDB est utilisé pour les données de séries chronologiques. Le cache est distribué et activé avec Redis. Et pour obtenir les données historiques, nous avons utilisé AWS S3.
Courtier de MessagerieDans la plupart des cas, le système s'appuie sur Kafka. Mais quand cela ne suffit pas pour échanger des messages, Apache Pulsar est utilisé.
Résultats
Il nous a fallu environ 18 mois pour développer un système entièrement fonctionnel basé sur IA. Il gère désormais environ 1 000 000 charges utiles provenant de 1 000 000 de routeurs par seconde. Et peu de temps après sa mise en service, les opérateurs qui l'utilisaient ont pu réduire leurs coûts de support client et améliorer les communications avec les abonnés.
Ce projet a également été une excellente expérience éducative, car nous avons appris à travailler avec un nouvel outil pour nous: Apache Pulsar. Et nous allons continer à améliorer le produit à l'avenir. En file d'attente - l'ajout de nouvelles normes de l'industrie et la prise en charge de nouveaux routeurs.