Gráfico de dados unificado para USH
Oportunidade
A USH, que abriga mais de 10 milhões de pessoas na França, enfrentava um sistema de TI complexo com dados fragmentados em Keycloak, Drupal, CRM e portais. A integração de vários serviços internos retardou o desenvolvimento de novos aplicativos.
Solução
Criamos uma plataforma de dados unificada usando GraphQL e Node.js. Esse hub central conecta fontes de dados internas e externas, oferecendo um único ponto de acesso à API para USH.
Gráfico de dados unificado para USH
A USH, que abriga mais de 10 milhões de pessoas na França, enfrentava um sistema de TI complexo com dados fragmentados em Keycloak, Drupal, CRM e portais. A integração de vários serviços internos retardou o desenvolvimento de novos aplicativos.
Quais eram os requisitos para o gráfico de dados unificado?
- Acesso unificado aos dados. Concentre a lógica comercial e o tratamento das preocupações necessárias para se conectar a vários provedores de dados em um único middleware GraphQL. Isso simplificou drasticamente a vida dos desenvolvedores dos aplicativos voltados para o cliente.
- Mais liberdade para os consumidores de dados. Graças ao GraphQL, os aplicativos que se integram à camada de API agora são capazes de recuperar os dados de que precisam sem a necessidade de ficar conversando com as equipes de back-end.
Como implementamos um gráfico de dados unificado com o GraphQL?
Nossa primeira etapa foi compreender a arquitetura e as fontes de dados do sistema de TI existente no USH. Identificamos Keycloak, Drupal, CRM e vários portais como as principais fontes de dados.
Em segundo lugar, projetamos um esquema GraphQL federado. Esse processo envolveu a combinação de vários esquemas de gráficos para criar uma API unificada. A arquitetura federada facilitou a integração de diferentes fontes de dados, tornando mais fácil a construção de um gráfico de dados unificado.
Por fim, implementamos o esquema usando TypeScript e Node.js. Essas tecnologias garantiram que nossa solução de back-end fosse escalonável e passível de manutenção, capaz de lidar com as extensas estruturas de dados do USH.
Durante todo o processo, aderimos às práticas recomendadas de design de esquemas e usamos as ferramentas Apollo para criar o gráfico federado. Também aproveitamos a capacidade do GraphQL de fazer várias mutações em uma única solicitação, otimizando a busca e o tratamento de dados.
Por que GraphQL?
O GraphQL foi escolhido por vários motivos. Em primeiro lugar, ele oferece uma abordagem unificada para a obtenção de dados, reduzindo a complexidade das interações cliente-servidor. Esse recurso permite a colaboração perfeita entre diferentes serviços GraphQL, simplificando a criação de um gráfico de dados unificado.
Em segundo lugar, o GraphQL permite que os clientes solicitem suas próprias especificações de dados exclusivas. Ao permitir a busca de estruturas de dados precisas, ele reduz o uso da largura de banda e acelera o desenvolvimento.
Por fim, o GraphQL suporta consultas aninhadas em uma única solicitação, economizando tempo e largura de banda ao limitar as solicitações do servidor. Esse manuseio eficiente de dados é crucial ao lidar com sistemas de TI complexos, como o da USH.
O que é um gráfico de dados universal federado?
Um gráfico de dados universal tem como objetivo otimizar e simplificar o gerenciamento de dados, criando uma interface unificada para o acesso aos dados. Esse gráfico foi criado com base no conceito de Federação GraphQL, uma abordagem arquitetônica distribuída que permite aos desenvolvedores integrar dados de várias fontes em uma API única e coesa.
Essa API unificada, ou gráfico de dados universal, é o ponto central por meio do qual os desenvolvedores podem gerenciar todas as solicitações de dados. Ela mescla efetivamente todos os gráficos de dados do microsserviço em um só, eliminando a necessidade de várias solicitações de API para diferentes fontes de dados.
O conceito por trás de um gráfico de dados universal é deixar de ter fontes de dados individuais e APIs GraphQL. Em vez disso, todos os dados são expostos por meio de uma interface única e unificada, facilitando o acesso e o gerenciamento dos dados.
O que é Keycloak?
O Keycloak é uma ferramenta de código aberto que oferece recursos de segurança abrangentes, incluindo serviços de autenticação e autorização para aplicativos. Ele permite a emissão segura de tokens, como os tokens de portador, que são essenciais para garantir solicitações de API seguras.
No contexto do GraphQL, o Keycloak funciona em conjunto com outras soluções para adicionar uma camada extra de segurança. Por exemplo, ele pode ser usado em conjunto com o middleware Express ou adaptadores JavaScript para gerenciar a autenticação em um backend do Node.js. Além disso, as funções e permissões de usuário do Keycloak podem ser integradas ao GraphQL, garantindo que somente os usuários autenticados com as permissões corretas possam executar determinadas operações.
No escopo do projeto USH, integramos o Keycloak como uma solução de autenticação e autorização.
Como seu produto pode se beneficiar do GraphQL?
Na code.store, fornecemos suporte abrangente para implementar o GraphQL. Nossos serviços incluem:
- Projeto de esquema federado: Ajudamos a projetar esquemas federados de GraphQL que podem integrar fontes de dados diferentes em um gráfico unificado.
- Tecnologias de back-end: Utilizamos tecnologias avançadas, como TypeScript e Node.js, para criar soluções de back-end robustas e dimensionáveis.
- Obtenção otimizada de dados: ajudamos a otimizar seus processos de obtenção de dados, utilizando os recursos do GraphQL para solicitações de mutação múltipla.
- Práticas recomendadas: Seguimos as práticas recomendadas para o design de esquemas e usamos ferramentas de última geração, como o Apollo, para criar gráficos federados.
Vamos discutir como podemos ajudá-lo a liberar o poder do desenvolvimento com pouco código para os desafios de dados da sua organização.