O caso dos bancos de dados com propósito específico

Como estava esse conteúdo?

Por Cullen Dejean, arquiteto sênior de soluções da AWS, e Matthew de Anda, arquiteto de soluções para startups na AWS.

Como uma startup em estágio inicial, você tem muitas decisões técnicas a tomar enquanto busca a adequação do produto ao mercado. Algumas dessas decisões técnicas são reversíveis, enquanto outras são conjunturas críticas com impactos de longo prazo. Escolher um banco de dados tende a se enquadrar na última categoria, e é por isso que uma abordagem única com um banco de dados relacional já não funciona mais. Você precisa dar um passo atrás e revisar os casos de uso exatos que você tem antes de começar a selecionar um banco de dados. Revise sua expectativa de que um banco de dados possa fazer tudo e, em vez disso, escolha o serviço de banco de dados mais adequado para a tarefa em questão. A AWS oferece um portfólio amplo e profundo de bancos de dados com propósito específico que oferecem suporte a diversos modelos de dados e permitem que você crie aplicações distribuídas, altamente escaláveis e orientadas por dados. Nesta postagem do blog, abordaremos os fatores que uma startup em estágio inicial deve considerar ao analisar as opções de banco de dados na AWS.

Fatores a serem considerados ao selecionar um banco de dados

Experiência

As startups em estágio inicial precisam focar na criação de um produto mínimo viável e demonstrar ímpeto e crescimento, para que qualquer decisão seja tomada com foco na velocidade da comercialização e nas habilidades disponíveis. A escolha de uma tecnologia com a qual sua equipe não tenha experiência geralmente aumenta os prazos e resulta em um produto mínimo viável (MVP) que pode ser mais difícil de alterar em resposta ao feedback dos usuários. Esse é um motivo comum pelo qual o uso de um banco de dados relacional pode continuar sendo a abordagem correta no início. Se sua equipe tiver experiência com um serviço de dados específico (por exemplo, relacional, documental etc.), pode ser melhor começar por lá.

Escala futura

A escala futura é outro fator para o qual as startups em estágio inicial devem estar atentas. A escolha de uma tecnologia conhecida para permitir uma entrega mais rápida precisa ser equilibrada por meio de uma nova análise do caso de uso e da determinação das necessidades futuras de escalabilidade. Ser capaz de aproveitar soluções que escalam automaticamente com você e, ao mesmo tempo, continuar funcionando conforme o esperado pode ser um multiplicador de forças. Sempre é possível migrar para uma tecnologia diferente mais tarde, mas lembre-se de que as migrações se tornarão mais complexas à medida que seus dados aumentarem. Algumas migrações, como aquelas entre o Amazon Relational Database Service (Amazon RDS) e o Amazon Aurora, são reversíveis (o que chamamos de “decisões bidirecionais”). Decisões bidirecionais permitem uma experimentação mais rápida e adotam uma abordagem de “antecipar-se à falha”. Na próxima seção, discutiremos mais detalhadamente os serviços de banco de dados, como Amazon RDS e Aurora.

Bancos de dados com propósito específico e seus casos de uso

Por muito tempo, os bancos de dados relacionais como MySQL e Postgres dominaram o cenário de bancos de dados. Agora, há muito mais tipos de banco de dados para escolher. Para tomar uma decisão informada, é útil avaliar os bancos de dados de acordo com suas características de acesso e o formato dos dados.

Bancos de dados relacionais

Um banco de dados relacional é autodescritivo, pois permite que os desenvolvedores definam o esquema do banco de dados, bem como as relações e restrições entre as linhas e as tabelas no banco de dados. Os desenvolvedores confiam na funcionalidade do banco de dados relacional, e não no código da aplicação, para impor o esquema e preservar a integridade referencial dos dados no banco de dados. Alguns casos de uso típicos de um banco de dados relacional incluem aplicações Web e móveis. As startups usam o Amazon RDS e o Amazon Aurora para aplicações escaláveis e de alta performance na AWS. Tanto o RDS quanto o Aurora são bancos de dados totalmente gerenciados e escaláveis.

NoSQL: bancos de dados de documentos e de chave-valor

