Explore o novo chatbot do Developer Center! O MongoDB AI chatbot pode ser acessado na parte superior da sua navegação para responder a todas as suas perguntas sobre o MongoDB .

Junte-se a nós no Amazon Web Services re:Invent 2024! Saiba como usar o MongoDB para casos de uso de AI .
Desenvolvedor do MongoDB
Central de desenvolvedor do MongoDBchevron-right
Produtoschevron-right
Atlaschevron-right

Simplificando o desenvolvimento nativo da nuvem com o Gitpod e o MongoDB Atlas

Massimiliano Marcon5 min read • Published Feb 27, 2023 • Updated Apr 02, 2024
AtlasJavaScript
Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
Os desenvolvedores estão mudando cada vez mais do modelo de desenvolvimento tradicional de escrever código e testar toda a pilha de aplicativos localmente para ambientes de desenvolvimento remoto que são mais nativos da cloud. Isso permite que eles tenham ambientes configuráveis como código, facilmente reproduzíveis para qualquer membro da equipe e rápidos o suficiente para iniciar e desmontar para que cada pull request possa ter um ambiente efêmero associado para revisões de código.
À medida que novas plataformas e serviços que os desenvolvedores usam diariamente são fornecidos com mais regularidade como ofertas cloud-first ou cloud-only, faz sentido aproveitar todas as vantagens da cloud para todo o ciclo de vida de desenvolvimento e fazer com que o ambiente de desenvolvimento espelhe de forma mais eficaz o ambiente de produção.
Neste blog, vamos ver como o Gitpod, com seu ambiente de desenvolvimento em nuvem (CDE), é o complemento ideal para o MongoDB Atlas quando se trata de uma experiência de desenvolvimento nativa na nuvem. Estamos tão otimistas com o potencial dessa experiência de desenvolvimento combinado que investimos na mais recente rodada de financiamento do Gitpod.
Como exemplo, vejamos um aplicativo Node.js simples que expõe uma API para recuperar citações de autores populares. Você pode encontrar o código fonte no Github. Você mesmo deve poder experimentar a configuração de ponta a ponta acessando Gitpod. O projeto está configurado para utilizar um cluster gratuito no Atlas e, supondo que você ainda não tenha um em execução na sua conta do Atlas, tudo deve funcionar imediatamente.
Espaço de trabalho Gitpod conectado a um cluster MongoDB Atlas gratuito para desenvolvimento
O código do aplicativo é simples e está contido principalmente em app.js, mas a parte mais interessante é como o ambiente de desenvolvimento Gitpod é configurado: com apenas alguns arquivos de configuração adicionados ao repositório GitHub, um desenvolvedor que trabalha neste projeto pela primeira vez pode ter tudo instalado e funcionando, incluindo o cluster MongoDB necessário para desenvolvimento semeado com dados de teste, em cerca 30 segundos!
Vamos dar uma olhada em como isso é possível.
Começaremos com o Dockerfile. O Gitpod fornece uma imagem Docker pronta para uso para o ambiente de desenvolvimento que contém utilitários e suporte para as linguagens de programação mais comuns. No nosso caso, preferimos começar com uma imagem mínima e adicionar apenas o que precisamos: o Atlas CLI (e o MongoDB Shell que vem com ele) para gerenciar recursos em Atlas e Node.js.
1FROM gitpod/workspace-base:2022-09-07-02-19-02
2
3# Install MongoDB Tooling
4RUN sudo apt-get install gnupg
5RUN wget -qO - https://pgp.mongodb.com/server-5.0.asc | sudo apt-key add -
6RUN echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
7RUN sudo apt-get update
8RUN sudo apt-get install -y mongodb-atlas
9
10# Install Node 18
11RUN curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
12RUN sudo apt-get install -y nodejs
13
14# Copy Atlas script
15COPY mongodb-utils.sh /home/gitpod/.mongodb-utils.sh
16RUN echo "source ~/.mongodb-utils.sh" >> .bash_aliases
Para tornar as coisas um pouco mais fáceis e limpas, também adicionaremos ao contêiner um arquivomongodb-utils.sh e carregá-lo-emos em bash_aliases. É um script bash que contém funções de conveniência que envolvem alguns dos comandos do Atlas CLI para facilitar o uso no ambiente Gitpod.
A segunda metade da configuração está contida em .gitpod.yml. Este arquivo pode parecer um pouco detalhado, mas o que ele faz é relativamente simples. Vamos dar uma olhada nesses detalhes de configuração nas seções a seguir deste artigo.

Cluster efêmero para desenvolvimento

Nosso aplicativo API de citações usa o MongoDB para armazenar dados: Todas as citações com seus metadados estão em uma collection MongoDB. OAtlas é a melhor maneira de executar o MongoDB, então usaremos isso. Além disso, como estamos usando o Atlas, também podemos aproveitar o Atlas Search para oferecer recursos de pesquisa de texto completo aos usuários da API.
Como queremos que nosso ambiente de desenvolvimento tenha características compatíveis com o que teremos na produção, usaremos o Atlas também para nossas necessidades de desenvolvimento. Em particular, queremos garantir que toda vez que um desenvolvedor iniciar um ambiente Gitpod, um cluster efêmero correspondente seja criado no Atlas e semeado com dados de teste.
um cluster gratuito do Atlas é criado automaticamente quando o espaço de trabalho do Gitpod é iniciado
Com algumas configurações simples, o Gitpod toma conta de tudo isso de forma totalmente automatizada. O scriptatlas_up cria um cluster com o mesmo nome que o espaço de trabalho Gitpod. Dessa forma, é fácil ver quais clusters estão sendo usados para desenvolvimento.
1if [ ! -n "${MONGODB_ATLAS_PROJECT_ID+1}" ]; then
2 echo "\$MONGODB_ATLAS_PROJECT_ID is not set. Lets try to login."
3 if ! atlas auth whoami &> /dev/null ; then
4 atlas auth login --noBrowser
5 fi
6fi
7MONGODB_CONNECTION_STRING=$(atlas_up)
O script acima é um pouco sofisticado, pois ele se encarrega de abrir o navegador e fazer o login com sua conta Atlas se for a primeira vez que você configura o Gitpod com esse projeto. Depois de configurar a primeira vez, você pode optar por gerar credenciais de API e pular a etapa de login no futuro. As instruções sobre como fazer isso estão no arquivo README incluído no repositório.

