Serverless computing is an emerging cloud computing paradigm that has been applied to various domains, including machine learning, scientific computing, video processing, etc. To develop serverless computing-based software applications (a.k.a., serverless applications), developers follow the new cloud-based software architecture, where they develop event-driven applications without the need for complex and error-prone server management. The great demand for developing serverless applications poses unique challenges to software developers. However, Software Engineering (SE) has not yet wholeheartedly tackled these challenges. In this paper, we outline a vision for how SE can facilitate the development of serverless applications and call for actions by the SE research community to reify this vision. Specifically, we discuss possible directions in which researchers and cloud providers can facilitate serverless computing from the SE perspective, including configuration management, data security, application migration, performance, testing and debugging, etc.
翻译:无服务器计算是一个新兴的云计算模式,已经应用于各个领域,包括机器学习、科学计算、视频处理等。 为了开发无服务器的基于计算机的软件应用程序(a.k.a.,无服务器应用程序),开发者遵循新的基于云的软件架构,在那里他们开发出由事件驱动的应用程序,而不需要复杂和容易出错的服务器管理。开发无服务器应用程序的巨大需求给软件开发者带来了独特的挑战。然而,软件工程(SE)尚未全心全意地应对这些挑战。在本文中,我们概述了SE如何促进无服务器应用程序的开发的愿景,并呼吁SE研究界采取行动,重塑这一愿景。具体地说,我们讨论了研究人员和云供应商从SE的角度推动无服务器计算的可能方向,包括配置管理、数据安全、应用迁移、性能、测试和调试等。