Resilient Computing in the Clouds

Resumo do projecto

A computação em cloud é uma abordagem recente para o fornecimento de recursos computacionais, de rede e de armazenamento através da internet. Esta virtualização de recursos permite às empresas desfrutar de escalabilidade e pagamento por uso, ou seja, permite não fazerem investimentos enormes nestes recursos considerando o pior caso de utilização, dado que os podem obter dinamicamente de um fornecedor de cloud, pagando apenas por aquilo de que precisam. O fornecedor não precisa de considerar o pior caso de cada cliente porque os recursos são partilhados por um elevado número deles. Em Portugal existe actualmente um grande interesse por parte de médias e grandes empresas em usarem computação em cloud para reduzirem o investimento em equipamento informático. No entanto, a ideia de ter os dados e serviços localizados na infraestrutura de outra empresa gera preocupações em termos de segurança e confiabilidade. Estas preocupações impedem muitas empresas de aderirem à computação em cloud.

Este projecto tem por objectivo lidar com o desafio de melhorar a segurança e confiabilidade dos serviços de computação em cloud usando técnicas recentes que têm sido investigadas sob designações como resiliência ou tolerância a faltas bizantinas, que designamos por tolerância a intrusões ou InTol. A InTol tem sido alvo de muita investigação nos últimos anos porque pode ser usada para obter tanto tolerância a faltas como segurança adicional. A InTol baseia-se na ideia de que sistemas complexos não podem ser tornados inteiramente seguros. No entanto, do mesmo modo que para faltas acidentais, o sistema pode ser projectado de modo a tolerar ataques e intrusões nas suas componentes, continuando o sistema como um todo a satisfazer as propriedades de disponibilidade, integridade e confidencialidade. Uma abordagem comum consiste em usar a aproximação das máquinas de estados para correr um serviço em vários servidores de tal modo que, mesmo que alguns sejam comprometidos, o serviço como um todo permaneça correcto.

A InTol pode ser útil em computação em cloud a dois níveis. Dentro da cloud (nível intra-cloud), pode ser usada pelo fornecedor de cloud ou pelos utilizadores para concretizarem serviços críticos altamente resilientes. Um exemplo destes serviços que o projecto vai considerar como prova de conceito são os serviços de coordenação, que são hoje componentes fundamentais nesses ambientes (p.ex. Chubby da Google e Zookeeper da Yahoo!). Estes serviços são vitais para a operação de dezenas de aplicações nas clouds actuais, logo melhorar a sua resiliência tem um impacto directo na resiliência da cloud. No entanto, várias empresas detentoras de clusters de máquinas gigantescos são relutantes em usar InTol por algumas razões: mau desempenho (não é verdade); instabilidade dos protocolos que pode levar a tempestades de multicasts e a flutuações de carga caóticas (verdade).

No segundo nível, inter-cloud, a ideia é os utilizadores de cloud melhorarem a resiliência dos seus recursos replicando-os em diversas clouds. Isto coloca um novo conjunto de problemas. P.ex., congestão e falhas de ligações na internet podem ter um impacto negativo na qualidade de serviço obtida.

O projecto irá lidar com estes desafios e fazer contribuições nas seguintes áreas:

Primeiro, o projecto irá investigar e projectar protocolos de replicação intra-cloud tolerantes a intrusões que sejam eficientes e estáveis, e mostrar como podem ser usados para concretizar um serviço de coordenação resiliente. O principal desafio consiste em obter estabilidade evitando o potencial para tempestades de multicast e a tendência para flutuações de carga dos protocolos actuais, obtendo em simultâneo bom desempenho (latência baixa, débito alto). O projecto vai considerar as seguintes abordagens para atingir este objectivo: uso de uma combinação de técnicas como detectores de falhas, aleatorização e oráculos de ordenação para obter estabilidade; uso de pequenos componentes seguros para restringir o poder das réplicas falhadas de causarem desacordo; uso de diferentes protocolos para concretizar cada uma das operações do serviço de coordenação, em vez de uma solução única para tudo.

Segundo, o projecto vai investigar e projectar protocolos de replicação inter-cloud tolerantes a intrusões que sejam eficientes e estáveis. O principal desafio é melhorar a resiliência dos protocolos actuais perante instabilidades e indisponibilidades de parte da rede de larga escala que interliga as clouds. Além disso, reduzir o número de réplicas é extremamente importante devido ao custo de cada cloud adicional. O projecto vai explorar as seguintes abordagens com este objectivo: roteamento de nível aplicação (baseado em redes overlay) para desviar o tráfego para rotas operacionais e menos congestionadas; conexão de cada cloud a mais do que um fornecedor de serviço de rede (multihomming) de modo a tolerar falhas críticas em alguns deles.

 

Home