Mudando de RDBMS para DynamoDB em 20 etapas

Image for post
Image for post
Embarcando no mundo Serverless e NoSQL

Eu postei um tópico no Twitter com algumas reflexões sobre como mudar de RDBMS para o DynamoDB. Algumas pessoas me pediram para transformá-lo em um artigo de blog para facilitar o acompanhamento. Então aqui está… com alguns passos de bônus no final. Bom proveito! 😁

Eu tenho passado muito tempo ultimamente com o DynamoDB em meus aplicativos serverless, então pensei em compartilhar meu guia infalível para migrar de RDBMS para DynamoDB. Então aqui está:

Aceite o fato de que a Amazon.com pode acomodar 90% do fluxo de trabalho do site/sistema de varejo em DynamoDB, então você provavelmente também pode. 🤔

Crie um Modelo de Relacionamento de Entidade, assim como você faria se estivesse projetando um banco de dados relacional tradicional. 👩‍💻

Crie uma lista de todos os seus padrões de acesso. Se “pesquisar” for um padrão de acesso, não se preocupe, nós lidaremos com isso na etapa 17. 😉

Reduza os padrões de acesso para o mínimo exigido pelos usuários do aplicativo. Análise de dados e as tarefas administrativas, como analytics, agregações, acionadores de tarefas, etc., são importantes, mas provavelmente não são necessárias para o usuário final interagir com seu aplicativo em tempo real. 🚫📊

Determine se os padrões de acesso do usuário exigem consultas ad hocque precisem reformular os dados. Provavelmente a resposta é não. No entanto, se você estiver criando um aplicativo OLAP, o NoSQL não é uma boa escolha. Dê um tapinha nas suas costas por tentar e use outra tecnologia. 🤷‍♂️

Coloque a cabeça no micro-ondas por 3 segundos, ou o tempo que for necessário, para esquecer o que normalização dos dados e a terceira forma normal são. 🤤

Assista a apresentação Advanced Design Patterns for Amazon DynamoDB (DAT403-R) de Rick Houlihan para o Amazon DynamoDB na AWS re:Invent 2017. 😯

Assista a apresentação Amazon DynamoDB Deep Dive: Advanced Design Patterns for DynamoDB (DAT401) de Rick Houlihanpara o Amazon DynamoDB na AWS re:Invent 2018. 😮

Limpe todas as minúsculas partes do seu cérebro espalhadas pela sala, depois reagrupe-as e assista tudo novamente, desta vez a meia velocidade. Tome notas. 🤯

Leia o guia ‌Best Practices for DynamoDB no site da AWS. E em seguida, leia-o de novo. 🤓

Planeje uma tabela DynamoDB que usa índices sobrecarregados para armazenar todas as suas entidades usando Composite Sort Keys(quando necessário), adicionando LSIs e GSIs adicionais (novamente, quando necessário) para acomodar os padrões de acesso acima mencionados. 😳(isso fará mais sentido quando você passar pelas etapas anteriores).

Escreva algumas consultas de exemplo e teste seus padrões de acesso em relação ao design de sua tabela. Perceba que você errou completamente na primeira vez, respire, tome uma cerveja (ou duas) e volte para a Etapa 07. 😞🍺

Teste seus padrões de acesso em relação ao seu novo design de tabela. Itere. Teste novamente. Itere e teste novamente. 🤨

Repita a Etapa 13 até que você esteja 95% confiante de que você tem o design da sua tabela corretamente. 😀

Você fez isso (bem, a primeira parte de qualquer maneira)! 🎉 Celebre sua conquista (talvez tenha outra cerveja) e conecte os padrões de acesso do DynamoDB ao AppSync ou crie uma API com o API Gateway. Lembre-se de usar a Transactions API quando necessário. 😎

Teste, teste e teste novamente. E quando terminar de testar, teste novamente. E certifique-se de escrever alguns testes para que você possa testá-lo automaticamente, de novo e de novo. ✅

Ative o DynamoDB Streams e use-os para gerar/atualizar agregações e replicar dados para relatórios, indexação de pesquisa e/ou outros requisitos do aplicativo. (As funções do Lambda são ótimas para stored procedures, por exemplo) 🚀

Teste seus DynamoDB Streams NA NUVEM para garantir que os dados estejam fluindo corretamente e que os recursos alvos estão sendo preenchidos/atualizados corretamente. Escreva alguns testes para automatizar isso. ☁️

Cruze os dedos, publique na produção. 🤞

Lucre! 💰

Isso foi obviamente um pouco simplificado, mas espero que você comece sua jornada para descobrir o poder do DynamoDB. Se não conseguir no começo, basta seguir em frente. Ele acabará “clicando” (a menos que você tenha deixado a cabeça no microondas por muito tempo). Boa sorte! 👍

Etapa Bonus

Houve uma tonelada de ótimos comentários no Twitter com sugestões para material de aprendizado adicional do DynamoDB. Se você quiser ir ainda mais fundo no DynamoDB, aqui estão alguns recursos adicionais que farão seu cérebro queimar ainda mais. 🔥

Você conhece mais recursos incríveis do DynamoDB? Por favor, sinta-se livre para me enviar no Twitter!

Créditos ⭐️

Written by

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store