Sistema de processamento de pacotes Serverless
Resumo
Serverless é um novo paradigma para computação em nuvem. Neste paradigma usuários apenas implementam o núcleo da aplicação sem preocupar com a infraestrutura. Processamento de funções ocorre em servidores com CPUs x86_x64 utilizando virtualização. Essa abordagem não é eficiente, gera atrasos de processamento e sobrecarrega recursos, aumentando o custo operacional. Neste trabalho é proposto um sistema serverless com offloading em hardware que processa pacotes independente de protocolo via programas C eBPF. Nosso sistema foi implementado sobre NetFPGA SUME. Para melhorar o desempenho do sistema realizamos otimizações de hardware e integramos ao OpenFaaS. Os resultados mostram que o sistema opera em taxa de linha.
Referências
(2016). Barefoot: The world’s fastest and most programmable networks. https://barefootnetworks.com/resources/worlds-fastest-most-programmable-networks/. Acessado em 28/01/2018.
(2016). Xpliant ethernet switch product family. http://www.cavium.com/XPliant-Ethernet-Switch-Product-Family.html. Acessado em 28/01/2018.
(2017). The power of smartnics. https://www.lightreading.com/nfv/nfv-elements/the-power-of-smartnics/d/d-id/738300. Acessado em 08/08/2019.
Aditya, P., Akkus, I. E., Beck, A., Chen, R., Hilt, V., Rimac, I., Satzke, K., and Stein, M. (2019). Will serverless computing revolutionize nfv? Proceedings of the IEEE, 107(4):667–678.
Baldini, I., Castro, P., Chang, K., Cheng, P., Fink, S., Ishakian, V., Mitchell, N., Muthusamy, V., Rabbah, R., Slominski, A., et al. (2017). Serverless computing: Current trends and open problems. In Research Advances in Cloud Computing, pages 1–20. Springer.
Beckett, D., Joubert, J., and Horman, S. (2018). Host dataplane acceleration (hda).
Bosshart, P., Daly, D., Gibb, G., Izzard, M., McKeown, N., Rexford, J., Schlesinger, C., Talayco, D., Vahdat, A., Varghese, G., and Walker, D. (2014). P4: Programming protocol-independent packet processors. SIGCOMM Comput. Commun. Rev., 44(3):87–95.
Bosshart, P., Gibb, G., Kim, H.-S., Varghese, G., McKeown, N., Izzard, M., Mujica, F., and Horowitz, M. (2013). Forwarding metamorphosis: Fast programmable match-action processing in hardware for sdn. In Proceedings of the ACM SIGCOMM 2013 Conference on SIGCOMM, pages 99–110, New York, NY, USA. ACM.
Budiu, M. (2015). Compiling p4 to ebpf.
Choi, S., Shahbaz, M., Prabhakar, B., and Rosenblum, M. (2019). Lambda-nic: Interactive serverless compute on smartnics. In Proceedings of the ACM SIGCOMM 2019 Conference Posters and Demos, SIGCOMM Posters and Demos ’19, pages 151–152, New York, NY, USA. ACM.
Chole, S., Fingerhut, A., Ma, S., Sivaraman, A., Vargaftik, S., Berger, A., Mendelson, G., Alizadeh, M., Chuang, S.-T., Keslassy, I., Orda, A., and Edsall, T. (2017). drmt: Disaggregated programmable switching. In Proceedings of the Conference of the ACM Special Interest Group on Data Communication, SIGCOMM ’17, pages 1–14, New York, NY, USA. ACM.
Dargahi, T., Caponi, A., Ambrosin, M., Bianchi, G., and Conti, M. (2017). A survey on the security of stateful sdn data planes. IEEE Communications Surveys & Tutorials, 19(3):1701–1725.
Duarte, L. F. S. (2019). alpine-ebpf : An alpine-based image for compiling and running ebpf programs. https://hub.docker.com/repository/docker/lucasfsduarte/alpine-ebpf.
Ellis, A. (2016). Openfaas: Serverless functions made simple for docker and kubernates. https://www.openfaas.com/.
Firestone, D. (2017). VFP: A virtual switch platform for host SDN in the public cloud. In 14th USENIX Symposium on Networked Systems Design and Implementation (NSDI 17), pages 315–328, Boston, MA. USENIX Association.
Foundation, T. A. S. (2017). Apache OpenWhisk. http://openwhisk.org/. Acessado em Maio de 2019.
Google (2017). Google Cloud Functions. https://cloud.google.com/functions/. Acessado em Maio de 2019.
Han, S., Jang, K., Panda, A., Palkar, S., Han, D., and Ratnasamy, S. (2015). Softnic: A software nic to augment hardware. Technical Report UCB/EECS-2015-155, EECS Department, University of California, Berkeley.
Hendrickson, S., Sturdevant, S., Harter, T., Venkataramani, V., Arpaci-Dusseau, A. C., and Arpaci-Dusseau, R. H. (2016). Serverless computation with openlambda. In 8th USENIX Workshop on Hot Topics in Cloud Computing (HotCloud 16), pages 1–6, Denver, CO. USENIX Association.
Hennessy, J. L. and Patterson, D. A. (2011). Computer Architecture, Fifth Edition: A Quantitative Approach. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 5th edition.
Ibanez, S., Brebner, G., McKeown, N., and Zilberman, N. (2019). The p4-]netfpga workflow for line-rate packet processing. In Proceedings of the 2019 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, FPGA ’19, pages 1–9, New York, NY, USA. ACM.
Kohler, E., Morris, R., Chen, B., Jannotti, J., and Kaashoek, M. F. (2000). The click modular router. ACM Trans. Comput. Syst., 18(3):263–297.
Li, B., Tan, K., Luo, L. L., Peng, Y., Luo, R., Xu, N., Xiong, Y., Cheng, P., and Chen, E. (2016). Clicknp: Highly flexible and high performance network processing with reconfigurable hardware. In Proceedings of the 2016 ACM SIGCOMM Conference, SIGCOMM ’16, pages 1–14, New York, NY, USA. ACM.
Liu, M., Peter, S., Krishnamurthy, A., and Phothilimthana, P. M. (2019). E3: Energy-efficient microservices on smartnic-accelerated servers. In 2019 {USENIX} Annual Technical Conference ({USENIX}{ATC} 19), pages 363–378.
Microsoft (2017). Azure Functions. https://azure.microsoft.com/en-us/services/functions/. Acessado em Maio de 2019.
Ozdag, R. (2012). Ethernet switch fm6000 series- software defined networking.intel corporation.
Pacífico, R. D., Coelho, G. R., Vieira, M. A., and Nacif, J. A. (2018). Roteador sdn em hardware independente de protocolo com análise, casamento e ações dinâmicas. In Simpósio Brasileiro de Redes de Computadores (SBRC), volume 36.
Pontarelli, S., Bifulco, R., Bonola, M., Cascone, C., Spaziani, M., Bruschi, V., Sanvito, D., Siracusano, G., Capone, A., Honda, M., Huici, F., and Siracusano, G. (2019). Flowblaze: Stateful packet processing in hardware. In 16th USENIX Symposium on Networked Systems Design and Implementation, Boston, MA. USENIX Association.
Services, A. W. (2017). AWS Lambda. https://aws.amazon.com/lambda/. Acessado em Maio de 2019.
Singhvi, A., Banerjee, S., Harchol, Y., Akella, A., Peek, M., and Rydin, P. (2017). Granular computing and network intensive applications: Friends or foes? In Proceedings of the 16th ACM Workshop on Hot Topics in Networks, HotNets-XVI, pages 157–163, New York, NY, USA. ACM.
Sivaraman, A., Cheung, A., Budiu, M., Kim, C., Alizadeh, M., Balakrishnan, H., Varghese, G., McKeown, N., and Licking, S. (2016). Packet transactions: High-level programming for line-rate switches. In Proceedings of the 2016 ACM SIGCOMM Conference, SIGCOMM ’16, pages 15–28, New York, NY, USA. ACM.
Vieira, A. G., Pereira, G. H. A., Freire, J. H. F., Duarte, L. F. S., Pacífico, R. D. G., Pantuza, G., Vieira, M. A. M., Vieira, L. F. M., and Nacif, J. A. M. (2020a). Computação Serverless: Conceitos, Aplicações e Desafios. In Minicursos do XXXVIII Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuıdos (SBRC), Rio de Janeiro, RJ, Brasil. SBC.
Vieira, M. A. M., Castanho, M. S., Pacífico, R. D. G., Santos, E. R. S., Câmara Júnior, E. P. M., and Vieira, L. F. M. (2019). Processamento Rápido de Pacotes com eBPF e XDP. In Minicursos do XXXVII Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuıdos (SBRC), Porto Alegre, RS, Brasil. SBC.
Vieira, M. A. M., Castanho, M. S., Pacífico, R. D. G., Santos, E. R. S., Júnior, E. P. M. C., and Vieira, L. F. M. (2020b). Fast packet processing with ebpf and xdp: Concepts, code, challenges, and applications. ACM Comput. Surv., 53(1).
Xilinx (2010). Virtex-7 family overview.
Xilinx (2011). Axi reference guide.
Zilberman, N., Audzevich, Y., Covington, G. A., and Moore, A. W. (2014). Netfpga sume: Toward 100 gbps as research commodity. IEEE Micro, 34(5):32–41.