Armazenamento na Cloud: As Métricas Relevantes

Disponibilidade, tempo até ao primeiro byte, débito, durabilidade — existem várias formas de medir o “desempenho” no contexto do armazenamento em nuvem. Contudo, qual a medida mais apropriada e como deve o desempenho ser considerado ao escolher um fornecedor de armazenamento em nuvem? Para além da segurança e do custo, o desempenho é sem dúvida um dos critérios de decisão mais importantes, embora seja também a dimensão mais desafiante de esclarecer. A sua variabilidade é significativa e está sujeita à sua própria infraestrutura, carga de trabalho e a todas as conexões de rede entre a sua infraestrutura e o fornecedor de serviços em nuvem.

Vamos explorar como abordar estrategicamente o desempenho do armazenamento em nuvem, incluindo quais métricas são pertinentes e quais podem não ter tanta relevância para as suas necessidades específicas.

Primeiramente, Qual é o Seu Caso de Uso?

Em primeiro lugar, é crucial considerar a forma como pretende utilizar o armazenamento na nuvem. Afinal, os requisitos de desempenho variarão consoante o caso de uso. Por exemplo, poderá necessitar de um desempenho mais elevado em termos de latência se estiver a utilizar o armazenamento na nuvem para disponibilizar conteúdo de software como serviço (SaaS); no entanto, se estiver a utilizar o armazenamento na nuvem para efetuar backup e arquivar dados, a taxa de transferência provavelmente assumirá maior relevância para os seus propósitos.

No que diz respeito a elementos como armazenamento de aplicações, é aconselhável dispor de outras ferramentas mesmo quando está a utilizar armazenamento na nuvem público, rápido e eficiente, como a capacidade de armazenar em cache conteúdo em servidores locais, mais próximos dos utilizadores finais, através de uma rede de entrega de conteúdo (CDN).

Em última análise, é imperativo decidir quais métricas de armazenamento na nuvem são mais pertinentes para a sua organização. O desempenho é, sem dúvida, crucial, mas a segurança ou o custo podem assumir maior relevância na sua matriz de decisão.

O que é Armazenamento na Nuvem com Bom Desempenho?

O desempenho pode ser descrito utilizando vários critérios diferentes, incluindo:

  1. Latência: Refere-se ao tempo que um sistema demora a processar um pedido, muitas vezes medido em milissegundos. Em termos de armazenamento na nuvem, menor latência significa tempos de resposta mais rápidos.
  2. Taxa de Transferência: Representa a quantidade de dados que pode ser transferida entre o utilizador e a nuvem em determinado período. Uma maior taxa de transferência implica a capacidade de mover grandes volumes de dados de forma mais eficiente.
  3. Disponibilidade: Indica a acessibilidade do armazenamento na nuvem durante um determinado período. Alta disponibilidade significa que o serviço está acessível com pouca interrupção, garantindo que os dados estejam sempre disponíveis quando necessários.
  4. Durabilidade: Refere-se à resistência e integridade dos dados armazenados na nuvem ao longo do tempo. Uma solução de armazenamento durável assegura que os dados permaneçam íntegros e protegidos contra perdas, mesmo em caso de falhas de hardware ou outros incidentes.


Vamos definir cada um destes e falar um pouco sobre o significado de cada um ao avaliar um determinado fornecedor de armazenamento na nuvem e como podem afetar as velocidades de upload e download.

Latência

Latência é definida como o intervalo de tempo entre o pedido de um cliente e a resposta do servidor. Mede o tempo que os dados demoram a ser transferidos através de uma rede.
A latência é principalmente influenciada pela distância física—quanto mais longe o cliente estiver do servidor, mais tempo levará para concluir o pedido.
Ao disponibilizar conteúdo a clientes geograficamente dispersos, pode utilizar uma Rede de Distribuição de Conteúdo (CDN) para reduzir a latência que estes experienciam.
A latência pode ser afetada por congestionamento de rede, protocolos de segurança numa rede ou infraestrutura de rede, mas a causa primária é geralmente a distância, como referido anteriormente.

A latência descendente é geralmente medida usando o tempo até ao primeiro byte (TTFB). No contexto de navegar na web, o TTFB é o intervalo entre um pedido de página e o momento em que o navegador recebe o primeiro byte de informação do servidor. Em outras palavras, o TTFB é medido pelo tempo que decorre entre o início do pedido e o início da resposta, incluindo a pesquisa DNS e o estabelecimento da ligação usando um aperto de mão TCP e um aperto de mão TLS se o pedido for feito através de HTTPS.

A tomada da decisão “correta” sobre onde armazenar os seus dados não é tão simples, e a complexidade remete para o seu caso de uso. Se estiver a utilizar o armazenamento em nuvem para backup externo, pode querer que os seus dados estejam armazenados a uma distância maior da sua organização para se proteger contra desastres naturais. Neste caso, o desempenho provavelmente é secundário à localização—precisa apenas de desempenho suficientemente rápido para cumprir o seu cronograma de backup.

