Modern cyber-physical systems (CPS) such as Cooperative Intelligent Transport Systems (C-ITS) are increasingly defined by the software which operates these systems. In practice, microservice architectures can be employed, which may consist of containerized microservices running in a cluster comprised of robots and supporting infrastructure. These microservices need to be orchestrated dynamically according to ever changing requirements posed at the system. Additionally, these systems are embedded in DevOps processes aiming at continually updating and upgrading both the capabilities of CPS components and of the system as a whole. In this paper, we present RobotKube, an approach to orchestrating containerized microservices for large-scale cooperative multi-robot CPS based on Kubernetes. We describe how to automate the orchestration of software across a CPS, and include the possibility to monitor and selectively store relevant accruing data. In this context, we present two main components of such a system: an event detector capable of, e.g., requesting the deployment of additional applications, and an application manager capable of automatically configuring the required changes in the Kubernetes cluster. By combining the widely adopted Kubernetes platform with the Robot Operating System (ROS), we enable the use of standard tools and practices for developing, deploying, scaling, and monitoring microservices in C-ITS. We demonstrate and evaluate RobotKube in an exemplary and reproducible use case that we make publicly available at https://github.com/ika-rwth-aachen/robotkube .
翻译:现代信息物理系统(CPS),如协作式智能交通系统(C-ITS),日益由运行这些系统的软件所定义。实践中可采用微服务架构,其由运行在包含机器人与支撑基础设施的集群中的容器化微服务组成。这些微服务需根据系统面临的动态变化需求进行编排。此外,此类系统嵌入DevOps流程中,旨在持续更新与升级CPS组件及整体系统的能力。本文提出RobotKube——一种基于Kubernetes的大规模协作多机器人CPS容器化微服务编排方法。我们阐述了如何自动化编排跨CPS的软件,并纳入监测与选择性存储相关累积数据的可能性。在此背景下,我们介绍了该系统的两个核心组件:能够请求部署额外应用程序的事件检测器,以及可在Kubernetes集群中自动配置所需变更的应用程序管理器。通过将广泛采用的Kubernetes平台与机器人操作系统(ROS)相结合,我们得以在C-ITS中使用标准工具与流程来开发、部署、扩展及监测微服务。我们通过一个可复现的示例用例对RobotKube进行演示与评估,该用例已公开发布于https://github.com/ika-rwth-aachen/robotkube。