Isolamento de Recursos na Nuvem –
Por que isso e tao importante?
Rodrigo Albani de Campos – [email protected]
Não restam dúvidas quanto à evolução na capacidade e na qualidade do hardware atualmente
utilizado como servidores para os mais diversos serviços, ao ponto de hoje em dia ser
extremamente comum utilizar aquilo que era chamada de “plataforma baixa” para serviços
críticos.
Isso fez com que o profissional de TI passasse a assumir algumas coisas como garantidas, sem
se preocupar ou exigir certas garantias do fornecedor de infraestrutura.
Uma dessas coisas é a capacidade de leitura e escrita em disco dos equipamentos. Salvo
algumas condições muito específicas a maioria dos equipamentos entrega desempenho
suficiente e de forma consistente para a aplicação.
Mesmo quando o desempenho não era o esperado, pelo menos o comportamento era
constante, ou seja, ou funcionava a contento ou simplesmente não atendia.
A virtualização da infraestrutura e em um segundo momento a computação em nuvem
colocaram em cheque diversos aspectos da operação de sistemas que eram paradigmas
estabelecidos. Um desses aspectos é o fato do equipamento (servidor) geralmente ser
utilizado exclusivamente por um usuário ou por uma aplicação, trabalhando de forma
dedicada.
Na nuvem não apenas o servidor, mas potencialmente toda a infraestrutura está sendo
utilizada por diversos usuários. Isso tem um impacto direto na maneira como o engenheiro de
sistemas ou o desenvolvedor colocam suas aplicações em produção.
Desde a fase de concepção do UOL Cloud duas grandes preocupações nortearam o
desenvolvimento da arquitetura no que tange aos recursos de cada uma das máquinas:
1. Garantir um nível de qualidade que oferecesse uma experiência positiva para nossos
clientes, com um desempenho constante e consistente;
2. Garantir que nenhum usuário fosse afetado pela utilização de recursos dos demais,
oferecendo um isolamento total da infraestrutura.
Claro que isso deveria ser a preocupação básica de todo provedor de infraestrutura, mas em
geral isso é ignorado e até mesmo menosprezado pela maioria.
Isolamento de recursos na nuvem
1
Estudo de provedores de Cloud
Para evidenciar isso foi realizado um teste, medindo o desempenho de escrita em disco. A
escrita em disco é importante para diversas aplicações, principalmente as que têm de lidar
com informações em disco, como por exemplo, bancos de dados.
Nesses testes o esperado é um comportamento constante e consistente, para que o
desenvolvedor saiba exatamente como sua aplicação irá se comportar, a exemplo do que pode
ser observado no gráfico abaixo, que representa o comportamento de escrita em disco de um
servidor hospedado no UOL Cloud.
Chamadas de escrita por segundo
Chamadas de escrita por segundo
UOL Cloud
300
250
200
150
100
50
0
0:00
2:24
4:48
7:12
9:36
12:00
14:24
16:48
19:12
21:36
0:00
Hora do dia
O teste realizado no UOL Cloud demonstra um comportamento estável durante todo o dia,
com uma média de 273 requisições de escrita por segundo e pouca variação.
Esse comportamento é garantido pela preocupação do UOL Cloud em não fazer o overbooking
de recursos na sua infraestrutura, além de utilizar recursos tecnológicos avançados para
garantir que uma máquina não interfira no comportamento da outra.
O mesmo teste quando realizado em outros provedores de Cloud demonstra um
comportamento muito diferente.
Isolamento de recursos na nuvem
2
Chamadas de escrita por segundo
Provedor Cloud A
Chamadas de escrita por segundo
250
200
150
100
50
0
0:00
2:24
4:48
7:12
9:36
12:00
14:24
16:48
19:12
21:36
0:00
Hora do dia
O desempenho médio ficou em 156 requisições de escrita por segundo, mas o mais grave é o
fato do comportamento ser completamente instável, de tal forma que o usuário não sabe
qual o comportamento que ele pode esperar do seu provedor de infraestrutura.
Percebam ainda a queda brusca no desempenho de escrita em torno de 03:00, causado por
algum fator desconhecido e totalmente independente da máquina do usuário.
Essa instabilidade pode induzir ao erro, fazendo com que se contratem menos recursos do que
os realmente necessários para a aplicação, ou ainda que se contratem recursos de sobra,
gerando custo desnecessário.
Em outro provedor de Cloud Público os resultados foram similares, porém com um pouco
menos de variação, e com uma média de 198 chamadas de escrita por segundo.
Isolamento de recursos na nuvem
3
Chamadas de escrita por segundo
Chamadas de escrita por segundo
Provedor Cloud B
350
300
250
200
150
100
50
0
0:00
2:24
4:48
7:12
9:36
12:00
14:24
16:48
19:12
21:36
0:00
Hora do dia
Outro dado relevante verificado no Provedor B foi a degradação ocorrida ao longo do tempo.
Em uma experiência, o mesmo teste de escrita foi realizado durante uma semana no mês de
Fevereiro de 2012. A máquina então foi desativada por dois meses e um novo teste foi
realizado utilizando os mesmos parâmetros.
O desempenho de escrita observado em Fevereiro teve uma média de 231 chamadas por
segundo, porém o mesmo teste, realizado nas mesmas circunstâncias em Maio resultou em
uma média de 137 chamadas por segundo.
Chamadas de escrita por segundo
Desempenho médio de escrita
Provedor Cloud B
250
200
150
100
50
0
Fevereiro
Maio
232
137
Chamadas/s
Isolamento de recursos na nuvem
4
Todos os testes foram realizados em máquinas virtuais com configurações similares.
Conclusão
Ao avaliar e escolher um provedor de Cloud é de suma importância que se entenda o que de
fato está sendo entregue e qual o compromisso do provedor com o desempenho.
Quando não existe um mínimo de garantia quanto a qualidade do serviço e desempenho do
ambiente o dimensionamento se torna praticamente impossível, e em um ambiente em que
se paga pela utilização o planejamento é essencial. Basta imaginar uma situação em que não
se sabe qual será o comportamento e desempenho de um banco de dados ou de um servidor
de aplicação para se compreender a importância na previsibilidade do desempenho.
Atualmente a maioria dos provedores se preocupa em entregar um desempenho “eventual”,
ao invés de um comportamento consistente e constante, que permita para o cliente o correto
dimensionamento e aproveitamento de sua infraestrutura.
O UOL Cloud se compromete em entregar excelência em seus serviços, utilizando
equipamentos e tecnologia de ponta e amparado pela melhor e mais moderna infraestrutura
de Data Center do País. Isso permite que se ofereça um desempenho superior por um custo
fixo e conhecido, sem deixar de lado a estabilidade.
Isolamento de recursos na nuvem
5
Download

Isolamento de Recursos na Nuvem