The past 27, 28 and 29 of September were dedicated to the 6th European Conference on Service-Oriented and Cloud Computing (ESOCC) in Oslo, Norway. It is one of the traditional community-run conferences in Europe with a cloud and community history dating back into the year 2012 and a (web) service history of about a decade before that. As in previous years, it featured the co-located event CloudWays: the 3rd International Workshop on Cloud Adoption and Migration, which is focused on cloud applications more than on infrastructure and platforms. The topic is thus of high interest for the Service Prototyping Lab and specially for its Cloud-Native Applications (CNA) research initiative in which we partner with Swiss SMEs to explore new cloud-native designs and architectures for elastically scalable, resilient, price-efficient and portable services. Our participation was therefore centered around the presentation of research results from one of these partnerships.
How are cloud-native applications engineered? In contrast to the increasing popularity of the topic, there are surprisingly few reference applications available. In the previous blogpost we described a first version of a prototypical document management application consisting of composed containers which is called ARKIS Microservices. We elaborated on the challenges involved when designing and developing a cloud-native application. In addition, we showed some details about the architecture and functionalities of version 2.5 of this generic reference application .
In this blogpost, we now dive deeper into the architecture of the latest version 3.3, paying attention to each component. The document management software is a cloud-native application based on a microservices architecture. The software permits multiple tenants to manage their documents (create, read, update, delete and search patterns in documents). It manages the different tenants and offers different isolation models to store the documents of a tenant. Furthermore, the services are discoverable through declarative service descriptions, and their use is billed according to a pay-per-use scheme.
Following the series that we started with the Vamp Blog post, we proceed to take a look of one more of the container management tools which includes running a simple practical example while we pay attention to the main advantages and limitations. This series happens in the context of the work on cloud-native applications in the Service Prototyping Lab to explore how easily developers can decompose their applications and fit them into the emerging platforms.
On this occasion, we inspect Kubernetes, one of the most popular open-source container orchestration tool for production environments. Kubernetes builds upon 15 years of experience of running production workloads at Google. Moreover the community of Kubernetes appears to be the biggest among all the open source container management communities. Kubernetes provides a Slack channel with more than 8000 users who share ideas and are often Kubernetes engineers. Also, one can find community support in Stack Overflow using the tag kubernetes. Inside the Github repository, we can see more than 970 contributors, 1500 watches, 18500 starts and 6000 forks. In the community it is popular to abbreviate the system as K8s.
In the world of containerized architectures, there are different and new container deployment and orchestration tools which help turning monolithic applications into running composite microservices. Some of them are intended to be used in a development environment like Docker-Compose or in a production environment like Kubernetes, Docker-Swarm or Marathon. Also, we can observe some tools executing atop other container schedulers, like Rancher or Vamp. In this blog post, we take a look at the latter while at the same time we continue to inspect the alternatives in order to compare all solutions eventually.
Manuel was born in El Burgo, a nice village in Málaga, Spain. He studied a bachelor in Computer Sciences and a bachelor and MSc in Mathematics, both in the university of Málaga.
He started to work in ARPA solutions, a company from Málaga where he worked inside Augmented reality projects. In May 2015, Manuel arrived to Switzerland with an IAESTE internship in the university FHNW and he was working for one year in the research projects FLARECAST and HELIO.
In June 2016, Manuel finished his studies and he joined to the SPLab as a scientific assistant where he solves software design problems in the cloud-native applications research initiative with a special interest in elasticity and stateful microservices. Within the initiative, Manuel initially started working in the ARKIS project where he designed and implemented a cloud-native microservices application which offers several multi-tenancy options or a testbed to compare cloud-native database. Currently, Manuel is working in the MOSAIC project to ease the onboarding of cloud applications in container platforms.
Recent activities include: