Usando a Elasticidade de Recursos em Nuvem para Aumentar o Desempenho de Aplicações Pipeline

  • Rodrigo da Rosa Righi UNISINOS
  • Mateus Aubin UNISINOS
  • Cristiano A. da Costa UNISINOS
  • Guilherme Galante UNIOESTE

Resumo


Embora ofereça benefícios claros para aplicações Web, o uso da elasticidade em nuvem ainda impõe desafios ao tentar usá-la em aplicações complexas como aquelas modeladas em pipeline. Isso acontece porque a técnica de replicação, que é padrão na reorganização de recursos, normalmente não trata o paralelismo em nível de tarefas e comunicação entre VMs replicadas. Neste contexto propomos um modelo chamado Elastipipe para fornecer elasticidade automática sobre aplicações baseadas em linhas de montagem, ou pipelines. A contribuição de Elastipipe consiste num arcabouço projetado para oferecer o conceito de pipeline superescalar flexível, no qual operações de elasticidade e balanceamento de carga são realizadas sobre diferentes unidades de elasticidade. Uma unidade de elasticidade se refere a um conjunto de um ou mais estágios, os quais são agrupados sob as mesmas regras de elasticidade. Usando a carga de trabalho de uma empresa brasileira, o protótipo apresentou ganhos de desempenho de até 60% quando comparado com uma execução não elástica.

Referências

Ali-Eldin, A., Tordsson, J., and Elmroth, E. (2012). An adaptive hybrid elasticity controller for cloud infrastructures. In Network Operations and Management Symposium (NOMS), 2012 IEEE, pages 204–212.

Baliga, J., Ayre, R., Hinton, K., and Tucker, R. (2011). Green cloud computing: Balancing energy in processing, storage, and transport. Proceedings of the IEEE, 99(1):149–167.

Dustdar, S., Guo, Y., Han, R., Satzger, B., and Truong, H.-L. (2012). Programming directives for elastic computing. Internet Computing, IEEE, 16(6):72–77.

Farokhi, S., Jamshidi, P., Brandic, I., and Elmroth, E. (2015). Self-adaptation challenges for cloud-based applications : A control theoretic perspective. In 10th International Workshop on Feedback Computing (Feedback Computing 2015). ACM.

Herbst, N. R., Kounev, S., Weber, A., and Groenda, H. (2015). Bungee: An elasticity benchmark for self-adaptive iaas cloud environments. In Proc. Int. Symp. Software Engineering for Adaptive and Self-Managing Systems, SEAMS ’15, pages 46–56, IEEE.

Imai, S., Chestna, T., and Varela, C. A. (2012). Elastic Scalable Cloud Computing Using Application-Level Migration. In 2012 IEEE Fifth International Conference on Utility and Cloud Computing, pages 91–98, Honolulu. IEEE.

Islam, S., Keung, J., Lee, K., and Liu, A. (2012). Empirical prediction models for adaptive resource provisioning in the cloud. Future Gener. Comput. Syst., 28(1):155–162.

Jahn, J., Pagani, S., Kobbe, S., Chen, J.-J., and Henkel, J. (2013). Optimizations for configuring and mapping software pipelines in many core systems. In Proc. Annual Design Automation Conference, DAC ’13, pages 130:1–130:8, ACM.

Jamshidi, P., Ahmad, A., and Pahl, C. (2014). Autonomic resource provisioning for cloudbased software. In Proc. of the 9th Int. Symp. on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2014, pages 95–104, ACM.

Loff, J. and Garcia, J. (2014). Vadara: Predictive Elasticity for Cloud Applications. In 2014 IEEE 6th International Conference on Cloud Computing Technology and Science, pages 541–546, Singapore. IEEE.

Marshall, P., Keahey, K., and Freeman, T. (2010). Elastic Site: Using Clouds to Elastically Extend Site Resources. In 2010 10th IEEE/ACM International Conference on Cluster, Cloud and Grid Computing, pages 43–52, Melbourne. IEEE.

Martin, P., Brown, A., Powley, W., and Vazquez-Poletti, J. L. (2011). Autonomic management of elastic services in the cloud. In 2011 IEEE Symposium on Computers and Communications (ISCC), pages 135–140, Kerkyra. IEEE.

Namiot, D. and Sneps-Sneppe, M. (2014). On Micro-services Architecture. International Journal of Open Information Technologies, 2(9):24–27.

Newman, S. (2015). Building Microservices. O’Reilly Media, Inc., Sebastopol.

Rajan, D., Canino, A., Izaguirre, J. A., and Thain, D. (2011). Converting a high performance application to an elastic cloud application. In Proc. Int. Conf. on Cloud Computing Technology and Science, CLOUDCOM ’11, pages 383–390, IEEE.

Raveendran, A., Bicer, T., and Agrawal, G. (2011). A framework for elastic execution of existing mpi programs. In Parallel and Distributed Processing Workshops and Phd Forum (IPDPSW), 2011 IEEE International Symposium on, pages 940–947.

Righi, R., Rodrigues, V., Andre daCosta, C., Galante, G., Bona, L., and Ferreto, T. (2015). Autoelastic: Automatic resource elasticity for high performance applications in the cloud. Cloud Computing, IEEE Transactions on, PP(99):1–1.

Tran, N.-L., Skhiri, S., and Zimányi, E. (2011). EQS: An Elastic and Scalable Message Queue for the Cloud. In 2011 IEEE Third International Conference on Cloud Computing Technology and Science, pages 391–398, Athens. IEEE.

Zhang, X., Jeong, S., Kunjithapatham, A., and Gibbs, S. (2010). Towards an Elastic Application Model for Augmenting Computing Capabilities of Mobile Platforms. In Lecture Notes of the Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering, volume 48, pages 161–174. Springer, Heidelberg.
Publicado
04/07/2016
RIGHI, Rodrigo da Rosa; AUBIN, Mateus; DA COSTA, Cristiano A.; GALANTE, Guilherme. Usando a Elasticidade de Recursos em Nuvem para Aumentar o Desempenho de Aplicações Pipeline. In: WORKSHOP EM DESEMPENHO DE SISTEMAS COMPUTACIONAIS E DE COMUNICAÇÃO (WPERFORMANCE), 15. , 2016, Porto Alegre. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2016 . p. 2782-2793. ISSN 2595-6167. DOI: https://doi.org/10.5753/wperformance.2016.9725.