À medida que o sistema cresce, grandes quantidades de dados geralmente estão na forma de dados de chave-valor, nos quais uma única linha é mapeada para uma chave primária. Os bancos de dados de chave-valor são altamente particionáveis e permitem escalabilidade horizontal em níveis que outros tipos de bancos de dados não conseguem alcançar. Casos de uso como jogos, tecnologia publicitária e IoT se adaptam particularmente bem ao modelo de dados de chave-valor, em que os padrões de acesso exigem Gets/Puts de baixa latência para chave-valores conhecidos.

O Amazon DynamoDB é um banco de dados NoSQL totalmente gerenciado, sem servidor e de chave-valor que oferece performance de um dígito em milissegundos em qualquer escala. Para casos de uso de chave-valor de alta performance, também oferecemos o Amazon Keyspaces, um serviço de banco de dados escalável, altamente disponível e gerenciado compatível com o Apache Cassandra.

Outro tipo de banco de dados relevante é um banco de dados de documentos. O uso dos bancos de dados de documentos é intuitivo para os desenvolvedores, porque os dados na camada da aplicação geralmente são representados como um documento JSON. Os bancos de dados de documentos são muito usados para casos de uso como armazenamento e consulta de dados do sistema de gerenciamento de conteúdo, bem como gerenciar perfis, preferências e solicitações de usuários para gerar recomendações e fazer transações.

Para dados de documentos, os desenvolvedores podem persistir os dados usando o mesmo formato de modelo de documento que usam no código da aplicação, usando o modelo de esquema flexível do Amazon DocumentDB (compatível com MongoDB), um banco de dados durável e totalmente gerenciado para alcançar a eficiência do desenvolvedor e suportar milhões de leituras de documentos por segundo enquanto escalam a computação e o armazenamento de forma independente.

Data warehouses

Ao determinar a necessidade de data warehouses, é importante distinguir entre bancos de dados transacionais (OLTP) e analíticos (OLAP). Os bancos de dados OLAP são bancos de dados maiores para armazenamento e arquivamento de dados. Para muitas startups em estágio inicial, a escolha do Amazon Athena para lidar com casos de uso do OLAP pode ser a consideração ideal. O Amazon Athena é uma interface de consulta SQL sem servidor que permite analisar dados armazenados no Amazon Simple Storage Service (Amazon S3) com o SQL padrão.

Quando as aplicações começarem a exigir consultas mais complexas e SLAs mais rigorosos, a potência dos data warehouses pode ajudar a escalar sua estratégia e seus requisitos de dados. O Amazon Redshift é um serviço de armazenamento de dados totalmente gerenciado em escala de petabytes na nuvem.

Bancos de dados na memória

Os bancos de dados na memória são usados para aplicações que exigem acesso em tempo real aos dados fornecidos com latência de microssegundos. Aplicações de serviços financeiros, comércio eletrônico, Web, celulares e jogos já usaram bancos de dados na memória para criar tabelas de classificação, armazenamentos de sessões, armazenamento em cache e análises em tempo real. Os bancos de dados na memória podem aliviar a carga de seus bancos de dados relacionais, fornecer resultados de menor latência ou substituir o banco de dados relacional e ser o principal armazenamento de dados de chave-valor na memória.

O Amazon ElastiCache facilita a configuração, o gerenciamento e a escalabilidade de um armazenamento de dados em memória ou um ambiente de cache. O Amazon ElastiCache funciona com os mecanismos Redis e Memcached. O Amazon MemoryDB para Redis é um serviço de banco de dados na memória durável, compatível com Redis, que oferece performance ultrarrápida. Ele foi desenvolvido especificamente para aplicações modernas com arquiteturas de microsserviços. Uma forma de decidir entre essas ofertas depende se seu caso de uso é efêmero ou requer mais durabilidade. O Amazon ElastiCache geralmente é usado como um banco de dados independente, mas somente para aplicações que não exigem durabilidade. Por outro lado, o MemoryDB foi projetado para ser um banco de dados primário. O outro fator seria a familiaridade da sua equipe com os mecanismos Redis ou Memcached.

Pesquisa

