Avançar para o conteúdo principal

Aumentar verticalmente vs. aumentar horizontalmente

Introdução à escalabilidade de bases de dados na computação na cloud

Dados em qualquer local: sobre o que falamos no que toca a escalabilidade

A escalabilidade na computação na cloud é a capacidade de aumentar ou diminuir de forma rápida e fácil o tamanho ou poder de uma solução ou recurso de TI. Embora o termo escalabilidade se possa referir à capacidade de qualquer sistema lidar com uma quantidade cada vez maior de trabalho, quando falamos em aumentar verticalmente ou aumentar horizontalmente, estamos frequentemente a fazer referência a muitas bases de dados.

A escalabilidade de bases de dados é a principal preocupação dos programadores de aplicações modernas. Digamos que é lançada uma nova aplicação e que a procura aumenta de alguns utilizadores para milhões de utilizadores em todo o mundo. Uma das capacidades mais importantes para ajudar os programadores de aplicações a acompanhar a procura e a minimizar o tempo de inatividade é a capacidade de dimensionar com eficiência.

Esta conversa sobre aumentar horizontalmente ou aumentar verticalmente concentra-se na forma como a escalabilidade nos ajuda a adaptar e a lidar com o grande volume e o vasto leque de dados, ao alterar os volumes de dados e ao mudar os padrões de carga de trabalho, todos gerados a partir da cloud, dispositivos móveis, redes sociais e macrodados.

Aumentar horizontalmente vs. aumentar verticalmente

No nível mais básico, a escalabilidade da base de dados pode ser dividida em dois tipos:

Dimensionamento vertical, ou dimensionamento para cima ou para baixo, no qual aumenta ou diminui a potência de computação ou as bases de dados conforme necessário, seja ao alterar os níveis de desempenho ou ao usar conjuntos de bases de dados elásticas, para se ajustar automaticamente às exigências das suas cargas de trabalho.

Dimensionamento horizontal, ou dimensionamento para o exterior ou interior, no qual adiciona mais bases de dados ou divide a sua base de dados de grandes dimensões em nós menores, que podem ser geridos de forma mais fácil e rápida nos servidores, utilizando uma abordagem de criação de partições de dados chamada fragmentação.

Aumentar verticalmente

O dimensionamento vertical é utilizado quando tem de reagir rapidamente para corrigir um problema de desempenho que não pode ser resolvido com técnicas de otimização clássicas de bases de dados, como alterações de consulta ou indexação. Aumentar verticalmente é útil para lidar com os picos nas suas cargas de trabalho em que o nível de desempenho atual não consegue satisfazer todas as exigências. Aumentar verticalmente permite-lhe adicionar mais recursos para lidar facilmente com cargas de trabalho de pico. Depois, quando os recursos já não são necessários, reduzir verticalmente permite-lhe voltar ao estado original e poupar nos custos da cloud.

Aumente verticalmente quando:

  • Vê que as cargas de trabalho estão a atingir o limite de desempenho, como os limites de CPU ou de E/S.
  • Tem de reagir rapidamente para corrigir problemas de desempenho que não podem ser resolvidos com a otimização clássica de bases de dados.
  • Precisar de uma solução que permita alterar os escalões de serviço para se adaptar aos requisitos de latência em alteração.

Aumentar horizontalmente

Os programadores de aplicações começam a considerar o dimensionamento horizontal quando não conseguem obter recursos suficientes para as cargas de trabalho, mesmo ao operar nos níveis de desempenho mais elevados. Com o dimensionamento horizontal, os dados são divididos em várias bases de dados, ou fragmentos, entre os servidores, e cada fragmento pode ser aumentado ou reduzido verticalmente de forma independente.

De que forma os dados de criação de partições aumentam a escalabilidade? Quando aumenta verticalmente uma base de dados individual ao adicionar recursos como máquinas virtuais (VMs), esta atingirá eventualmente um limite de hardware físico. Uma vez que as partições de dados estão alojadas num servidor separado, se dividir os dados por vários fragmentos, poderá aumentar horizontalmente um sistema quase de forma ilimitada.

