For several years, we have conducted research on the design, implementation and evaluation of microservice-based applications, as well as on the assessment of characteristics of the constituent software artefacts. Yet we were so far not present in the first two editions of the International Conference on Microservices. Needless to say, we are now correcting this for the third edition of the conference with a talk on Syn.
In the context of our «Smart Cities and Regions Services Enablement» efforts, space (and to some extent time) are important dimensions. First, the digital transformation has an inherent spatial component. While the research application field is pragmatically scoped to cities and regions, indeed it spans a wider spectrum from households, quarters, districts to countries and even supranational entities. The recent wave of «surface digitalisation» has primarily affected mobile citizens (pandemic apps) and workers (video conferencing in home offices) around the world. This increased the surface over the previous one that for most citizens encompassed e-banking, e-ticketing and e-tax declarations, with various degrees of voluntariness.
Self-management is an important property of software services to increase the degree of exploiting benefitial characteristics of underlying runtime systems. Whether such services run in a managed cloud environment, on a device or somewhere else in the computing continuum, there may always be limitations in the managing runtime platform that a complementary or overarching application-level management can help to overcome. Using a Python Flask-based web service as example, this research blog post informs about our ongoing investigations into two specific self-management aspects: runtime resilience and feistiness.
As presented in a prior post, Singer.io is a modern, open-source ETL (Extract, Transform and Load) framework for integrating data from various sources, including online datasets and services, with a focus on being simple and light-weight. The basics of the framework were explored in our last post on the topic, so we will refer you to that if you are unfamiliar.
This post is about our process for deploying Singer to the cloud, more specifically, to the Cloud Foundry open source cloud application platform. This was done in the context of researching the maturity of data transformation tools in a cloud-native environment. We will explore the options for deploying Singer taps and targets to a cloud provider and discuss our implementation and deployment process in detail.
With the proliferation of hybrid cloud, cross-cloud and post-cloud environments, finding the right concepts and tools to produce mixed-technology applications and services remains challenging. At Zurich University of Applied Sciences, a course on Serverless and Cloud-native Application Development (SCAD) prepares bachelor students in computer science for facing these challenges. We argue that this is the first such lecture in Switzerland and probably even in the world. Three years after reflecting on Internet Service Prototyping teaching, this mid-semester blog post sums up the evolution of the field, explains the course design of SCAD and briefly reports on the lab results.
From September 2 to 4, 2019, Tampere University hosted the INFORTE.fi-supported summer school on Software Evolution: From Monolithic to Cloud-Native. The Service Prototyping Lab at Zurich University of Applied Sciences contributed with five lectures (and one coincidental serverless meetup talk) to increase theoretic knowledge and practical skills of Finnish doctoral students and developers on microservices and software engineering for the cloud. All presentations are available online but as usual the slides do not capture discussions and industry relevance, so read on to get to know more about this.
The Service Prototyping Lab will offer three in-depth presentations and hands-on sessions on several of its research topics and recent results in September and October. We hope to demonstrate valuable work and get feedback for our future research.
FI, September 2-4, 2019: «Summer School on Software Evolution: From Monolithic to Cloud-Native» @ Inforte Tampere – More information
CH, September 10, 2019: «Datengestützte Qualitätsanalyse von Microservice-Artefakten in der Softwareentwicklung» @ CH Open Workshop Days Rapperswil (in German with co-instructor support in English) – More information
DE, October 25, 2015: «CI/CD-integrated quality assessment of microservice implementation artefacts» @ Software QS-Tag Frankfurt – More information
From June 24 to 27, an academic double-conferences has been taking place in Prague: IC2E 2019, the venerable seventh IEEE International Conference on Cloud Engineering, and ICFC 2019, the recently spun off first IEEE International Conference on Fog Computing. The Service Prototyping Lab at Zurich University of Applied Sciences contributed a tutorial on Kubernetes application engineering on the first conference day. The important research-inspired message conveyed is that Kubernetes is a nice container management platform, but not a cloud platform per se, and characterised by a lack of tools to ensure simplicity and quality in applications, and still emerging understanding of how to design applications in a technically and economically optimal way. This blog post reports on some of the conference discussion topics as a service for those who could not attend..
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.
For almost five years, we have been researching cloud-native applications. As part of an industry-wide push to cloud-native computing, a lot of stacks and middleware components are proposed every day, but few tools and processes help improving the applications themselves especially in terms of quality attributes such as discoverability, elasticity and resilience. With Helm charts, there is already a higher-level approach to package cloud applications in Kubernetes environments. Our work on static analysis of Helm charts and quality assessment beyond is documented and ongoing. In this post, we take a first look at CNAB, or Cloud Native Application Bundle which is self-described as secure and cloud-agnostic way to deliver applications.