Investigation of self-managed mircroservice architecture
Abstract
Cloud computing made a big impact on software architecture evolution. The demand to serve multiple tenants, to include continuous delivery practice into development process as well as increased system load influenced style of cloud based software architecture. Microservice architecture is preferred architecture despite its complexity when scalability is an essential attribute of quality of service. Microservices should be managed i.e. hardware resources should be adjusted based on application load, as well as resiliency should be ensured. Popular IaaS and PaaS providers such as Amazon, Azure or OpenStack ensure auto-scaling and elasticity at the infrastructure level. Concept of self-managed microservices is extended and evaluated in more details. Microservice architecture is established which enables to build microservices in a self-managed way. Frameworks, techniques and tools are proposed to build such architecture that allows monitoring performance indicators and health status, reacting and executing auto-scaling instructions or ensuring recovery from failures.