Qu’est-ce que Azure Database pour MySQL – Serveur flexible ?
S’APPLIQUE À : Azure Database pour MySQL – Serveur flexible
Cet article fournit une vue d’ensemble et une présentation des concepts de base du modèle de déploiement de serveur flexible. Pour plus d’informations sur l’option de déploiement qui convient à votre charge de travail, consultez Choisir l’option de serveur MySQL appropriée dans Azure.
Le serveur flexible Azure Database pour MySQL est un service de base de données relationnelle entièrement managé et prêt pour la production dans Microsoft Cloud. Il est basé sur le moteur de base de données MySQL Community Edition (disponible sous licence GPLv2), versions 5.6 (hors service), 5.7 et 8.0. Le service vous offre une flexibilité et un contrôle plus précis des fonctions de gestion de base de données et des paramètres de configuration. Il est en disponibilité générale dans diverses régions Azure.
Le serveur flexible Azure Database pour MySQL fournit :
- Haute disponibilité (HA) dans la même zone et redondante interzone.
- Possibilité de planifier des fenêtres de maintenance.
- Protection des données à l’aide de sauvegardes automatiques et d’une restauration à un instant dans le passé jusqu’à 35 jours.
- Mise à jour corrective automatisée et maintenance du matériel sous-jacent, du système d’exploitation et du moteur de base de données pour assurer la sécurité et la mise à jour du service.
- Des performances prévisibles, grâce aux tarifs du paiement à l’utilisation.
- Mise à l’échelle élastique en quelques secondes.
- Contrôles d’optimisation des coûts avec le niveau de calcul Burstable à faible prix et possibilité d’arrêter et de démarrer le serveur.
- Sécurité, conformité et confidentialité de niveau entreprise pour protéger les données sensibles au repos et en transit.
- Surveillance et automatisation pour simplifier la gestion des déploiements à grande échelle.
- Plusieurs façons d’obtenir du support.
Ces fonctionnalités ne demandent pratiquement aucune administration et sont fournies sans coût supplémentaire. Elles vous permettent de vous concentrer sur le développement rapide de vos applications et d’accélérer leur mise sur le marché, plutôt que de consacrer du temps et des ressources à gérer des machines virtuelles et une infrastructure. Par ailleurs, vous pouvez continuer à développer votre application avec les outils open source et la plateforme de votre choix pour obtenir la rapidité et l’efficacité que demande votre activité, et ce sans acquérir de nouvelles compétences.
Le serveur flexible Azure Database pour MySQL prend également en charge les instances réservées. Si vos charges de travail de production ont des exigences de capacité de calcul prévisibles, l’utilisation d’instances réservées peut vous aider à réduire les coûts.
Pour les dernières mises à jour apportées au serveur flexible Azure Database pour MySQL, consultez Nouveautés du serveur flexible Azure Database pour MySQL.
Vue d’ensemble de l’architecture
L’option de déploiement de serveur flexible offre trois niveaux de calcul, qui ont des capacités de calcul et de mémoire différentes pour prendre en charge vos charges de travail de base de données :
- Le niveau Burstable est idéalement adapté aux charges de travail de développement à faible coût et aux charges de travail à faible concurrence ne nécessitant pas en permanence une capacité de calcul complète.
- Les niveaux Usage général et Stratégique conviendront quant à eux aux charges de travail de production nécessitant une simultanéité et une mise à l'échelle de haut niveau, ainsi que des performances prévisibles.
Vous pouvez créer votre première application sur un niveau Burstable pour un faible coût, puis adapter l’échelle aux besoins de votre solution. Pour plus d’informations, consultez Niveaux de service du serveur flexible Azure Database pour MySQL.
Lorsque vous utilisez une architecture de serveur flexible, vous pouvez opter pour une haute disponibilité au sein d’une même zone de disponibilité et dans plusieurs zones de disponibilité. Les serveurs flexibles sont adaptés de façon optimale pour ce qui suit :
- Facilité de déploiement, mise à l’échelle simplifiée et faible surcharge de gestion des bases de données pour les sauvegardes, la haute disponibilité, la sécurité et le monitoring.
- Développements d’applications nécessitant une version Community de MySQL avec un meilleur contrôle et des personnalisations.
- Charges de travail de production avec haute disponibilité dans la même zone et redondante interzone, et des fenêtres de maintenance managées.
- Une expérience de développement simplifiée.
Offre gratuite de 12 mois
Avec un compte gratuit Azure, vous pouvez maintenant essayer le serveur flexible Azure Database pour MySQL pendant 12 mois gratuitement. L’offre comprend des limites mensuelles allant jusqu’à :
- 750 heures d’utilisation pour une machine virtuelle Burstable Standard_B1ms. Ceci constitue suffisamment d’heures pour exécuter une instance de base de données en continu chaque mois.
- stockage de 32 Go et stockage de sauvegarde de 32 Go.
Vous pouvez utiliser cette offre pour développer et déployer des applications de base de données Azure pour les serveurs flexibles. Pour découvrir comment créer et utiliser des instances de serveur flexible Azure Database pour MySQL gratuitement avec un compte gratuit Azure, consultez ce tutoriel.
Haute disponibilité à l’intérieur de zones de disponibilité et entre elles
Azure Database pour MySQL - Serveur flexible permet de configurer la haute disponibilité avec le basculement automatique. La solution à haute disponibilité aide à empêcher toute perte de données validées provoquée par des défaillances et à améliorer la durée de bon fonctionnement globale de votre application.
Quand vous configurez la haute disponibilité, le serveur flexible provisionne et gère automatiquement un réplica de secours. Le calcul et le stockage provisionnés vous sont facturés pour le réplica principal et le réplica secondaire.
Il existe deux modèles d’architecture à haute disponibilité :
Haute disponibilité redondante interzone : cette option offre une isolation complète et vous permet de configurer la redondance de l’infrastructure sur plusieurs zones de disponibilité. Elle apporte le niveau de disponibilité le plus élevé en cas de défaillance de l’infrastructure dans une zone de disponibilité et quand une latence entre les zones de disponibilité est acceptable.
La disponibilité redondante HA interzone est disponible dans un sous-ensemble de régions Azure, qui prennent en charge plusieurs zones de disponibilité et les partages de fichiers Premium redondants interzone.
Haute disponibilité dans la même zone : Cette option offre une redondance de l’infrastructure avec une latence réseau inférieure, car le serveur principal et le serveur de secours se trouvent dans la même zone de disponibilité. Elle offre une haute disponibilité sans besoin de configurer la redondance des applications entre les zones.
La disponibilité dans la même zone HA est disponible dans toutes les régions Azure où vous pouvez créer des instances de serveur flexible Azure Database pour MySQL.
Pour plus d’informations, consultez Concepts de haute disponibilité dans le serveur flexible Azure Database pour MySQL.
Mise à jour corrective automatisée avec une fenêtre de maintenance gérée
Le service effectue une mise à jour corrective automatisée du matériel, du système d’exploitation et du moteur de base de données sous-jacents. Le correctif comprend les mises à jour de sécurité et de logiciel. Pour le moteur MySQL, la publication de maintenance planifiée inclut également les mises à niveau de versions mineures.
Vous pouvez configurer la planification de la mise à jour corrective pour qu’elle soit gérée par le système, ou définir votre propre planification personnalisée. Pendant la planification de la maintenance, le patch est appliqué et le serveur risque de devoir redémarrer. Avec une planification personnalisée, vous pouvez rendre votre cycle de mise à jour prévisible, et choisir une fenêtre de maintenance ayant un impact minimal sur l’activité. Le service suit une planification de publication mensuelle pour une intégration et une publication continues.
Pour plus d’informations, consultez Maintenance planifiée dans le serveur flexible Azure Database pour MySQL.
Sauvegardes automatiques
Le service du serveur flexible Azure Database pour MySQL crée automatiquement des sauvegardes de serveur et les conserve sur un stockage géoredondant ou redondant localement configuré par l’utilisateur. Vous pouvez utiliser les sauvegardes pour restaurer votre serveur à n'importe quel point dans le temps au cours de la période de rétention des sauvegardes.
Vous pouvez configurer une période de rétention comprise entre 1 et 35 jours. La durée par défaut est de 7 jours. Toutes les sauvegardes sont chiffrées à l’aide du chiffrement AES de 256 bits.
Pour plus d’informations, consultez Sauvegarde et restauration dans le serveur flexible Azure Database pour MySQL.
Isolement réseau
Vous avez deux possibilités de mise en réseau pour connecter le serveur flexible Azure Database pour MySQL :
Accès privé (intégration au réseau virtuel) : vous pouvez déployer votre instance de serveur flexible Azure Database pour MySQL dans un réseau virtuel Azure. Les ressources incluses sur un réseau virtuel peuvent communiquer par le biais d’adresses IP privées.
Choisissez l’intégration au réseau virtuel si vous souhaitez avoir les capacités suivantes :
- Connexion à partir de ressources Azure du même réseau virtuel à votre instance de serveur flexible Azure Database pour MySQL à l’aide d’adresses IP privées.
- Utilisez un réseau privé virtuel (VPN) ou Azure ExpressRoute pour vous connecter à partir de ressources non-Azure à votre instance de serveur flexible Azure Database pour MySQL.
- Évitez un point de terminaison public.
Accès public (adresses IP autorisées) : vous pouvez déployer votre instance de serveur flexible Azure Database pour MySQL avec un point de terminaison public. Le point de terminaison public est une adresse DNS résolvable publiquement. Vous choisissez une plage d’adresses IP que vous autorisez à accéder à votre serveur. Ces types d’autorisations sont appelés règles de pare-feu.
Pour plus d’informations, consultez Connectivité et concepts liés aux réseaux pour le serveur flexible Azure Database pour MySQL.
Ajustements rapides des performances et de la mise à l’échelle
Vous pouvez créer votre première application sur une petite base de données pour un faible coût mensuel, puis adapter l’échelle aux besoins de votre solution de manière fluide. La mise à l’échelle du stockage se fait en ligne et prend en charge la fonctionnalité de croissance automatique du stockage du serveur flexible Azure Database pour MySQL.
Avec le serveur flexible Azure Database pour MySQL, vous pouvez approvisionner des opérations d’entrée/sortie par seconde (IOPS) supplémentaires au-dessus de la limite d’IOPS gratuite indépendamment du stockage. À l’aide de cette fonctionnalité, vous pouvez augmenter ou diminuer à tout moment la quantité d’IOPS approvisionnées en fonction des exigences de votre charge de travail. La scalabilité dynamique permet de répondre à l’évolution rapide des besoins en ressources de votre base de données en toute transparence. Vous ne payez que pour les ressources que vous consommez.
Pour plus d’informations, consultez Niveaux de service du serveur flexible Azure Database pour MySQL.
Capacité d’effectuer un scale-out de la charge de travail en lecture avec des réplicas en lecture
MySQL est un moteur de base de données couramment utilisé pour exécuter des applications web et mobiles à l’échelle d’Internet. Les clients de Microsoft s’en servent pour l’enseignement en ligne, le streaming de vidéos, les solutions de paiement numérique, les plateformes de commerce électronique, les services de jeux, les portails d’informations, et les sites web du service public et de la santé. Ces services sont requis à des fins de mise à l’échelle à mesure que le trafic sur l’application web ou mobile augmente.
L’application est généralement développée en Java ou PHP et est :
- Migrée pour s’exécuter sur des groupes de machines virtuelles identiques Azure ou Azure App Service
- Conteneur à exécuter sur Azure Kubernetes Service (AKS)
L’utilisation d’un groupe de machines virtuelles identiques avec App Service ou AKS en tant qu’infrastructure sous-jacente permet de simplifier la mise à l’échelle des applications grâce à l’approvisionnement instantané de nouvelles machines virtuelles et à la réplication des composants sans état des applications pour répondre aux requêtes. Mais souvent, la base de données finit par être un goulot d’étranglement en tant que composant avec état centralisé.
La fonctionnalité de réplica en lecture vous permet de répliquer les données d’une instance de serveur flexible Azure Database pour MySQL sur un serveur en lecture seule. Vous pouvez effectuer la réplication à partir du serveur source vers dix réplicas au maximum.
Les réplicas sont mis à jour de manière asynchrone à l’aide de la technologie de réplication selon la position du fichier journal binaire (binlog) native au moteur MySQL. Vous pouvez utiliser une solution de proxy d’équilibrage de charge comme ProxySQL pour faire un scale-out transparent de la charge de travail de votre application vers des réplicas en lecture sans coût de refactorisation de l’application.
Pour plus d’informations, consultez l’article Réplicas en lecture dans le serveur flexible Azure Database pour MySQL.
Synchronisation de données hybride ou multicloud avec réplication des données entrantes
Vous pouvez utiliser la réplication des données entrantes pour synchroniser les données d’un serveur MySQL externe avec le serveur flexible Azure Database pour MySQL. Le serveur externe peut être hébergé localement, dans des machines virtuelles, sur un serveur unique Azure Database pour MySQL, ou dans un service de base de données hébergé par d'autres fournisseurs de cloud.
La réplication des données entrantes est basée sur la position du fichier binlog. Les principaux scénarios à prendre en compte concernant l’utilisation de la fonctionnalité sont les suivants :
- Synchronisation de données hybride
- Synchronisation multicloud
- Migration avec temps d’arrêt minimal vers un serveur flexible Azure Database pour MySQL
Pour plus d’informations, consultez Répliquer des données dans le serveur flexible Azure Database pour MySQL.
Arrêt/démarrage du serveur à la demande
Grâce au serveur flexible Azure Database pour MySQL, vous pouvez arrêter et démarrer des serveurs à la demande pour optimiser les coûts. La facturation du niveau de calcul s’arrête immédiatement lorsque le serveur est arrêté. Cette fonctionnalité peut vous permettre de faire des économies lors du développement, des tests et des charges de travail de production prévisibles qui ont une contrainte de temps. Le serveur reste en état d’arrêt pendant 30 jours, sauf si vous le redémarrez plus tôt.
Pour plus d’informations, consultez Concepts de serveur dans le serveur flexible Azure Database pour MySQL.
Sécurité de qualité professionnelle, conformité et confidentialité
Le serveur flexible Azure Database pour MySQL utilise le module de chiffrement conforme à la norme FIPS 140-2 pour chiffrer le stockage des données au repos. Les données (y compris les sauvegardes) et les fichiers temporaires créés lors de l'exécution de requêtes sont chiffrés.
Le service utilise le chiffrement AES 256 bits inclus dans le chiffrement de stockage Azure, et les clés peuvent être gérées par le système (par défaut). Vous pouvez également utiliser des clés gérées par le client dans un coffre de clés Azure ou un module de sécurité matériel géré pour le chiffrement des données au repos. Pour plus d’informations, consultez Chiffrement des données avec des clés gérées par le client pour les instances de serveur flexible Azure Database pour MySQL.
Le serveur flexible Azure Database pour MySQL chiffre les données en mouvement avec le protocole TLS (Transport Layer Security) appliqué par défaut. Le serveur flexible Azure Database pour MySQL prend en charge les connexions chiffrées à l’aide du protocole TLS 1.2. Toutes les connexions entrantes qui utilisent les protocoles TLS 1.0 et TLS 1.1 sont refusées. Vous pouvez désactiver l’application de TLS en définissant le paramètre de serveur require_secure_transport
, puis en définissant la valeur tls_version
minimale de votre serveur. Pour plus d’informations, consultez Se connecter au serveur flexible Azure Database pour MySQL en utilisant des connexions chiffrées.
Le serveur flexible Azure Database pour MySQL permet un accès privé complet aux serveurs à l’aide de l’intégration au réseau virtuel. Les serveurs sur un réseau virtuel sont uniquement accessibles et connectés via des adresses IP privées. Avec l’intégration au réseau virtuel, l’accès public est refusé et les serveurs ne sont pas accessibles en utilisant des points de terminaison publics. Pour plus d’informations, consultez Connectivité et concepts liés aux réseaux pour le serveur flexible Azure Database pour MySQL.
Surveillance et alerte
Le serveur flexible Azure Database pour MySQL dispose de fonctionnalités intégrées de surveillance et de création d’alertes pour les performances. Toutes les mesures Azure ont une fréquence d’une minute. Chaque métrique fournit 30 jours d’historique.
Vous pouvez configurer des alertes basées sur les métriques. Le serveur flexible Azure Database pour MySQL expose les métriques du serveur hôte pour surveiller l’utilisation des ressources et permet de configurer les journaux des requêtes lentes. Grâce à ces outils, vous pouvez rapidement optimiser vos charges de travail et configurer votre serveur pour les meilleures performances.
Dans le serveur flexible Azure Database pour MySQL, vous pouvez visualiser les données des journaux des requêtes lentes et d’audit à l’aide des classeurs Azure Monitor. Les workbooks vous offrent un canevas flexible pour l’analyse des données et la création de rapports visuels enrichis au sein du portail Azure. Le serveur flexible Azure Database pour MySQL fournit trois modèles de classeurs : Vue d’ensemble du serveur, Audit et Query Performance Insight.
Le classeur Query Performance Insight vous permet de passer moins de temps à résoudre les problèmes de performances de base de données en fournissant les informations suivantes :
- Principales requêtes de longue durée et leurs tendances.
- Détails de la requête : consultez le texte de la requête et l’historique d’exécution indiquant le temps de requête minimal, maximal, moyen et d’écart type.
- Utilisation des ressources (processeur, mémoire et stockage).
De plus, vous pouvez utiliser des outils de supervision fournis par la communauté, comme Percona Monitoring and Management avec le serveur flexible Azure Database pour MySQL.
Pour plus d’informations, consultez Surveiller le serveur flexible Azure Database pour MySQL.
Migration
Le service flexible Azure Database pour MySQL exécute la version de la communauté de MySQL. Cette conception permet une compatibilité totale des applications et nécessite des coûts de refactorisation minimal pour migrer une application existante développée sur le moteur MySQL vers un serveur flexible Azure Database pour MySQL. Vous pouvez effectuer une migration vers un serveur flexible Azure Database pour MySQL en utilisant les options suivantes.
Migrations hors connexion
Utilisez Azure Data Migration Service lorsque la bande passante réseau entre la source et Azure est correcte (par exemple, une connexion ExpressRoute à haute vitesse). Pour des instructions pas à pas, consultez Tutoriel : Migration de MySQL vers Azure Database pour MySQL hors connexion à l’aide de DMS.
Utilisez mydumper et myloader pour vous servir de paramètres de compression visant à déplacer efficacement des données sur des réseaux à faible vitesse (tels que l’Internet public). Pour des instructions pas à pas, consultez Migrer des bases de données volumineuses vers Azure Database pour MySQL à l’aide de mydumper/myloader.
Migrations en ligne ou avec un temps d’arrêt minimal
Utilisez la réplication de données dans une sauvegarde et restauration compatible mydumper/myloader pour l’amorçage initial. Pour des instructions étape par étape, consultez Migration depuis le serveur unique Azure Database pour MySQL vers le serveur flexible Azure Database pour MySQL avec des outils open source.
Pour migrer du serveur unique Azure Database pour MySQL vers une instance de serveur flexible Azure Database pour MySQL en cinq étapes simples, consultez ce blog.
Pour plus d’informations, consultez Sélectionner les outils appropriés en vue de la migration vers Azure Database pour MySQL.
Régions Azure
L’un des avantages de l’exécution de votre charge de travail dans Azure est sa portée mondiale. Le serveur flexible Azure Database pour MySQL est actuellement disponible dans les régions Azure suivantes :
Région | Disponibilité | Haute disponibilité dans la même zone | Haute disponibilité redondante interzone | Sauvegarde géoredondante |
---|---|---|---|---|
Centre de l’Australie | ✔️ | ✔️ | ❌ | ❌ |
Australie Est | ✔️ | ✔️ | ✔️ | ✔️ |
Australie Sud-Est | ✔️ | ✔️ | ❌ | ✔️ |
Brésil Sud | ✔️ | ✔️ | ✔️ | ✔️ |
Centre du Canada | ✔️ | ✔️ | ✔️ | ✔️ |
Est du Canada | ✔️ | ✔️ | ❌ | ✔️ |
Inde Centre | ✔️ | ✔️ | ✔️ | ✔️ |
USA Centre | ✔️ | ✔️ | ✔️ | ✔️ |
Chine orientale 2 | ✔️ | ✔️ | ❌ | ✔️ |
Chine Est 3 | ✔️ | ✔️ | ❌ | ✔️ |
Chine Nord 2 | ✔️ | ✔️ | ❌ | ✔️ |
Chine Nord 3 | ✔️ | ✔️ | ✔️ | ✔️ |
Asie Est (Hong Kong SAR) | ✔️ | ✔️ | ✔️ | ✔️ |
USA Est | ✔️ | ✔️ | ✔️ | ✔️ |
USA Est 2 | ✔️ | ✔️ | ✔️ | ✔️ |
France Centre | ✔️ | ✔️ | ✔️ | ✔️ |
France Sud | ✔️ | ✔️ | ❌ | ✔️ |
Allemagne Centre-Ouest | ✔️ | ✔️ | ✔️ | ✔️ |
Allemagne Nord | ✔️ | ✔️ | ❌ | ✔️ |
Israël Central | ✔️ | ✔️ | ✔️ | ❌ |
Italie Nord | ✔️ | ✔️ | ✔️ | ❌ |
Japon Est | ✔️ | ✔️ | ✔️ | ✔️ |
OuJapon Est | ✔️ | ✔️ | ❌ | ✔️ |
Inde Ouest Jio | ✔️ | ✔️ | ❌ | ❌ |
Centre de la Corée | ✔️ | ✔️ | ✔️ | ✔️ |
Corée du Sud | ✔️ | ✔️ | ❌ | ✔️ |
Centre-Nord des États-Unis | ✔️ | ✔️ | ❌ | ✔️ |
Europe Nord | ✔️ | ✔️ | ✔️ | ✔️ |
Norvège Est | ✔️ | ✔️ | ✔️ | ✔️ |
Norvège Ouest | ✔️ | ✔️ | ❌ | ❌ |
Pologne Centre | ✔️ | ✔️ | ✔️ | ❌ |
Qatar Central | ✔️ | ✔️ | ✔️ | ❌ |
Afrique du Sud Nord | ✔️ | ✔️ | ✔️ | ✔️ |
Afrique du Sud Ouest | ✔️ | ✔️ | ❌ | ✔️ |
États-Unis - partie centrale méridionale | ✔️ | ✔️ | ✔️ | ✔️ |
Inde Sud | ✔️ | ✔️ | ❌ | ✔️ |
Asie Sud-Est | ✔️ | ✔️ | ✔️ | ✔️ |
Espagne Centre | ✔️ | ✔️ | ❌ | ✔️ |
Suède Centre | ✔️ | ✔️ | ✔️ | ❌ |
Suisse Nord | ✔️ | ✔️ | ✔️ | ✔️ |
Suisse Ouest | ✔️ | ✔️ | ❌ | ✔️ |
Taïwan Nord | ✔️ | ✔️ | ❌ | ❌ |
Taïwan Nord-Ouest | ✔️ | ✔️ | ❌ | ❌ |
Émirats arabes unis Centre | ✔️ | ✔️ | ❌ | ✔️ |
Émirats arabes unis Nord | ✔️ | ✔️ | ✔️ | ✔️ |
Sud du Royaume-Uni | ✔️ | ✔️ | ✔️ | ✔️ |
Ouest du Royaume-Uni | ✔️ | ✔️ | ❌ | ✔️ |
USGov Virginia | ✔️ | ✔️ | ❌ | ❌ |
Gouvernement des États-Unis - Arizona | ✔️ | ✔️ | ❌ | ✔️ |
Gouvernement des États-Unis - Texas | ✔️ | ✔️ | ❌ | ✔️ |
Centre-USA Ouest | ✔️ | ✔️ | ❌ | ✔️ |
Europe Ouest | ✔️ | ✔️ | ✔️ | ✔️ |
USA Ouest | ✔️ | ✔️ | ❌ | ✔️ |
USA Ouest 2 | ✔️ | ✔️ | ✔️ | ✔️ |
USA Ouest 3 | ✔️ | ✔️ | ✔️ | ✔️ |
Commentaires et support
Pour toute question ou suggestion concernant l’utilisation du serveur flexible Azure Database MySQL, adressez-vous aux points de contact suivants :
- Pour contacter le support Azure, ouvrez une demande dans le portail Azure.
- Pour fournir des commentaires ou demander de nouvelles fonctionnalités, publiez une idée par le biais de commentaires de la communauté.
Contenu connexe
- Créer une instance de serveur flexible Azure Database pour MySQL en utilisant le Portail Azure
- Créer une instance de serveur flexible Azure Database pour MySQL à l’aide d’Azure CLI
- Gérer une instance de serveur flexible Azure Database pour MySQL à l’aide d’Azure CLI
- Utiliser Python pour se connecter et interroger des données dans Azure Database pour MySQL - Serveur flexible
- Utiliser PHP avec Azure Database pour MySQL – Serveur flexible