Microservices Architecture for Tenant-oriented Cloud-based Control Software Services: POC and Proposals
Microservices architecture, where application is composed of a set of independently deployable services is a popular modern approach for building enterprise-level applications, meanwhile most of the cloud solutions for control software (including IoT) are designed in so called monolithic way. LXC-based (docker) microservices allow developers to seamlessly migrate current software solutions from VMs to containers. Nowadays, such container-based applications are used primarily for simple semi-automated deployments, when containers are deployed only at the launch time of the whole system and modified when needed. In this paper we analyze application of docker-microservices as functional blocks for control software, propose on-demand tenant-oriented microservices approach (where entire independent topologies of microservices are being deployed on per-tenant basis) for building clouds of control software, review requirements for management system of such cloud and investigate contemporary container-management systems. Constructed test cluster highlighted some disadvantages of Kubernetes regarding multi-tenant container administration. Advanced Container Management System (AMS) is designed as one more level of orchestration on top of Kubernetes. Conducted demo showed practical value and flexibility of the introduced tenant-oriented microservices method. Described design will be helpful for cloud providers of control software who want to organize elastic on-demand service provisioning.