Retool permite que os desenvolvedores criem rapidamente ferramentas e aplicativos internos, mas gerenciar ciclos de vida de desenvolvimento de software (SDLC) complexos em vários ambientes pode ser um desafio, especialmente para equipes maiores. O Source Control, disponível para implementações auto-hospedadas do Enterprise Retool , permite a sincronização de aplicativos, recursos e consultas em várias instâncias. Isso dá suporte a fluxos de trabalho avançados de desenvolvimento em vários estágios com ambientes separados de desenvolvimento, preparação e produção. Este artigo se aprofunda na arquitetura de implantações de várias instâncias Retool com o Source Control para permitir ciclos de vida de desenvolvimento de nível empresarial.
Configuração de ambientes Retool de várias instâncias
A primeira etapa é implantar instâncias separadas do Retool para os ambientes de desenvolvimento, preparação e produção. Para tornar os contêineresRetool em contêineres sem estado e escalonáveis de forma independente, [externalize o banco de dados Postgres que armazena os dados do aplicativo Retool. Isso permite dimensionar as instâncias do Retool com base nos diferentes padrões de uso dos desenvolvedores em relação aos usuários finais.
Por exemplo, provisione três instâncias do Retool com armazenamento de back-end compartilhado:
- `retool-dev.company.com`: Ambiente de desenvolvimento
- `retool-staging.company.com`: Ambiente de preparação/QA
- `retool-prod.company.com`: Ambiente de produção
Configuração do controle de origem para desenvolvimento em várias instâncias
Em seguida, configure um repositório Git para cada instância do Retool . Proteja os recursos fundamentais, como fontes de dados e configurações de ambiente em todas as instâncias. Para a instância de desenvolvimento, permita que os desenvolvedores trabalhem em ramificações de recursos.
Veja um exemplo de configuração do controle de fontes:
- `retool-dev`: Os desenvolvedores colaboram nas ramificações de recursos
- `retool-staging`: Os administradores revisam e mesclam as solicitações pull do desenvolvimento
- `retool-prod`: Os administradores promovem as alterações do staging para o prod
Fluxos de trabalho de desenvolvimento com Source Control
Com o controle de origem de várias instâncias configurado, as equipes de desenvolvimento podem seguir fluxos de trabalho estruturados:
1. Os desenvolvedores criam aplicativos e consultas em ramificações de recursos na instância de desenvolvimento. Por exemplo:
`git checkout -b "new-crm-integration"`
2. Quando estão prontos, os desenvolvedores abrem solicitações pull para mesclar suas ramificações de recursos na instância de preparação. Isso permite que outras pessoas revisem as alterações e realizem testes de integração.
3. Após a validação, os administradores mesclam a ramificação de teste na instância de produção por meio de PR. Isso implementa as alterações para os usuários finais de forma controlada.
4. Se surgirem bugs ou problemas, os administradores poderão reverter rapidamente a instância de produção para um estado estável anterior, revertendo os commits.
Práticas recomendadas para SDLC complexo com o Retool Source Control
Para otimizar os fluxos de trabalho de desenvolvimento de várias instâncias com o Source Control:
- Estabeleça uma estratégia clara de ramificação, como o Git Flow, com ramificações principais e de desenvolvimento
- Configure ramificações protegidas para preparação/produção com revisões obrigatórias de PR
- Implemente controles de acesso granular para restringir quem pode implantar na produção
- Monitore os eventos de controle de origem para auditar o fluxo de alterações entre as instâncias
- Considere automatizar implantações entre instâncias usando pipelines de CI/CD que escutam as mesclagens de PR
A arquitetura de implementações de várias instâncias do Retool com o Source Control permite que grandes equipes de desenvolvimento sigam práticas de SDLC estruturadas e de nível empresarial. Com a externalização do estado, a configuração de ambientes de preparação e a configuração de fluxos de trabalho avançados do Git, as organizações podem criar e enviar ferramentas internas de forma escalável e controlada.
No entanto, as implantações de várias instâncias vêm com maior sobrecarga de DevOps e custos de hospedagem para gerenciar. A segurança e a conformidade também são cruciais ao mover o código do aplicativo entre ambientes. Mas, para muitas empresas, os benefícios de produtividade da plataforma de baixo código doRetool, combinados com a segurança do controle de código-fonte, abrem um novo paradigma para o desenvolvimento de ferramentas internas em escala.
O que são várias instâncias de um aplicativo?
A criação de aplicativos com pouco código não é diferente da criação de aplicativos com código. Você precisa testar os recursos que está adicionando com frequência. Ao criá-los, você pode quebrar interfaces. É por isso que o desenvolvimento de software se baseia na trindade sagrada das instâncias: dev, stage e prod. A instância de produção do aplicativo é onde estão os usuários; ela está ativa e funciona 24 horas por dia, 7 dias por semana. O ambiente de desenvolvimento é usado para quebrar coisas, adicionar memes de gatos e usar textos lorem-ipsum. Quando um recurso é concluído no ambiente de desenvolvimento, ele é implantado diretamente no ambiente de produção para projetos de pequena escala ou, para projetos maiores, usamos um terceiro ambiente: o estágio. O ambiente de estágio geralmente contém dados desatualizados e muitas vezes anônimos do ambiente de produção, portanto, não há mais gatos ou lorem ipsum. Aqui, estamos quase em produção e podemos testar profundamente o aplicativo com dados quase reais. Podemos executar testes de estresse, auditorias de segurança e testes de desempenho.
Para ser honesto, muitas vezes há ainda mais instâncias. A integração é usada especificamente para testar as conexões entre seu aplicativo e o restante de suas ferramentas e software. Em alguns casos, podemos até ter uma instância por recurso, de modo que cada um possa ser testado de forma independente primeiro para evitar longas horas de depuração de vários recursos mesclados que afetam uns aos outros.