Au cours de mon expérience chez Palantir, j'ai passé beaucoup de temps à déployer nos logiciels dans des environnements cloud et également une bonne partie de mon temps à déployer nos logiciels dans des environnements sur site (y compris la création d'une équipe chargée de cette tâche). J'ai remarqué que malgré la préférence générale pour le déploiement dans le cloud, le déploiement sur site présente toujours des avantages.
Le passage du sur site au cloud computing
Au cours des dernières années, le paysage informatique a de plus en plus favorisé le cloud computing, porté par la flexibilité des offres d'infrastructure en tant que service (IaaS) et de plate-forme en tant que service (PaaS). Le marché mondial du cloud computing est passé de 24,63 milliards de dollars en 2010 à 156,4 milliards de dollars en 2020, et cette tendance se poursuit et devrait dépasser 1 000 milliards de dollars d'ici 2028. Cette ascension fulgurante est alimentée à la fois par une nouvelle demande de calcul de la part du monde, mais aussi par la migration des flux de travail sur site vers le cloud.
Il existe de bonnes raisons à ce changement : le cloud permet un provisionnement rapide des ressources, une redondance géographique et un passage des dépenses d’investissement (CapEx) aux dépenses opérationnelles (OpEx). Cependant, je pense qu’il existe certains scénarios où l’utilisation d’une infrastructure sur site, en particulier lorsque des exigences techniques spécifiques, telles que la latence déterministe, le contrôle au niveau du matériel et des mesures de sécurité strictes, sont primordiales.
Avant de plonger dans le vif du sujet et de comparer les configurations cloud et sur site, prenons un peu de temps pour explorer comment chaque déploiement est généralement configuré.
Configuration canonique sur site
Une configuration sur site typique implique un environnement entièrement contrôlé dans lequel l'entreprise gère toutes les couches de la pile technologique. Cela comprend :
Couche physique : matériel tel que serveurs, baies de stockage (SAN/NAS) et équipements réseau (routeurs, commutateurs, pare-feu). Vous avez également besoin d'un centre de données pour exécuter vos serveurs.
Couche de virtualisation : souvent implémentée à l'aide d'hyperviseurs tels que VMware vSphere, Microsoft Hyper-V ou des alternatives open source telles que KVM, fournissant des ressources virtualisées et une isolation.
Stockage et calcul : gérés directement, souvent optimisés pour des charges de travail spécifiques avec des configurations personnalisées (par exemple, niveaux RAID, mécanismes de mise en cache).
Mise en réseau : contrôle total sur les protocoles réseau, le routage et les politiques de sécurité, permettant une QoS (Quality of Service) affinée et minimisant la latence.
Configuration du cloud canonique
Dans une configuration cloud typique, l'infrastructure est abstraite et gérée par le fournisseur de cloud, qui propose :
Infrastructure virtualisée : les instances de calcul, les réseaux virtuels et le stockage sont provisionnés via des API. Les technologies cloud natives telles que Kubernetes et les architectures sans serveur sont exploitées pour l'orchestration et la mise à l'échelle.
Services gérés : les bases de données (par exemple, Amazon RDS, Google Cloud SQL), les lacs de données, les services d'IA/ML et d'autres outils d'analyse avancés sont proposés sous forme de services gérés, réduisant ainsi les frais généraux opérationnels.
Architecture multi-locataire : les ressources sont souvent partagées entre plusieurs locataires, la virtualisation et la conteneurisation assurant l'isolation.
Comparaison
Échelle et vitesse : le cloud excelle dans la mise à l'échelle élastique, facilitée par des mécanismes de mise à l'échelle horizontale comme les groupes de mise à l'échelle automatique et les fonctions sans serveur. L'infrastructure sur site nécessite une planification minutieuse de la capacité et des investissements dans le matériel physique, impliquant souvent une mise à l'échelle verticale. Si vous êtes une start-up qui ne peut pas attendre 9 mois pour de nouveaux calculs, le cloud est la voie à suivre. Cependant, si vous êtes une grande entreprise capable de prévoir la charge de calcul au cours de l'année suivante, alors le cloud sur site pourrait être une option viable.
Latence : les configurations sur site peuvent atteindre une faible latence déterministe en raison de la proximité des serveurs et du contrôle direct sur les chemins réseau. Pour les applications sensibles à la latence (par exemple, le trading haute fréquence, les analyses en temps réel), cela peut être critique. Les environnements cloud, bien qu'optimisés pour une faible latence grâce à des fonctionnalités telles qu'AWS Direct Connect ou Google Cloud Interconnect, peuvent introduire une latence variable en raison de facteurs tels que la congestion du réseau (problème de voisins bruyants) et la surcharge de virtualisation. Ainsi, dans le cas où une latence prévisible et des flux de travail à faible latence sont essentiels pour votre entreprise, les configurations sur site peuvent ne pas être une mauvaise idée !
Coût : les modèles de tarification du cloud (paiement à l'utilisation, instances réservées) offrent une certaine flexibilité, mais peuvent devenir coûteux pour les charges de travail soutenues et à volume élevé, en particulier avec des coûts de sortie de données élevés. Les solutions sur site, tout en nécessitant des dépenses d'investissement initiales importantes pour l'acquisition de matériel, peuvent offrir un coût total de possession (TCO) plus faible au fil du temps, en particulier pour les charges de travail prévisibles et à utilisation élevée. Les modèles cloud peuvent être coûteux, Dropbox a économisé 16,8 millions de dollars en 2016 en déplaçant la majeure partie de son stockage d'AWS vers ses propres centres de données. Voici un article qui explique en détail comment le fait d'être sur site peut vous faire économiser de l'argent .
Expertise : les environnements sur site nécessitent une expertise approfondie en matière de maintenance matérielle, d'ingénierie réseau et d'administration système. À l'inverse, les environnements cloud déchargent une grande partie de la gestion de l'infrastructure sur le fournisseur, ce qui permet aux équipes de se concentrer sur le développement et le déploiement d'applications, en utilisant souvent des pratiques DevOps et des outils d'infrastructure en tant que code (IaC) comme Terraform ou CloudFormation. Les SRE et les administrateurs système sont une race rare de nos jours et vous aurez probablement besoin d'une quantité considérable de calcul afin de justifier l'embauche d'une équipe de ces personnes pour maintenir et exploiter une configuration sur site (et n'oubliez pas que vous avez besoin d'une rotation d'astreinte durable !)
Sécurité : les configurations sur site offrent un contrôle complet sur les configurations de sécurité, des mesures de sécurité physique à la segmentation granulaire du réseau et aux protocoles de chiffrement. Ce contrôle est essentiel pour respecter des normes de conformité spécifiques (par exemple, PCI-DSS, HIPAA). En revanche, les environnements cloud nécessitent une confiance dans les mesures de sécurité du fournisseur, bien que des fonctionnalités telles que les clouds privés virtuels (VPC), le matériel dédié (par exemple, AWS Outposts) et les clés de chiffrement gérées par le client puissent atténuer certaines inquiétudes. Si vous exécutez des flux de travail qui nécessitent ces contrôles et protocoles de sécurité, le déploiement sur site peut être la seule solution. Sinon, une sécurité plus stricte peut être envisagée ! Cependant, je pense que les fournisseurs de cloud actuels s'adaptent et proposent des offres qui répondent à certaines de ces normes (par exemple, AWS GovCloud ).
Conclusion
Bien que le cloud computing offre une flexibilité, une évolutivité et un accès à des services gérés avancés inégalés, les solutions sur site restent indispensables dans les scénarios nécessitant une faible latence, une sécurité élevée et un contrôle total sur les configurations matérielles et logicielles. À mesure que le paysage informatique évolue, la décision entre le cloud et le sur site doit être guidée par les exigences techniques et commerciales spécifiques, en veillant à ce que l'infrastructure choisie soit conforme aux objectifs stratégiques de l'organisation. Vous pouvez utiliser les facteurs ci-dessus et les comparaisons pour faire un choix plus éclairé quant à la configuration qui vous convient le mieux ! Bonne chance !