Utilizar uma CDN para Melhorar a Latência

Se estiver a utilizar armazenamento na nuvem para guardar dados ativos, pode aumentar o desempenho ao usar uma CDN. Uma CDN ajuda a acelerar a entrega de conteúdo ao armazenar em cache o conteúdo, o que resulta em tempos de carregamento mais rápidos e menor latência.

Débito

O débito é uma medida da quantidade de dados que atravessa um sistema num determinado momento.
Se houver largura de banda disponível, pode recorrer à multithreading para aprimorar o débito.
A arquitetura dos fornecedores de armazenamento na nuvem influencia o débito, assim como as políticas associadas a abrandamentos (por exemplo, throttling).
O débito é frequentemente confundido com a largura de banda. Embora os dois conceitos estejam intimamente relacionados, são distintos.

Para esclarecer, é útil recorrer a uma metáfora: imagine uma piscina. A quantidade de água nela representa o tamanho do seu ficheiro. Quando pretende esvaziar a piscina, necessita de um tubo. A largura de banda é o diâmetro do tubo, e o débito é a taxa à qual a água flui com sucesso pelo tubo. Assim, a largura de banda influencia o débito final. Este último também é afetado pelo poder de processamento, perda de pacotes e topologia de rede, embora a largura de banda seja o fator principal.

Utilização de Multithreading para Melhorar o Débito

Supondo que tem algum espaço de largura de banda disponível, uma das formas mais eficazes de otimizar o débito é ativar a multithreading. As threads representam unidades de execução dentro dos processos. Quando transmite ficheiros usando um programa através de uma rede, esses ficheiros estão a ser comunicados por threads. Utilizar mais do que uma thread (multithreading) para transmitir ficheiros é, como seria de esperar, mais eficiente e rápido do que utilizar apenas uma (ainda que um maior número de threads exija mais poder de processamento e memória). Voltando à nossa analogia do tubo de água, o multithreading é como ter várias bombas de água (threads) a operar naquele mesmo tubo. Talvez com apenas uma bomba, só consiga preencher 10% do tubo. No entanto, pode adicionar mais bombas até atingir a capacidade máxima do tubo.

Quando se utiliza o armazenamento na nuvem em conjunto com uma integração, como software de backup ou um dispositivo de armazenamento conectado à rede (NAS), as configurações de multithreading geralmente estão situadas nas configurações da integração. Muitas ferramentas de backup já são predefinidas para o uso de multithreading que efetuam ajustes automáticos com base em detalhes como o número de tarefas individuais de backup, ou é possível configurar manualmente o número de threads.

Neste cenário, os benefícios decorrentes do aumento do número de threads são limitados pela largura de banda disponível, pelo poder de processamento e pela memória. Encontrar a configuração adequada pode requerer alguma experimentação, mas as melhorias podem ser significativas.

E Quanto à Limitação de Tráfego?

Uma questão que certamente desejará colocar ao escolher um fornecedor de armazenamento na nuvem é se eles aplicam limitações de tráfego. Isso significa que deliberadamente reduzem a velocidade da sua ligação por diversas razões. Muitos serviços de armazenamento na nuvem aplicam limitações de tráfego, embora possa não ser do seu conhecimento, pelo que é aconselhável colocar a questão logo no início quando estiver a negociar com um fornecedor de armazenamento.

Velocidade de Carregamento e Velocidade de Transferência

As velocidades finais de carregamento e transferência são influenciadas pelo débito e pela latência. Mais uma vez, é fundamental considerar o seu caso de uso ao determinar qual medida de desempenho é mais relevante para as suas necessidades. A latência desempenha um papel crucial em cenários de armazenamento de aplicações, nos quais a rapidez com que um website carrega pode ser determinante para potenciais clientes de serviços de software como serviço (SaaS).

Uma vez que a latência é principalmente afetada pela distância, é possível otimizá-la com o auxílio de uma Rede de Distribuição de Conteúdo (CDN). No entanto, o débito assume uma importância acrescida para os clientes envolvidos em operações de backup e arquivamento, uma vez que reflete as velocidades de carregamento e transferência que um utilizador final experienciará. Estas velocidades podem ser influenciadas pelas políticas e práticas adotadas pelo fornecedor de armazenamento na nuvem, incluindo a eventual implementação de limitações de tráfego.

Disponibilidade

