Microservices: How To Make Your Application Scale

@inproceedings{Dragoni2017MicroservicesHT,
  title={Microservices: How To Make Your Application Scale},
  author={Nicola Dragoni and Ivan Lanese and Stephan Thordal Larsen and Manuel Mazzara and Ruslan Mustafin and Larisa Safina},
  booktitle={Ershov Informatics Conference},
  year={2017}
}
The microservice architecture is a style inspired by service-oriented computing that has recently started gaining popularity and that promises to change the way in which software is perceived, conceived and designed. In this paper, we describe the main features of microservices and highlight how these features improve scalability. 
Constructing a Service Software with Microservices
TLDR
This paper introduces an approach to constructing a software with layered and distributed microservices using object-oriented specifications to increase the concurrency of the application system and thus improve the performance and could increase the reusability of microservices.
Microservices: A Language-Based Approach
TLDR
This chapter makes the case for a language-based approach to the engineering of microservice architectures, which it is believed is complementary to current practice and instantiate it in terms of the Jolie programming language.
Microservices: Yesterday, Today, and Tomorrow
TLDR
This chapter reviews the history of software architecture, the reasons that led to the diffusion of objects and services first, and microservices later, and presents the current state-of-the-art in the field.
Domain Objects and Microservices for Systems Development: a roadmap
TLDR
A roadmap to investigate Domain Objects being an adequate formalism to capture the peculiarity of microservice architecture, and to support Software development since the early stages is discussed.
Deploying Microservice Based Applications with Kubernetes: Experiments and Lessons Learned
TLDR
This paper examines the availability achievable through Kubernetes under its default configuration and conducts a set of experiments which show that the service outage can be significantly higher than expected.
A Model-Driven Approach Towards Automatic Migration to Microservices
TLDR
This paper presents a model-driven approach for the automatic migration to microservices, implemented by means of JetBrains MPS, a text-based metamodelling framework, and validated using a first migration example from a Java-based application to Jolie - a programming language for defining microservices.
Designing and Implementing Elastically Scalable Services - A State-of-the-art Technology Review
TLDR
A trajectory is drawn that, starting from a better understanding of the principal service design features, relates them to the microservice architectural style and its implications on elastic scalability, most notably dynamic orchestration, and concludes reviewing how well state-of-the-art technology fares for their implementation.
Snafu: Function-as-a-Service (FaaS) Runtime Design and Implementation
TLDR
Snafu, or Snake Functions, is a modular system to host, execute and manage language-level functions offered as stateless (micro-)services to diverse external triggers which make it overall useful to research on FaaS and prototyping of FAAS-based applications.
A pattern language for scalable microservices-based systems
TLDR
This article builds on previous work that identified existing patterns for microservice-based systems, selects those related to scalability, and organizes them in three categories corresponding to the three well-known scalability dimensions (load-balancing, decomposition, and grouping).
Migrating towards microservices: migration and architecture smells
TLDR
This work presents 9 common pitfalls in terms of bad smells with their potential solutions for migrating monoliths towards microservices, so that pitfalls can be identified and corrected in the migration process.
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 29 REFERENCES
Microservices: A Language-Based Approach
TLDR
This chapter makes the case for a language-based approach to the engineering of microservice architectures, which it is believed is complementary to current practice and instantiate it in terms of the Jolie programming language.
Microservices: Yesterday, Today, and Tomorrow
TLDR
This chapter reviews the history of software architecture, the reasons that led to the diffusion of objects and services first, and microservices later, and presents the current state-of-the-art in the field.
Jolie Community on the Rise
TLDR
Some of the most recent results and work in progress that has been made within the Jolie research team are presented.
Data-Driven Workflows for Microservices: Genericity in Jolie
TLDR
This paper extends Jolie to support the possibility of expressing choices at the level of data types, a feature well represented in standards for Web Services, e.g., WSDL, and enables Jolie processes to act on data generically (without knowing which type it has in the choice).
Building Microservices
TLDR
This book takes a holistic view of the topics that system architects and administrators must consider when building, managing, and evolving microservice architectures.
Service-Oriented Programming with Jolie
TLDR
This chapter presents Jolie, a fully-fledged service-oriented programming language that combines computation and composition primitives in an intuitive and concise syntax and addresses the aforementioned heterogeneity in two ways.
Microservices: Migration of a Mission Critical System
TLDR
A real world case study is presented to demonstrate how scalability is positively affected by re-implementing a monolithic architecture into a microservices architecture (MSA) in the specific setting of financial domain.
Dynamic Error Handling in Service Oriented Applications
TLDR
This work proposes as a solution an orchestration programming style in which handlers are dynamically installed and formalizes the approach as an extension of the process calculus SOCK and proves that it satisfies some expected high-level properties.
Software process support over the Internet
TLDR
The MILOS system supports software development processes over the Internet and the built-in traceability component supports change notifications and helps the project participants to ensure that the project plan as well as the state of the enactment engine reflect the "real world" development process.
Refinement types in Jolie
TLDR
The integration of the two aspects allows a scenario where the static verification of internal services and the dynamic verification of external services cooperates in order to reduce testing effort and enhancing security.
...
1
2
3
...