Vous êtes sur la page 1sur 46

Av

ec
le
sc
om
pl
im
en
Une

ts
de
introduction
aux bases
de données
cloud
Un guide pour les administrateurs

Wendy A. Neu, Vlad Vlasceanu,


Andy Oram et Sam Alapati

RAPPORT
Débarrassez-vous des
bases de données obsolètes
AWS propose la plus large sélection de bases de don-
nées sur mesure, ce qui vous permet d'économiser,
développer votre activité et innover plus rapidement

Mise à l'échelle de 3 à 5 fois plus de + de 14 moteurs de base


l'entreprise à 1/10 performances que les de données – plus que tout
du coût des bases de autres solutions populaires autre fournisseur
données commerciales

En savoir plus : aws.amazon.com/databases


Une introduction aux
bases de données cloud
Un guide pour les administrateurs

Wendy A. Neu, Vlad Vlasceanu, Andy Oram


et Sam Alapati

Beijing • Boston • Farnham • Sebastopoll • Tokyo


Une introduction aux bases de données cloud

par Wendy A. Neu, Vlad Vlasceanu, Andy Oram et Sam Alapati

Droits d'auteur © 2019 O'Reilly Media Inc. Tous droits réservés.

Imprimé aux États-Unis d'Amérique.

Publié par O'Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472.

