A comunidade de desenvolvedores expressou uma preocupação significativa após Anúncio de depreciação do MongoDB Atlas de seus recursos móveis e de borda. Em um artigo anterior postagemNo artigo "Couchbase Mobile", exploramos por que o Couchbase Mobile é uma alternativa sólida para dar suporte aos seus requisitos de sincronização de dados offline-first.

Nesta postagem, ofereceremos uma visão geral técnica de como é uma migração típica do MongoDB Atlas Device Sync para o Couchbase. Embora estejamos nos concentrando em CapelaEm nossa solução DBaaS totalmente gerenciada, os conceitos discutidos também se aplicam a implantações autogerenciadas de Servidor Couchbase e Couchbase Mobile.

Considerações sobre migração

Ao planejar a migração do seu aplicativo MongoDB Device Sync (Realm) para o Capella App Services, é importante adotar uma abordagem holística, considerando os componentes do lado do servidor em nuvem e os aspectos do aplicativo móvel.

OBSERVAÇÃO: Os itens listados abaixo não têm a intenção de serem prescritivos, mas representam considerações comuns. Cada aplicativo é único, portanto, o processo de migração deve ser personalizado para atender aos requisitos específicos do aplicativo. 

Você pode começar com Nível gratuito do Couchbase Capellaque inclui o Capella App Services - nossa solução de sincronização de dados hospedada. Depois de validar sua migração e estar pronto para a implantação em produção, você pode fazer upgrade para um dos nossos níveis pagos.

1. Modelagem de dados

O MongoDB e o Couchbase são bancos de dados de documentos e armazenam dados no formato JSON. No entanto, o MongoDB representa documentos JSON em um formato codificado em binário chamado BSON usando especificação JSON estendida. Portanto, embora o Couchbase possa trabalhar com documentos no formato JSON estendido, como você verá mais adiante, será mais simples trabalhar com documentos JSON comuns. 

Use essa oportunidade para determinar o modelo de dados correto para seu aplicativo migrado e como você pode organizá-lo com baldes, escopos e coleções. Por exemplo, você pode decidir ignorar ou renomear propriedades, o que é bastante trivial de se fazer com o Couchbase Funções do serviço de eventos

2. Configurar o cluster do Capella

Implementar seu cluster Capella e configurá-lo de acordo com as necessidades de seu aplicativo. A configuração incluiria, no mínimo, a instalação dos serviços relevantes, como Query, Search etc., a definição das credenciais de acesso ao cluster e Configuração de uma lista de permissões de endereços IP. Normalmente, a configuração de um endereço IP permitido é necessária apenas para fins de teste ou avaliação. Em um ambiente de produção, você provavelmente configurará o acesso ao cluster por meio de redes privadas, como Emparelhamento de VPC ou Links privados

3. Migração de dados

Para migrar dados de um cluster do MongoDB Atlas para um cluster do Capella, você tem várias opções. Sua escolha dependerá da execução de uma migração de dados única e off-line ou da opção por uma migração de dados on-line mais complexa. A migração de dados on-line normalmente requer a sincronização bidirecional de dados entre os clusters do MongoDB Atlas e do Couchbase Capella, especialmente se ambos estiverem atendendo ativamente aos aplicativos durante a transição.

Aqui estão algumas opções comuns:

Usar utilitários de exportação/importação - Exportação suas coleções do MongoDB e importe-as para o Capella usando o cbimport ferramenta. Se seus dados estiverem no formato JSON estendido, você precisará realizar a transformação de dados usando Funções de serviço de eventos durante o processo de importação. Mesmo que os dados estejam em JSON, talvez seja necessário executar a transformação de dados se o modelo de dados de destino não for idêntico ao de origem. Essa abordagem é ideal para uma migração de dados única.

Usar ferramentas de migração de dados corporativos Utilize ferramentas de nível empresarial como GlueSync do MOLO7 para Couchbase para migrar dados. Uma ferramenta como a GlueSync oferece suporte robusto e dimensionável para migrações de dados, incluindo migrações a quente e a frio. Dê uma olhada neste vídeo para obter uma visão geral de seus recursos e como ele pode ajudar na migração.

Ferramentas de código aberto - Você pode experimentar nosso utilitário Couchbase suportado pela comunidade de código aberto, cbmigratepara migrar os dados. Isso funciona bem para migrações de dados simples. A ferramenta está integrada às extensões populares do Couchbase IDE para VSCode e JetBrains. Portanto, se você é um desenvolvedor que está criando aplicativos usando esses IDEs, deve considerar essa opção. 

Depois que os dados forem migrados, talvez seja necessário criar índices adequados em seu cluster do Capella.

4. Configurar o Capella App Services

Serviços de aplicativos é o serviço de backend gerenciado responsável pela sincronização de dados offline-first. Depois de configurar o cluster, você precisará implantar o App Services para conectá-lo ao cluster configurado. A configuração dos App Services variará significativamente com base nos requisitos específicos de seu aplicativo.

Reserve um tempo para avaliar os requisitos do seu aplicativo e garantir que ele esteja configurado corretamente. 

Não há uma ferramenta de migração automática disponível para essa etapa. Mas nós o ajudamos. Consulte a seção guia de introdução simplesque aborda aspectos importantes de configuração usando um conjunto de dados de amostra. Este guia o ajudará a se familiarizar com os conceitos principais e você poderá adaptá-lo ao seu aplicativo.

Implantar endpoints de aplicativos 

