Comment rendre les infrastructures Cloud "haute disponibilité" accessibles et sécurisées grâce à SquareScale ?
Aujourd’hui, on va parler d’infrastructures Cloud, de sécurité et de haute disponibilité.
Je vais vous présenter une plateforme qui monte et dont vous n’avez pas fini d’entendre parler: SquareScale.
L’actualité douloureuse d’OVH l’a rappelé, il est indispensable d’héberger ses applications web sur une infrastructure redondante afin de protéger son business, ses données et son chiffre d’affaires.
Et quand on parle de haute disponibilité et de redondance, on peut difficilement éviter le sujet d’architectures Cloud Native et de Kubernetes.
Depuis quelques années, Kubernetes est devenu le buzzword pour tous les Ops et DSI. C’est presque une mode incontournable. Le problème, c’est que Kubernetes est une technologie excessivement complexe, très puissante, mais qui demande de grosses compétences. Le coût de maintenance est important et même les Kubernetes managés ne peuvent masquer complètement la complexité du système.
Toutefois, c’est à la mode et tout le monde veut s’y mettre, y compris les petites structures qui ont besoin d’agilité, d’aller vite.
Sauf que tout n’est pas si simple, malheureusement.
Je commence à voir un peu partout des retours d’expérience d’entreprises qui déchantent et en reviennent et ce qu’il en ressort, c’est que dans bien des cas, utiliser Kubernetes pour son infrastructure, c’est un peu comme se couper les ongles avec une tronçonneuse… Ça marche, mais c’est overkill…
Mais bonne nouvelle, j’ai croisé le chemin de SquareScale, un nouvel entrant qui promet de créer une infrastructure dédiée chez n’importe quel Cloud provider (AWS, Azure, …) avec un énorme focus sur la sécurité. Ainsi, toute l’infrastructure et la stack nécessaire pour faire du Cloud Native sont entièrement disponibles et configurés, et se basent uniquement sur des briques open source.
2 points sur lesquels SquareScale se démarque
Tout d’abord, SquareScale ne se base pas sur du Kubernetes, mais sur Nomad, un scheduler de Workload beaucoup moins lourd, développé par Hashicorp.
SquareScale justifie son choix notamment en raison de son attention portée à la sécurité, mais aussi au fait que la société s’apprête à proposer des infrastructures dans le Cloud certifiées selon différents profils (HDS pour la santé, PCI DSS pour le bancaire, et même SecNumCloud, le graal de la sécurité).
SquareScale prétend que fournir des infrastructures conformes aux différents profils de sécurité, de manière automatisée, tout en générant l’ensemble des artefacts de certification sur l’infrastructure, aurait été bien plus coûteux et complexe à développer si elle avait choisi Kubernetes. La complexité d’assemblage et des périmètres de Kubernetes rendant l’analyse interne et fonctionnelle beaucoup plus complexe que les briques indépendantes et bien identifiées de nomad dans le cadre d’une certification.
Le deuxième atout de SquareScale est donc cette garantie de fournir une infrastructure dont toutes les bonnes pratiques de sécurité sont appliquées, et surtout qui est mise à jour automatiquement, sans downtime.
Alors concrètement, ça donne quoi ?
SquareScale est une plateforme qui permet de générer / manager une infrastructure Cloud Native complète, chez un IaaS provider (AWS, GCP, Azure, …) mais également en On Premises (VMWare, Openstack, …), ou en Edge sur des objets connectés.
L’interface est bluffante de simplicité. On peut utiliser l’application web, la ligne de commande, un provider Terraform, ou un SDK (Go pour l’instant).
Qu’a-t-on sous le capot ?
Après avoir créé un compte SquareScale, on peut créer et piloter des infrastructures spécifiques à ce compte, ou bien créer une organisation et inviter des utilisateurs en leur affectant des droits à différentes infrastructures.
Il est ensuite possible d’ajouter à son compte ou à une organisation, les credentials d’un IaaS provider comme AWS, Azure ou GCP par exemple. On peut également créer une infrastructure sans ajouter ses propres credentials, et laisser SquareScale le gérer. Il est à noter que SquareScale ne stocke jamais les credentials de ses clients: un token est généré à partir de ceux-ci, puis stocké dans un Vault (voir plus loin).Un utilisateur peut, selon ses droits d’accès définis, décider de créer une infrastructure Cloud Native prête pour la production en quelques minutes, soit chez un IaaS provider public, soit en On Premises (sur du VMWare ou Openstack). Il est même possible d’inclure une flotte d’objets connectés au cluster de façon sécurisée, j’en parlerai dans un prochain article.Concrètement, SquareScale va utiliser l’API de l’IaaS provider choisi pour provisionner des VMs, réparties dans plusieurs zones géographiques, configurer l’OS de chaque machine virtuelle, configurer les réseau, bootstrapper un cluster Nomad, un cluster Consul, un cluster Vault (selon les options sélectionnées), mettre en place le chiffrement TLS sur tous les échanges, configurer un load balancer (Traefik), activer les règles de sécurité selon le profil choisi.
Éventuellement, on peut demander à SquareScale de provisionner un service managé spécifique à l’IaaS provider utilisé (Postgresql sur AWS RDS par exemple, éventuellement en HA).
En seulement quelques minutes, on a accès à son infrastructure dédiée complètement prête pour la production, dont toutes les bonnes pratiques de sécurité sont mises en place, complètement reproductible et réplicable à souhait. Et cerise sur le gâteau, on peut automatiser l’automatisation réalisée par SquareScale via un provider Terraform ou la CLI. Idéal pour du déploiement continu, avec la possibilité de générer un environnement de staging complètement identique à la production de façon automatisée, en quelques minutes seulement.
Une fois l’infrastructure totalement provisionnée, c’est un jeu d’enfant de scheduler ses workloads applicatifs. Bien sûr, on peut exécuter des containers Docker. Les habitués des solutions K8S managés seront surpris de la simplicité de configuration. Mais contrairement à Kubernetes, conçu pour orchestrer des containers, Nomad peut scheduler tout type de workload des containers, mais également des binaires, des VMs, du workload pour GPU, …SquareScale n’a aujourd’hui pas encore finalisé le support d’autres types de charge de travail que les containers Docker, mais c’est annoncé pour cette année. Il est également très simple de lancer des workload en mode batch, pour une migration par exemple, ou bien des jobs Cron à la fréquence de son choix (syntaxe Crontab Unix).
L’accès à l’outil n’est pas encore ouvert au public, et il faut faire une demande d’accès auprès de l’entreprise. Pour ma part, j’ai pu évaluer la solution, et je dois dire que c’est vraiment simple. Un développeur n’a pas à se soucier de la configuration et l’interaction complexe de ces différentes briques et peut se concentrer sur le développement de son application.
J’ai d’ailleurs découvert pour l’occasion Hashicorp Vault, qui est le gestionnaire de secret de référence dans l’univers Cloud Native. C’est un outil complexe à mettre en place et à manager. SquareScale le rend accessible aux développeurs en un clic:
[Vault](https://www.vaultproject.io/?source=korben.info) est l’outil de Hashicorp qui est chargé de la sécurité de vos données. Il peut à la fois stocker vos secrets, chiffrer des données à transférer et donner des accès temporaires à d’autres composants. Et tout ceci avec les standards de chiffrement les plus à jour.Le focus de SquareScale étant la sécurité, il est possible de paramétrer finement les différents paramètres de sécurité.À l’heure où j’ai essayé le produit, de nombreuses options sont encore grisées, mais la roadmap de SquareScale avance vite.
Le point le plus impressionnant est le choix d’un profil de sécurité adapté à différentes normes de certification (HDS, PCI DSS, SecNumCloud). L’année prochaine, SquareScale annonce être capable de générer l’ensemble des documents de certification à remettre aux organismes certificateurs concernant tous les détails de l’infrastructure. Et comme c’est un sujet qui devient de plus en plus prioritaire pour les autorités, de plus de plus de sociétés doivent s’y conformer (données médicales, bancaires, opérateurs d’importance vitale …). Et le coût peut devenir très prohibitif.
SquareScale a pour ambition de rendre accessible à toutes les entreprises des infrastructures Cloud Native ultra-sécurisées, et éventuellement certifiables pour celles soumises à ces contraintes réglementaires.
C’est un projet intéressant, et l’équipe qui le pilote dispose d’une expérience solide en infrastructure cloud, en sécurité, et domine les sujets très complexes liés aux normes de certification les plus contraignantes.SquareScale est pour l’instant réservé aux entreprises et ouvrira au public dans quelques mois. Je garde l’œil sur le projet et vous proposerai une présentation des différentes fonctionnalités au fur et à mesure de l’évolution du produit.
A noter que toutes les personnes qui contactent l’entreprise de la part de Korben bénéficieront d’un accès gratuit à la plateforme pendant 1 mois pour de la production, et un an pour du test.