Alguns tipos de tecnologias de bases de dados, nomeadamente as bases de dados NoSQL ou não relacionais, são desenvolvidos com capacidades exclusivas para aumentar horizontalmente os dados por fragmentação, o que permite processar dados grandes, não relacionados, indeterminados ou com alteração rápida.

Além disso, alguns serviços de bases de dados relacionais (SQL) que ofereciam originalmente serviços para aumentar ou reduzir verticalmente estão a começar a disponibilizar opções entusiasmantes para corresponder às vantagens de escalabilidade de bases de dados não relacionais. Os serviços do Hyperscale, como o Hyperscale da Base de Dados SQL do Microsoft Azure e o Hyperscale da Base de Dados PostgreSQL do Azure permitem aos utilizadores dimensionar rapidamente o armazenamento até 100 TB, fornecem uma arquitetura flexível e nativa de cloud que permite que o armazenamento cresça conforme necessário e realizam cópias de segurança quase instantâneas e restauros de bases de dados rápidos em apenas alguns minutos.

Aumente horizontalmente quando:

  • Tem aplicações distribuídas geograficamente em que cada aplicação tem de aceder a parte dos dados na região. Cada aplicação acederá apenas ao fragmento associado a essa região sem afetar os outros fragmentos.
  • Tem um cenário de fragmentação global, como o balanceamento de carga, em que tem um grande número de clientes distribuídos geograficamente que inserem dados nos seus próprios fragmentos dedicados.
  • Atingiu os requisitos de desempenho máximos, mesmo nos escalões de desempenho mais elevados do seu serviço ou caso os dados não caibam numa base de dados individual.

Dimensionamento automático

O dimensionamento automático é o processo de correspondência automática e dinâmica de recursos para satisfazer os requisitos de desempenho de um sistema. À medida que o volume de trabalho cresce, as aplicações podem precisar de recursos adicionais para manter os níveis de desempenho necessários ou cumprir a procura crescente. Se a procura abrandar e os recursos adicionais deixarem de ser necessários, pode poupar nos gastos com a cloud ao ter um serviço automático para desalocar os recursos não utilizados.

O dimensionamento automático tira partido da elasticidade dos ambientes alojados na cloud. Alivia a sobrecarga de gestão ao reduzir a necessidade de os operadores de sistema tomarem decisões constantes sobre a adição ou remoção de recursos ou ao verificar o desempenho do sistema.

Embora haja duas formas principais de dimensionar as aplicações (vertical ou horizontalmente), é menos comum automatizar o dimensionamento vertical, uma vez que aumentar verticalmente geralmente requer que o sistema fique temporariamente indisponível enquanto está a ser reimplementado.

O dimensionamento automático é mais comum ao dimensionar horizontalmente, uma vez que aumentar ou reduzir horizontalmente significa apenas adicionar ou remover instâncias de um recurso e a aplicação continua em execução sem interrupção à medida que são aprovisionados novos recursos. Se a procura cair, os recursos podem ser encerrados sem tempo de inatividade e desalocados.