Les livres O'Reilly peuvent être achetés à des fins éducatives, commerciales ou pro-
motionnelles. Des éditions en ligne sont également disponibles pour la plupart des
ouvrages (http://oreilly.com). Pour plus d'informations, contactez notre service com-
mercial corporatif/institutionnel : 800-998-9938 ou envoyez un e-mail à l'adresse
corporate@oreilly.com.

Rédacteur de la section Développement : Architecte d'intérieur : David Futato


Jeff Bleiel Designer de la couverture :
Responsable des acquisitions : Jonathan Hassell Karen Montgomery
Directrice de la production : Katherine Tozer Illustratrice : Rebecca Demarest
Réviseur : Octal Publishing, LLC

Septembre 2019 : première édition

Historique des révisions de la première édition

19/08/2019 : première version

Le logo O'Reilly est une marque déposée d'O'Reilly Media, Inc. Une introduction aux bases
de données cloud, l'image de couverture et les présentations commerciales associées sont
des marques déposées d'O'Reilly Media, Inc.

Les opinions exprimées dans ce document sont celles des auteurs et ne représentent pas le
point de vue de l'éditeur. Bien que l'éditeur et les auteurs aient fait tout leur possible pour
s'assurer que les informations et les instructions contenues dans ce document sont exactes,
ils déclinent toute responsabilité pour les erreurs ou omissions, y compris, sans s'y limiter,
toute responsabilité des dommages résultant de l'utilisation du présent document ou de la
fiabilité accordée à celui-ci. L'utilisation des informations et des instructions contenues dans
ce document est à vos propres risques. Si des exemples de code ou toute autre technologie
que ce document contient ou décrit sont soumis à des licences open source ou aux droits
de propriété intellectuelle d'autrui, il est de votre responsabilité de vous assurer que votre
utilisation est conforme à de telles licences et/ou à de tels droits.
Ce document s'inscrit dans le cadre d'une collaboration entre O'Reilly et AWS. Consultez
notre déclaration d'indépendance éditoriale.

978-1-492-04482-6
[LSI]
Table des matières

1. Options de base de données dans le cloud…………………… 1


Effets à haut niveau de la migration vers le cloud 2
Comparaison entre les bases de données autogérées
et les bases de données gérées 5
Bases de données natives du cloud 6
Types de bases de données gérées 7
Cas dans lesquels une base de données gérée peut ne pas convenir 8
Rôle de l'administrateur de base de données dans une base
de données gérée 9

2. L'évolution du rôle de l'administrateur de base


de données dans le cloud…………………..............................11
L'évolution des tâches de l'administrateur de base de données
dans le cloud 13
Sécurité des données et des applications dans le cloud 19
L’infrastructure en tant que code : tirer le meilleur du cloud 23

3. Migrer vos bases de données vers le cloud..........………..…..25


Planification 26
Migration des données 32
Optimisation 35
Conclusion 38

4. Conclusion……………………………………………………………39

iii
CHAPITRE 1
Options de base de
données dans le cloud

La ruée vers le cloud est souvent mesurée en termes purement commerciaux


et sa popularité croissante est largement reconnue. Par exemple, un rapport
Gartner récemment publié (consultable uniquement après transmission
d’informations concernant l’entreprise) constate une croissance des bases de
données dans le cloud de 68 %, alors que la croissance est faible sur site en dehors
de l’augmentation des tarifs et de ce qu’ils appellent les « mises à niveau forcées ».

Mais ce changement spectaculaire dans l'informatique et l'accès aux bases de


données se manifeste également dans les types de services proposés et l'évolution
des emplois dans le secteur de l'informatique. Tous les principaux fournisseurs de
cloud proposent désormais une grande variété de bases de données gérées dans
leurs offres. L’utilisation de ces bases de données élimine de nombreuses tâches
effectuées par les administrateurs de base de données dans les environnements
traditionnels, où les organisations possèdent leur propre matériel, que nous
appellerons environnements sur site. La migration vers le cloud impliquera de
nouvelles tâches, modifiera certaines tâches existantes et fournira un contexte
légèrement différent pour comprendre bon nombre de tâches.

Les fournisseurs de cloud suivent avec ténacité les changements dans l'espace de
base de données et varient leurs offres de base de données pour répondre aux
divers besoins de leurs clients. Les bases de données relationnelles (sous forme
transactionnelle et d'entrepôt de données) apparaissent avec les bases de données
non relationnelles, telles que les magasins de clés-valeurs et de documents.

Ce rapport aide l'administrateur de base de données et les autres membres du


personnel concernés (tels que les scientifiques des données, les architectes de
données et les développeurs d'applications) à faire leur choix parmi les offres cloud.
Il explique sur un plan général les responsabilités que l’administrateur de base de
données doit s’attendre à assumer dans l’environnement cloud. Enfin, il propose
des consignes pour la migration.

1
Le rapport ne mentionne pas d’arguments pour ou contre la migration
vers le cloud, car il existe d’autres ressources pour accompagner cette
décision et celle-ci est étroitement liée aux caractéristiques particulières
de vos bases de données et à la façon dont vous les utilisez. En outre,
aucune offre cloud spécifique ne fera l’objet d’un examen ou d’une
recommandation. Nous faisons toutefois référence aux offres des
fournisseurs de cloud actuellement les plus présents sur le marché, à savoir :
Amazon Web Services (AWS), Microsoft Azure et Google Cloud Platform.

Ce chapitre inclut les points suivants :

• Un bref récapitulatif des différences entre l'informatique sur site et le


cloud computing, en tenant compte des éléments pertinents pour les
administrateurs de base de données
• La définition d'une base de données gérée
• Les types de bases de données gérées proposées par les fournisseurs de cloud
• Une présentation globale du rôle d’un administrateur de base de données
dans le cloud

Les offres cloud reprennent souvent les logiciels disponibles pour un déploiement
traditionnel sur site. Vous pouvez ainsi migrer des données de votre propre
équipement vers une base de données comparable proposée par un fournisseur
de cloud. Vous pouvez notamment exécuter MySQL ou Oracle dans le cloud plutôt
que dans votre propre centre de données, ou vous pouvez utiliser une base de
données native cloud, Amazon Aurora par exemple.

Vous devez également être en mesure de garder un pied sur chaque camp (sur site
et cloud), en déplaçant les données dans le cloud à un rythme confortable pour
votre organisation. Vous pouvez aussi gérer continuellement deux déploiements,
l’un sur site et l’autre dans le cloud. Le cloud est souvent un bon endroit pour essayer
quelque chose de totalement nouveau, par exemple, un projet de Big Data que vous
n’avez jamais créé auparavant.

Il y a de fortes chances a plupart des lecteurs connaissent le cloud, ainsi que


ses avantages et diverses raisons de l’utiliser ou de l’éviter, il nous a toutefois
semblé utile dans la section suivante de présenter un résume des caractéristiques
du cloud qui sous-tendent les idées de ce rapport. Nous pourrons ensuite nous
concentrer sur les bases de données.

Effets à haut niveau de la migration vers le cloud


À mesure que vous déplacerez des données vers le cloud, vous remarquerez certaines
différences par rapport aux déploiements sur site, qui auront une incidence sur vos
décisions. Voici les principaux changements qui intéresseront un administrateur de
base de données :

2 | Chapitre 1 : Options de base de données dans le cloud


• Vous payez selon votre utilisation, par incréments horaires ou mensuels,
pour exécuter chaque serveur (ou instance d'après le jargon de l'informatique
virtuelle). Ainsi, si vous disposez d’une application d’informatique décisionnelle
(BI) que vous exécutez tous les soirs, vous pouvez lancer une instance d’une
base de données pendant huit heures la nuit et éviter de payer les 16 autres
heures de la journée. Avec certains services (tels que les instances réservées
AWS), vous pouvez également exécuter une base de données à prix réduit
pendant une durée limitée.
• Le matériel et l'infrastructure connexe sont gérés par le fournisseur. Cela
peut réduire considérablement le travail des administrateurs système et de
bases de données. Au lieu de mettre à disposition votre propre matériel, vous
choisissez la quantité de CPU, de mémoire et de stockage que vous souhaitez
avoir dans votre instance de base de données. Les fournisseurs proposent
souvent des offres spéciales qui peuvent améliorer les performances dans
le cadre des stratégies utilisées sur site : par exemple, Microsoft Azure SQL
Data Warehouse propose un stockage SSD (Solid State Drive) et Amazon
DynamoDB a une version spéciale de mise en cache en mémoire.
• Les principaux fournisseurs de cloud (AWS, Azure et Google Cloud) proposent
non seulement d'isoler vos charges de travail dans des machines virtuelles
(VM), mais également d'isoler des réseaux d'entreprise entiers dans le
cloud, un service appelé Virtual Private Cloud (VPC). À l’instar des machines
virtuelles qui permettent à chacun de vos serveurs d’utiliser les ressources
informatiques de manière efficace et sécurisée, un VPC vous permet de
configurer votre réseau d’entreprise dans le cloud, ce qui vous donne la
possibilité d’économiser tout en laissant le fournisseur de cloud vous obtenir
une offre intéressante pour la sécurité de votre réseau. Les serveurs de bases
de données peuvent participer à ces VPC. Vous pouvez également configurer
un réseau privé virtuel (VPN) pour établir la communication entre le VPC du
cloud et vos ordinateurs sur site.
• Les fournisseurs de cloud proposent plusieurs emplacements, ce qui est
important à plusieurs tires : pour offrir des serveurs géographiquement proches
des bases d’utilisateurs des clients, garantir une redondance en cas de sinistre,
permettre l’équilibrage de charge, etc. Certains pays, en particulier dans l'Union
européenne, exigent que certains types de données soient stockés dans leurs
juridictions légales, pour des raisons de confidentialité ou pour d'autres
raisons légales. Les concepts de régions, qui peuvent couvrir une grande partie
d'un continent, et les zones de disponibilité au sein de ces régions apparaissent
dans AWS, Azure et Google Cloud. Ainsi, vous pouvez répartir vos charges de
travail sur plusieurs zones de disponibilité d’une même région, répliquer les
données et les services, et configurer l’équilibrage de charge sur des copies
redondantes de données afin de garantir la résilience. Certains fournisseurs
de cloud proposent des régions avec des fonctionnalités spéciales pour
répondre aux exigences réglementaires, en particulier en matière de sécurité.
Tous les principaux fournisseurs de cloud offrent également des services de
réseau de distribution de contenu.

Effets à haut niveau de la migration vers le cloud | 3


• Les fournisseurs de cloud proposent des moyens sophistiqués de faire
évoluer les services, de fournir une tolérance aux pannes et d’effectuer un
équilibrage de charge. Si votre instance de base de données échoue et que
votre configuration est configurée pour une haute disponibilité, une nouvelle
instance peut être disponible. Le client peut avoir besoin de redémarrer
les sessions qui s’exécutaient sur l’ancienne instance au moment d’une
panne, mais d’un point de vue administratif, vos seuls efforts concerneront
la configuration de la tolérance aux pannes, et vous n’aurez pas besoin de
vous lever à 2h du matin pour redémarrer la base de données. De même,
si la charge qui pèse sur une base de données augmente, une nouvelle
instance peut démarrer pour assumer une part de cette charge, puis s’arrêter
lorsqu’elle n’est plus utile. C'est ce qu'on appelle la mise à l'échelle élastique.
• Les fournisseurs proposent généralement des options de ligne de commande,
des interfaces graphiques et des API, chacune présentant des points forts et
des points faibles que les informaticiens ne connaissent que trop bien. Les API
permettent d’automatiser les tâches et vous en êtes ainsi libéré.
• Une partie de la sécurité dont vous devez vous soucier sur site est gérée par le
fournisseur. De toute évidence, celui-ci contrôle l'accès physique aux serveurs.
Selon la façon dont vous utilisez ses services, il peut également vous protéger
contre les attaques Internet de faible niveau telles que les analyses de port
et les attaques par déni de service (DoS). Les chapitres suivants présentent
les aspects de la sécurité qui relèvent toujours de la responsabilité de
l'administrateur de base de données.
• Les fournisseurs de cloud intègrent des outils de surveillance et de
performance que vous pouvez connecter assez facilement à vos bases de
données et qui font toujours germer de nouvelles fonctionnalités. Les outils
de surveillance tiers peuvent également exploiter et étendre les capacités de
surveillance intégrées de la plateforme.

Les choix des fournisseurs reposent sur de nombreux critères qui sont
généraux et non spécifiques à la base de données : la tarification,
l'écosystème de développeurs tiers autour de chaque offre, la stabilité, la
prise en charge des régimes de conformité légale, la valeur ajoutée des
outils haut de gamme pour l'intelligence artificielle et bien plus encore.

Lorsque vous comparez les offres cloud, réfléchissez aux orientations que prendra
votre organisation à l'avenir. Par exemple, le streaming et le traitement des données
en temps réel feront-ils partie de votre avenir ? De quelles offres cloud dépendrez-
vous dans quelques années ?

4 | Chapitre 1 : Options de base de données dans le cloud


Comparaison entre les bases de données autogérées
et les bases de données gérées
À présent, intéressons-nous plus particulièrement aux bases de données.
Vos options dans le cloud se divisent en deux grandes catégories :
Bases de données autogérées
Dans cette offre cloud, le fournisseur fournit uniquement le matériel,
l'hyperviseur pour exécuter votre machine virtuelle, ainsi que l'API ou d'autres
outils pour gérer le déploiement. Vous devez créer une machine virtuelle
qui exécute un système d'exploitation et votre application. Évidemment,
vous pouvez exécuter tout ce que vous voulez dans la machine virtuelle,
y compris le moteur de base de données de votre choix. Vous devez vous-
même vous charger de la plupart des tâches administratives, telles que
l'installation des mises à jour et la configuration de toutes les options de
mise en réseau.
Bases de données gérées
Dans cette offre cloud, le fournisseur fournit non seulement le matériel,
mais également le logiciel du serveur lui-même. La plupart des
fournisseurs proposent à la fois des bases de données traditionnelles
(telles qu'Oracle et MySQL) et natives cloud qui leur sont spécifiques.
Les bases de données autogérées correspondent beaucoup plus à une exécution de
votre propre base de données sur site. Les bases de données gérées transforment de
manière bien plus radicale votre façon de travailler. Voici les principales différences :
• Si vous utilisez une base de données gérée, vous n'avez pas besoin de
télécharger, installer, mettre à jour, configurer ou sauvegarder manuellement
la base de données. Le fournisseur de cloud se charge de tout cela. Vous
pourrez toujours modifier les paramètres qui indiquent à la base de données
comment exécuter (classement, curseurs, connexions, etc.) et contrôler les
décisions, comme décider d'installer ou non de nouvelles versions et choisir la
durée de conservation des sauvegardes.
• Parfois, le fournisseur de cloud peut fournir une licence pour une base de
données propriétaire et inclure le coût dans les frais d'utilisation du service
cloud. Dans d'autres cas, vous êtes toujours tenu d'acquérir une licence. Si
vous avez déjà acheté une licence auprès d'un fournisseur de base de données
propriétaire, il est parfois possible de l'appliquer à une base de données gérée.
• Étant donné que le fournisseur installe et exécute la base de données gérée,
vous êtes limité aux choix qu'il fait. Vous ne pouvez pas demander un moteur
de base de données qui n'est pas pris en charge par le fournisseur, ou même
une version qui n'est pas déjà prise en charge. Cependant, les trois grands
fournisseurs (AWS, Azure et Google) proposent plusieurs bases de données
propriétaires et open source, ainsi que leurs propres bases de données
natives cloud.

Comparaison entre les bases de données autogérées et les bases de données gérées | 5
• Les bases de données autogérées et gérées offrent différents paramètres
de configuration.
• Avec les bases de données gérées, une grande partie de la sécurité est gérée
par le fournisseur. Toutefois, même une base de données gérée laisse à
votre charge des décisions de sécurité importantes, comme à qui donner
des comptes et quelles limitations définir sur les tables ou les colonnes. La
surveillance et l'audit des tentatives d'accès restent généralement de votre
ressort. Vous pouvez également contrôler les paramètres de sécurité pour
déterminer, par exemple, à quelles adresses IP accorder un accès.
Les bases de données gérées présentent donc de nombreux avantages par
rapport aux déploiements sur site et aux bases de données autogérées, mais vous
pouvez avoir vos propres raisons d’exécuter votre propre base de données. Le
reste de ce rapport couvre les bases de données gérées, car elles constituent une
opportunité unique pour un administrateur de base de données de se concentrer
sur des activités ayant un impact à plus long terme sur l’entreprise.

Bases de données natives cloud


Les bases de données gérées peuvent également être divisées en deux catégories :
traditionnelles et natives cloud. Les bases de données traditionnelles telles
qu'Oracle, SQL Server, MySQL et PostgreSQL sont souvent proposées en tant que
bases de données gérées par les fournisseurs de cloud. Si vous avez construit votre
organisation autour de l'une de ces bases de données sur site, adopter la même
base de données dans le cloud simplifie la migration. Vous aurez probablement
moins besoin de changer vos applications et vous pourrez utiliser des outils qui
vous sont familiers pour gérer les bases de données. Vous pouvez également
mélanger les offres de différents fournisseurs ou gérer votre version sur site de
la base de données.

En revanche, les fournisseurs ont investi des efforts considérables dans


leurs propres offres, parfois appelées bases de données natives cloud. Les
fournisseurs prouvent que les bases de données natives cloud fonctionnent
mieux, évoluent plus facilement et sont moins onéreuses à long terme. Ainsi,
d’après les témoignages d’Autodesk et d’InfoScout, les ingénieurs AWS ont
résolu de nombreux problèmes de mise à l’échelle et d’efficacité de la gestion
des bases de données relationnelles dans le cloud avec leur propre base de
données, Amazon Aurora. Les bases de données natives cloud sont également
conçues pour des mises à l’échelle multiples, ce qui a toujours représenté une
difficulté pour les bases de données relationnelles.

6 | Chapitre 1 : Options de base de données dans le cloud


Types de bases de données gérées
La plupart des types de bases de données que vous découvrez sur le terrain
sont également proposés en tant que bases de données gérées. En outre, les
fournisseurs de cloud ont également développé leurs propres bases de données
natives cloud, en suivant les tendances les plus courantes de l’industrie et
permettant un gain de performances. Les principaux types de bases de données
pris en charge sont les suivants :
Bases de données relationnelles
Comme il a été mentionné précédemment, certaines bases de données cloud
sont des versions gérées de bases de données populaires largement utilisées.
Par exemple, Azure propose le serveur SQL traditionnel de Microsoft. Amazon
prend en charge MariaDB, MySQL, Oracle, PostgreSQL et SQL Server via
Amazon Relational Database Service (RDS). De telles offres vous aident à
migrer plus facilement les bases de données depuis les installations sur site.
De plus, les fournisseurs ont créé leurs propres bases de données. Par
exemple, Azure fournit Azure Cosmos DB, Google propose Cloud Spanner et
AWS offre Amazon Aurora.
Entrepôts de données
Bien qu'il s'agisse généralement de bases de données relationnelles, elles
diffèrent des bases de données orientées transaction en interne et dans
leurs offres. Par exemple, les bases de données orientées transaction
stockent généralement toutes les colonnes d'une même ligne afin que
vous puissiez récupérer rapidement plusieurs colonnes sur un client ou un
produit. En revanche, les entrepôts de données dans le cloud ont tendance
à être présentés sous forme de colonnes, ce qui signifie qu'ils stockent
les données par colonne plutôt que par ligne. Cela permet d'accélérer
considérablement les requêtes courantes dans les entrepôts telles que
« donnez-moi l'âge de tous les clients qui vivent en Californie ». Les outils
proposés par les fournisseurs de cloud avec des entrepôts de données se
concentrent sur l'ingestion et l'extraction rapides, en facilitant leur utilisation
dans les applications de Big Data. Parmi ces offres, nous pouvons citer
Amazon Redshift, Google BigQuery et Azure SQL Data Warehouse.
Bases de données non relationnelles
Ce terme est couramment utilisé pour couvrir une variété de magasins de
données différents qui, contrairement aux bases de données relationnelles
traditionnelles, sont conçus pour des cas d'utilisation d'applications
spéciales. Les fournisseurs de cloud proposent une variété de ces magasins
à différentes fins :
• Les bases de données de clés-valeurs proposent un stockage et une
récupération rapides des valeurs sans prendre en charge des opérations
plus sophistiquées.

Types de bases de données gérées | 7


• Les bases de données de documents stockent les données sous
forme de documents JSON avec un schéma flexible, ce qui permet
aux données d'être stockées et interrogées dans le même format que
celui utilisé dans les applications.
• Les bases de données graphiques stockent les relations entre les objets,
ce qui facilite l’exécution d’algorithmes tels que celui permettant la
recherche de l’objet qui présente le plus grand nombre de connexions.
• Les bases de données de recherche optimisent l'emplacement des
documents qui contiennent des mots particuliers.
• Les bases de données de séries chronologiques enregistrent des
événements avec des horodatages et sont optimisées pour les
tâches liées au temps telles que la représentation graphique des
événements au fil du temps, utile pour suivre des événements tels
que les lectures de l'appareil ou les publications sur le Web.
• Les bases de données de registres sont comme des fichiers journaux
sécurisés et améliorés qui enregistrent des activités telles que les
transactions financières, les signent et les rendent immuables.
D'autres options peuvent également être disponibles, notamment des bases de
données de mise en cache en mémoire. Les fournisseurs de cloud proposent des
services pour le stockage moins structuré (c'est-à-dire les BLOB ou les fichiers) :
par exemple, Amazon Simple Storage Service (Amazon S3), Google Cloud Storage
et Microsoft Azure Blob Storage. Les services offrent des options encore moins
chères pour le stockage d'archives, ainsi que des outils pour déplacer facilement les
données dans le stockage et en dehors.

Ce chapitre, pour autant, a dressé les caractéristiques de la base de données


en termes généraux, en grande partie à mots couverts tels que « certains » ou
« pourrait ». Cette réticence à être définie avec précision découle des différences
subtiles qui peuvent être observées après un examen attentif des offres des
fournisseurs. Certaines offres ont évolué bien plus que d'autres. Certaines bases de
données proposent une administration ou une migration plus facile que d'autres.
Vous devez prendre en compte l'ensemble de ces facteurs lorsque vous choisissez
une offre cloud.

Cas dans lesquels une base de données gérée peut


ne pas convenir
Il existe quelques scénarios pour lesquels un service de base de données
gérée n'est pas approprié.

8 | Chapitre 1 : Options de base de données dans le cloud


La taille de votre base de données et les IOPS sont supérieurs aux limites de la
base de données
Les bases de données natives cloud sont conçues pour évoluer afin de
répondre aux exigences les plus extrêmes. Mais les bases de données
gérées basées sur des moteurs de base de données plus traditionnels
présentent souvent des limites supérieures sur leur taille et les
opérations d'E/S par seconde (IOPS) qu'elles peuvent prendre en charge.
De nombreuses organisations peuvent s'inscrire dans ces limites. Mais si
votre base de données est réellement gigantesque et que vos besoins en
IOPS sont supérieurs à ceux que le fournisseur peut prendre en charge,
les services de base de données gérés que vous avez choisis pourraient
vous paraître impossibles. Vous devez exécuter une base de données
native cloud ou exécuter vos propres instances dans le cloud en louant
les machines virtuelles et le stockage dont vous avez besoin.
Vous avez besoin d'un contrôle absolu sur vos bases de données
S'il est essentiel pour vous d'avoir un contrôle maximal sur vos
bases de données, vous devez alors gérer vos propres bases de données
dans le cloud. Si vous avez besoin d'une version de base de données
spécifique qui n'est pas prise en charge par le fournisseur de cloud, ou
si vous devez utiliser des fonctionnalités ou des options de base de
données qui ne sont pas prises en charge par le fournisseur, vous voilà à
nouveau livré à vous-même.

Rôle de l'administrateur de base de données dans


une base de données gérée
Comme mentionné au début de ce rapport, la migration vers le cloud changera
votre façon de travailler, parfois de manière subtile. Le chapitre 2 aborde cette
question en détail, mais pour le moment nous préciserons simplement qu’après
avoir abandonné la maintenance matérielle, la configuration du système et
d’autres éléments qu’une base de données gérée prend en charge, il vous restera
encore beaucoup de travail à faire. Voici quelques tâches que l'administrateur
de base de données effectue souvent sur une base de données gérée :

• Déterminer les exigences, telles que la puissance du CPU et la mémoire.


• Configurer les exécutions de base de données, y compris l'automatisation
de la mise à l'échelle, la récupération après défaillance et la création
d'instantanés de la base de données.
• Choisir les régions et les zones de disponibilité qui hébergeront les
instances de base de données.

Rôle de l'administrateur de base de données dans une base de données gérée | 9


• Créer et manipuler les bases de données et les tables via l’interface de
ligne de commande, la console ou l’API proposée par le fournisseur.
• Autoriser les comptes utilisateur, configurer des groupes et contrôler
l'accès aux bases de données et à certaines parties des bases de données.
Certaines bases de données offrent cet accès via Identity and Access
Management (IAM) et d'autres utilisent les interfaces traditionnelles
proposées par la base de données dans les déploiements sur site.
• Déterminer comment répartir les données en partitions lorsque vous
devez les distribuer sur plusieurs systèmes.
• Définir les paramètres de base de données qui ont une incidence les
performances ou la résilience
• Auditer l'accès et surveiller l'activité des bases de données à des fins de
sécurité, de performances et de résilience.
• Assurer l'ingestion et les transferts de données via le processus ETL
(extraction, transformation et chargement) traditionnel ou des outils de
données de streaming plus récents. Ces transferts de données peuvent
impliquer d'accepter des données provenant de sources externes, de fournir
des données à des outils de Big Data tels que Spark ou Kafka, de stocker des
données dans un entrepôt de données dans le cloud ou sur site, et toute
autre relation que vous devez établir avec un autre outil pour garantir le
traitement des données.
• Déterminer des schémas ou des formats, en collaboration avec des
architectes de données et des développeurs d'applications, et les
mettre en œuvre dans des magasins de données relationnels ou non
relationnels.
Et surtout, vous aurez plus de temps pour examiner le contexte commercial
de la base de données et réfléchir aux moyens d’accroître la valeur des
données que vous gérez pour votre organisation. Nous aborderons ces sujets
plus en détail dans le chapitre 2.

10 | Chapitre 1 : Options de base de données dans le cloud


CHAPITRE 2
L'évolution du rôle de
l'administrateur de base de
données dans le cloud
Habituellement, l'administrateur de base de données était chargé de la quasi-
totalité de la gamme des opérations relatives au stockage et à l'utilisation des
données d'une organisation. La liste des tâches de l’administrateur de base
de données comprenait les suivantes :
• Installer les racks et les câbles
• Installer les logiciels de base de données, leur appliquer des correctifs et
les mettre à niveau
• Créer et configurer des instances de base de données
• Gérer les utilisateurs, les rôles et les autorisations
• Effectuer des sauvegardes et des restaurations
• Sécuriser les données, y compris chiffrer les données critiques
• Migrer, ingérer et exporter les données
• Optimiser les performances
• Surveiller les bases de données et résoudre leurs problèmes
• Assurer la gestion de la haute disponibilité
• Aider les développeurs et les analystes de bases de données dans leurs
tâches liées aux bases de données
Comme vous pouvez le constater avec cette liste, le travail de l'administrateur de
base de données concernait généralement des opérations de base de données, la
gestion des incidents et des utilisateurs, ainsi que l'optimisation des performances.
La surveillance et la résolution des problèmes se faisaient manuellement, en
parant au plus pressé plus que de manière planifiée.
Cela ne laisse pas beaucoup de temps pour effectuer les tâches plus
rentables, telles que la conception de bases de données et l’optimisation des
applications qui reposent sur les bases de données.

11
Avec le manque d’automatisation et la manière de régler les problèmes dans
l’urgence, les administrateurs de base de données avaient des difficultés à
suivre les diverses bases de données dont ils devaient assurer la surveillance. Ils
finissaient par passer la plupart de leurs journées de travail à faire le tri dans les
tâches les plus urgentes qu’il fallait traiter.
En modifiant profondément les fonctions et la façon dont les organisations
gèrent leurs activités, le cloud computing restructure le travail
traditionnel des administrateurs de base de données. Dans le cloud, de
nombreuses tâches traditionnelles des administrateurs de base de données
disparaissent tout simplement ou sont considérablement réduites. Le
fournisseur de cloud, bien sûr, gère toutes les tâches liées à l'infrastructure,
comme la mise en rack et l'empilage des serveurs, la mise en réseau et
le stockage. Les sauvegardes et la sécurité sont également intégrées,
principalement au domaine du fournisseur de cloud. Mais alors, que font les
administrateurs de base de données dans le cloud ?
Si vous exécutez vos propres bases de données dans le cloud, vous effectuerez
toujours de nombreuses tâches d'administrateur de base de données
traditionnelles, comme installer des logiciels, leur appliquer des correctifs,
sauvegarder des bases de données, etc. Ce rapport se concentre sur les bases
de données gérées, telles que définies dans la section « Comparaison entre
les bases de données autogérées et les bases de données gérées » à la page 5,
car celles-ci présentent plusieurs autres avantages par rapport aux bases de
données autogérées, et impliquent également certains changements plus
substantiels dans le rôle de l’administrateur de base de données. Ce chapitre
se concentre également sur les bases de données relationnelles, qui nécessitent
généralement une plus grande variété de tâches de gestion.
Lorsque vous utilisez une base de données gérée dans le cloud, vous pouvez
consacrer davantage de temps à l'architecture de données et aux applications
prises en charge par la base de données. Anticiper les besoins et apporter des
améliorations à la base de données, voilà désormais les principales préoccupations
de l'administrateur de base de données. Vous vous trouverez en bien meilleure
posture pour tirer davantage de valeur des ressources de données de l'organisation
en aidant les équipes à fournir de nouvelles fonctionnalités plus rapidement et à
optimiser les performances des applications de manière proactive.
Les autres tâches incluent l'aide à la configuration de pipelines de données en temps
réel et par lots pour ingérer et transformer des données par lots et en continu.
La création, la maintenance et le réglage de pipelines de données hautement
distribués sont des fonctions importantes assurées par les administrateurs qui
travaillent avec des bases de données basées sur le cloud. Vous pouvez également
consacrer davantage de temps au renforcement de la sécurité des bases de données
et garantir le respect des exigences de conformité imposées par les administrations
publiques et les organismes de l’industrie.

12 | Chapitre 2 : L'évolution du rôle de l'administrateur de base de données dans le cloud


Lorsque vous utilisez un service de base de données géré dans le cloud, le rôle
traditionnel de l'administrateur de base de données est inversé. Le schéma 2-1
résume la différence dans la façon dont les administrateurs de base de données
occupent leur temps sur site et avec un service de base de données géré.

Temps passé par l'administrateur de base de données

Application
Application

Base de données
Base de données

Surveillance Surveillance
Accès
Accès
Plateforme

Plateforme

Sur site Amazon RDS


Schéma 2-1. Le rôle inversé de l'administrateur de base de données dans le cloud

Pour résumer, la migration des bases de données permet aux administrateurs


et aux développeurs de dégager du temps qu’ils peuvent consacrer à d’autres
tâches plus importantes. Étant donné que la maintenance et les sauvegardes de
routine, ainsi que bien d'autres tâches sont assurées par le fournisseur de cloud,
vous pouvez vous concentrer davantage sur vos objectifs métier, tels que la
rationalisation des processus métier clés.
Le facteur le plus critique qui détermine votre succès dans ce nouvel
environnement cloud : vous familiariser avec tous les services de fournisseur de
cloud pertinents. Il s'agit notamment des diverses options de stockage, outils
de surveillance (souvent utilisables sans frais supplémentaires), fonctionnalités
de sécurité cloud et autres services cloud intégrés que vous pouvez exploiter
pour exécuter vos bases de données cloud dans un environnement rentable,
hautement performant et en toute sécurité.
L'évolution des tâches de l'administrateur de base
de données dans le cloud
Lorsque les bases de données migrent vers le cloud, de nombreuses tâches
opérationnelles traditionnelles sont éliminées, certaines tâches subsistent mais
connaissent quelques changements, et certaines nouvelles tâches viennent
rallonger la liste des obligations de l’administrateur de base de données. Toutefois,
pratiquement tout ce que vous avez fait jusqu'à présent sur site changera quelque
peu, car de nouveaux outils et options seront mis à votre disposition.

L'évolution des tâches de l'administrateur de base de données dans le cloud | 13


Tâches d'administrateur de base de données prises
en charge par le fournisseur
Différence majeure lorsqu'il est question d'utiliser un service de base de données
géré dans le cloud, comparé à une base de données sur site : les administrateurs
de base de données effectuent des tâches administratives sans accès physique aux
serveurs ni contrôle direct sur les installations. Au début, il faudra peut-être un certain
temps aux administrateurs de base de données pour s'habituer à ces nouveautés.
Il est important qu'ils saisissent cette occasion pour adopter les nouvelles tâches
abordées dans ce chapitre.

Les tâches de l'administrateur de base de données


qui subsistent mais connaissent des changements
Plusieurs responsabilités conventionnelles de l'administrateur de base de
données restent nécessaires dans le cloud, mais avec quelques différences
subtiles, que vous utilisiez un service de base de données gérée ou que vous
exécutiez vos propres bases de données.
Mise en service
Les services de base de données gérés tels qu’Amazon RDS proposent une
large gamme de types d’instance pour vos serveurs de base de données. Au lieu
de commander un système matériel avec des exigences particulières de mémoire
et de CPU pour votre centre de données, vous choisissez un ou plusieurs types
d'instances qui offrent la mémoire et la puissance de CPU qui répondent à vos
besoins. En optant pour le type d’instance approprié pour vos charges de travail
vous risquez moins de payer pour des ressources que vous n’utiliserez pas.
La mise à l’échelle est une autre tâche de mise en service. La mise à l'échelle
automatique, que vous pouvez effectuer au niveau des machines virtuelles et des
bases de données, permet au système d'ajouter une instance lorsque les charges
deviennent élevées, et d'arrêter une instance afin de ne pas gaspiller de capacité
excédentaire lorsque les charges diminuent. Bien que la mise à l'échelle automatique
soit une forme d'automatisation extrêmement précieuse, vous pouvez être victime
d'une attaque DoS ou d'une erreur de configuration qui lance un grand nombre
d'instances et augmente ainsi vos dépenses.
Vous pouvez également choisir des régions proches des utilisateurs de votre base de
données pour un temps de réponse optimal. Utiliser judicieusement les offres des
fournisseurs de cloud mondiaux est un aspect clé de la mise en service dans le cloud.
Comme nous l'avons vu, la mise à l'échelle des bases de données traditionnelles,
en particulier des bases de données de traitement des transactions en ligne
(OLTP), est manifestement difficile. À mesure que le nombre d'utilisateurs, la taille
des ensembles de données et la complexité des opérations de base de données

14 | Chapitre 2 : L'évolution du rôle de l'administrateur de base de données dans le cloud


augmentent, les temps de réponse aux requêtes s'allongent. La croissance
des entreprises peut se refléter dans tous ces facteurs, ainsi que celle des
applications qui pèsent davantage sur la base de données. Un développeur
SQL et un administrateur de base de données qualifiés peuvent remédier à ces
problèmes dans une certaine mesure en définissant des paramètres optimaux de
configuration de base de données et en optimisant le code SQL.
Toutefois, les optimisations de code et les paramètres optimaux de base de
données ne vont pas plus loin. Ainsi, la mise à l'échelle de la base de données reste
un problème insoluble dans de nombreux cas, car vous ne pouvez pas facilement
modifier le nombre de serveurs, de RAM ou de CPU à la volée pour répondre aux
exigences de charge de travail qui évoluent constamment. Toutes ces ressources
impliquent des investissements qui doivent être approuvées bien à l’avance. L'ajout
d'un seul serveur physique prend des semaines dans de nombreux centres de
données traditionnels.
Processus ETL, ingestion et exportation de données
L'une des tâches les plus importantes pour un administrateur de base de
données consiste à déplacer les données sous une certaine forme, souvent en les
transformant d'une manière ou d'une autre pour extraire des champs importants ou
manipuler les données dans un autre format. Bien que ce domaine soit caractérisé
depuis une quarantaine d'années par les outils ETL, certaines formes récentes de
traitement de flux telles que Hadoop et Spark ont introduit de nombreux nouveaux
outils pour l'ingestion de données. Les agents de messages tels qu’Apache Kafka et
Amazon Kinesis dirigent les flux de données vers plusieurs consommateurs dans
un modèle de publication et d’abonnement. La plupart des sites utilisent différentes
générations de ces outils à des fins différentes, et votre rôle est de maîtriser chaque
outil, ainsi que de leur apprendre à coexister paisiblement.
Le streaming de données impose de nouvelles charges aux bases de données
traditionnelles et oblige ainsi les administrateurs de base de données à régler les
paramètres différemment. Le streaming introduit généralement plus de processus
qui effectuent de nombreuses petites mises à jour fréquentes au lieu de mises à jour
moins nombreuses mais plus grandes. Les contrôles de simultanéité connaissent
également des pressions.
Les tâches générales sont les mêmes, que vos données soient stockées dans
une base de données sur site ou un stockage cloud. Mais les fournisseurs
de cloud proposent leurs propres versions de données en streaming, ainsi
que des outils pour l'ingestion et l'exportation de données. Par exemple, si
vous utilisez l'entrepôt de données basé sur le cloud de Microsoft, SQL Data
Warehouse, vous pouvez ensuite utiliser les deux logiciels déjà en place dans
votre boîte à outils ou les outils proposés dans Microsoft Azure Data Factory
(ADF). Amazon propose de nombreux outils pour l'ingestion, tels que Kinesis
Data Firehose et Snowball. La boîte à outils Google pour l'ingestion réunit
des options provenant de nombreuses sources.

L'évolution des tâches de l'administrateur de base de données dans le cloud | 15


Sauvegardes et instantanés
Les bases de données cloud propose deux méthodes de base pour
sauvegarder et restaurer vos bases de données. Les sauvegardes automatisées
sont généralement activées par défaut et peuvent être utilisées pour la
restauration ponctuelle de base de données.
En revanche, les instantanés sont des sauvegardes que vous décidez de créer.
Dans les environnements sur site, les administrateurs de base de données créent
régulièrement des instantanés, en vidant les données de la base de données
alors que celle-ci présente un état cohérent, pour effectuer des sauvegardes ou
répliquer le magasin de données. Dans le cloud, vous pouvez toujours utiliser
un instantané pour les sauvegardes à long terme (comme le stockage sur
bande), la réplication vers d'autres régions dans le cloud et la conservation des
données pour garantir votre conformité aux réglementations.
Les services de base de données gérés dans le cloud, tels qu'Amazon RDS,
facilitent la création d'instantanés. Vous pouvez créer des instantanés de
volume de stockage d'une instance de base de données (qui peut comprendre
plusieurs bases de données) et créer une instance de base de données en
restaurant l'instantané de la base de données.
Accès
Dans le cloud, vous êtes responsable de tout ce qui est propre à vos données et
à vos utilisateurs : distribuer des comptes, former des groupes ou des rôles pour
combiner des comptes d'utilisateurs, et accorder l'accès à différentes parties
de vos bases de données. Nous abordons cette question plus en détail dans la
section « Sécurité des données et des applications dans le cloud » à la page 19.
Maintenance des environnements de développement et de test
Parmi les tâches les plus courantes qui lui incombent, l'administrateur de
base de données doit configurer des environnements de développement
et de test. Souvent, cela implique pour celui-ci beaucoup de travail. Si vous
créez régulièrement des instantanés de base de données, vous pouvez créer
un environnement de développement ou de test qui reflète l'état de la
base de données à un moment donné. Vous trouverez des exemples de ce type
de services pour Amazon, Google Cloud et Azure.
Journaux
Les administrateurs de base de données ont besoin de journaux de base de
données pour assurer la résolution des problèmes, la conformité et l'auditabilité.
C'est également nécessaire dans le cloud. Le schéma 2-2 montre comment afficher
facilement les journaux d'une instance de base de données via la console AWS.
Lorsque vous disposez d'un grand nombre de bases de données que vous devez
surveiller et gérer, l'utilité de cette fonctionnalité est une évidence.

16 | Chapitre 2 : L'évolution du rôle de l'administrateur de base de données dans le cloud


Schéma 2-2. Affichage des journaux de base de données via la console Amazon RDS

Surveillance et notifications
Les fournisseurs de cloud fournissent un grand nombre d'informations sur les
métriques telles que l'utilisation du CPU, la latence des requêtes, le débit des
requêtes, ainsi que l'utilisation des E/S et de la mémoire. Un certain nombre
de capacités de surveillance intégrées sont proposées. Certaines sont gratuites
et d'autres payantes. Vous pouvez également définir des alertes pour être
rapidement informé dans les cas où ces métriques dépassent les limites prévues.
De nombreuses plateformes cloud présentent des événements comme lorsqu'un
basculement se produit, lorsqu'une sauvegarde est effectuée et lorsqu'une base
de données est arrêtée ou reconfigurée. Les plateformes offrent le soutien
nécessaire pour vous permettre de définir des notifications ou d'effectuer
d'autres actions automatiques lorsque des événements se produisent.
Optimisation des performances
Le réglage des performances de la base de données est l’une des tâches critiques
qui incombent à l’administrateur de base de données traditionnel. C’est là que
se distinguent les bons administrateurs de base de données des administrateurs
ordinaires. Une bonne optimisation des performances ne peut se faire qu’avec
une compréhension approfondie du stockage, du réseau, de la mémoire et du
code d’application. Migrer les bases de données vers le cloud ne dégage pas
pour autant l'administrateur de base de données de l'entière responsabilité
de la base de données. L'optimisation des performances, à la fois réactive et
proactive, relèvera en premier lieu de la responsabilité de l'administrateur de
base de données. Toutefois, les fournisseurs de cloud donnent des moyens
simples d’obtenir des informations, comme AWS RDS Performance Insights.
Dans le cloud, vous ne passerez pas beaucoup de temps à vous soucier des
problèmes de performances typiques liés au serveur et au stockage, car vous
pouvez facilement augmenter ou réduire l'échelle de vos bases de données
en fonction de vos charges de travail. Vous passerez plus probablement votre
temps à analyser les délais d'attente des bases de données afin d'améliorer les
temps de réponse des bases de données.

L'évolution des tâches de l'administrateur de base de données dans le cloud | 17


Dans les environnements sur site traditionnels, certains outils de performance
sont fournis par la base de données elle-même, comme la commande EXPLAIN
et le journal des requêtes lentes MySQL. D'autres outils de surveillance des
performances s'exécutent en dehors de la base de données et vous pouvez
configurer un système dans le cloud pour les exécuter. Mais les fournisseurs de
cloud ont travaillé d'arrache-pied pour développer des outils de performance qui
s'exécutent nativement dans le cloud, généralement sans frais supplémentaires.
Vous devriez assurément utiliser les solutions que vous propose le fournisseur.
Les bases de données dont les performances sont médiocres sur site ne se
mettront pas à mieux fonctionner, comme par magie, uniquement parce que
vous les avez migrées vers le cloud ! Mais la migration peut être utile dans
certains cas, par exemple, lorsque votre environnement de base de données
sur site n'a pas la capacité de prendre en charge une demande de l'application
pour un grand nombre d'IOPS.
Garantir une haute disponibilité
De nos jours, cet aspect est primordial dans la mesure où les utilisateurs abandonnent
un site Web si celui-ci ne parvient pas à charger en deux ou trois secondes. Sur site,
cette tâche nécessite d’acheter à l’avance une capacité de traitement adéquate, et
de configurer des équilibreurs de charge. Dans le cloud, vous pouvez opter pour
la mise à l'échelle automatique et choisir de configurer votre base de données
pour qu'elle s'exécute dans plusieurs zones. Une base de données multizone peut
basculer automatiquement vers un autre zone de disponibilité en cas de défaillance
de la première zone. De même, vous pouvez proposer vos données dans plusieurs
régions pour une haute disponibilité et un stockage local.

Nouvelles tâches pour l'administrateur de données


dans le cloud
Lorsque vous exécutez vos bases de données dans un environnement cloud, vous
découvrez des tâches dont, dans la plupart des cas, vous n'aviez jamais eu à vous
soucier dans un centre de données. Il s’agit notamment de s’intéresser aux coûts
et au suivi de vos licences de base de données dans le cloud.
Planification des coûts opérationnels
Les calculs fondamentaux du coût total de possession (TCO) et du retour sur
investissement (ROI) changent radicalement dans le cloud. Comme indiqué
dans la section « Mise en service » à la page 14, vous payez généralement
pour des instances et des périodes de temps particulières dans le cloud au lieu
de payer des coûts initiaux fixes pour l’infrastructure. Toutefois, vous devez
prendre en compte de nombreux autres facteurs qui ne sont pas directement
liés aux bases de données. Par exemple, localiser la base de données dans des
régions plus proches des utilisateurs peut réduire les coûts de mise en réseau,
et peut-être même générer de nouvelles opportunités commerciales.

18 | Chapitre 2 : L'évolution du rôle de l'administrateur de base de données dans le cloud


Les fournisseurs proposent de nombreuses options pour adapter votre utilisation
à vos besoins et réduire considérablement vos dépenses. Par exemple, en achetant
des instances réservées dans AWS, vous pourrez peut-être réduire considérablement
les coûts. En général, une planification minutieuse peut vous permettre de prévoir
vos besoins à tout moment et d’éviter la mise en service en excès des centres de
données sur site.
Effets sur l'architecture et la conception d'applications
L'architecture des bases de données basées sur le cloud est intrinsèquement très
différente de celle d'une base de données traditionnelle sur site dans un centre
de données. Vous devez prendre en compte plusieurs régions géographiques
et zones de disponibilité, différents types de conceptions de réseau et d'autres
fonctionnalités spécifiques au cloud lors de la planification de vos déploiements
de base de données. L'administrateur de base de données doit travailler en
étroite collaboration avec les développeurs d'applications pour comprendre leurs
besoins et fournir la meilleure solution dans le cloud au coût le plus bas possible.
Suivi de la conformité des licences
Les bases de données propriétaires sont proposées dans le cloud via deux modèles
de licence de base : licence incluse ou Apportez votre propre licence (BYOL).
Ce dernier modèle est utile si vous disposez déjà d'une licence et que le modèle
autorise le type BYOL. Vous devrez peut-être consulter un spécialiste des licences ou
le fournisseur pour savoir si la licence dont vous disposez déjà s'applique au cloud.

Sécurité des données et des applications dans le cloud


Les introductions au cloud computing organisent généralement les fonctions
d'un administrateur sur une pile, avec l'installation de serveurs physiques et de
câbles en bas de la pile, ainsi que la gestion des applications en haut. Les bases de
données gérées attribuent la responsabilité de la majeure partie de ces tâches au
fournisseur de cloud, ne laissant que les tâches de niveau application entre vos
mains, c'est-à-dire les mains du client. Avec les bases de données autogérées la
plupart des tâches sont assumées par client, le fournisseur n’ayant qu’à fournir
des serveurs physiques et une mise en réseau de base.
Les tâches de sécurité correspondent également à ce concept de pile, conduisant
à ce qu’on appelle communément un modèle de sécurité partagé. Le fournisseur
assume plus de tâches de sécurité dans les bases de données gérées que dans celles
autogérées. En bref, le fournisseur de cloud supervise la sécurité de l'infrastructure,
mais vous continuez d'être responsable de la sécurité de vos données et de vos
informations utilisateur dans le cloud. Les tâches assurées par le fournisseur de
cloud sont donc les suivantes :

Sécurité des données et des applications dans le cloud | 19


• Sécuriser physiquement le centre de données et l’équipement, ce qui
comprend la supervision du personnel
• Assurer la redondance par la réplication et les sauvegardes, en suivant
les directives du client
• Appliquer les correctifs et les mises à jour des logiciels, y compris de la base
de données elle-même si vous choisissez une base de données gérée
• Exécuter des outils qui surveillent et auditent l'accès
• Fournir des pare-feu pour le réseau et les applications
• Assurer la protection contre les attaques DoS
• Fournir des services de gestion des identités, que vous configurez
Les tâches de sécurité client comprennent les suivantes :
• Configurer les utilisateurs et les rôles via le système Identity and Access
Management (IAM) du fournisseur
• Attribuer des droits d'accès aux utilisateurs dans la base de données,
ce qui implique notamment de définir des comptes et des rôles, et de
garder les comptes à jour en supprimant les utilisateurs une fois que leur
accès n'est plus nécessaire
• Spécifier des règles de pare-feu, des sauvegardes et d'autres paramètres
proposés par le fournisseur de cloud
• Configurer les alertes et examiner les journaux pour détecter les
éventuels accès non autorisés
• Assurer la sécurité du système d'exploitation si vous utilisez votre propre
machine virtuelle au lieu d'une base de données gérée
• Garantir la sécurité au niveau de l'application, telle que la prévention des
attaques par injection SQL
• Procéder au chiffrement des données, au repos et en transit
• Authentifier et autoriser de manière appropriée les utilisateurs qui
tentent d'accéder aux bases de données ou aux applications
• Collecter et inspecter les journaux
• Configurer les alertes d'événement et surveiller les événements afin de
détecter les éventuelles anomalies
Connaître l'ensemble des fonctionnalités de sécurité du cloud est essentielle
pour exécuter des bases de données dans le cloud. Dans les sous-sections
suivantes, nous présentons les principales fonctionnalités de sécurité du cloud
sur lesquelles les administrateurs de base de données doivent concentrer leur
étude : contrôle d'accès et IAM, isolement du réseau et chiffrement des données.

20 | Chapitre 2 : L'évolution du rôle de l'administrateur de base de données dans le cloud


Contrôle d'accès et Identity and Access Management
Les fournisseurs de cloud ont généralement recours à de solides mécanismes de
contrôle d'accès. Les fournisseurs mentionnés dans ce rapport s'appuient sur un
système IAM centralisé pour gérer les utilisateurs, les informations d'identification
de sécurité (mots de passe, clés d'accès et autorisations), ainsi que les stratégies
d'autorisation qui contrôlent les ressources et les services auxquels les utilisateurs
peuvent accéder. Les administrateurs doivent maîtriser IAM uniquement pour
avoir accès au cloud pour eux-mêmes et pour leurs utilisateurs. De plus, les bases
de données natives du cloud sont parfois intégrées aux outils IAM généraux du
cloud. Lier vos protections de base de données à l'IAM du cloud vous offre les
stratégies d'accès les plus simples et les plus sécurisées.
Vous utiliserez IAM pour définir des comptes utilisateur, puis vous ajouterez des
règles d'accès spécifiques à la base de données par-dessus. À l'aide d'IAM, vous
pouvez accorder différentes autorisations utilisateur pour effectuer différentes
opérations de base de données. Vous pouvez également instituer via IAM des
contrôles d'accès précis, que la plupart des bases de données proposent, telles
que des restrictions sur des lignes ou des colonnes particulières.
Les bases de données traditionnelles utilisent les mêmes outils dans le cloud
que ceux vous utilisez sur site, tels que les instructions GRANT dans SQL. Mais
vous pourrez peut-être les connecter à IAM afin de pouvoir utiliser les mêmes
comptes utilisateur dans le cloud et la base de données, et bénéficier de la
plus grande sécurité et facilité d'utilisation qu'offre cette intégration.

Isolement du réseau
Certaines fonctionnalités cloud communes protègent vos systèmes sur le réseau
comme les VPC, les pare-feu et les listes de contrôle d'accès au réseau (ACL).
Comme nous l'expliquons dans la section « Effets à haut niveau de la migration vers
le cloud » à la page 2, un VPC est un réseau privé dans le cloud pour la communication
entre vos serveurs. Dans un VPC, vous pouvez isoler les instances de base de données
en spécifiant la plage d'adresses IP autorisées à accéder à chaque base de données.
L'organisation qui crée un VPC a un contrôle total sur son environnement de réseau
virtuel et peut sélectionner ses propres plages d'adresses IP, créer des sous-réseaux
et configurer ses propres tables de routage et passerelles réseau.
Vous pouvez en outre configurer une passerelle réseau privée virtuelle
qui étend votre réseau d'entreprise dans votre VPC et autorise l'accès aux
instances de base de données dans ce VPC via le VPN de votre choix.

Sécurité des données et des applications dans le cloud | 21


La plupart des fournisseurs de cloud proposent des pare-feu intégrés qui vous
aident à contrôler l'accès réseau aux instances informatiques. Le fournisseur de
cloud peut également offrir une option de connectivité privée ou dédiée pour
connecter les environnements de bureau et sur site du consommateur de cloud à
l'environnement cloud. Vous pouvez configurer des groupes de sécurité de base de
données pour sécuriser les instances de base de données dans un VPC. Les groupes
de sécurité sont des règles de pare-feu qui contrôlent l'accès réseau à vos bases de
données cloud. Vous pouvez également autoriser ou refuser le trafic réseau entrant
et sortant d'un sous-réseau via des listes de contrôle d'accès (ACL) réseau. Tout trafic
réseau entrant ou sortant de votre VPC via votre VPN peut être inspecté par votre
infrastructure de sécurité sur site (comme un pare-feu) et par des systèmes
de détection d'intrusion.

Connexions directes
REMARQUE Au lieu d'un VPN, vous pouvez connecter des systèmes en
dehors du cloud à des systèmes dans le cloud via Direct
Connect dans AWS ou ExpressRoute dans Azure. Ils exploitent
les liaisons de réseau privé fournies par les opérateurs de
télécommunications pour créer une connexion directe. Le
chiffrement de bout en bout est toujours recommandé et se
fait généralement via le protocole SSL (Secure Sockets Layer)
ou TLS (Transport Layer Security) standard.

Chiffrement des données


Dans le cloud, vous pouvez facilement chiffrer vos données pour fournir une
protection supplémentaire aux données au repos. Par exemple, lorsque vous
activez le chiffrement dans un cluster Amazon RDS, la base de données stocke
toutes les données dans les tables que vous créez dans un format chiffré. Le
chiffrement s'applique également aux sauvegardes de base de données. Le
chiffrement est également facile à configurer lorsque vous transmettez des
données vers et depuis le cloud.
Le chiffrement est particulièrement nécessaire pour les organisations qui
doivent respecter les exigences de conformité de l’industrie telles que la
conformité à la Health Insurance Portability and Accountability Act (HIPAA)
pour les soins de santé, la Sarbanes-Oxley Act (SOX) pour les rapports
financiers et la Payment Card Industry Data Security Standard (PCI DSS) pour

22 | Chapitre 2 : L'évolution du rôle de l'administrateur de base de données dans le cloud


l’e-commerce et la vente au détail. Si vous protégez vos clés de chiffrement, la
perte des données chiffrées elles-mêmes n'est généralement pas considérée
comme un événement de sécurité à signaler.
Les fournisseurs de cloud proposent généralement des services gérés pour
simplifier la création, le contrôle et la gestion de vos clés de chiffrement.
Ainsi, AWS Key Management Service (KMS) fournit une vue centralisée de
tous les utilisateurs clés de l'organisation. Il s'intègre à AWS CloudTrail pour
fournir un journal qui montre la principale utilisation à travers l'organisation,
satisfaisant ainsi plusieurs exigences réglementaires et de conformité clés.

L’infrastructure en tant que code : tirer le


meilleur du cloud
Lorsque vous migrez vos bases de données vers le cloud, vous êtes tenté
de limiter autant que possible les modifications en matière de gestion, car
vous avez l'habitude de faire les choses d'une certaine manière. Toutefois,
cette stratégie équivaut simplement à verser du vieux vin dans de nouvelles
bouteilles et que vous ne tirez pas pleinement parti des incroyables avantages
que le cloud vous propose.
Une avancée technologique clé qui distingue les systèmes cloud de ceux
des centres de données sur site : la grande disponibilité des systèmes de
configuration qui traitent votre infrastructure comme du code. Traiter
l'infrastructure comme du code permet de nombreuses pratiques DevOps,
qui à leur tour facilitent une collaboration étroite entre les développeurs et
les opérations afin de permettre à ceux-ci d'automatiser la fourniture des
applications à grande échelle. Sur site, vous pouvez certainement installer
des outils d'automatisation tels que des systèmes de gestion de configuration
(Puppet et Chef, pour citer des exemples populaires) et des outils d'intégration
continue (CI) (par exemple, Jenkins). Mais des outils très sophistiqués de ce
type sont intégrés au cloud.
Par exemple, les modèles fournis avec AWS CloudFormation vous aident
à modéliser l'intégralité de votre infrastructure sous forme de code. Vous
pouvez définir votre infrastructure cloud en créant et en configurant des
ressources telles que des tables de base de données et des compartiments
de stockage (Amazon S3), et en traitant ces ressources comme du code. Vous
pouvez archiver les modèles AWS CloudFormation dans votre système de
contrôle de source et les gérer de la même manière que les développeurs
gèrent leurs fichiers de code.

L’infrastructure en tant que code : tirer le meilleur du cloud | 23


Un outil tel que CloudFormation présente les avantages suivants :
• Il permet d'établir une source de vérité unique pour toutes vos ressources
cloud.
• Il peut être intégré à des outils de gestion de code tels qu'un
système de contrôle de code source
• Il permet d'automatiser le développement et de tester les déploiements.
• Il prend en charge vos plans de reprise après sinistre.
En utilisant des fichiers de modèle pour créer vos ressources par programmation,
vous obtenez une répétabilité et une cohérence dans tous vos environnements.

24 | Chapitre 2 : L'évolution du rôle de l'administrateur de base de données dans le cloud


CHAPITRE 3
Migrer vos bases de
données vers le cloud

À l’instar de la plupart des transformations organisationnelles, la migration


vers le cloud ne s’effectue pas du jour au lendemain. Vous devez choisir un
projet pour faire un essai avec le fournisseur de cloud que vous avez choisi : un
projet existant qui fera office de test ou un nouveau projet que les pratiques
déjà existantes ont épargné.
Presque toutes les organisations qui migrent vers le cloud commencent par
une migration de type démonstration de faisabilité avec une base de données
dont l’importance n’est pas critique. Après avoir « cueilli les fruits à portée de
main » ou réussi à migrer un petit projet qui tire parti des avantages qu'offre
le cloud, vous pouvez alors appliquer ce que vous avez appris à d'autres bases
de données de votre organisation.
Ce chapitre vous aide à comprendre les critères généralement associés à une
première migration réussie. Une grande partie de notre documentation s'applique
aux bases de données relationnelles. Bien que chaque migration soit unique, vous
effectuerez probablement la plupart ou la totalité des étapes suivantes :
Planifier
• Analyser les exigences
• Déterminer les capacités pour répondre aux exigences
• Évaluer les bases de données à déplacer et les modifications qui
pourraient être nécessaires pour la base de données ou les applications
qui les utilisent
• Établir des critères de réussite et de restauration (sécurité intégrée)

25
Migration des données
• Répliquer
• Intégrer les changements depuis la création du réplica
• Test d'application
• Basculement
• Vérifications post-migration
Optimiser
• Optimiser les performances
• Concevoir pour une haute disponibilité
• Déterminer quels événements consigner et surveiller
• Créer un plan de reprise après sinistre
Nous examinons chaque étape majeure dans les sections suivantes.

Planification
Cette phase aide les organisations à évaluer les problèmes suivants :
• Éléments pertinents de l'environnement actuel : applications,
bases de données et charges de travail critiques
• S'assurer que l'application ou la charge de travail fonctionnera
correctement dans l'environnement du fournisseur de cloud
• Comment la migration aidera à atteindre les objectifs métier
• Conditions requises pour l'état final du système
• Le coût de fonctionnement de l’environnement informatique actuel dans
le cloud, qui devrait devrait donner lieu à un retour sur investissement
complet, comme il est expliqué dans la section « Planification des coûts
opérationnels » à la page 18.

Éléments à prendre en compte lors d’une migration


Lorsque vous souhaitez migrer une base de données que vous exécutez
sur site vers un service géré dans le cloud, vous devez gérer des problèmes
physiques, logiciels et organisationnels. Vous devez ainsi faire attention à
plusieurs niveaux de changement :

26 | Chapitre 3 : Migrer vos bases de données vers le cloud


Migration des données physiques
Vous devez déplacer les données elles-mêmes dans le cloud. Le transfert de
données pour les grandes bases de données peut être à la fois chronophage
et onéreux, mais il existe des services de migration pour vous aider.
Compatibilité des infrastructures
Vérifiez chacun des aspects du service cloud par rapport à vos systèmes
sur site déjà en place. Une étude de cas sur le blog AWS montre un
exemple intéressant de problèmes susceptibles de survenir lors d'une
migration de test sous la forme d'incompatibilités logicielles inattendues
et d'erreurs mineures. Cette migration particulière a été suspendue
pendant un certain temps simplement en raison des différences dans les
mises en œuvre SSL par les systèmes sur site et le fournisseur de cloud.
Compatibilité des bases de données
Certaines fonctionnalités de la base de données cloud peuvent être
différentes de celles de votre base de données sur site et affecter la
migration. Certaines subtilités telles que les jeux de caractères de la base
de données et les autorisations sur les procédures stockées peuvent se
révéler problématiques. Une migration homogène (telle qu'une base de
données Oracle vers une autre base de données Oracle) sera probablement
plus facile qu'une migration hétérogène (telle qu'une base de données
Oracle vers une base de données PostgreSQL ou l'une des bases de
données des fournisseurs de cloud propriétaires). La section « Rechercher
d'éventuelles incompatibilités » à la page 31 explique ce que vous pouvez
faire pour réduire les frictions entre les bases de données. Pour certains
types de migrations, les fournisseurs de cloud peuvent fournir des outils
qui vous déchargent d'une partie du travail.
Si vous utilisez actuellement une très ancienne version de base de
données sur site, il est peut-être temps de la mettre à niveau. Au lieu de
simplement choisir une version plus récente du même système de gestion
de base de données relationnelle (SGBDR), ce qui sera une épreuve
certainement difficile, vous pouvez saisir cette occasion pour essayer une
migration hétérogène vers un nouveau SGBDR qui semble prometteur.
Changements organisationnels
Les membres de plusieurs équipes, en particulier les administrateurs
de bases de données et les développeurs d'applications, devront
consacrer du temps à l'apprentissage des outils cloud et à la gestion
des nouvelles instances tout en assurant le bon fonctionnement des
systèmes sur site déjà en place jusqu'à ce que vous soyez prêt à tout
migrer vers le cloud. Vous pouvez choisir de passer des mois, voire des
années, à effectuer une migration complète. Vous pouvez également
conserver certaines des données (ou une copie des données) en
permanence sur site.

Planification | 27
Principales tâches de migration
Pour une migration réussie, nous vous suggérons de procéder comme suit.
Créer un plan de migration vers le cloud
Le plan de migration vers le cloud doit répertorier toutes les bases de
données et les applications dans l'ordre dans lequel vous souhaitez les
migrer vers le cloud. Le plan d'évaluation final doit délimiter le plan
de migration pour toutes les bases de données. Si vous avez besoin
de nouvelles ressources (logicielles, financières ou personnelles) dans
le nouvel environnement de base de données, celles-ci devraient
également figurer dans le plan.
Déterminer qui effectue la migration
Les administrateurs de base de données et les développeurs doivent
travailler ensemble sur la migration, car chaque équipe a quelque
chose à offrir. Au moment de choisir votre équipe, vous pouvez
également décider d'avoir recours à un service de migration proposé
par le fournisseur de cloud ou une société tierce.
Tâches pédagogiques
Celles-ci sont généralement très globales, il s’agit entre autre de
comprendre l’utilisation des outils du fournisseur de cloud, les
fonctionnalités spécifiques du moteur de base de données cible, la
portée de la migration de la base de données et l’architecture des
bases de données cloud.
Créer l'architecture de base de données cloud
Sélectionnez le type de bases de données que vous souhaitez utiliser
et indiquez si vous souhaitez utiliser une base de données gérée ou
autogérée. À l'heure de faire votre choix, évaluez tous les facteurs
pertinents tels que le coût, les performances, la fiabilité et l'évolutivité.
Choisir un processus de migration
La section « Migration de la base de données » à la page 32 définit les
critères de sélection entre la réplication, la sauvegarde/restauration
ou un service de migration dédié.
Pour une base de données autogérée, créez votre infrastructure informatique
Si vous choisissez de gérer vos propres bases de données dans le cloud,
créez des instances virtuelles et déployez-les via le service de calcul
du fournisseur, tel qu'Amazon Elastic Compute Cloud (Amazon EC2).
Repérer les opportunités de changements architecturaux
Vous constaterez peut-être que les choix que vous avez faits sur
site ne conviennent plus au nouvel environnement dans le cloud.
Par exemple, vous pourriez peut-être consolider les partitions.

28 | Chapitre 3 : Migrer vos bases de données vers le cloud


Configurer les comptes de base de données cloud
Configurer des comptes généraux pour les utilisateurs dans le cloud
via IAM avant de configurer les utilisateurs, les rôles et les groupes
dans la base de données.
Mettre à niveau et tester les applications
Il vous faudra peut-être réécrire le code pour travailler avec la nouvelle
base de données. Une partie de la migration des applications peut
être automatisée, tout comme la base de données elle-même.

Évaluation de la préparation
Évaluer dans quelle mesure vous êtes prêt à migrer vers le cloud vous aide
à estimer les coûts, l'architecture de la base de données cloud, les plans de
migration et l'impact de la migration vers le cloud sur les réglementations de
conformité. Le résultat d'une évaluation de l'état de préparation au cloud se
présente sous la forme d'un rapport détaillé de l'état de préparation de votre
entreprise à migrer ses bases de données vers le cloud.
Voici une brève description des étapes clés lors d'une évaluation de l'état de
préparation au cloud.
Entretiens avec les parties prenantes
Le fait d'échanger avec les développeurs d'applications, les utilisateurs
professionnels et d'autres personnes concernées par l'utilisation
des données au sein de votre équipe d'organisation vous aidera à
déterminer les exigences relatives aux performances, à la haute
disponibilité, ainsi qu'aux fonctionnalités et capacités des bases de
données basées sur le cloud.
Analyse des bases de données sur site actuelles
Revenez sur vos bases de données actuellement en place pour définir
les schémas de croissance des données, les stratégies de sauvegarde
et de récupération, les exportations et importations de données en
cours, etc. Comprendre les modèles actuels de votre utilisation des
bases de données vous aidera à décider quelles bases de données
utiliser dans le cloud et si vous aurez besoin d'une offre de base de
données particulière pour obtenir les capacités dont vous avez besoin.
Priorisation des bases de données à migrer
Choisissez d'abord les bases de données que vous souhaitez migrer
vers le cloud. L'étendue des changements qui seront nécessaires est
un critère essentiel, qui nécessite à son tour une certaine coordination
avec les développeurs.

Planification | 29
Analyse des coûts de migration
Effectuez une analyse approfondie des coûts de migration
vers le cloud par rapport aux coûts qui s'appliqueront si
vous continuez à utiliser les centres de données sur site afin
d'avoir une idée très claire du coût de total de possession et
du retour sur investissement de la migration vers le cloud.

La réduction des coûts en utilisant un service de base de données


cloud pourrait être l'un de vos principaux objectifs. Mais un mauvais
choix de services cloud nuira à cet objectif.
Sécurité et conformité
Parfois, vous avez besoin de régions ou de zones de disponibilité spéciales
pour respecter certaines normes telles que Service Organization Control 2
(SOC 2), PCI DSS ou US HIPAA. Heureusement, les fournisseurs de cloud
proposent souvent des régions et des zones géographiques particulières
adaptées à ces exigences légales. En outre, il existe des régions
spécialisées comme AWS GovCloud (États-Unis), qui est une région
AWS isolée soumise aux bases de référence FedRAMP de niveau Élevé et
Modéré. Enfin, vous devez vérifier si vous pouvez respecter les accords de
niveau de service (SLA) de votre organisation dans la configuration cloud
que vous avez choisie. Ces SLA incluent généralement des métriques
pour la maintenance planifiée, les sauvegardes, les objectifs de point de
récupération (RPO) et les objectifs de temps de récupération (RTO).
Si vous avez correctement évalué votre cloud, vous devez également avoir
une bonne idée de l'étendue de votre migration vers le cloud. Certaines de
vos applications peuvent être si anciennes qu'elles devraient être entièrement
repensées pour passer au cloud. Si vous ne disposez pas actuellement
des ressources nécessaires pour réécrire les applications, vous pouvez les
conserver dans des bases de données sur site ou migrer l'ensemble des
serveurs vers le cloud.
Étapes de migration
Vous devez planifier exactement quand et comment vous allez
procéder à la migration des données, et vous devez vous préparer à
l’éventualité d’une restauration à la version précédente si des tests
ultérieurs montrent que la base de données ne fonctionne pas
correctement. Mettez en place des tests et définissez les critères de
réussite pour chaque étape.
Changements d'application
Cela doit être fait en coordination avec l'équipe de développement.
Cela inclut la planification des modifications de l'application dans le
processus de développement et les tests.

30 | Chapitre 3 : Migrer vos bases de données vers le cloud


Automatiser la migration
Cette étape est cruciale, car elle vous permet de répéter la migration aussi
souvent que nécessaire, de corriger les erreurs lorsque vous en rencontrez
ou de changer les paramètres. Vous pouvez également adapter et
réutiliser le cadre d’automatisation pour d’autres migrations.

Rechercher d'éventuelles incompatibilités


Si vous utilisez le même SGBDR (par exemple, MySQL) pour les deux
bases de données, vérifiez les versions pour déterminer si vous utilisez des
fonctionnalités non prises en charge sur la version cloud. Ces vérifications
sont évidemment encore plus susceptibles de révéler des incompatibilités si
vous adoptez un nouveau moteur de base de données.
Les problèmes de conversion que vous rencontrez lorsque vous effectuez une
migration hétérogène vers une base de données cloud sont les mêmes que
lorsque vous effectuez ce type de migration sur site. Toutefois, vous avez
accès à un plus large éventail de solutions.
Les fournisseurs de bases de données eux-mêmes proposent généralement
des outils qui aident à migrer les données vers une base de données cloud
du même type. Par exemple, Oracle est fourni avec des outils de migration
de données tels que Data Pump, RMAN et SQL Developer qui vous aident à
migrer vos bases de données Oracle vers le cloud. En outre, les fournisseurs
de cloud et les tiers proposent des services tels que AWS Schema Conversion
Tool pour migrer les schémas. Ceux-ci vous indiquent si les schémas peuvent
être traduits et suggèrent des solutions de contournement si nécessaire.
Pourtant, la plupart des migrations de bases de données hétérogènes
nécessitent à la fois des outils automatisés et une intervention manuelle
de la part de l'administrateur de base de données. Si vous adoptez une
base de données AWS, vous pouvez vous baser sur des recommandations
spécifiques disponibles sur le site Web AWS.
Certains outils de migration utilisent un traducteur pour convertir les objets d'une
base de données, comme les procédures stockées Oracle, en une base de données
non Oracle telle que PostgreSQL. Cependant, ces outils peuvent être insuffisants,
car chaque moteur de base de données utilise des pratiques de codage uniques.
C'est la raison pour laquelle des tests rigoureux de précision et de performances
sont effectués sur la base de données cible après sa migration vers le cloud.
Certaines techniques de programmation employées par un SGBDR spécifique
peuvent ne pas avoir d'équivalent exact dans la base de données cible. L'outil
de migration peut signaler ces types de problèmes de conversion pendant
le processus de migration. Dans de nombreux cas, il peut également vous
montrer le code qu'il vous faudrait exécuter pour résoudre ces problèmes et
réussir la migration de la base de données.

Planification | 31
Migration des données
Les fournisseurs de cloud portent une attention très particulière aux
exigences de leurs clients potentiels en ce qui concerne la migration de leurs
bases de données sur site vers le cloud avec un coût et une perturbation
réduits au minimum. Tous les fournisseurs proposent des outils pour accélérer
la migration. AWS, par exemple, propose de nombreux articles expliquant
en détail comment migrer de diverses bases de données sur site vers AWS,
y compris des procédures pour Oracle, MySQL et PostgreSQL.
Néanmoins, les migrations vers le cloud peuvent impliquer des temps d'arrêt
coûteux et qui perturberont les opérations. Un outil de migration, qu'il soit
fourni par le fournisseur de cloud ou par un tiers, doit être en mesure de gérer
tous les aspects de la base de données, tels que les schémas, les autorisations
utilisateur, les déclencheurs et les procédures stockées.
Nous vous recommandons de tenir un journal pendant vos premières
migrations, car les leçons que vous en tirerez vous seront utiles à vous ainsi
qu'à vos collègues à mesure que vous progressez dans vos migrations. Si un
certain nombre de problèmes survenaient au point que vous décidiez d'utiliser
un autre fournisseur (ou d'abandonner votre projet de migration), le journal
fournira des preuves essentielles pour appuyer cette décision.

Migration de la base de données


De nombreux fournisseurs de cloud et tiers proposent des services
de migration, tels que Microsoft Azure Database Migration Service et
AWS Database Migration Service, qui méritent d'être sérieusement envisagés.
Ceux-ci sont présentés comme étant rapides, fluides et faciles. Cependant,
vous préférerez peut-être utiliser les processus déjà en place et que vous
connaissez bien, comme la restauration d'une sauvegarde vers un nouvel
environnement de base de données et l'utilisation de la réplication.
Si vous utilisez un service de migration de base de données, vos
bases de données source peuvent rester pleinement opérationnelles pendant
la migration vers le cloud et vous pouvez ainsi réduire au minimum les temps
d'arrêt pour les applications qui dépendent de la base de données. Vous
pouvez ainsi plus facilement atteindre cet objectif clé, à savoir un temps
d'arrêt minimal, que soulignent de nombreuses organisations qui migrent
vers le cloud. Le schéma 3-1 illustre la façon dont AWS Database Migration
Service crée les tables, charge les données et assure la synchronisation des
tables avec celles de la base de données source.

32 | Chapitre 3 : Migrer vos bases de données vers le cloud


Les applications continuent de fonctionner pendant la migration

Locaux client AWS


DMS
Internet AWS
VPN

Démarrez une instance de réplication. Laissez AWS Database Migration Service créer
des tables et des données de chargement,
Connectez-vous aux bases
et assurez leur synchronisation.
de données source et cible.
Sélectionnez les tables, Basculez les applications vers la cible
les schémas ou les bases de données. à votre guise.
Utilisations des applications

Schéma 3-1. Assurer la fonctionnalité des applications pendant la


migration de la base de données

Le processus de migration s’articule généralement autour d’un processus de


sauvegarde/restauration classique. Les tâches varient selon que vous pouvez
vous permettre de supprimer ou non la base de données pendant le transfert.
Si votre base de données doit continuer à fonctionner, voici la procédure de
base à suivre :
1. Effectuez une sauvegarde à chaud de la base de données d'origine
pendant que celle-ci fonctionne.
2. Copiez et restaurez la sauvegarde dans le cloud.
3. Activez la réplication pour intégrer dans la version cloud tous les changements
apportées à la base de données d'origine après la création de la sauvegarde
Bien sûr, le processus de sauvegarde/restauration est plus simple si vous pouvez
mettre la base de données hors service. La migration suit alors ce schéma :
1. Arrêtez la base de données d’origine.
2. Effectuez une sauvegarde.
3. Copiez et restaurez la sauvegarde dans le cloud.
4. Lancez la nouvelle version dans le cloud.
Mais vous passerez probablement du temps à tester la nouvelle version du
cloud avant d'être prêt à la mettre en production pour vous assurer que
les applications fonctionnent, que la sécurité est bien configurée et que
vous obtenez les performances dont vous avez besoin. Vous souhaiterez
donc peut-être redémarrer la version d'origine avant de faire confiance à
la nouvelle version, puis vous utiliserez la réplication pour synchroniser la
nouvelle version avec celle d'origine.

Migration des données | 33


Migration d'applications
Il existe deux stratégies de base pour migrer vos bases de données et
applications associées :
Migration « lift-and-shift »
Migrez une base de données entière en l'état, avec toutes les applications
qu'elle prend en charge, vers la nouvelle base de données dans le cloud.
Il s'agit de cette stratégie de migration des applications qui consiste à
verser « du vieux vin dans de nouvelles bouteilles », étant donné que
vous n'utilisez que peu ou pas les fonctionnalités natives cloud.
Réinventer les bases de données
Repensez la façon dont vos bases de données sur site gèrent les
tâches administratives telles que la mise à l'échelle et la haute
disponibilité, et étudiez les offres du fournisseur de cloud dans ces
domaines. Celles-ci deviennent de plus en plus sophistiquées. Bien
entendu, cette stratégie exige plus de travail et d'efforts. Vous devrez
peut-être également recoder les applications pour vous adapter aux
changements de la stratégie de base de données.
Souvent, les clients commencent par une migration « lift-and-shift », puis
continuent en repensant leur modèle et en apportant d'autres modernisations.

Vérifications post-migration
Une fois les données entièrement copiées dans la base de données cloud,
validez la base de données cible pour vous assurer que tous les objets de la
base de données sont bien présents sur la base de données cloud. Plusieurs
tests peuvent déterminer si la migration a réussi :
Valider les données
Cela peut être aussi simple que de vérifier le nombre de lignes ou d’exécuter
un total de contrôle pour vous assurer qu’il n’y a eu aucune perte ou
corruption. Des processus de validation plus complexes prennent en
compte les changements de schéma inhérents aux migrations hétérogènes.
Malheureusement, cette validation de base est souvent oubliée.
Fonctionnalité de base
Effectuez des tests de bout en bout pour vous assurer que votre migration
a réussi et que le système fonctionne comme prévu. Testez l'utilisation
de fonctionnalités qui ont tendance à différer entre les moteurs de
base de données et les versions, telles que les déclencheurs et les
procédures stockées.

34 | Chapitre 3 : Migrer vos bases de données vers le cloud


Test de performances
Testez les nouveaux systèmes sous contrainte et comparez leurs
performances pour avoir une idée de ce qui vous permettrait
d'améliorer le temps de réponse et le débit.
Évaluation de la sécurité
Assurez-vous que les systèmes cloud sont sécurisés en effectuant des
évaluations de vulnérabilité et des tests d'intrusion.
Ces étapes constituent également une transition vers la phase suivante :
l'optimisation. Cette phase vient après la migration réussie de vos bases de
données et applications sur site vers le cloud. La gestion des performances
et l'optimisation des coûts sont les éléments cruciaux de cette phase. Une
surveillance attentive et continue des nouveaux systèmes est essentielle pour
que vous puissiez revenir rapidement aux anciens systèmes, au cas où vous
rencontriez des problèmes inattendus.

Optimisation
À ce stade, tout se déroule pour le mieux et vous pouvez féliciter votre équipe
pour ce travail bien fait. Cette section résume les principales tâches que
doivent effectuer l’administrateur de base de données et les autres membres
de l’équipe à mesure que vous progressez dans les opérations.

Disponibilité
Il s’agit bien évidemment de la condition fondamentale que vous devez satisfaire
quel que soit le contexte. Heureusement, la migration vers le cloud élimine
certaines sources d’échec (si vous configurez correctement le redémarrage des
services après une défaillance). En outre, le fournisseur de cloud prévoit de
nombreux outils qui permettent d’anticiper les défaillances et vous en alerter.
Pour en profiter, procédez à la planification dans cette section (plusieurs de ces
activités sont également utiles pour l’optimisation des performances) :
Plan de reprise après sinistre
Avec un fournisseur de cloud fiable et de grande ampleur, vous pouvez
basculer vers une nouvelle zone de disponibilité en cas de défaillance
de celle que vous utilisez actuellement. Mais vous avez besoin à la fois
d'un plan et d'un processus automatisé pour le basculement. Le plan
doit traiter le RTO, le RPO et la redondance géographique. Dans la
mesure du possible, exploitez les capacités de basculement fournies
par le fournisseur au lieu de créer les vôtres manuellement.

Optimisation | 35
Journaux et surveillance du système
Déterminez quels événements peuvent être le signe de l’imminence
d’un problème, ainsi que les problèmes qui se sont déjà produits. Ceux-
ci peuvent être intégrés au suivi automatisé. Le suivi doit transmettre
suffisamment d’informations pour vous donner une idée des origines
de la défaillance : par exemple, si elles proviennent d’une action de
l’utilisateur telle qu’un redémarrage d’un service, d’une attaque ou
d’autres changements dans l’environnement. Certaines défaillances
peuvent être considérées comme normales et peuvent être résolues
par vos outils automatisés. Ils doivent être enregistrés, mais n’ont pas
besoin d’envoyer d’alertes à l’administrateur.
Surveillance des changements
Les administrateurs doivent toujours savoir quelles modifications
de la configuration de la base de données, du dimensionnement
de l'instance ou de la topologie de cluster peuvent affecter la
disponibilité. Les environnements de développement modernes
utilisent des processus robustes pour le suivi des modifications et
le contrôle des versions afin que chaque changement passe par un
processus de vérification et puisse être annulée.
Test du système
Essayez de déterminer quels points faibles présente votre système et
anticipez les défaillances. Certaines équipes effectuent des exercices
« pre-mortem » pour identifier et éliminer les sources potentielles
de défaillances. Les grands sites peuvent se permettre de mettre
délibérément hors jeu des systèmes et de vérifier si la reprise se fait
bien. Ce type de test, appelé ingénierie du chaos, a été popularisé par
Chaos Monkey de Netflix. Tout comme vous effectuez des restaurations
régulières pour vous assurer que les sauvegardes fonctionnent, vous
devez tester vos procédures de restauration.

Optimisation des performances


Les pratiques de la section précédente, notamment le suivi, peuvent être
bénéfiques aux performances. La surveillance des performances doit
vous permettre de déterminer les relations entre les événements et les
changements dans les métriques de la base de données, ainsi que de
constater les écarts entre les tendances de performances prévues et réelles.
Les performances peuvent en outre être maintenues et améliorées grâce à
des processus supplémentaires.

36 | Chapitre 3 : Migrer vos bases de données vers le cloud


Test de charge de travail
L’augmentation du volume et de la complexité des données, ainsi
que les changements de comportement des applications affectent les
performances. Testez régulièrement les performances afin de vous
informer de la dégradation avant que vos clients ne vous en parlent.
Vous pouvez ensuite procéder à une mise à l'échelle ou effectuer
d'autres changements pour vous adapter. La mise à jour du cache
de la base de données et des statistiques de table peut prendre un
certain temps après un changement majeur, ce qui signifie que les
plans de requête et les performances globales peuvent mettre un
certain temps à revenir aux niveaux souhaités.
Optimisation distribuée
Dans les environnements applicatifs qui évoluent rapidement, les
développeurs comprennent mieux les requêtes de base de données
que l'administrateur de base de données. S'ils se chargent des tests
et de l'optimisation des requêtes, ils peuvent atteindre de bonnes
performances plus rapidement que l'administrateur de base de
données, ce qui évite à ce dernier d'apporter des optimisations et
d'assurer une planification à long terme.
Connaissant l'importance des performances, les fournisseurs de cloud ont
élaboré des pistes et exposé un grand nombre de statistiques aux utilisateurs.
AWS RDS Performance Insights, par exemple, vous permet de récupérer
les données historiques d'un tableau de bord et d'afficher des graphiques
montrant la charge imposée par des opérations, des utilisateurs ou des
instructions SQL spécifiques sur la base de données. Vous pouvez consulter
les tableaux de bord pour répondre à des questions simples, comme « quand
mes hôtes sont-ils surchargés ? », ou plus complexes, comme « qu'est-ce qui
fait que les performances de cette requête sont sous-optimales ? » Azure
offre à la fois une surveillance des performances et un réglage automatique.
Les fournisseurs tiers produisent également des outils de surveillance et de
performances dans le cloud.

S'adapter aux différences dans le cloud


Enfin, le fournisseur lui-même proposera de nouveaux services, de nouvelles
options de machine virtuelle, de nouveaux matériels (tels que des SSD) et
d’autres changements dont vous tirerez de sérieux avantages. Ayez toujours
à l’esprit ce que le fournisseur peut faire pour vous, pensez aux tâches
dont vous pouvez vous décharger en les confiant à ses processus éprouvés
et standardisés. Ce faisant, mettez à jour vos procédures opérationnelles
documentées. Enfin, vous pouvez signaler des événements anormaux au
service client du fournisseur, en indiquant le niveau d'urgence de l'événement.

Conclusion | 37
Conclusion
Une migration vers le cloud est un processus à long terme. Commencez
petit, car vous constaterez que vous avez beaucoup à apprendre en cours
de route. Tenez un journal et notez en toute transparence l'ensemble des
erreurs et des problèmes que vous rencontrez. Ne soyez pas gêné si la
migration fait apparaître les mauvaises pratiques ou de véritables bogues
dans vos systèmes en place. Pratiquement aucune organisation n’échappe
à cela. La meilleure chose que vous puissiez faire pour votre entreprise est
de documenter les problèmes.
Avec un peu de chance, une ou plusieurs de vos premières migrations se
passeront bien et vous serez prêt pour une transition majeure vers le cloud.
Vous en tirerez des avantages en matière de coûts, de flexibilité et de
sécurité. Dernier élément, et pas des moindres, la migration vers le cloud
fournira un environnement on ne peut plus moderne avec lequel vous
attirerez d’éminents employés parmi ceux qui cherchent à être à la pointe de
la technologie.

38 | Chapitre 3 : Migrer vos bases de données vers le cloud


CHAPITRE 4
Conclusion

Pendant de nombreuses années, après le lancement par Amazon.com de la


première grande offre de cloud, la presse spécialisée s’est intéressée à la
question qui taraudait les administrateurs système et de bases de données :
« Cloud ou pas cloud ? » Rapidement, les clouds sur site et les offres hybrides
ont rejoint les simples solutions cloud, devenant ainsi des options à considérer.
Mais les choix se faisaient toujours plus difficiles. Comme l'a montré ce rapport,
les offres se sont rapidement multipliées. Les administrateurs de base de
données doivent évaluer simultanément les bases de données sous tous les
angles suivants :
• Fournisseur tiers, sur site ou hybride
• Bases de données relationnelle ou l'une des nombreuses variétés non
relationnelles
• Bases de données gérées ou autogérées
• Cloud natif (par exemple, Amazon Aurora) ou multi-plateforme (par
exemple, MySQL)
• Profiter ou non des améliorations des performances telles que les
disques SSD ou les caches
• Emplacements physiques des régions cloud et des zones de disponibilité
• Facilité de migration
• Compétences pertinentes nécessaires et que possède votre personnel
• Autres aspects du support et de la réputation des fournisseurs
Vous engager prématurément dans un choix dans un domaine spécifique
avant d'examiner toutes les options n'est pas une bonne idée. Vous aurez
certainement la possibilité d’ économiser beaucoup d’argent et d’améliorer
l’expérience client en suivant une formation complémentaire ou en faisant le
grand saut à l’aide d’une technologie jusqu’alors inconnue.

39
Ce rapport ne s’est pas contenté de définir les critères de base conduisant
au choix de vos bases de données, il a tenté de vous aider à vous préparer à
la migration au cloud en vous informant des changements que connaîtront
probablement vos responsabilités et vos tâches. Certaines responsabilités
et tâches sont simplifiées ou supprimées lorsque vous migrez vers le cloud,
mais vous devrez également apprendre à utiliser de nouvelles technologies
et devrez commencer à réfléchir différemment aux objectifs tels que la haute
disponibilité et l’optimisation.
Vous en apprendrez beaucoup lors de votre première migration ou en
démarrant un nouveau projet dans le cloud. Chaque projet enrichira votre
vision des bases de données cloud et vous donnera des idées pour votre
prochain projet. Enfin, nous espérons qu’après lecture de ce rapport, vous
saurez à quoi vous devrez faire attention dans le cadre de cette migration.

40 | Chapitre 4 : Conclusion
Informations sur les auteurs
Wendy A. Neu est consultante chez AWS Professional Services et travaille
sur les problèmes les plus complexes des clients, chargée de des systèmes
de haute qualité, évolutifs et architecturaux. Elle publie régulièrement des
articles dans l'AWS Database Blog et est certifiée AWS, Oracle et Microsoft
SQL Server. Avant de rejoindre Amazon, elle a travaillé comme consultante à
Cincinnati, dans l’Ohio, elle aide les clients à transformer les besoins de leur
entreprise en solutions technologiques pratiques.
Vlad Vlasceanu est l'un des principaux architectes spécialisés en solutions
de bases de données chez AWS, basé à Santa Monica, en Californie. Vlad aide
les clients à adopter des solutions de base de données natives cloud, comme
Amazon Aurora, et à déployer des architectures de base de données à grande
échelle et hautes performances sur AWS. Il se concentre sur la conception et
la mise en œuvre de charges de travail de base de données durables, rentables
et évolutives qui tirent parti des toutes dernières meilleures pratiques
et capacités qu'offre la plateforme AWS. Avant de rejoindre AWS, Vlad a
travaillé pendant plus de 15 ans dans la conception et le développement
d'applications Web axées sur le consommateur, ainsi que d'applications
basées sur les données pour l'industrie de l'énergie. Vlad est titulaire d'un
master en Sciences en Systèmes d'Information de l'Université Baylor.
Andy Oram a publié la série Linux d'O'Reilly, le livre révolutionnaire Peer-to-
Peer, ainsi que le best-seller Beautiful Code. Andy est également l'auteur de
nombreux rapports traitant de sujets techniques tels que les lacs de données,
les performances Web et les logiciels open source. Ses articles ont paru dans
The Economist, Communications of the ACM, Copyright World, le Journal of
Information Technology and Politics, Vanguardia Dossier et Internet Law and
Business. Il a notamment participé à des conférences telles que l'O'Reilly's
Open Source Convention, le FISL (Brésil), le FOSDEM, la DebConf et la
LibrePlanet. Andy participe à l'organisation de la politique de l'Association
for Computing Machinery, USTPC. Il écrit également pour divers sites Web
sur l'informatique dans le secteur de la santé, ainsi que sur les problèmes
informatiques et politiques.
Sam R. Alapati est administrateur de données chez Solera Holdings à Westlake,
au Texas. Il fait partie de l'équipe Big Data et Hadoop. Sam est un ACE Oracle,
un titre de reconnaissance attribué par l’Oracle Technology Network. Il est
l'auteur de Modern Linux Administration (O'Reilly, 2018), ainsi que de plus de
20 livres sur l'administration des bases de données et du système. Sam possède
une expérience professionnelle avec les trois principaux fournisseurs de cloud :
AWS, Microsoft Azure et Google Cloud Platform.

Vous aimerez peut-être aussi