FaaS, or Function-as-a-Service, is a considerable application engineering trend under observation by the Service Tooling research initiative of the Service Prototyping Lab at Zurich University of Applied Sciences. Yesterday, the lab’s semi-regular open-for-all evening seminar series, Future Cloud Applications, centered around tools for managing the growing FaaS ecosystem. While the open source tools prototypically produced through the initiative are primarily of interest to Swiss software application engineers and cloud providers, the research challenges continuously uncovered by the work are more fundamental and encompass some harder nuts to crack in dedicated research projects. This blog reflects on what has been achieved already and what needs to be accomplished in the next years.
The Service Prototyping Lab at Zurich University of Applied Sciences is committed to advancing the state of technology for bringing applications to the cloud, for the benefit of the society of large in general and of the local industry in particular. This obliges us to closely monitor industrial trends along with academic advances. A hot topic currently found in both is the higher-PaaS-level service class of FaaS, or Function-as-a-Service, which coincides with the marketing term Serverless Computing. We have already contributed analytical work on finding the limits and possibilities of today’s FaaS systems (preprint), and engineering work on translating legacy monolithic code into fine-grained functions (preprint). It was only a matter of time until the limits in both commercially operated FaaS services and open-source FaaS prototypes became too severe for our work. Hence, after a careful analysis of what is available, we decided to come up with an alternative FaaS host process design. The design led to an architecture, and the architecture eventually to an implementation called Snafu. This post presents Snafu and positions it as Swiss Army Knife for situations in which functions should be prototyped, tested or hosted.