Por dentro da migração de autenticação da Pipefy para o Keycloak
Escrito por Marcos Carvalho, Software Engineer na Pipefy.
Introdução
A Pipefy encarou o desafio de substituir o Auth0 pelo Keycloak para reduzir custos, evitar vendor lock-in e ganhar escalabilidade. Este artigo explora as motivações, desafios técnicos e aprendizados dessa transição estratégica, que trouxe mais controle e eficiência à gestão de autenticação.
Motivações
A Pipefy utilizava o Auth0 como solução de autenticação e autorização desde 2018, aproveitando sua facilidade de implementação, integração fluida e recursos como SSO (Single Sign-On), autenticação social e passwordless. No entanto, ao longo dos anos, percebemos a necessidade de uma solução mais econômica e aberta para reduzir a dependência de um único fornecedor, especialmente em um aspecto crítico como a autenticação.
Conforme o aumento da autenticação de usuários por mês, a necessidade da migração se tornou ainda maior, visto que tínhamos em média 650 mil logins por mês. O que hoje já ultrapassa os 700 mil logins por mês, em média, de acordo com o gráfico abaixo.
Algumas das razões para a mudança foram:
- A instabilidade e os incidentes ocasionais enfrentados pelo Auth0, que chegaram a nos fazer considerar o Devise como uma contingência para a autenticação;
- O aumento expressivo dos custos, que cresceram mais de 50% durante o contrato vigente, com projeções ainda maiores devido ao crescimento contínuo de usuários ativos mensais, estimado para subir significativamente até 2025.;
- O risco de vendor lock-in, já que a dependência excessiva de um único fornecedor limitava nossa autonomia e dificultava adaptações às demandas específicas do negócio;
- A necessidade de maior escalabilidade para atender ao crescimento da base de usuários, que a solução anterior já começava a dificultar;
- A busca por aperfeiçoamento da segurança, com uma solução que nos oferecesse mais controle e flexibilidade para implementar melhorias contínuas alinhadas às melhores práticas do mercado;
Com essa visão, o time de engenharia da Pipefy decidiu migrar para o Keycloak, uma solução open-source que oferece recursos semelhantes ao Auth0, como autenticação multifator, autenticação social e SSO. O Keycloak também permite personalizações tanto da lógica de autenticação, com extensões e add-ons, mas também elimina o risco de “vendor lock-in”, já que é uma plataforma autogerenciável.
Planejamento
O planejamento da migração para o Keycloak foi uma etapa crucial para garantir que a transição ocorresse sem prejudicar a experiência dos usuários ou comprometer a segurança dos sistemas. Isso envolveu um trabalho conjunto de diferentes equipes, como engenharia, suporte, infraestrutura e produto, para mapear todos os impactos potenciais, mitigar riscos e alinhar expectativas.
Primeiramente, foi realizado um levantamento detalhado de todos os fluxos de autenticação e autorização existentes, incluindo casos de uso específicos, como autenticação social, SSO e MFA. O objetivo era garantir que o Keycloak pudesse replicar esses fluxos com o mínimo de alterações no comportamento do sistema. Para isso, foram criados protótipos que validaram as capacidades do Keycloak em atender a esses requisitos.
Outro aspecto importante foi a criação de um plano para personalização e integração. O Keycloak, por ser uma solução open-source, exigiu adaptações para atender às especificidades da Pipefy, como a integração com o banco de dados e os sistemas internos. Para isso, desenvolvemos SPIs customizados em Java, o que exigiu um período de aprendizado e experimentação por parte da equipe.
A infraestrutura também recebeu atenção especial. Como o Keycloak seria autogerenciado, era essencial garantir alta disponibilidade e resiliência. Configuramos o Keycloak em clusters, utilizando ferramentas de monitoramento e automação para prevenir downtime e identificar problemas rapidamente. Também reforçamos as práticas de segurança, desde a configuração inicial até o uso de redes privadas para a comunicação entre os serviços.
A migração dos dados foi uma etapa delicada, principalmente no que dizia respeito às configurações de SSO de clientes corporativos. Desenvolvemos scripts e rotinas para transferir dados do Auth0 para o Keycloak de forma segura, validando cada etapa para evitar inconsistências. Além disso, criamos uma estratégia de rollback para reverter ao Auth0 em caso de problemas críticos durante a transição. Ao todo foram cerca de 200 configurações de Single Single On que foram migrados, juntamente com a manutenção, padronização e automatização das integrações que o Keycloak proporcionou, graças a uma rica API de administração de configuração e usuários.
O treinamento da equipe e a comunicação com os stakeholders internos e externos também fizeram parte do planejamento. Realizamos workshops para que as equipes de suporte e engenharia entendessem como operar e solucionar problemas no Keycloak, enquanto os clientes eram informados previamente sobre a mudança e seu impacto mínimo nos serviços.
Por fim, dividimos o processo em fases bem definidas, começando por um piloto com usuários internos antes de expandir gradualmente para todos os clientes. Esse modelo de rollout progressivo ajudou a identificar e resolver problemas iniciais, garantindo uma migração mais tranquila e bem-sucedida.
Transição
A transição para o novo mecanismo de autenticação foi um grande desafio técnico. Com o ambiente em produção lidando com um alto volume de usuários, foi essencial garantir uma experiência contínua e segura durante todo o processo. A migração aconteceu em etapas bem definidas, começando por estabelecer o Keycloak em paralelo com o Auth0, permitindo que novos usuários fossem autenticados na nova plataforma enquanto os existentes continuavam no sistema antigo.
Para facilitar a convivência entre os dois sistemas, foram criados processos de sincronização que garantiam que qualquer alteração nos dados dos usuários fosse refletida em ambas as plataformas. Isso evitou problemas de inconsistência e permitiu que a equipe corrigisse eventuais falhas antes do corte definitivo. Em paralelo, os times realizaram extensivos testes de carga através da ferramenta Grafana k6 e segurança, simulando cenários de autenticação complexos para validar a robustez do Keycloak.
No momento do rollout final, todos os dados de autenticação foram migrados de forma coordenada, com auditoria detalhada para garantir que nada fosse perdido ou corrompido.
Assim que o novo sistema entrou em operação exclusiva, houve um monitoramento intenso para identificar e corrigir rapidamente qualquer impacto inesperado.
Conclusão
Essa transição não foi apenas uma troca de tecnologia; foi uma oportunidade para a equipe otimizar fluxos de autenticação e oferecer uma experiência ainda mais segura e eficiente para os usuários. A migração para o Keycloak trouxe uma economia significativa de aproximadamente 98% nos custos de autenticação e permitiu que a aplicação fosse escalada para até 25 vezes a carga atual de usuários por hora, garantindo suporte ao crescimento contínuo da empresa. Ao final, a Pipefy não apenas conquistou maior controle e personalização sobre sua autenticação, mas também obteve insights valiosos sobre como gerir grandes migrações de forma estratégica, reduzindo riscos e maximizando resultados.
Com a migração completa, a Pipefy agora conta com uma solução de autenticação mais flexível, escalável e independente, alinhada às necessidades atuais e futuras da empresa.