Pesquisa de site

LFCA: Aprenda sobre disponibilidade, desempenho e escalabilidade da nuvem – Parte 14


No tópico anterior de nossa série LFCA, fizemos uma introdução à computação em nuvem, aos diferentes tipos de nuvens e aos serviços em nuvem e orientamos você em alguns dos benefícios associados à computação em nuvem.

Se sua empresa ainda utiliza o ambiente de computação de TI tradicional, é hora de você subir de nível 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 melhor desempenho, alta disponibilidade e escalabilidade. Na verdade, consideramos isso um dos principais benefícios do uso da tecnologia em nuvem.

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

1. Disponibilidade em nuvem

Os aplicativos e serviços de TI de uma organização são críticos e qualquer interrupção nos serviços pode ter um efeito profundo nas receitas. A expectativa dos clientes é que os serviços estejam acessíveis 24 horas por dia, a qualquer hora e em qualquer local. E é isso que a tecnologia Cloud busca proporcionar.

A alta disponibilidade é o objetivo final da computação em nuvem. Procura fornecer o máximo tempo de atividade possível dos serviços de uma empresa, mesmo diante de interrupções que podem ser ocasionadas por tempos de inatividade sem precedentes do servidor ou degradação da rede.

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

Quando um servidor fica inativo, o restante ainda pode continuar funcionando e fornecendo os serviços fornecidos pelo servidor afetado. Um exemplo perfeito de redundância é a replicação de dados em vários servidores de banco de dados em um cluster. Caso o servidor de banco de dados primário no cluster enfrente um problema, outro servidor de banco de dados ainda fornecerá os dados exigidos pelos usuários, apesar da falha.

A redundância elimina um único ponto de falha e garante 99,999% de disponibilidade de serviços e aplicações. O clustering também fornece balanceamento de carga entre servidores e garante que a carga de trabalho seja distribuída de maneira equitativa e que nenhum servidor fique sobrecarregado.

2. Escalabilidade da nuvem

Outra marca registrada da computação em nuvem é a escalabilidade. Escalabilidade é a capacidade de ajustar os recursos da nuvem para atender às demandas em constante mudança. Simplificando, você pode aumentar ou diminuir os recursos conforme e quando necessário para atender à demanda, sem comprometer a qualidade dos serviços ou o tempo de inatividade.

Suponha que você tenha um blog que está começando a receber acessos e mais tráfego. Você pode adicionar facilmente 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 reduzir os recursos quando necessário. Isso garante que você pague apenas pelo que precisa e ressalta as economias de escala que a nuvem oferece.

A escalabilidade é dupla: escala vertical e escala horizontal.

Escala Vertical

Também conhecido como ‘escalonamento’, o escalonamento vertical envolve a adição de mais recursos, como RAM, armazenamento e CPU, à sua instância de computação em nuvem para acomodar carga de trabalho adicional. Isso equivale a desligar seu PC ou servidor físico para atualizar a RAM ou adicionar um disco rígido ou SSD extra.

Dimensionamento horizontal

O escalonamento horizontal, também conhecido como ‘escalonamento’, envolve a adição de mais servidores ao seu conjunto de servidores pré-existentes para garantir a distribuição da carga de trabalho entre vários servidores. Com o dimensionamento horizontal, você não fica limitado à capacidade de um único servidor, ao contrário do dimensionamento vertical. Isso fornece mais escalabilidade e menos tempo de inatividade.

A expansão é mais desejável em comparação com a expansão

E aqui está o porquê. Com o escalonamento horizontal, você basicamente adiciona mais recursos, como servidores ou armazenamento, ao seu conjunto de recursos já existente. Isso permite combinar o poder e o desempenho de várias instâncias de computação em uma só e, assim, obter melhor desempenho em vez de apenas adicionar recursos em um único servidor. Servidores adicionais significam que você não terá que lidar com déficit de recursos.

Além disso, o escalonamento horizontal fornece redundância e tolerância a falhas de tal maneira que, mesmo que um servidor seja afetado, os demais continuarão a fornecer acesso aos serviços necessários. O escalonamento vertical está associado a um único ponto de falha. Se a instância de computação travar, tudo irá falhar com ela.

O escalonamento horizontal também oferece flexibilidade máxima, em oposição ao escalonamento vertical, onde os aplicativos são criados como uma unidade grande. Isso torna mais desafiador gerenciar, atualizar ou alterar seções de código sem precisar reinicializar todo o sistema. A expansão permite a dissociação de aplicativos e uma atualização contínua com tempo de inatividade mínimo.

3. Desempenho na nuvem

Garantir que o desempenho do aplicativo atenda às demandas dos clientes pode ser uma tarefa bastante difícil, especialmente se você tiver vários componentes em ambientes diferentes que precisam se comunicar constantemente entre si.

É provável que problemas como a latência se manifestem e afetem o desempenho. Além disso, não é fácil prever o desempenho quando os recursos são compartilhados por diversas entidades. Independentemente disso, você ainda pode alcançar alto desempenho e se manter à tona implementando as medidas a seguir.

1. Instância de nuvem

Certifique-se de usar as instâncias de nuvem certas com recursos suficientes para lidar com as cargas de trabalho de seus aplicativos e serviços. Para aplicativos com uso intensivo de recursos, certifique-se de provisionar RAM, CPU e recursos de armazenamento suficientes para sua instância de 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 nenhum de seus aplicativos seja sobrecarregado pela demanda. Suponha que seu servidor web esteja recebendo muito tráfego, causando atrasos e afetando o desempenho.

Uma solução perfeita seria implementar o escalonamento horizontal com um total de 4 servidores web atrás de um balanceador de carga. O balanceador de carga distribuirá o tráfego de rede pelos quatro servidores web e garantirá que nenhum deles fique sobrecarregado pela carga de trabalho.

3. Cache

Use soluções de cache para acelerar o acesso aos arquivos pelos aplicativos. Os caches armazenam dados lidos com frequência e, assim, eliminam pesquisas constantes de dados que podem afetar o desempenho. Eles reduzem a latência e a carga de trabalho, pois os dados já estão armazenados em cache, melhorando assim os tempos de resposta.

O cache pode ser implementado em vários níveis, como nível de aplicativo e nível de banco de dados. Ferramentas de cache populares incluem cache Redis, Memcached e Varnish.

4. Monitoramento de desempenho

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

Além disso, você pode tomar sua própria iniciativa e instalar ferramentas de monitoramento gratuitas e de código aberto que podem ajudá-lo a manter o controle sobre seus aplicativos e servidores. Exemplos de tais aplicações incluem Grafana, Netdata e Prometheus, para citar alguns.

Conclusão

Não podemos enfatizar o suficiente como a disponibilidade, o dimensionamento e o 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 o fracasso do seu negócio.