Cloud computing has radically changed the way organisations operate their software by allowing them to achieve high availability of services at affordable cost. Containerized microservices is an enabling technology for this change, and advanced container orchestration platforms such as Kubernetes are used for service management. Despite the flourishing ecosystem of monitoring tools for such orchestration platforms, service management is still mainly a manual effort. The modeling of cloud computing systems is an essential step towards automatic management, but the modeling of cloud systems of such complexity remains challenging and, as yet, unaddressed. In fact modeling resource consumption will be a key to comparing the outcome of possible deployment scenarios. This paper considers how to derive resource models for cloud systems empirically. We do so based on models of deployed services in a formal modeling language with explicit CPU and memory resources; once the adherence to the real system is good enough, formal properties can be verified in the model. Targeting a likely microservices application, we present a model of Kubernetes developed in Real-Time ABS. We report on leveraging data collected empirically from small deployments to simulate the execution of higher intensity scenarios on larger deployments. We discuss the challenges and limitations that arise from this approach, and identify constraints under which we obtain satisfactory accuracy.
翻译:云计算通过允许组织以可承受的成本实现服务的高可用性,从根本上改变了其软件运营方式。容器化微服务是实现这一变革的关键技术,而Kubernetes等高级容器编排平台则用于服务管理。尽管此类编排平台的监控工具生态蓬勃发展,但服务管理仍主要依赖人工操作。云计算系统的建模是实现自动化管理的重要步骤,但对如此复杂的云系统进行建模仍具挑战性且尚未得到充分解决。事实上,资源消耗建模将是比较不同部署场景结果的关键。本文探讨如何通过经验方法为云系统推导资源模型。我们基于部署服务的模型,采用具有显式CPU和内存资源的正式建模语言展开研究;一旦模型对真实系统的拟合度足够高,即可在其中验证形式化属性。针对典型的微服务应用,我们提出了一个在Real-Time ABS中开发的Kubernetes模型。本文报告了如何利用从小规模部署中经验收集的数据,模拟大规模部署中更高强度场景的执行情况。我们讨论了该方法面临的挑战与局限性,并确定了能够获得满意精度的约束条件。