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 offre différents niveaux de compatibilité avec les workflows de développement et les environnements constitutifs. Une fois que 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 de sécurité générales 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 pour exécuter une instance d'une 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 illustré dans le schéma ci-dessous, les environnements de haut niveau sont considérés comme étant de préproduction ou de production, et vous pouvez disposer d'autant d'environnements de préproduction que nécessaire. Le schéma 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'environnement

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 les descriptions 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 endroit 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 itérer beaucoup plus rapidement.

Les données d'un environnement de développement sont initialisées avec des données qui ressemblent généralement aux données de production, mais ne doivent jamais contenir les données d'utilisateurs réels. Elles peuvent également contenir des données qui ont causé des bugs par le passé, comme des chaînes très longues.

Environnements de test et de contrôle qualité

Si vous disposez de 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 avez des ingénieurs en contrôle qualité, 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 de contrôle qualité sont initialisées avec des données de qualité généralement représentatives des données de production, ainsi qu'avec des données représentant des cas extrêmes et des exemples de données qui ont causé des bugs par le passé.

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 les différences courantes entre la préproduction et la production :

  • La préproduction peut manquer de certaines fonctionnalités ou intégrations susceptibles de provoquer des effets secondaires. Par exemple, la préproduction peut être configurée pour ne pas envoyer d'e-mails.

  • La préproduction peut contenir des données anonymisées. Les données peuvent être fausses, mais elles doivent être réalistes. Étant donné que la préproduction est un endroit où vous pouvez déboguer les problèmes en toute sécurité, vous pouvez accorder 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. La perte ou la modification de vos données de production aura un impact direct sur vos utilisateurs.

Dans la console Firebase, nous vous recommandons de taguer le projet Firebase associé à votre environnement de production en tant que "production" type d'environnement. 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