Report from Microservices: Agile and DevOps Experiences (MADE18)

Porto, Portugal • May 21, 2018

On May 21st, 2018 Saverio Giallorenzo co-chaired the Second International Workshop on Microservices: Agile and DevOps Experience (MADE18), co-located with the XP2018 conference in Porto, Portugal. The workshop has been a success, with 30+ attendees and highly participated presentations.

The workshop opened with an account on “Technical Debt in Continuous Architecting Processes” given by the workshop’s keynote speaker Antonio Martini, followed by a call for collaboration in the Microservices Community, given by Giallorenzo.

Accepted authors presented 7 works in total, comprising studies on the impact of microservice development in teams and companies, DevOps techniques for the development of microservices, and tools to aid the design, development, and transition to microservice architectures.

Giallorenzo also presented a coding, hands-on session called “Microservices, all the way down”, where he illustrated how, using the Jolie language, suitable language abstractions can loose the implicit coupling that often binds collaborating microservices: communication. Interested readers can find the full abstract below.

Microservices, all the way down | Hands-on Experience

One of the main tenets of the microservice approach is to loose the ties among (distributed) software components (i.e., microservices), so that they can be developed, evolved, and scaled independently. However, there is one often-overlooked element that binds indirectly together collaborating microservices: communication. This binding consists of the dependencies on the libraries and/or frameworks that support the communication protocols and data formats that are chosen in the design of the microservice architecture. Regardless of whether this choice was conscious or not, it can quickly lead to technical debt unless it is carefully managed: the programming paradigms of each library tend to leak into the core logic of the microservice, making switching to other communication stacks difficult or even infeasible. All of a sudden, the so-advertised resilience of microservices gave way to an inflexible and limiting architecture.

In this hands-on demonstration we will see, using the Jolie language, how suitable language abstractions can loose these implicit couplings. The ultimate aim is to experiment how, through the lens of Jolie, web services, traditional programs, and even IoT devices are all the same: microservices, all the way down.