Os bancos de dados de pesquisa oferecem análises e pesquisas quase em tempo real. Casos de uso comuns para bancos de dados de pesquisa incluem análise de logs, monitoramento de aplicações em tempo real e análise de fluxo dos cliques.

O Amazon OpenSearch Service facilita a realização de análises interativas de logs, monitoramento de aplicações em tempo real, pesquisa em sites e muito mais. O Amazon OpenSearch Service oferece suporte ao OpenSearch e ao Elasticsearch OSS legado.

Bancos de dados de grafos

O objetivo de um banco de dados de grafos é facilitar a criação e a execução de aplicações que funcionem com conjuntos de dados altamente conectados. Os casos de uso típicos de um banco de dados de grafos incluem redes sociais, mecanismos de recomendação, detecção de fraudes e gráficos de conhecimento. Decidir se um banco de dados de grafos é a escolha certa começa determinando se os dados podem ser melhor representados como uma estrutura gráfica. A amplitude e a profundidade das relações estão aumentando? As consultas para bancos de dados relacionais se tornarão mais lentas à medida que as relações se tornarem mais complexas. Os próprios modelos estão mudando o suficiente para que as mudanças no esquema se tornem um fardo para a sua equipe? Por fim, você precisará responder perguntas sobre as relações em seus dados? Os bancos de dados de grafos oferecem esse tipo de flexibilidade ao mesmo tempo em que fornecem consultas complexas dessas relações. O Amazon Neptune é um serviço de banco de dados de grafos rápido, confiável e totalmente gerenciado.

Banco de dados ledger

Os bancos de dados ledger podem ajudar a rastrear toda a linhagem dos dados. O Amazon Quantum Ledger Database (QLDB) é um banco de dados ledger totalmente gerenciado que fornece um log de transações transparente, imutável e criptograficamente verificável de propriedade de uma autoridade central confiável.

Banco de dados de séries temporais

Os bancos de dados de séries temporais administram os casos de uso em que as aplicações lidam com dados de séries temporais e precisam analisar esses dados rapidamente usando funções analíticas integradas. O Amazon Timestream é um serviço de banco de dados de séries temporais rápido, escalável e sem servidor para a IoT e aplicações operacionais.

Tipo de banco de dadosCasos de usoServiço da AWS
RelacionaisAplicações tradicionais, comércio eletrônico, transações OLTPAmazon AuroraAmazon RDS
Chave-valorAplicações Web de alto tráfego, sistemas de comércio eletrônico, aplicações de jogos e negociações financeirasAmazon DynamoDBAmazon Keyspaces
DocumentoGerenciamento de conteúdo, catálogos, perfis de usuáriosAmazon DocumentDBAmazon AthenaAmazon Elasticache
Na memóriaArmazenamento em cache, gerenciamento de sessões, tabelas de classificação de jogos, aplicações geoespaciaisAmazon MemoryDB para Redis
PesquisaRegistros consolidados, pesquisa personalizadaAmazon OpenSearch
GráficoDetecção de fraudes, redes sociais, perfis de usuárioAmazon Neptune
LedgerSistemas de registro, cadeia de suprimentos, registros, transações bancáriasAmazon QLDB
Séries temporaisIoT, DevOps, telemetria industrialAmazon Timestream

Conclusão

Como uma startup em estágio inicial, uma das decisões mais importantes que você tomará é que tipo de tecnologia de banco de dados usar. Ao analisar os bancos de dados com propósito específico que a AWS oferece, comece com o caso de uso e defina os requisitos necessários para ajudar a filtrar quais serviços de banco de dados são adequados. Em seguida, acrescente a velocidade de comercialização e as habilidades disponíveis de sua equipe, mas encontre o equilíbrio entre esses fatores e as suas necessidades futuras. É importante dedicar tempo agora considerando esses fatores e selecionando o serviço de banco de dados mais adequado ao trabalho.

AWS Editorial Team

AWS Editorial Team

A equipe de Marketing de Conteúdo da AWS Startups colabora com startups de todos os tamanhos e setores para oferecer excepcional conteúdo educativo, divertido e inspirador.

Como estava esse conteúdo?