In previous blog posts – here and here – we showed how to set up OpenWhisk and deploy a sample application on the platform. We also provided a comparison between the two open-source serverless platforms OpenWhisk and Knative in this blog post. In progressing this work, we shifted focus slightly to that other critical component of realistic serverless platforms, the services that they integrate with – so-called Backend-as-a-service – which are (arguably) more important. For this reason, in this blog post we look at how to integrate widely used databases with Knative and potentially OpenWhisk in future.
Our initial thoughts were to leverage database trigger mechanisms and write components which would listen to these events and publish them to a Kafka bus. Indeed, we started to write code that targeted PostgreSQL to do just that, but then we came across the Debezium project which essentially solves the same problem, albeit not in the same context, but with a much more mature codebase and support for multiple database systems. It didn’t make sense to reinvent the wheel so the objective then turned into how to best integrate Debezium with Knative.
The first four “wild” years of serverless computing, starting with simple Function-as-a-Service (FaaS) launches in 2014, are over, and we are in the fifth year now. All major cloud companies offer FaaS, corresponding Backend-as-a-Service (BaaS), and related “serverless” services such as frameworks for cloud function-based data processing at the edge or in constrained environments. Researchers from universities, research institutes and research divisions in companies have covered this development, and proposed improved systems and frameworks, since 2016 – trailing two years behind industry initially, but with promising designs and prototypes which may give the necessary impetus for a next-generation serverless computing paradigm. We have surveyed 130+ research papers and announce the Serverless Research Output website which makes the results accessible.
Yesterday, we had the opportunity to attend the excellent ServerlessDays Zurich event which brought together folks interested in serverless technologies in Zurich. It was an all day event with 66 folks in attendance.
With interest in serverless computing increasing rapidly, the question of which technology solutions will win is receiving much interest. Although there is significant industrial activity relating to serverless – driven primarily by the AWS Lambda ecosystem – there is a clear need for solutions which are not premised on lock-in to a single provider and which can work across clouds. OpenWhisk and Knative are two technologies which focus on this space – here we consider the relative positioning of these technologies based on our experience working with them.
In two previous blog posts – here and here – we discussed our experience with deploying OpenWhisk on Kubernetes on OpenStack. As applied researchers at the Service Prototyping Lab, we are investigating potential use cases for such setups and for FaaS-based applications in general. In this blog post, we will therefore describe how we built a sample MQTT-based application that shows OpenWhisk in action for sensor data processing for future Internet of Things and smart dust scenarios.
The basic idea of the application is that it consumes data from an MQTT feed, stores it in a database and provides a means to access the database via a web UI. The architecture of the application is shown in the figure below. The application is based on this blog post.
In a previous blog post, we described our experience with deploying OpenWhisk on Kubernetes on OpenStack. During subsequent testing, we observed some issues with the OpenWhisk deployment wherein some OpenWhisk components – specifically, the controller and the invoker – would fail to restart after rebooting the machines running the Kubernetes nodes for maintenance tasks. To fix this, we had to redeploy OpenWhisk after each failure which resulted in significant data loss and was clearly an unacceptable operational solution.
Serverless applications is one topic that SPLab has been working on for a couple of years now, with, for example, our work on a stand-alone FaaS platform Snafu, work on disaggregating applications into serverless functions, Podilizer and other activities. Having organised ESSCA some weeks ago, we are now again exploring the technical limits and challenges in this space. This blog post reports about our experience of running the combination of OpenWhisk, Kubernetes, Helm and OpenStack.
Bachelor students of computer science at Zurich University of Applied Sciences focus a lot on software development. Software is never developed in the blue; rather, software needs a concrete environment to function and to deliver value. In ‘Programming’ (1st/2nd semester) and ‘Software Development’ (3rd/4th semester), you learn some basic skills. In ‘Systems-oriented Programming’ (2nd semester), you apply these skills to predefined systems with some constraints. In ‘Web Development’ (3rd semester), you apply these skills to another environment in which there is a lot of pace through new technologies. In ‘Game Development’ (5th semester), you develop for specific interactive scenarios, and in ‘Mobile Applications’ (5th semester, you develop user-facing apps for common mobile platforms.
One of the most fascinating and economically important areas is the development of applications which run in the cloud. You may access them with web or mobile devices, but you still cannot see them! Still, they are very powerful, scalable to millions of users, and interconnected across cloud providers and with various backend systems such as databases, message queues and key-value stores. This is why we offer SCAD, a new elective module on Serverless and Cloud-native Application Development.
Through several years of research on the subject of cloud functions, researchers including ourselves have gained a thorough understanding of the advantages and disadvantages of function-based application development. Along with increased maturity of FaaS, a more specialised consideration of potential use cases is needed to filter out the ones where the technology shines compared to the ones where significant weaknesses become apparent and other technologies, perhaps even in combination, would be a better fit. This early experience report informs about how we have deployed cloud functions around an existing cloud management platform as a variant of the well-known solar system approach of introducing microservices around monoliths.
At Zurich University of Applied Sciences, in particular at the Service Prototyping Lab, we are very proud to announce a packed global technology event week which brings many international experts in cloud computing, big data computing and serverless computing into little Switzerland. Join us for more than 140 unique technical and scientific talks over five days!
11th IEEE/ACM International Conference on Utility and Cloud Computing – UCC 2018
5th IEEE/ACM International Conference on Big Data Computing, Applications and Technologies – BDCAT 2018
From the 17th to the 20th of December, we expect around 200 attendees at the Technopark to discuss trends and progress on many cloud and big data topics. Apart from the two main conference tracks, there will be a cloud challenge, a doctoral forum, a posters presentation, 4 tutorials, and 8 workshops on diverse emerging topics (e.g. cloud-native, sustainable big data for environments, software testing, security and trust). Broad industry support is lined up to support the event with attendees and corporate support. Daypasses start at 350 CHF.
Check the UCC and BDCAT websites for programme and registration!
European Symposium on Serverless Computing and Applications – ESSCA 2018
In addition to UCC and BDCAT, we offer a community-priced event on the 21st of December where starting with 50 CHF you can attend to listen to 16 expert talks and tutorials on the trend topics of serverless computing, FaaS and cloud functions.