Cluster de desenvolvimento semeado com dados de amostra

Ao desenvolver um aplicativo, é conveniente ter dados de teste prontamente disponíveis. Em nosso exemplo, o repositório contém um conjunto de dados compactado no formato JSON. Durante a inicialização do espaço de trabalho, assim que o cluster é implantado, nos conectamos a ele com o MongoDB Shell (mongosh) e executamos um script que carrega o conjunto de dados descompactado no cluster.
1unzip data/quotes.zip -d data
2mongosh $MONGODB_CONNECTION_STRING data/_load.js

Criando um índice do Atlas Search

Como parte de nossa API de citações, fornecemos um endpoint para pesquisar citações com base em seu conteúdo ou autor. Com o Atlas Search e a API de query do MongoDB, é extremamente fácil configurar a pesquisa de texto completo para uma determinada collection, e usaremos isso em nosso aplicativo.
Como queremos que o ambiente esteja pronto para codificar, como parte da inicialização, também criamos um índice de pesquisa. Para maior conveniência, incluímos o scriptdata/_create-search-index.sh que trata disso chamando o atlas cluster search index create command e passando os parâmetros certos para ele.

Limpando as coisas

Para tornar o cluster realmente efêmero e começar com um estado limpo toda vez que iniciarmos um novo workspace, queremos ter certeza de encerrá-lo quando ele não for mais necessário.
Para este exemplo, usamos um cluster gratuito, que é ideal para a maioria dos casos de uso de desenvolvimento. No entanto, se você precisar de melhor desempenho, sempre poderá configurar seu ambiente para usar um cluster pago (consulte a opção--tier da Atlas CLI). Se você optar por fazer isso, é ainda mais importante encerrar o cluster quando ele não for mais necessário, para evitar custos desnecessários.
Para fazer isso, aguardamos o encerramento do ambiente Gitpod. É isso que esta seção do arquivo de configuração faz:
1tasks:
2 - name: Cleanup Atlas Cluster
3 command: |
4 atlas_cleanup_when_done
O scriptatlas_cleanup_when_done aguarda o SIGTERM enviado para o contêiner Gitpod e, assim que o recebe, envia um comando para o Atlas CLI para encerrar o cluster.
o cluster usado para desenvolvimento é encerrado automaticamente quando o espaço de trabalho do Gitpod é interrompido

Experiência do desenvolvedor de ponta a ponta

Durante o desenvolvimento, geralmente é útil observar os dados armazenados no MongoDB. Como o Gitpod se integra muito bem ao VS Code, podemos configurá-lo para que a extensão MongoDB for VS Code seja incluída na configuração.
Dessa forma, quem inicia o ambiente tem a opção de se conectar ao Atlas diretamente de dentro do VS Code para explorar seus dados e testar suas queries. O MongoDB for VS Code também é uma ferramenta útil para inserir e editar dados em seu banco de dados de teste: com a funcionalidade Playground, é muito fácil executar qualquer CRUD, incluindo o script da inserção de dados de teste falsos.
MongoDB for VS Code é uma ótima maneira de explorar seus dados no Atlas sem sair do espaço de trabalho do Gitpod
Como esse é um aplicativo JavaScript, também incluímos a extensão Standard VS Code para linting e formatação de código.
1vscode:
2 extensions:
3 - mongodb.mongodb-vscode
4 - standard.vscode-standard

Conclusão

MongoDB Atlas é a plataforma de dados ideal em todo o ciclo de vida de desenvolvimento. Com o Atlas, os desenvolvedores obtêm uma plataforma 100% compatível com a produção, incluindo serviços como o Atlas Search, executado próximo ao banco de dados principal. E à medida que os desenvolvedores mudam para ambientes de desenvolvimento em cloud como o Gitpod, eles podem obter uma experiência ainda mais sofisticada de desenvolvimento em cloud com o Atlas e estar sempre prontos para codificar. Confira o código-fonte fornecido neste artigo e experimente o MongoDB Atlas com o Gitpod.
Dúvidas? Comentários? Acesse o MongoDB Developer Community para participar da conversa.

Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
Relacionado
Exemplo de código

Comece a usar o MongoDB Atlas e o AWS CloudFormation


Jan 23, 2024 | 3 min read
Tutorial

Introdução ao MongoDB e C


Sep 17, 2024 | 12 min read
Artigo

Usar o Atlas Search do Java


Jul 14, 2023 | 13 min read
Notícias e Anúncios

Descontinuando o MongoDB Atlas GraphQL e serviços de hospedagem


Mar 12, 2024 | 2 min read
Sumário