LFCA: Aprenda Disponibilidade, Desempenho e Escalabilidade na Nuvem – Parte 14

No tópico anterior da nossa série LFCA, apresentamos uma introdução à computação em nuvem, os diferentes tipos e nuvens, e serviços em nuvem e explicamos alguns dos benefícios associados à computação em nuvem.

Se o seu negócio ainda está baseado no ambiente tradicional de computação de TI, é hora de evoluir e migrar para a nuvem. Estima-se que até o final de 2021, mais de 90% da carga de trabalho total será tratada na nuvem.

Entre os principais benefícios associados à adoção da computação em nuvem estão o desempenho aprimorado, alta disponibilidade e escalabilidade. De fato, mencionamos esses como um dos principais benefícios do uso da tecnologia em nuvem.

Neste tópico, focamos na disponibilidade, desempenho e escalabilidade da nuvem e buscamos entender como esses três elementos se unem para atender às demandas dos clientes e garantir que os usuários acessem seus dados conforme necessário de qualquer parte do mundo.

1. Disponibilidade na Nuvem

As aplicações e serviços de TI de uma organização são críticos e qualquer interrupção de serviço pode ter um efeito profundo na receita. A expectativa dos clientes é que os serviços sejam acessíveis 24 horas por dia, em qualquer momento e de qualquer local. E é isso que a tecnologia em nuvem busca fornecer.

Alta disponibilidade é o objetivo final da computação em nuvem. Ela busca fornecer o maior tempo de funcionamento possível dos serviços de uma empresa, mesmo面对disrupções que podem ser causadas por paradas inesperadas de servidores ou degradação da rede.

A alta disponibilidade é feita possível por meio de sistemas redundantes e de failover. Isso acontece em um ambiente de cluster onde vários servidores ou sistemas executam as mesmas tarefas, oferecendo assim redundância.

Quando um servidor está offline, os demais ainda podem continuar rodando e fornecendo os serviços fornecidos pelo servidor afetado. Um exemplo perfeito de redundância é a replicação de dados entre vários servidores de banco de dados em um cluster. No caso de um servidor primário de banco de dados no cluster experienciar um problema, outro servidor de banco de dados ainda fornecerá os dados necessários pelos usuários mesmo com a falha.

A redundância elimina um ponto único de falha e garante que há 99,999% de disponibilidade de serviços e aplicativos. O cluster também fornece balanceamento de carga entre servidores e garante que a carga de trabalho seja equitativamente distribuída e que nenhum servidor seja sobrecarregado.

2. Escalabilidade em Nuvem

Outra característica marcante da computação em nuvem é a escalabilidade. A escalabilidade é a capacidade de ajustar recursos em nuvem de acordo com as demandas que mudam. Em outras palavras, você pode aumentar ou diminuir recursos sem interromper o funcionamento dos serviços ou o tempo de inatividade.

Supondo que você esteja gerenciando um blog que começa a receber visitas e tráfego. Você pode facilmente adicionar mais recursos de computação, como armazenamento, RAM e CPU, à sua instância de computação em nuvem para lidar com a carga de trabalho adicional. Por outro lado, você pode dimensionar para baixo os recursos quando necessário. Isto garante que você pague apenas pelo que precisa e reforça as economias de escala que o cloud oferece.

A escalabilidade é dupla: A escalada vertical e a escalada horizontal.

Escala Vertical

Também conhecida como ‘aumentar a escala‘, a escalada vertical envolve adicionar mais recursos, como RAM, armazenamento e CPU, à sua instância de computação em nuvem para acomodar a carga de trabalho adicional. Isto é o equivalente a desligar seu computador físico ou servidor para atualizar a RAM ou adicionar um disco rígido extra ou SSD.

Escala Horizontal

A escalada horizontal, também conhecida como ‘diversificar a escala‘, envolve adicionar mais servidores à sua pool de servidores existentes para garantir a distribuição da carga de trabalho entre múltiplos servidores. Com a escalada horizontal, você não está limitado pela capacidade de um único servidor, ao contrário da escalada vertical. Isso fornece mais escalabilidade e menos tempo de inatividade.

