Cloud Hybride: Gestion sécurisée d’une flotte d’objets connectés grâce à SquareScale
Article en partenariat avec SquareScale
Le mois dernier, je vous ai présenté SquareScale, une solution qui déploie toute votre infrastructure Cloud Native de A à Z, chez n’importe quel IaaS provider, prête pour la production, avec un focus sur la sécurité. Pour rappel, SquareScale déploie également tous les composants indispensables aux développeurs de microservices: Service Discovery, Service Mesh, gestionnaire de secrets (Vault), monitoring, observabilité, …, tout ceci correctement configuré et immédiatement opérationnel.
Je vais cette fois vous présenter une fonctionnalité de SquareScale qui permet d’ajouter avec une simplicité déconcertante (mais vraiment !), des machines (physiques ou virtuelles) au sein du cluster piloté par SquareScale.
Il est utile de rappeler aux lecteurs qui n’auraient pas lu le précédent article que SquareScale a fait délibérément le choix de Hashicorp Nomad comme scheduler de workloads en raison de son focus sur la sécurité et la certification (réduction de la surface d’attaque) et de sa volonté de simplifier la vie des développeurs.
A l’heure où l’on voit se multiplier la recherche d’alternatives à K8S, il est particulièrement rafraîchissant de trouver enfin une solution basée sur autre chose que du Kubernetes car on ne compte plus les cadavres de sysadmins pendus avec des câbles RJ45 (catégorie 6A minimum) dans les datacenters à cause de l’extrême complexité des infrastructures basées sur K8S.
Cas d’utilisation
Avant de mettre les mains dans le cambouis, identifions les deux principaux cas d’utilisation de l’ajout d’un noeud externe:
Intégration de machines privées dans un cluster piloté par SquareScale dans le Cloud
En présence de Legacy, la capacité à ajouter n’importe quelle machine au sein d’un cluster peut faire gagner énormément de flexibilité dans un projet de migration vers le Cloud. Il est utile de préciser que Nomad est un scheduler de workload hétérogène: il permet bien sûr d’exécuter des containers, mais également des binaires, du Java, du GPU, …
De plus, Nomad étant un simple (mais puissant) binaire, il est possible de le faire tourner sur du Linux, mais aussi du Windows, du Mac OS, voire même tout vieil UNIX ésotérique et obsolète qui serait le seul OS capable de faire tourner une application particulière, pour des bonnes ou des mauvaises raisons (mais c’est un cas tellement fréquent).
SquareScale propose une procédure d’enrôlement simple et efficace visant à ajouter toute machine dans un cluster.
Intégration d’une flotte d’objets connectés dans un cluster piloté par SquareScale
Il est un cas d’utilisation qui, avec l’arrivée de la 5G, devrait voir ses occurrences se multiplier de façon exponentielle. Il est banal de dire que les objets seront de plus en plus connectés, et que, par conséquent, ces objets connectés vont rendre de plus en plus vulnérables les systèmes d’information.
Il est d’ailleurs très inquiétant de remarquer à quel point la plupart des objets connectés du marché, allant de la webcam au switch, en passant par la domotique ou même les capteurs industriels, sont de vraies passoires en termes de sécurité.
Et que dire de la problématique majeure des mises à jour de sécurité, notamment applicatives ?
Quand une flotte de plusieurs centaines de milliers d’objets connectés, voire plus, est déployée, s’assurer de la mise à jour de chaque objet est un défi à part entière.
SquareScale répond à cet enjeu en intégrant un agent Nomad dans les objets connectés - nous allons voir comment plus loin - et l’interface de SquareScale (qu’elle soit sur le web, en CLI, via le provider Terraform ou par l’API) fait de l’action de mettre à jour selon une politique définie, tout ou partie de la flotte, un jeu d’enfant.
Ici aussi, la simplicité et la légèreté de Nomad en font un atout considérable: il est possible de faire tourner Nomad (et Consul) sur de l’ARM, de l’Intel, quel que soit l’OS. La photo ci-après illustre un démonstrateur de SquareScale qui pilote une infrastructure sur AWS incluant 3 Raspberry 4 (ARM64) et 3 Intel Nuc (Intel 64 bits) dans un rack:
SquareScale propose l’inclusion de machines externes dans un cluster avec deux approches possibles. La première, qui est décrite ci-après, consiste tout simplement à fournir l’ensemble des fichiers de configuration de Nomad et Consul. Charge alors au développeur d’installer Nomad (et Consul dans certains cas) avec les fichiers téléchargeables dans l’interface SquareScale.
La deuxième approche est en cours de développement, et consiste à fournir un OS Linux prêt à l’emploi, sur lequel il n’y rien à configurer. On l’installe, on applique le processus d’adoption pour qu’il soit piloté par SquareScale, et c’est fini. On peut alors demander à SquareScale de lancer les workloads de son choix, sur les machines de son choix. Je reviendrai sur cette fonctionnalité un peu plus tard dans l’année, quand elle sera disponible.
Revenons donc à la première solution, qui est déjà disponible en production.
Commençons déjà par créer notre infrastructure:
