Como um banco de dados moderno, o MongoDB foi inicialmente criado com a nuvem em mente e agora possui recursos integrados para ajudar a manter alta disponibilidade e fácil escalabilidade através de cargas de trabalho distribuídas. Embora seja verdade que ele pode executar como uma instância única, na maioria das vezes ele é executado como um cluster. Neste artigo, você aprenderá sobre os diferentes tipos de clusters no MongoDB e como configurá-los no MongoDB Atlas.
O que é um cluster do MongoDB?
No MongoDB, clusters podem se referir a duas arquiteturas diferentes. Eles podem significar um conjunto de réplicas ou um cluster fragmentado. Vamos examinar mais de perto ambos.
Conjuntos de réplicas
Um conjunto de réplicas do MongoDB é um grupo de um ou mais servidores que contém a cópia exata dos dados. Embora seja tecnicamente possível ter um ou dois nós, o mínimo recomendado é três. Um nó primário é responsável por fornecer as operações de leitura e gravação do seu aplicação, enquanto dois nós secundários contêm uma réplica dos dados.
Um conjunto de réplicas típico no MongoDB.
Caso o nó primário fique indisponível por algum motivo, um novo nó primário será escolhido por um processo de eleição. Este novo nó primário agora é responsável pelas operações de leitura e gravação.
Se um nó primário estiver indisponível, o tráfego do aplicativo cliente será redirecionado para um novo nó primário.
Assim que o servidor com falha voltar a ficar online, ele se sincronizará com o nó primário e se tornará um novo nó secundário no cluster.
Quando o nó primário anterior volta a ficar online, ele retorna como um nó secundário.
O objetivo é garantir que seu aplicativo tenha alta disponibilidade em relação aos seus dados. Mesmo em caso de falha do servidor, seu aplicativo cliente ainda pode se conectar ao cluster e acessar os dados, reduzindo o tempo de inatividade potencial geral.
Clusters fragmentados
Um cluster é uma forma de dimensionar horizontalmente, distribuindo os dados por vários conjuntos de réplicas. Quando uma operação de leitura ou gravação é realizada em uma coleção, o cliente envia a solicitação a um roteador (mongos). O roteador então validará em qual fragmento os dados estão armazenados através do servidor de configuração e enviará as solicitações para o cluster específico.
Um cluster particionado típico no MongoDB.
Cada fragmento conteria seu próprio conjunto de réplicas. Você também deve ter mais de um roteador ou servidor de configuração para garantir alta disponibilidade. Com esse tipo de arquitetura, você pode dimensionar seu banco de dados à vontade sem comprometer a disponibilidade ou se preocupar com a capacidade de armazenamento.
Criando um cluster MongoDB
Dependendo das suas necessidades, há várias maneiras de criar um cluster do MongoDB. A maneira mais fácil é usar o Atlas, a plataforma Database-as-a-Service da MongoDB. Você pode encontrar instruções detalhadas na documentação. Caso você precise executar o MongoDB na sua infraestrutura, as instruções estão disponíveis mais adiante neste artigo.
Para criar um cluster do MongoDB no Atlas, siga estas etapas.
1. Faça login na sua conta do MongoDB Atlas em https://cloud.mongodb.com.
2. Clique no botão “Criar”.
3. Escolha o tipo de cluster (dedicado, sem servidor, compartilhado).
4. Escolha seu provedor de nuvem e região.
5. Clique em “Criar cluster”.
Seu cluster MongoDB começará o provisionamento e estará disponível em alguns minutos. Ao criar seu cluster, você verá várias opções para atender às suas necessidades específicas. Cada uma dessas opções de configurar é abordada na próxima seção.
Configurando um cluster MongoDB no Atlas
Cada aplicativo é diferente, e o MongoDB Atlas oferece inúmeras maneiras de configurar seu cluster para atender às suas necessidades específicas. Algumas configurações específicas precisam ser planejadas com antecedência, enquanto outras podem ser modificadas em tempo real. Usando essas configurações, você implementará todas as melhores práticas para o Atlas em produção. Nesta seção, você aprenderá mais sobre as várias configurações que pode ajustar na criação do seu cluster inicial.
Tipo de implementação
O tipo de implantação é a primeira opção que você precisará escolher. Com base no que você decidir para o tipo de instância, as outras opções de configuração irão variar.
- Sem servidor: este tipo de cluster é o mais flexível do ponto de vista de preços. É destinado a aplicativos que possuem tráfego infrequente ou variável. As configurações possíveis são mantidas no mínimo necessário.
- Dedicado: Um cluster dedicado é destinado a cargas de produção. Ele pode oferecer suporte a uma ampla faixa de tamanhos de servidor, bem como a configurações avançadas. Você deve escolher isso para seu ambiente de produção.
- Compartilhado: Esses clusters são destinados a ser uma forma de explorar o MongoDB. Eles podem fornecer um sandbox onde você pode experimentar o MongoDB gratuitamente. As configurações do servidor disponíveis são um pouco limitadas.
Você pode encontrar mais informações sobre os diferentes tipos de implantação de banco de dados na documentação.
Configuração do cluster global
Se você precisar de vários clusters fragmentados com operações de leitura e gravar em localizações específicas, será necessário habilitar a Configuração de cluster global. A partir daqui, você pode escolher exatamente onde deseja cada um de seus clusters e configurar os mapeamentos entre o país do usuário e o servidor que eles usarão para acessar os dados.
Provedor de nuvem e região
Não importa qual tipo de implantação você escolheu, será necessário escolher o provedor de nuvem, assim como a região específica onde deseja implantar seu cluster. Você pode instanciar clusters do MongoDB em qualquer um dos três principais provedores de nuvem. Se você quiser garantir uma disponibilidade ainda melhor, pode implantar cada nó do seu cluster em diferentes regiões ou até mesmo em diferentes clouds. Para fazer isso, você precisará habilitar a opção Multinuvem, Multirregional e Isolamento da Carga de Trabalho. A partir daqui, você poderá configurar o número e os tipos de nós (elegíveis, somente leitura ou de análise) que farão parte do seu conjunto de réplicas.
Camada do cluster
Agora que você escolheu uma região e um provedor de nuvem, você precisará escolher qual nível deseja usar para os nós em seu cluster. Esta configuração terá o impacto mais significativo no preço do seu cluster. Há uma ampla faixa de opções disponíveis, e você pode ajustar ainda mais cada uma delas. Considere a quantidade de CPU e RAM que você precisará. Suas necessidades de recurso ajudarão você a encontrar o nível certo para seu cluster.
Em seguida, você pode ajustar ainda mais a configuração do cluster modificando o tamanho do armazenamento, alternando as opções de dimensionamento automático e os IOPS necessários. Nos níveis mais altos da AWS (M40+), você também poderá escolher a classe dos servidores (baixa CPU, geral ou SSD NVMe local), o que também terá impacto no número de CPUs, RAM e capacidade de armazenamento.
Configurações adicionais
Na última aba, você encontrará muitos serviços adicionais que pode adicionar ao seu cluster. A primeira opção é a versão do MongoDB que você deseja usar para o MongoDB. Você então também terá a opção de habilitar ou desabilitar os backups automáticos. Você também pode expandir as configurações adicionais, que fornecerão opções mais avançadas, como fragmentação do seu cluster, adicionar o BI connector e gerenciar suas chaves de criptografia.
A maioria das configurações que você define pode ser alterada sob demanda no futuro, o que é uma capacidade poderosa à medida que seu aplicativo evolui.
Criando um cluster do MongoDB em ambientes diversos
Se uma instância do MongoDB baseada em cloud não for uma opção para você, ou se precisar executar um cluster na sua infraestrutura, você pode instalar o MongoDB nos sistemas operacionais suportados. Além do próprio MongoDB, é recomendado instalar o Ops Manager ou o Cloud Manager para gerenciar seus clusters.
Crie um cluster do MongoDB no Linux (Ubuntu, CoreOS)
Para criar um cluster do MongoDB no Linux, você precisará de três instâncias do MongoDB em execução. Essas instâncias precisam ser capazes de se comunicar umas com as outras em uma rede local.
Você pode encontrar as instruções detalhadas para configurar seu cluster no Linux na documentação.
Criar um cluster MongoDB com o Docker
Se você deseja instalar uma instância local do MongoDB em seu ambiente ou configurar um ambiente de desenvolvimento efêmero que possa compartilhar com seus colegas de equipe, você pode querer usar o Docker. Você pode fazer isso iniciando três instâncias locais do MongoDB no Docker e seguindo as instruções na documentação.
Próximos passos
Agora que você sabe como criar e configurar seu cluster, talvez queira aprender mais sobre como encontrar a topologia de cluster adequada para suas necessidades. Por que não continuar seu aprendizado com o vídeo configurar a topologia de cluster na MongoDB University? Depois de se familiarizar com todas as configurações possíveis para o seu cluster MongoDB, você pode experimentar o MongoDB Atlas gratuitamente. Com o cluster configurado conforme desejado, agora você pode garantir que seus dados estarão disponíveis para seus usuários e que poderá dimensionar quando necessário.



