Pour les applications de production, vous devez configurer un flux de travail 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 prise en charge pour les flux de travail des développeurs et les environnements constitutifs. Une fois que vous vous serez familiarisé avec les termes et les hypothèses du flux de travail des développeurs sur cette page, consultez nos bonnes pratiques générales et nos consignes de sécurité générales pour la configuration d'un projet Firebase et de vos applications.
À propos des environnements
Dans le développement de logiciels, un environnement est 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 fournit une isolation pour le développement et le test de logiciels sans impact sur les utilisateurs. Comme illustré dans le diagramme ci-dessous, les environnements de haut niveau sont considérés comme de pré-production ou de production , et vous pouvez avoir autant d'environnements de pré-production que nécessaire. Le diagramme décrit également les pratiques courantes et les fonctionnalités associées à chaque type d'environnement .
Le processus de progression d'une fonctionnalité ou d'une version dans ces environnements jusqu'à la production s'appelle un pipeline de déploiement .
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 passer en revue les descriptions de certains environnements courants, y compris des conseils sur les types de données utilisés dans chaque type d'environnement.
Chaque développeur a besoin d'un environnement de développement — un endroit sûr et isolé pour tester les modifications au fur et à mesure de leur construction. 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 dans un environnement de développement sont ensemencées avec des données qui ressemblent généralement 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 causé des bogues dans le passé, comme de très longues chaînes.
Si vous avez des tests automatisés, vous avez besoin d'un environnement dans lequel exécuter ces tests, et vous devez réinitialiser les données chaque fois que vous lancez l'environnement de test.
Si vous avez des ingénieurs QA, ils peuvent avoir besoin d'un environnement qu'ils utilisent tous, ou ils peuvent avoir besoin d'environnements individuels pour tester une nouvelle version candidate.
Les données des environnements de test et d'assurance qualité sont ensemencées avec des données de qualité qui sont généralement représentatives des données de production, ainsi que des données qui représentent des cas critiques et des exemples de données qui ont causé des bogues dans le passé.
Pour des tests réalistes du fonctionnement d'une version en production, vous avez besoin d'un environnement intermédiaire qui imite le plus possible l'infrastructure de production. 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 mise en scène et la production :
La mise en scène peut manquer certaines fonctionnalités ou intégrations qui pourraient entraîner des effets secondaires. Par exemple, la mise en scène peut être définie pour ne pas envoyer d'e-mail.
La mise en scène peut avoir des données anonymisées ; les données peuvent être fausses, mais elles doivent être réalistes. Étant donné que la mise en scène est un endroit pour déboguer les problèmes en toute sécurité, vous pouvez donner à une équipe un accès plus large aux données de mise en scène qu'aux données de production. Ainsi, pour protéger la confidentialité des utilisateurs, vous ne devez pas utiliser de données utilisateur réelles dans la mise en scène.
Pour chaque application que vous gérez, vous avez besoin d'un environnement de production unique. Il s'agit de l'instance avec laquelle vos utilisateurs interagissent.
Contrairement aux autres environnements où vous pouvez modifier, supprimer et/ou recréer des données, les données de votre environnement de production sont très importantes ; perdre ou modifier vos données prod affectera directement vos utilisateurs.
Dans la console Firebase, nous vous recommandons de marquer le projet Firebase associé à votre environnement de production en tant que type d'environnement "production" . Cette balise peut vous aider à vous rappeler, ainsi qu'à vos coéquipiers, que toute modification peut affecter vos applications de production associées et leurs données.
Prochaines étapes
Consultez nos bonnes pratiques générales pour la configuration de projets Firebase. Ce guide répond aux questions sur la hiérarchie des projets Firebase, comment enregistrer vos variantes d'application et la multilocation.
Passez en revue les consignes de sécurité générales pour différents environnements. Vous voulez vous assurer que chaque environnement et ses données sont sécurisés.
Consultez la liste de contrôle de lancement de Firebase .