Offrir une expérience de données unique sur plusieurs clouds et régions

Offrir une expérience de données unique sur plusieurs clouds et régions

Lorsque Thierry Cruanes et moi avons cofondé Snowflake à l’été 2012, nous avons décidé que Snowflake Cloud Data Platform serait construit au-dessus de l’infrastructure fournie par les clouds publics. Dès le premier jour, notre ambition était de créer une plate-forme de données cloud avec une élasticité, une échelle et des performances pratiquement illimitées, facile à utiliser et dotée d’un modèle de paiement à l’utilisation.

La pierre angulaire de notre plateforme de données cloud est une région Snowflake. Il existe une relation un à un entre une région publique Snowflake et une région publique cloud. L’architecture d’une région Snowflake est conçue pour tirer parti de l’infrastructure sous-jacente fournie par notre plateforme de données cloud. Il est hautement disponible, évolutif et autogéré. À un niveau élevé, il est composé de trois niveaux entièrement découplés, évoluant indépendamment les uns des autres.

Au centre d’une région Snowflake se trouve le niveau de stockage, qui exploite le stockage blob de la région cloud d’hébergement – très bon marché, a une capacité pratiquement illimitée, et est hautement disponible et durable. Il prend en charge des tables de plusieurs pétaoctets avec une prise en charge native des données semi-structurées, telles que JSON. Notre couche de stockage permet une réponse inférieure à la seconde sans partitionner explicitement les données. Nous prenons également entièrement en charge les transactions ACID avec des opérations d’insertion/mise à jour/suppression/fusion très rapides. Et enfin, notre stockage est hautement sécurisé. Toutes les données au repos sont chiffrées par Snowflake.

Le deuxième niveau de notre architecture est la couche de calcul multi-cluster, qui est entièrement découplée de la couche de stockage. Cette couche exécute un nombre quelconque de charges de travail, qui ont leurs propres clusters de calcul dédiés, et même si ces charges de travail lisent ou écrivent les mêmes données sous-jacentes. Il s’agit d’un modèle très rentable, car les ressources de calcul sont dimensionnées indépendamment en fonction des besoins de chaque charge de travail et Snowflake est facturé à la seconde. Cette couche offre également une évolutivité et une élasticité illimitées, car il n’y a pratiquement aucune limite au nombre de clusters actifs et simultanés.

Le dernier niveau de l’architecture exécute les services cloud pour une région Snowflake. C’est vraiment le plan de contrôle d’une région Snowflake et l’interface avec tous les clients externes. Pour chaque compte client, le niveau de services cloud gère les sessions client, les métadonnées, les transactions, la planification des requêtes, la sécurité/gouvernance et de nombreux autres services. Ce niveau est également hautement évolutif, sans aucune limitation d’échelle. Aujourd’hui, les grandes régions Snowflake prennent en charge des milliers de comptes clients et traitent des centaines de millions de requêtes par jour.

Au départ, Snowflake n’était disponible que sur AWS. Nous l’avons ensuite porté sur le cloud Azure en 2018, puis sur Google Cloud Platform (GCP) en 2020. Bientôt, Snowflake Cloud Data Platform sera disponible dans plus de régions cloud que n’importe quel fournisseur d’infrastructure cloud.

Nous avons porté notre logiciel en créant une couche indépendante du cloud, en faisant abstraction de la spécificité de l’infrastructure cloud sous-jacente. Cela signifie que toute application exécutée sur Snowflake Cloud Data Platform est également indépendante du cloud. Cet aspect est très important car éviter tout blocage du cloud est l’un des principaux avantages de l’utilisation de Snowflake

Cependant, notre vision pour Snowflake était bien plus large que la simple exécution indépendante de notre logiciel dans différentes régions cloud. Nous avons envisagé la possibilité pour les régions Snowflake d’interagir les unes avec les autres pour fournir des capacités mondiales. Sans ces fonctionnalités globales, les données de nos clients seraient cloisonnées de la même manière que dans le cloud d’infrastructure, confinant ainsi les applications à une seule région cloud.

Nous avons donc également construit ce que nous appelons le maillage global de données pour relier toutes ces régions entre elles, quelle que soit leur origine. Le maillage global de données est utilisé par notre plateforme pour déplacer efficacement et en toute sécurité de très grandes quantités de données. Cela nous permet désormais de construire des fonctionnalités globales, qui sont par nature interrégionales et intercloud.

La première de ces fonctionnalités globales est la gestion globale des comptes, qui facilite la création et la gestion de comptes Snowflake dans des régions individuelles comme un seul. Un nouveau type de rôle d’administrateur a été créé à cet effet : l’administrateur de l’organisation. Par exemple, l’administrateur de l’organisation peut simplement se rendre sur le site Web snowflake.com et créer son premier compte dans la région Snowflake AWS US West. À partir de ce premier compte, l’administrateur de l’organisation peut créer de nouveaux comptes dans n’importe quelle autre région de Snowflake Cloud Data Platform, à l’aide de l’instruction DDL « créer un compte ».

Une autre fonctionnalité globale de Snowflake est la réplication de base de données. Vous pouvez répliquer une base de données entre n’importe quel compte appartenant à la même organisation, même si ces comptes résident dans des clouds différents. La réplication de base de données a plusieurs cas d’utilisation. Le premier est le partage de données global, qui permet de partager des données entre deux régions Snowflake et de répliquer les données dans la nouvelle région. L’autre cas d’utilisation est la migration d’un compte vers une autre région Snowflake. Le dernier cas d’utilisation concerne la continuité des activités. Dans ce cas, Snowflake prend en charge le basculement complet des données et des connexions client.

De plus, nous avons récemment introduit une nouvelle solution mondiale passionnante, Snowflake Data Marketplace, anciennement appelée échange de données public. Notre marché de données est disponible pour tous nos clients et c’est l’endroit où les fournisseurs de données créent des listes pour annoncer leurs ensembles de données aux consommateurs de données. Les comptes de fournisseur et de consommateur Snowflake peuvent être situés dans différentes régions ou clouds. Par conséquent, le marché a été conçu pour être mondial. Toutes les interactions entre les consommateurs et les fournisseurs sont effectuées via Snowflake Cloud Data Platform, encore une fois, en utilisant le maillage de données global.

Ces fonctionnalités illustrent l’efficacité de Snowflake Cloud Data Platform une seule plateforme pour le monde, construit au-dessus de l’infrastructure cloud où chaque nœud est une région Snowflake connectée à toutes les autres via notre maillage de données global.

Cela fait de Snowflake un système cohérent qui transcende à la fois les frontières cloud et géographiques, et nous permet, ainsi qu’à nos clients, de créer d’étonnantes fonctionnalités globales et indépendantes du cloud. Et bien sûr, comme vous pouvez l’imaginer, nous ne sommes qu’au début de notre voyage mondial.

Cliquez sur ici pour en savoir plus sur l’essor du Data Cloud par le PDG de Snowflake, Frank Slootman. Cliquez sur ici pour en savoir plus sur les dernières innovations de Snowflake Cloud Data Platform auprès du vice-président senior des produits de Snowflake, Christian Kleinerman.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.