Um Ponto de extremidade do aplicativo é uma representação de seu aplicativo no Capella App Services. Ele representa o ponto de extremidade com o qual seu aplicativo móvel sincronizará os dados. Você deve configurar pelo menos um App Endpoint em seu cluster do App Services. Cada App Endpoint está associado a um bucket, um escopo e um subconjunto exclusivo de coleções dentro desse escopo.

Configurar pontos de extremidade do aplicativo 

Configurar mecanismo de autenticação - Por padrão, todos os pontos de extremidade do aplicativo são protegidos usando a autenticação básica. Você tem a opção de configurar mecanismos avançados de autenticação.

Configurar usuários de aplicativos móveis (e funções) - Configurar um ou mais usuários de aplicativos e, opcionalmente, funções. Esses são os usuários que são autenticados para sincronizar dados com o App Services. Em um aplicativo de produção, você provavelmente usará API REST do administrador para configurar usuários, ou use os recursos de registro automático de usuários se tiver configurado Open ID Connect (OIDC) para autenticação.

Configuração do controle de acesso Esse é um dos elementos mais importantes da configuração do App Endpoint. Aqui, você define o nível de acesso do usuário (leitura/gravação) especificando uma função JavaScript. O controle de acesso é possível por meio de um conceito exclusivo e poderoso conhecido como "canais." Por padrão, todos os documentos de uma coleção são associados a um canal que compartilha o mesmo nome da coleção. Como resultado, um usuário que recebe acesso a um canal com o nome da coleção obtém automaticamente acesso de leitura a todos os documentos dessa coleção. Dê uma olhada em nosso documentos para saber mais sobre controle de acesso e validação.

Depois de configurar o App Endpoint, você estará pronto para conectar-se a ele e sincronizar dados de seu aplicativo habilitado para o Couchbase Lite.

5. Migre seu aplicativo Realm

Agora que seu backend está configurado, é hora de migrar seu aplicativo Realm SDK para Couchbase Lite. O Realm é um banco de dados orientado a objetos, enquanto o MongoDB é um armazenamento de documentos JSON, o que exige a transformação de documentos BSON em objetos Realm. Por outro lado, o Couchbase Lite é um armazenamento de documentos JSON incorporado com recursos completos que elimina a necessidade de transformação.

A migração do seu aplicativo Realm envolverá a reescrita da camada de modelo do seu aplicativo (ou camada de acesso a dados) para usar o SDK do Couchbase Lite na linguagem correspondente.

Confira nosso guia de comparação que compara o SDK do MongoDB Device Sync com o Couchbase Lite. Aqui estão alguns guias específicos de idiomas:

6. Migre seus aplicativos SDK do lado do servidor

Se você tiver um ou mais aplicativos de back-end ou do lado do servidor, também precisará migrá-los. Nós fornecemos SDKs que oferecem suporte a várias linguagens de programação, oferecendo APIs modernas e idiomáticas que facilitam a conexão e a interação dos aplicativos de back-end com o cluster. Durante a migração, você terá a oportunidade de simplificar significativamente suas consultas originais escritas em MongoDB Query Language (MQL), convertendo-as em SQL++

Embora o SQL++ deva ser muito familiar para qualquer pessoa com experiência em banco de dados, nós o tornamos ainda mais simples com o CapellaIQnosso assistente de IA que ajudará a gerar consultas a partir de linguagem natural (NLP).

Se quiser trabalhar com o Capella em seu ambiente de IDE, você pode aproveitar nosso Plug-ins do IDE.

7. Configure as integrações com seu ecossistema

O Couchbase oferece vários conectores e ferramentas que permitem a integração com outros subsistemas e serviços em seu ambiente, como ferramentas de monitoramento, sistemas pub-sub e outros. Portanto, se o seu aplicativo MongoDB interagir com outros subsistemas, você precisará reconfigurar essas conexões ao fazer a transição para o Couchbase.

Exemplo de migração: Realm para App Services

Mas espere... tem mais! A prova está no pudim.

Pegamos o aplicativo móvel Realm da amostra Todo e o migramos para o Capella App Services. No processo, fornecemos um guia passo a passo detalhado de como o Couchbase Lite pode fornecer funcionalidade equivalente à suportada pelo aplicativo Realm. Além disso, orientamos você no processo de instalação do Capella Cluster e do App Services com a configuração necessária para que você tenha um sistema funcional de ponta a ponta.

Aqui estão os links para as etapas de migração do aplicativo de amostra em três idiomas populares: 

Recursos

Gostaríamos muito de ouvir sua experiência de migração. Se tiver alguma dúvida ou feedback, deixe um comentário abaixo ou entre em contato conosco por meio de Discórdia ou fóruns.

Aqui estão os links diretos para alguns dos recursos úteis mencionados nesta postagem:

Agradecimentos

Agradecimentos a Aaron Labeau por suas contribuições aos guias de comparação de SDK e aos aplicativos de amostra.

Autor

A ordem da postagem em relação a outras postagens. Priya Rajagopal, Diretora Sênior, Gerenciamento de Produtos

Priya Rajagopal é diretora sênior de gerenciamento de produtos da Couchbase, responsável pelas plataformas de desenvolvedor para a nuvem e a borda. Ela desenvolve software profissionalmente há mais de 20 anos em vários cargos técnicos e de liderança de produtos, com mais de 10 anos de foco em tecnologias móveis. Como delegada de padrões de IPTV da TISPAN, ela foi uma das principais colaboradoras das especificações de padrões de IPTV. Ela tem 22 patentes nas áreas de rede e segurança de plataforma.

Posição vertical a partir do topo para iniciar o corte como uma porcentagem da altura da imagem.