Présentation des environnements

Pour les applications de production, vous devez configurer un workflow de développement clair, en particulier si plusieurs personnes travaillent sur votre application. Un workflow de développement implique généralement la configuration et la gestion de plusieurs environnements.

Firebase propose différents niveaux d'assistance pour les workflows de développement et les environnements qui les composent. Une fois que vous vous êtes familiarisé avec les termes et les hypothèses du workflow de développement sur cette page, consultez nos bonnes pratiques générales et nos consignes générales de sécurité pour configurer un projet Firebase et vos applications.

À propos des environnements

Dans le développement de logiciels, un environnement correspond à l'ensemble du matériel et des logiciels nécessaires à l'exécution d'une instance d'application ou d'un système d'applications.

Une série d'environnements permet d'isoler le développement et les tests de logiciels sans impacter les utilisateurs. Comme le montre le schéma ci-dessous, les environnements de haut niveau sont considérés comme des environnements de préproduction ou de production. Vous pouvez avoir autant d'environnements de préproduction que nécessaire. Le diagramme décrit également les pratiques et les fonctionnalités courantes associées à chaque type d'environnement.

Le processus de progression d'une fonctionnalité ou d'une version dans ces environnements jusqu'à la production est appelé pipeline de déploiement.

Schéma montrant les environnements qui composent généralement le pipeline de déploiement, y compris le développement, le test et l'assurance qualité, la préproduction et enfin la production

Types d'environnements

Un environnement est composé de l'infrastructure sous-jacente dont vous avez besoin pour exécuter et prendre en charge votre application, son code et ses données. Développez chacun des termes suivants pour consulter la description de certains environnements courants, y compris des conseils sur les types de données utilisés dans chaque type d'environnement.

Environnements de développement

Chaque développeur a besoin d'un environnement de développement, c'est-à-dire d'un espace sûr et isolé pour tester les modifications en cours de création. Idéalement, chaque développeur de votre équipe a accès à son propre environnement de développement. De plus, si l'environnement de développement est une instance locale, un développeur peut effectuer des itérations beaucoup plus rapidement.

Les données d'un environnement de développement sont généralement semblables aux données de production, mais ne doivent jamais contenir de données d'utilisateurs réels. Il peut également contenir des données qui ont déjà provoqué des bugs, comme des chaînes de caractères très longues.

Environnements de test et de contrôle qualité

Si vous avez des tests automatisés, vous avez besoin d'un environnement dans lequel les exécuter et vous devez réinitialiser les données chaque fois que vous créez l'environnement de test.

Si vous disposez d'ingénieurs QA, ils peuvent avoir besoin d'un environnement qu'ils utilisent tous ou d'environnements individuels pour tester une nouvelle version candidate.

Les données des environnements de test et d'assurance qualité sont enrichies avec des données de qualité qui sont généralement représentatives des données de production, ainsi qu'avec des données qui représentent des cas extrêmes et des exemples de données ayant déjà causé des bugs.

Environnements de préproduction

Pour effectuer des tests réalistes sur le fonctionnement d'une version en production, vous avez besoin d'un environnement de préproduction qui imite l'infrastructure de production aussi fidèlement que possible. Il est courant d'avoir plusieurs instances de préproduction si vous devez tester des intégrations spécifiques de manière isolée.

Voici quelques différences courantes entre les environnements de préproduction et de production :

  • L'environnement de préproduction peut manquer de certaines fonctionnalités ou intégrations qui pourraient entraîner des effets secondaires. Par exemple, la mise en scène peut être configurée pour ne pas envoyer d'e-mails.

  • Les données de préproduction peuvent être anonymisées ou fictives, mais elles doivent être réalistes. Étant donné que l'environnement de préproduction permet de déboguer les problèmes en toute sécurité, vous pouvez accorder à votre équipe un accès plus large aux données de préproduction qu'aux données de production. Par conséquent, pour protéger la confidentialité des utilisateurs, vous ne devez pas utiliser de données utilisateur réelles en préproduction.

Environnements de production

Pour chaque application que vous gérez, vous avez besoin d'un seul environnement de production. Il s'agit de l'instance avec laquelle vos utilisateurs interagissent.

Contrairement aux autres environnements dans lesquels vous pouvez modifier, supprimer et/ou recréer des données, les données de votre environnement de production sont très importantes. Si vous les perdez ou les modifiez, vos utilisateurs seront directement affectés.

Dans la console Firebase, nous vous recommandons de taguer le projet Firebase associé à votre environnement de production en tant que type d'environnement "production". Ce tag peut vous rappeler, à vous et à vos coéquipiers, que toute modification peut avoir un impact sur vos applications de production associées et leurs données.

Étapes suivantes