Cloud applications are more and more microservice-oriented, but a concrete charting of the microservices architecture landscape -- namely, the space of technical options available for microservice software architects in their decision-making -- is still very much lacking, thereby limiting the ability of software architects to properly evaluate their architectural decisions with sound experiential devices and/or practical design principles. On the one hand, Microservices are fine-grained, loosely coupled services that communicate through lightweight protocols. On the other hand, each microservice can use a different software stack, be deployed and scaled independently or even executed in different containers, which provide isolation and a wide-range of configuration options but also offer unforeseeable architectural interactions and under-explored architecture smells, with such experience captured mainly in software repositories where such solutions are cycled. This paper adopts a mining software repositories (MSR) approach to capture the practice within the microservice architecture landscape, by eliciting and analysing Docker configuration files, being Docker the leading technical device to design for, and implement modern microservices. Our analysis of Docker-based microservices gives an interesting summary of the current state of microservices practice and experience. Conversely, observing that all our datapoints have their own shape and characteristics, we conclude that further comparative assessment with industrial systems is needed to better address the recurring positive principles and patterns around microservices.
翻译:云层应用越来越倾向于微观服务,但微观服务结构景观的具体图表 -- -- 即微型服务软件设计师在决策中可用的技术选项空间仍然非常缺乏,从而限制了软件设计师以健全的实验设备和(或)实际设计原则适当评价其建筑决定的能力。一方面,微服务是精细的、松散结合的服务,通过轻质协议进行沟通。另一方面,每个微服务可以使用不同的软件堆,独立部署和扩展,甚至在不同容器中执行,提供孤立和广泛的配置选项,但也提供无法预见的建筑互动和探索不足的建筑闻闻闻闻,这些经验主要体现在这种解决方案循环的软件库中。本文采用一种采矿软件库(MSR)方法,通过征求和分析多克配置文件,在设计和实施现代微服务时使用领先的技术装置。我们对多克微观服务的分析提供了一种令人感兴趣的、微观服务模式的缩略图,我们对其当前模式的对比性特征作了总结,我们对其当前系统进行了更精确的对比性评估。