A escalada para fora é mais desejável em comparação com a escalada para cima.

E aqui é a razão. Com escalamento horizontal, você basicamente está adicionando mais recursos, como servidores ou armazenamento, ao seu conjunto de recursos já existente. Isso permite que você combine o poder e desempenho de múltiplas instâncias de computação em uma única, obtendo assim melhor desempenho em comparação com apenas adicionar recursos a um único servidor. Servidores adicionais implicam que você não terá que lidar com um déficit de recursos.

Além disso, escalamento horizontal fornece redundância e tolerância a falhas de modo que até mesmo se um servidor for afetado, o restante continuará fornecendo acesso aos serviços necessários. Escalamento vertical está associado a um único ponto de falha. Se a instância de computação falha, tudo o resto cai com ela.

Escalamento horizontal também oferece máxima flexibilidade em comparação com escalamento vertical, onde as aplicações são construídas como uma única unidade grande. Isso torna mais difícil gerenciar, atualizar ou mudar seções de código sem ter que reiniciar todo o sistema. A escalada para fora permite a desacoplagem das aplicações e permite a atualização sem problemas com pouco downtime.

3. Desempenho do Cloud

Assegurar que o desempenho das aplicações atenda às demandas dos clientes pode ser uma tarefa muito difícil, especialmente se você tiver vários componentes situados em ambientes diferentes que precisam se comunicar constantemente uns com os outros.

Questões como latência provavelmente se manifestarão e impactarão o desempenho. Além disso, não é fácil prever o desempenho onde os recursos são compartilhados por várias entidades. Independentemente disso, você ainda pode alcançar alto desempenho e se manter à tona implementando as seguintes medidas.

1. Instância na Nuvem

Certifique-se de usar as instâncias na nuvem certas com recursos suficientes para lidar com as cargas de trabalho de suas aplicações e serviços. Para aplicações intensivas em recursos, certifique-se de provisionar RAM, CPU e recursos de armazenamento suficientes para sua instância na nuvem para evitar um possível déficit de recursos.

2. Balanceador de Carga

Implemente um balanceador de carga para distribuir equitativamente o tráfego de rede entre seus recursos. Isso garantirá que nenhuma de suas aplicações seja sobrecarregada pela demanda. Suponha que seu servidor web esteja recebendo muito tráfego que esteja causando atrasos e impactando o desempenho.

A perfect solution would be to implement horizontal scaling with a total of 4 web servers sitting behind a load balancer. The load balancer will distribute network traffic across the 4 web servers and ensure none is overwhelmed by the workload.

3. Caching

Use soluções de cache para acelerar o acesso a arquivos pelas aplicações. Os caches armazenam dados frequentemente lidos e, portanto, eliminam constantes consultas de dados que podem impactar o desempenho. Eles reduzem a latência e a carga de trabalho, pois os dados já estão em cache, melhorando assim os tempos de resposta.

O cache pode ser implementado em vários níveis, como o nível da aplicação, o nível do banco de dados. As ferramentas de cache populares incluem o Redis, o Memcached e o cache do Varnish.

4. Monitoramento de Desempenho

Por último, certifique-se de monitorar o desempenho de seus servidores e aplicações. Os provedores de nuvem fornecem ferramentas nativas que podem ajudá-lo a ficar de olho em seus servidores de nuvem a partir de um navegador da web.

Você pode instalar ferramentas de monitoramento gratuitas e de código aberto que podem ajudá-lo a acompanhar suas aplicações e servidores. Exemplos dessas aplicações incluem Grafana, Netdata e Prometheus, para citar alguns.

Conclusão

Não podemos enfatizar o suficiente como a disponibilidade, escalabilidade e desempenho são cruciais na nuvem. Os três fatores determinam a qualidade do serviço que você obterá do seu fornecedor de nuvem e, em última análise, traçam a linha entre o sucesso ou fracasso do seu negócio.

Source:
https://www.tecmint.com/cloud-availability-performance-and-scalability/