Como começar a usar o MongoDB Atlas Stream Processing e o provedor HashiCorp Terraform MongoDB Atlas
Rutuja Rajwade, Zuhair Ahmed5 min read • Published May 20, 2024 • Updated May 20, 2024
Avalie esse Tutorial
Uma arquitetura orientada a eventos é uma estrutura altamente eficaz para criar aplicativos responsivos, escaláveis e sustentáveis com componentes fracamente acoplados. Essa abordagem tornou-se essencial no desenvolvimento de aplicativos que podem responder rapidamente às demandas dos clientes e às condições dinâmicas do mercado.
Por exemplo, na área da saúde, sistemas orientados a eventos processam dados emitidos por dispositivos médicas (como Ecgs e monitores de samina) para fornecer insights e alertas em tempo real aos provedores de saúde, permitindo intervenção oportuna. As Instituições financeiras utilizam arquiteturas orientadas a eventos para processar e analisar transações em tempo real. Isso permite a detecção imediata de fraudes, a avaliação de riscos e os preços dinâmicos com base nas condições atuais do mercado.
Neste tutorial, abordamos como começar a usar o MongoDB Atlas para processamento de dados quase em tempo real com o HashiCorp Terraform. Ao integrar oMongoDB Atlas Stream Processing com o Provedor HashiCorp Terraform MongoDB Atlas, os desenvolvedores podem gerenciar com eficiência os fluxos de trabalho de dados em tempo real e automatizar o provisionamento de recursos.
Vamos começar!
- Instale o HashiCorp Terraform em seu terminal ou cadastre-se para obter uma conta Terraform Cloud gratuita.
- Criar chaves de API programáticas do MongoDB Atlas e associá-las ao Terraform (mais detalhes abaixo).
Existem três componentes principais a considerar com o Atlas Stream Processing:
- Instância de processamentode transmissão (SPI) — Atua como o ambiente primário onde seus processos de dados de transmissão são executados. Ele é responsável por gerenciar e executar as tarefas de processamento de streams, manter o desempenho e garantir a integridade dos dados durante todo o ciclo de vida do streaming.
- Registro de conexão — Isso serve como o canal entre suas fontes/coleções de dados e a instância de processamento. Ele é responsável pelo transporte seguro e eficiente de dados de streaming, facilitando a ingestão contínua de dados de várias fontes no SPI.
- Processador de fluxo — É aqui que a lógica de negócios para transformação e análise de dados é definida e executada. Usando os recursos expressivos de consulta e agregação do MongoDB, esse componente processa fluxos de dados recebidos continuamente, permitindo manipulação e enriquecimento imediato de dados antes de encaminhá-los para armazenamento ou processamento adicional.
No momento, o Terraform Atlas Provider suporta o gerenciamento do SPI (mongodcatlas_stream_instance) e conexões no Registro de Conexão (mongodcatlas_stream_connection), com suporte programático para processadores de fluxo que virão no futuro.
Primeiro, precisamos implantar recursos básicos do Atlas para começar. Como parte deste tutorial, isso inclui um projeto Atlas, cluster Atlas dedicado M10, usuário do banco de dados e entrada da lista de acesso IP.
Além disso, implantaremos uma instância de Atlas Stream Processing e duas conexões no registro de conexões. Consulte nossa documentação de especificação de APIdo Atlas Admin para obter uma lista completa de provedores de nuvem, regiões e todas as outras entradas de parâmetros compatíveis para esses recursos:
- Neste exemplo, nossa instância de Atlas Stream Processing será hospedada no AWS us-east-1 usando uma camada SP30 . Mais informações sobre as camadas do Atlas Stream Processing estão disponíveis na documentação.
- Para o registro de conexão, apontaremos nossa fonte de dados para o tipo Amostra (dados painéis do Sol que fornecemos como fonte de amostra a ser usada no início), o que é ótimo para fins de teste. (O tipo Kafka também é suportado.)
- Para uma conexão com o sample_stream_solar integrado, forneça um arquivo de configuração com a seguinte sintaxe:
1 { 2 "name": "sample_stream_solar", 3 "type": "Sample" 4 }
- Nosso coletor de dados apontará para o cluster Atlas dedicado M10 que mencionamos anteriormente.
- No exemplo de script do Terraform fornecido abaixo, substitua o campo "org_id " e insira o ID da sua própria organização e seu nome de usuário e senha exclusivos nos campos "username " e "password ".
- Certifique-se de que o endereço IP adicionado ao script corresponda ao do Terraform. Se você não tiver certeza do endereço IP em que está executando o Terraform (e estiver executando esta etapa nessa máquina), basta clicar em "Use Current IP Address and Save". Outra opção é abrir sua lista de acesso IP para todos, mas isso vem com riscos potenciais significativos. Para fazer isso, você pode adicionar os dois CIDRs a seguir: 0.0.0.0/1 e 128.0.0.0/1. Essas entradas abrirão sua lista de acesso IP para, no máximo, endereços IPv 4,294,967,296 (ou 2^32) IPv4 e devem ser usadas com cuidado.
Veja o script do Terraform abaixo como parte do nosso arquivo
main.tf
.1 terraform { 2 required_providers { 3 mongodbatlas = { 4 source = "mongodb/mongodbatlas" 5 } 6 } 7 required_version = ">= 0.13" 8 } 9 10 resource "mongodbatlas_project" "testProject" { 11 name = "testProject16" 12 org_id = "[YOUR ORG_ID]" 13 } 14 15 resource "mongodbatlas_project_ip_access_list" "testIPAccessList" { 16 project_id = mongodbatlas_project.testProject.id 17 ip_address = "[YOUR IP ADDRESS]" 18 } 19 20 resource "mongodbatlas_database_user" "testUser" { 21 project_id = mongodbatlas_project.testProject.id 22 username = "[YOUR USERNAME]" 23 password = "[YOUR PASSWORD]" 24 auth_database_name = "admin" 25 roles { 26 role_name = "readWrite" 27 database_name = "dbforApp" 28 } 29 } 30 31 resource "mongodbatlas_advanced_cluster" "testCluster" { 32 project_id = mongodbatlas_project.testProject.id 33 name = "testCluster" 34 cluster_type = "REPLICASET" 35 replication_specs { 36 region_configs { 37 electable_specs { 38 instance_size = "M10" 39 node_count = 3 40 } 41 provider_name = "AWS" 42 priority = 7 43 region_name = "US_EAST_1" 44 } 45 } 46 } 47 48 resource "mongodbatlas_stream_instance" "myFirstStreamInstance" { 49 project_id = mongodbatlas_project.testProject.id 50 instance_name = "myFirstStreamInstance" 51 data_process_region = { 52 region = "VIRGINIA_USA" 53 cloud_provider = "AWS" 54 } 55 stream_config = { 56 tier = "SP30" 57 } 58 } 59 60 resource "mongodbatlas_stream_connection" "dataSource" { 61 project_id = mongodbatlas_project.testProject.id 62 instance_name = mongodbatlas_stream_instance.myFirstStreamInstance.instance_name 63 connection_name = "sample_stream_solar" 64 type = "Sample" 65 } 66 67 resource "mongodbatlas_stream_connection" "dataSink" { 68 project_id = mongodbatlas_project.testProject.id 69 instance_name = mongodbatlas_stream_instance.myFirstStreamInstance.instance_name 70 connection_name = "dataSink" 71 type = "Cluster" 72 cluster_name = mongodbatlas_advanced_cluster.testCluster.name 73 db_role_to_execute = { 74 role = "atlasAdmin" 75 type = "BUILT_IN" 76 } 77 }
Observação: antes de distribuir, certifique-se de armazenar suas chaves de API programáticas do MongoDB Atlas criadas como parte dos pré-requisitos como variáveis de ambiente. Para implementar, você pode usar os comandos abaixo do terminal:
1 terraform init 2 terraform plan 3 terraform apply
Se sua implementação foi bem-sucedida, você será recebido com "Apply complete! "
Para confirmar, você deve conseguir ver seu SPI recém-criado na UI do Atlas. (Para navegar a partir da tela inicial, clique em "Stream Processing " no menu à esquerda.)
Ao acessar o Connection Registry, também podemos verificar se nossas conexões foram criadas com sucesso.
Em seguida, você precisará recuperar a connection string do Atlas Stream Processing e criar seu primeiro processador de stream.
Enquanto ainda estiver na Atlas UI, clique em "Connect " e selecione a ferramenta para acessar seus dados por meio do MongoDB Shell ou MongoDB for VS Code.
Isso gerará sua connection string que você pode usar para se conectar à sua Instância de Processamento de Stream.
Neste ponto, seus primeiros processadores de fluxo podem ser criados para definir como seus dados serão processados em seu SPI. Conforme mencionado anteriormente, atualmente não há recursos do Terraform para fornecer essa configuração. Para saber mais sobre como os processadores de stream podem ser configurados, consulte Gerenciar processadores de stream.
Para obter informações mais detalhadas, consulte também nosso exemplo do Atlas Stream Processing em nosso repositório do Terraform.
Parabéns! Você tem tudo o que precisa agora para executar seu primeiro fluxo de trabalho baseado noAtlas Stream Processing .
Com as etapas acima, as equipes podem utilizar os recursos do Atlas Stream Processing no Terraform MongoDB Atlas Provider. Esteja você desenvolvendo sistemas complexos de processamento de eventos, análises em tempo real ou recursos interativos de engajamento de usuários, o Atlas Stream Processing integrado ao Terraform fornece uma infraestrutura robusta para dar suporte a aplicativos escaláveis e resilientes.
O HashiCorp Terraform Atlas Provider é de código aberto sob a Licença Pública Mozilla v2.0 e agradecemos as contribuições da comunidade. Para saber mais, consulte nossas diretrizes de contribuição.
A maneira mais rápida de começar é criar uma conta MongoDB Atlas a partir do AWS Marketplace. Para saber mais sobre o provedor de Terraform, consulte nossa documentação, tutoriais, resumo da soluçãoou comece hojemesmo.
Crie com o MongoDB Atlas e o HashiCorp Terraform Atlas Provider hoje mesmo!