A disponibilidade refere-se à percentagem de tempo em que um serviço em nuvem ou um recurso funciona corretamente.
Certifique-se de que a disponibilidade indicada no acordo de nível de serviço (SLA) do fornecedor de serviços em nuvem corresponde às suas necessidades.
Tenha em mente a distinção entre armazenamento “quente” e “frio”—serviços de armazenamento a frio, como o Amazon Glacier, oferecem tempos de recuperação e resposta mais lentos.
Também designada como tempo de atividade, esta métrica mede a percentagem de tempo em que um serviço em nuvem ou um recurso está disponível e a funcionar corretamente. Geralmente é expressa como uma percentagem, sendo que 99,9% (três noves) ou 99,99% (quatro noves) de disponibilidade são metas comuns para serviços críticos. A disponibilidade é frequentemente respaldada por SLAs que estabelecem o tempo de atividade que os clientes podem esperar e as medidas a serem tomadas se a disponibilidade cair abaixo desse valor.

Deve também ponderar a disponibilidade se estiver a considerar armazenar em armazenamento a frio em comparação com o armazenamento a quente. O armazenamento a frio é deliberadamente menos eficiente em termos de desempenho. Prioriza a durabilidade e a eficácia em termos de custos em detrimento da disponibilidade. Serviços como o Amazon Glacier e o Google Coldline seguem esta abordagem, oferecendo tempos de recuperação e resposta mais lentos em comparação com os respetivos serviços de armazenamento a quente. Embora a economia de custos seja normalmente um fator relevante quando se considera o armazenamento a frio, tenha em mente que, se necessitar de recuperar os seus dados, isso demorará muito mais tempo (potencialmente dias em vez de segundos) e acelerar esse processo terá custos adicionais. Poderá acabar por pagar mais para obter os seus dados mais rapidamente, e deve também estar ciente das elevadas taxas de transferência de dados e dos requisitos mínimos de duração de armazenamento para o armazenamento a frio—custos inesperados que podem acumular-se facilmente.

CategoriaVelocidade de AcessoFrequência de AcessoVolume de DadosMeios de ArmazenamentoCusto
FRIO (COLD)LentaRaramente ou NuncaBaixoUnidades mais lentas, LTO, offlineMais Baixo
QUENTE (HOT)RápidaFrequenteAltoUnidades mais rápidas, duradouras, SSDsMais Elevado

Durabilidade

A durabilidade é a capacidade de um sistema de armazenamento em manter consistentemente a integridade dos dados ao longo do tempo. A durabilidade é geralmente avaliada em termos de “noves,” representando a probabilidade de que os seus dados permaneçam recuperáveis após um ano de armazenamento. O Backblaze B2 Storage Cloud foi concebido para garantir 11 noves de durabilidade através da implementação de codificação de apagamento. A durabilidade de dados refere-se à capacidade de um sistema de armazenamento de dados em preservar de forma fiável e consistente os dados ao longo do tempo, mesmo perante falhas de hardware, erros ou problemas imprevistos. Este é um indicador da resistência e permanência a longo prazo dos dados. Sistemas de armazenamento altamente duráveis asseguram que os dados permaneçam íntegros e acessíveis, cumprindo as expetativas de fiabilidade e disponibilidade, tornando-a uma consideração fundamental para aplicações críticas e gestão de dados.

Normalmente, a durabilidade, ou mais precisamente a durabilidade anual, é medida em “noves,” que representa o número de noves na probabilidade (expressa em percentagem) de que os seus dados sejam recuperáveis após um ano de armazenamento. Com base no trabalho em Estatísticas de Unidades, sabemos que uma taxa de falha anual de 1% é típica para um disco rígido. Portanto, se armazenar os seus dados num único disco, a durabilidade, ou seja, a probabilidade de que este não falhe, será de 99%, o que corresponde a dois noves.

Backblaze lança Relatório Q3 2023 – HomeServer.pt – Informática e Tecnologia
homeserver.pt

Uma forma simples de melhorar a durabilidade é replicar os dados em vários discos. Se um ficheiro for perdido, ainda terá cópias de segurança. O cálculo da durabilidade é também simples com esta abordagem. Se escrever cada ficheiro em dois discos, os dados só serão perdidos se ambos os discos falharem. Calculamos a probabilidade de falha de ambos os discos multiplicando as probabilidades de falha de cada disco, 0,01 x 0,01 = 0,0001, resultando numa durabilidade de 99,99%, o que corresponde a quatro noves. Apesar da sua simplicidade, esta abordagem é dispendiosa, requerendo o dobro do espaço de armazenamento para garantir quatro noves de durabilidade.

A codificação de apagamento é uma técnica mais sofisticada que melhora a durabilidade com uma sobrecarga significativamente menor em comparação com a simples replicação. O código de apagamento transforma uma “mensagem,” como um ficheiro de dados, numa mensagem mais longa de forma a que a mensagem original possa ser reconstruída a partir da mensagem mais longa, mesmo que partes da mensagem mais longa sejam perdidas.

