Cloud-Nanny avait besoin d'une architecture qui lui permettrait de vérifier des centaines de milliers de requêtes Web et de décider de les autoriser ou de les bloquer sans impact notable sur l’expérience de navigation de l’utilisateur final. Elle visait un temps de traitement ne dépassant pas 40 microsecondes pour rechercher un site dans sa base de données et rendre une décision.
Martijn Rooks, PDG de Cloud-Nanny, explique : "IBM Db2 on Cloud était la solution idéale pour vérifier rapidement les requêtes par rapport à notre base de données de sites sur liste noire et liste blanche - elle est très rapide pour effectuer ce type de requête et, en tant que plateforme de base de données basée sur le cloud, elle peut évoluer facilement. Surtout, IBM la fournit en tant que service géré, ce qui signifie que nous pouvons nous concentrer sur le développement de notre solution, au lieu de consacrer du temps aux tâches d'administration de base de données de bas niveau. »
Rechercher des sites dans une base de données est assez simple, mais que se passe-t-il si un enfant tente d'accéder à un site qui ne figure pas déjà dans la base de données ? C'est là que la partie intelligente de la solution entre en jeu. À l'aide d'une vaste collection de sites Web, Cloud-Nanny a développé un modèle adapté à ses besoins, en utilisant des algorithmes de machine learning exécutés dans IBM Analytics for Apache Spark. La puissance du cluster Spark est utilisée pour créer le classificateur de sites Web, qui est capable de classer le contenu en temps réel et de le ranger par catégories - par exemple site de jeu, site vidéo ou site présentant du contenu pour adultes.
La solution compare ensuite les résultats au profil existant de la famille pour vérifier si la catégorie particulière du site est répertoriée comme acceptable ou interdite pour l'appareil ou l'utilisateur qui fait la demande. Si l'algorithme de catégorisation est sûr que le site appartient à une catégorie autorisée ou interdite, la demande est autorisée ou bloquée. Au contraire, s'il est moins certain de la classification, il peut alerter les parents et leur demander de procéder à une vérification.Les résultats de cette décision parentale sont ensuite intégrés dans le modèle, ce qui l'aide à apprendre et à s'améliorer au fil du temps.
« L'aspect intelligent de la solution, c'est qu'elle repose sur l'idée que la sécurité sur Internet n'est pas sans nuances : il existe de nombreuses zones grises et différents parents auront des points de vue différents sur ce qui est acceptable ou non pour chacun de leurs enfants », explique Martijn Rooks. « En outre, ces opinions évolueront probablement avec le temps : des sites qui ne conviennent pas à un enfant de 10 ans peuvent convenir à un enfant de 14 ans. Le machine learning avec Spark est très puissant, car cela permet à notre solution de s'adapter et d'évoluer en fonction des besoins de la famille. »
Cloud-Nanny a pu passer d'une simple démonstration de faisabilité à un service prêt pour la production en seulement 14 mois. La société attribue ce cycle de développement rapide à sa décision de construire la solution sur IBM Bluemix.
« Lorsque nous avons créé démonstration de faisabilité pour le produit Cloud-Nanny, nous avons utilisé un autre fournisseur d'hébergement », déclare Martijn Rooks. « Il nous a fallu deux mois pour mettre en place et configurer l'infrastructure, avant même de pouvoir commencer le travail de développement réel. Avec IBM Cloud, nous avons pu être opérationnels presque immédiatement. Une fois que l'on sait comment fonctionne la plateforme et à quel point il est facile de regrouper différents services, on peut créer une application de base en quelques jours. »
« La création d'un produit et sa mise sur le marché en 14 mois de bout en bout est quelque chose qui aurait été presque impensable il y a quelques années. Et avec un projet aussi avancé, utilisant des technologies de pointe comme Spark, c'est particulièrement impressionnant. Au total, nous estimons que le lancement d'un projet avec Bluemix prend moitié moins de temps qu'avec un environnement de développement logiciel plus traditionnel. »