Muitos fornecedores de sistemas baseados na cloud, como o Microsoft Azure, suportam o dimensionamento horizontal automático.

  • Uma base de dados é qualquer coleção de informações interrelacionadas armazenada e organizada para que seja mais fácil de gerir e aceder. À medida que são gerados novos dados e tipos de dados a um ritmo alucinante, torna-se um desafio manter os dados organizados, acessíveis e seguros. Os sistemas de gestão de bases de dados (DBMS), que incluem uma camada de ferramentas de gestão, são utilizados frequentemente para processar elevados volumes de dados.

    Estão constantemente a surgir novos tipos de bases de dados e tecnologias para se adaptarem ao grande volume e ao vasto leque de dados gerados na cloud, em dispositivos móveis, redes sociais e macrodados.

    Saiba mais sobre bases de dados
  • As bases de dados NoSQL, referidas frequentemente como não relacional ou "não só" SQL, são um conjunto diversificado de tecnologias de base de dados que lidam com o armazenamento e a obtenção de dados de forma diferente de uma base de dados tradicional relacional (SQL).

    As bases de dados NoSQL não exigem um esquema predefinido e conseguem utilizar vários modelos de dados, tornando-os extremamente eficientes no processamento de elevados volumes de dados não estruturados e no dimensionamento de projetos de base de dados de macrodados.

    Saiba mais sobre bases de dados NoSQL
  • O PostgreSQL é uma base de dados robusta open-source que funciona com consultas relacionais e não relacionais, famosa pela sua integridade de dados e fiabilidade. O PostgreSQL é amplamente utilizado em áreas como serviços financeiros, fabrico, sistemas de informações geográficas governamentais e tecnologia Web. Os programadores criam aplicações com PostgreSQL, enquanto os administradores confiam nele para proteger os dados.

    Saiba mais sobre o PostgreSQL
  • A colocação em cache é uma técnica comum utilizada pelos programadores e profissionais de TI para melhorar o desempenho e a escalabilidade de um sistema. A colocação em cache consiste em copiar temporariamente os dados acedidos com frequência para o armazenamento rápido que está localizado próximo da aplicação. Se este armazenamento de dados rápido estiver localizado mais próximo da aplicação que a origem original, a colocação em cache pode melhorar significativamente os tempos de resposta para aplicações cliente ao servir os dados mais rapidamente. Geralmente, os programadores criam aplicações para colocar em cache os dados processados e, em seguida, reconfiguram a cache para servir os pedidos mais depressa do que nas consultas de base de dados padrão.

    Saiba mais sobre a colocação em cache
  • A fragmentação de dados é um tipo de partição de dados horizontal que lhe permite dividir a sua grande base de dados em bases de dados mais pequenas, que podem ser geridas mais rapidamente e mais facilmente entre os servidores.

    Saiba mais sobre a fragmentação de bases de dados
  • Uma plataforma como serviço, geralmente abreviada como PaaS, é um serviço de um fornecedor de cloud que oferece um ambiente a pedido para desenvolver, testar, fornecer e gerir aplicações. Uma plataforma como serviço torna mais simples e rápido para os programadores criar aplicações Web ou móveis, sem que tenham de lidar com a configuração ou gestão da infraestrutura subjacente de servidores, armazenamento, rede e bases de dados de que precisam como programadores.

    Saiba mais sobre o PaaS

Explore a escalabilidade da cloud com o Azure

Descubra uma abordagem abrangente para aumentar vertical e horizontalmente que se adapte ao seu próprio cenário em ambientes no local, multicloud e no edge. A família Azure de serviços de bases de dados oferece uma seleção de bases de dados relacionais, NoSQL e dentro da memória totalmente geridas, que abrangem motores proprietários e open-source para responder às necessidades dos programadores de aplicações modernas.

Poupe tempo e dinheiro com a gestão de infraestrutura automatizada, que inclui soluções de automatização para escalabilidade, disponibilidade e segurança.

Produtos e serviços relacionados

SQL do Azure

A família de bases de dados SQL na cloud oferece opções flexíveis para a migração, modernização e desenvolvimento de aplicações

Azure Cosmos DB

Base de dados NoSQL rápida com APIs abertas para qualquer escala

Azure PostgreSQL

PostgreSQL totalmente gerido, inteligente e dimensionável

Base de Dados SQL do Azure

SQL gerido e inteligente na cloud

Azure SQL Managed Instance

Instância gerida e sempre atualizada do SQL na cloud

SQL Server nas Máquinas Virtuais

Migre cargas de trabalho do SQL Server para a cloud com o TCO mais baixo

Base de Dados do Azure para MySQL

Base de dados MySQL totalmente gerida e dimensionável

Azure Maria DB

Serviço de base de dados MariaDB gerido para programadores de aplicações

Cache do Azure para Redis

Acelere as suas aplicações através de débito elevado e colocação em cache de baixa latência

Dimensione sem limites com bases de dados geridas

Concentre-se na criação de aplicações e simplifique o seu trabalho com bases de dados geridas pelo Microsoft Azure

Estamos prontos para começar – vamos configurar a sua conta gratuita

Como podemos ajudá-lo?