Fatores Adicionais que Afetam o Desempenho do Armazenamento em Nuvem

Para além da largura de banda e da latência, existem vários outros fatores que influenciam o desempenho do armazenamento em nuvem, incluindo:

  1. Tamanho dos seus ficheiros.
  2. Número de ficheiros carregados ou descarregados.
  3. Tamanho dos blocos (partes).
  4. Quantidade de memória disponível no seu dispositivo.

Ficheiros pequenos, com menos de 5 GB, podem ser carregados numa única chamada de API. Ficheiros maiores, com tamanhos entre 5 MB e 10 TB, podem ser carregados em “partes,” através de várias chamadas de API. É importante notar que existe alguma sobreposição nesses intervalos. Quando se trata de carregar ficheiros com tamanhos entre 5 MB e 5 GB, a questão é se é melhor carregá-los numa única chamada de API ou dividi-los em partes. Além disso, é importante considerar qual é o tamanho ideal para essas partes. No contexto de aplicações de backup, que geralmente dividem todos os dados em blocos de tamanho igual e armazenam cada bloco como um ficheiro, surge a questão de qual é o tamanho ideal para esses blocos. Como em muitas questões relacionadas com desempenho, a resposta é que depende do caso específico.

Lembra-se da latência? Cada chamada de API implica uma sobrecarga mais ou menos fixa devido à latência. Por exemplo, para um ficheiro de 1 GB, e assumindo apenas uma linha de execução, carregar todo o ficheiro de 1 GB numa única chamada de API será mais rápido do que efetuar dez chamadas de API, cada uma carregando uma parte de 100 MB, uma vez que essas nove chamadas de API adicionais introduzem uma sobrecarga adicional devido à latência. No entanto, será que “maior é sempre melhor”?

Não necessariamente. O uso de várias linhas de execução, como mencionado anteriormente, oferece a possibilidade de carregar várias partes simultaneamente, o que melhora o desempenho, mas existem compromissos a considerar. Normalmente, cada parte deve ser armazenada na memória à medida que é carregada, o que significa que um maior número de linhas de execução resulta em um maior consumo de memória. Se o número de linhas de execução multiplicado pelo tamanho das partes exceder a quantidade de memória disponível, a aplicação poderá falhar devido a um erro de falta de memória, ou os dados terão que ser transferidos para o disco, o que reduz o desempenho.

No caso do download de dados, existe ainda mais flexibilidade, uma vez que as aplicações podem especificar qualquer parte do ficheiro a ser descarregada em cada chamada de API. Quer esteja a carregar ou a descarregar, existe um número máximo de linhas de execução que pode tirar partido da largura de banda disponível. Ultrapassar esse máximo consumirá mais memória, mas não proporcionará qualquer benefício adicional em termos de desempenho. Usando a nossa analogia do tubo, terá atingido a capacidade máxima do tubo, portanto, adicionar mais “bombas” não fará as coisas moverem-se mais rapidamente.

Então, como obter o melhor desempenho possível para o seu caso de uso? A resposta é simples: personalize as suas configurações. A maioria das ferramentas de backup e transferência de ficheiros permitem que configure o número de linhas de execução e a quantidade de dados a ser transferida por chamada de API, seja o tamanho do bloco ou o tamanho da parte. Se estiver a desenvolver a sua própria aplicação, deverá permitir que esses parâmetros possam ser configurados. No momento da implementação, poderá ser necessário realizar alguma experimentação para determinar a melhor configuração e obter o débito máximo possível, tendo em conta a memória disponível no seu sistema.

Como Avaliar o Desempenho em Ambientes de Cloud Computing

Para resumir, a computação em nuvem está se tornando cada vez mais fundamental em todos os aspectos de uma empresa. De acordo com previsões da Gartner, até 2026, 75% das organizações adotarão um modelo de transformação digital baseado na nuvem como plataforma subjacente fundamental. Portanto, é provável que o desempenho do armazenamento em nuvem se torne uma consideração essencial para a sua empresa nos próximos anos, se já não o é.

É crucial ter em mente que a avaliação do desempenho do armazenamento em nuvem pode ser altamente subjetiva e influenciada por diversos fatores, como as particularidades de casos de uso (por exemplo, backup e arquivamento versus armazenamento de aplicações, fluxo de mídia ou outros), a largura de banda e o débito do utilizador final, o tamanho dos ficheiros, o tamanho dos blocos, entre outros. Qualquer avaliação do desempenho em ambientes de cloud computing deve levar em consideração esses fatores, em vez de depender exclusivamente de métricas isoladas. Além disso, uma estratégia abrangente na nuvem provavelmente incluirá vários esquemas operacionais para otimizar recursos de acordo com diferentes casos de uso.

Fonte

Artigos Relacionados