Cloud Function Marketplaces as Enablers of Serverless Computing Communities

In April 2017 we had announced work on an open marketplace for cloud functions, lambdas and other serverless application artefacts and launched a first static website at Github Pages. The project was sidelined, but in January 2018 we made the implementation called Function Hub publicly available and have since been running a stateless dynamic demo instance with the backend running Snafu in passive mode in our APPUiO Swiss Container Platform account. You can use any deployment tool (awscli, wsk, gcloud) to submit your cloud functions and make them available globally.

It took Amazon a bit longer until February 2018 to announce their AWS Serverless Application Repository but of course there it is now with, at the time of writing, 181 entries. We assume that it will grow rapidly and developers will very much rely on it in the future, similarly to how Docker Hub has become an essential ingredient for modern application development, and see the need for researchers to (1) gain insight into cloud function marketplace usage, (2) propose superior designs, and (3) from an applied perspective of strengthening the economies of souvereign countries, assist in developing viable alternatives. This blog post therefore briefly discusses our state of function hub design and prototypical architecture which is shared work with the Distributed Systems and Parallel Computing research group at Itaipu Technology Park, Paraguay.

Continue reading

SPLab Colloquium on Robust Modern API Design

In the second invited talk in our colloquium series in 2018, Alan Sill from Texas Tech University’s Cloud and Autonomic Computing Center shared his views on how to manage data centres the right way. In the talk «Topics in robust modern API design for data center control and scientific applications», many issues were pointed out whose proper solution will effect the whole cloud stack up to the way cloud-native applications are designed and equipped with deep self-management capabilities. Both the talk and the mixed-in debates are captured by this blog post.

Continue reading

Portable Cloud Functions for Future-Proof Software Applications

Ever since the inception of cloud computing as a widespread phenomenon over a decade ago, the issue of API and data structure variety across providers has become a major hurdle to multi-cloud applications. Even in the most recent services such as Function-as-a-Service (FaaS) offerings to build so-called serverless applications, the issue repeats itself with each provider pushing for their own management interfaces and accepted function definitions.

Yessica Bogado and Walter Benítez from Itaipu Technology Park, currently visiting the Service Prototyping Lab at Zurich University of Applied Sciences, are among the active researchers who tackle such practical problems from the perspective of engineering software applications based on microservices. In the park’s distributed systems and parallel computing research team led by Fabio López Pires, they are witnessing first hand the increasing issues of local software and service providers to keep up with cloud trends. Appropriate tooling can therefore help to alleviate the issues. This blog post describes one such tool, the FaaS converter, which has emerged from their applied research. Continue reading

SPLab Colloquium on Serverless Scientific Computing

Maciej Malawski from AGH University of Science and Technology in Kraków, Poland, visited us today to give a colloquium talk titled «Can we use Serverless Architectures and Highly-elastic Cloud Infrastructures for Scientific Computing?» and to discuss research around the wider topics of workflows and cloud function compositions. This post summarises the talk and the subsequent discussion mixed with further general reflections on the state of serverless applications.

Continue reading

Extending Web Applications with Cloud Functions

The discourse on cloud functions focuses heavily on diverse use cases: Standalone functions to perform a certain functionality, compositions of functions into complete applications, and functions as plumbing between separate application parts. This blog post intends to explore the use of cloud functions as extensibility mechanism for existing applications. It exemplifies the interaction between a function, a website and a login-protected web application and furthermore discusses implementation aspects and the notion of caching data in function instances.

Continue reading

Probabilistically Stateful Serverless Web Applications

Among the lectures offered by the Service Prototyping Lab is Scripting. Aimed at students of advanced studies, it teaches essential practical programming skills and conveys approaches how to automate the exploration of data retrieved from the Internet. Python is taught as programming languages and consequently a Python (Django) web application has thus far been used to automatically score the results submitted by students of a particular advanced task towards the end of the lecture. There’s nothing wrong with Django per se, but its roots have evidently been in the era of monolithic web applications. Armored with our Function-as-a-Service experience we decided to drop it and go purely serverless. In production.

Continue reading

Termite. A Java library for the selective “Lambdafication” of applications.

Introducing selective Lambdafication

“Lambdafication” is the automated transformation of source code to make it run on AWS Lambda. It is a provider-specific flavour of generic “FaaSification” which is our ultimate research goal. With our Lambdafication tooling, we offer application engineers today the possibility to step into the serverless world without much effort, and leave the more challenging research tasks for the summer time.

Continue reading

Research Directions for FaaS

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.

Continue reading

Running Google Cloud Functions in OpenShift

Have you created a highly popular and frequently used JavaScript (Node.js) functions for execution in Google Cloud Functions? In this case, the economics of FaaS turn against you due to the per-invocation pricing. You might want to have more options for both testing the same function locally and for deploying it into an environment with fixed monthly pricing. This blog post explains step-by-step how to migrate functions from FaaS environments into a fixed per-month pricing container environment. The running example will be Node.js functions running in Google Cloud Functions albeit the procedure is similarly applicable to other combinations.

Continue reading

Snafu – The Swiss Army Knife of Serverless Computing

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.

Continue reading