Blog

Déploiements multi-instances avec Retool

Maxime Topolov
Maxime Topolov
8 juin 2024
-
Retool permet aux développeurs de créer rapidement des outils et des applications internes, mais la gestion de cycles de développement logiciel (SDLC) complexes dans plusieurs environnements peut s'avérer difficile, en particulier pour les grandes équipes.
 
Déploiements multi-instances avec Retool

Retool enables developers to quickly build internal tools and applications, but managing complex software development lifecycles (SDLC) across multiple environments can be challenging, especially for larger teams. Source Control, available for self-hosted Enterprise Retool deployments, allows syncing apps, resources and queries across multiple instances. This supports advanced multi-stage development workflows with separate development, staging, and production environments. This article dives deep into architecting multi-instance Retool deployments with Source Control to enable Enterprise-grade development lifecycles.

Setting Up Multi-Instance Retool Environments

The first step is deploying separate Retool instances for development, staging, and production environments. To make the Retool containers stateless and independently scalable, [externalize the Postgres database that stores Retool's application data. This allows scaling Retool instances based on the different usage patterns of developers vs end users.

For example, provision three Retool instances with shared backend storage:
- `retool-dev.company.com`: Development environment
- `retool-staging.company.com`: Staging/QA environment
- `retool-prod.company.com`: Production environment

Configuration du contrôle du code source pour le développement multi-instances

Next, set up a Git repository for each Retool instance. Protect foundational resources like data sources and environment configs in all instances. For the development instance, enable developers to work on feature branches.

Here's an example Source Control setup:
- `retool-dev`: Developers collaborate on feature branches
- `retool-staging`: Admins review and merge pull requests from dev
- `retool-prod`: Admins promote changes from staging to prod

Flux de développement avec Source Control

Avec un contrôle de source multi-instances configuré, les équipes de développement peuvent suivre des flux de travail structurés :

1. Les développeurs créent des applications et des requêtes sur des branches fonctionnalités dans l'instance de développement. Par exemple :

`git checkout -b "new-crm-integration"`

2. When ready, developers open pull requests to merge their feature branches into the staging instance. This allows others to review changes and conduct integration testing.

3. After validation, admins merge the staging branch into the prod instance via PR. This deploys the changes to end users in a controlled manner.

4. En cas de bogues ou de problèmes, les administrateurs peuvent rapidement ramener l'instance de production à un état stable antérieur en annulant les modifications.

Best Practices for Complex SDLC with Retool Source Control

Pour optimiser les flux de développement multi-instances avec Source Control :

- Établir une stratégie de ramification claire comme Git Flow avec des branches principales et des branches de développement
- Mettre en place des branches protégées pour la pré-prod/la production avec des examens de pull request (PR) obligatoires
- Mettre en œuvre des contrôles d'accès précis pour controler qui peut déployer en production
- Surveiller les événements Source Control pour les changements entre les instances
- Envisager d'automatiser les déploiements entre les instances en utilisant des pipelines CI/CD qui monitorent les fusions de PR

Architecting multi-instance Retool deployments with Source Control enables large development teams to follow structured, Enterprise-grade SDLC practices. By externalizing state, setting up staging environments, and configuring advanced Git workflows, organizations can build and ship internal tools in a scalable yet controlled manner.

However, multi-instance deployments do come with increased DevOps overhead and hosting costs to manage. Security and compliance is also crucial when moving application code across environments. But for many enterprises, the productivity benefits of Retool's low-code platform combined with the safety of Source Control unlocks a new paradigm for internal tool development at scale.

Que sont les instances multiples d'une application ?

Construire avec des applications low-code et deep-code ont leur similarités. Vous devez tester fréquemment les fonctionnalités que vous ajoutez. En les construisant, vous pouvez casser des interfaces. C'est pourquoi le développement de logiciels repose sur la trinité sacrée des instances : dev, pré-prod et prod. L'instance de production de l'application est là où se trouvent vos utilisateurs ; elle est en direct et fonctionne 24 heures sur 24, 7 jours sur 7. L'environnement de développement est utilisé pour casser des choses, ajouter des mèmes de chat et utiliser des textes lorem-ipsum. Une fois qu'une fonctionnalité est terminée dans l'environnement de développement, elle est soit déployée directement dans l'environnement de production pour les petits projets, soit, pour les projets plus importants, nous utilisons un troisième environnement : l'environnement de développement. L'environnement pré-prod contient généralement des données obsolètes et souvent anonymisées provenant de l'environnement prod, donc plus de chats ou de textes lorem ipsum. Ici, nous sommes presque en production et nous pouvons tester l'application en profondeur avec des données quasi réelles. Nous pouvons effectuer des tests de stress, des audits de sécurité et des tests de performance.

Pour être honnête, il y a souvent plus d'exemples. L'intégration est utilisée spécifiquement pour tester les connexions entre votre application et le reste de vos outils et logiciels. Dans certains cas, nous pouvons même avoir une instance par fonctionnalité, afin que chacune puisse être testée indépendamment en premier lieu pour éviter de longues heures de débogage de multiples fonctionnalités fusionnées qui ont un impact les unes sur les autres.

Partager cet article
 
Frontend
Ingénierie logicielle
Grandes entreprises
Low-code
Maxime Topolov
Maxime Topolov
PDG

Vous pouvez également lire

API
Performances
Contenu
SEO
Données
Application pour les consommateurs
Ingénierie logicielle
Sur site
Développement mobile
ERP
E-commerce
Recrutement
Cloud
Migration de contenu
IA
Frontend
CMS
Headless
Backend
Low-code
Applications professionnelles
L'IA conversationnelle
Éducation
Médias et édition
Santé
Services financiers
Grandes entreprises
Start-Up