Dedico este trabalho à minha família, por sua capacidade de acreditar e investir em mim. Mãe, seu cuidado e dedicação foi que deram, em alguns momentos, a esperança para seguir. Pai, sua presença significou segurança e certeza de que não estou sozinho nessa caminhada.iv
AgradecimentosAgradeço primeiramente a Deus por ter me dado saúde e força para superar as dificuldades.A minha orientadora Aletéia, pelo suporte no desenvolvimento deste trabalho, pelos incentivos, correções e puxões de orelha durante todo este processo, não somente por ter me ensinado, mas por ter me feito aprender, meus sinceros agradecimentos.A minha mãe, que me deu apoio e incentivo nas horas difíceis, de desânimo e abatimento. Ao meu pai que apesar de todas as dificuldades sempre esteve ao meu lado me dando conselhos e sempre servindo de inspiração. Meus eternos agradecimentos.Aos meus colegas do laboratório LABID, em especial ao Breno, que estiveram comigo durante toda essa batalha, e a todos que direta ou indiretamente fizeram parte desta caminhada, o meu muito obrigado. v
ResumoCom a constante evolução das aplicações, surgiu a necessidade de se ter um ambiente no qual fosse possível processar aplicações de forma dinâmica, escalável e sob demanda. Assim, emergiu a plataforma de computação em nuvem. Nesse ambiente, os recursos são alocados conforme a demanda de utilização. Para que seja possível um aumento/decréscimo escalar no número de recursos, a característica de elasticidade é fundamental. A elasticidade é definida como a capacidade da nuvem de se adaptar às alterações na quantidade de recursos ou de solicitar/liberar recursos de acordo com a necessidade. Nesse cenário, aplicações científicas, tais como as de Bioinformática, tem se beneficiado do conceito de nuvens pela sua característica de tratar grandes quantidades de dados, que demandam significativas quantidades de recursos computacionais. Neste cenário de execuções longas com grande número de recursos a elasticidade possibilita um uso mais adequado da nuvem, alocando os recursos somente nos momentos que são necessários. Assim sendo, este trabalho propõe uma arquitetura de um Controlador de Elasticidade para nuvens federadas, que seja capaz de provisionar/desprovisionar máquinas virtuais nas diversas nuvens da federação, além de também ser capaz de aumentar/diminuir a capacidade computacional de cada um dos recursos de maneira automática.