We present Ditto, an automated framework for cloning end-to-end cloud applications, both monolithic and microservices, which captures I/O and network activity, as well as kernel operations, in addition to application logic. Ditto takes a hierarchical approach to application cloning, starting with capturing the dependency graph across distributed services, to recreating each tier's control/data flow, and finally generating system calls and assembly that mimics the individual applications. Ditto does not reveal the logic of the original application, facilitating publicly sharing clones of production services with hardware vendors, cloud providers, and the research community. We show that across a diverse set of single- and multi-tier applications, Ditto accurately captures their CPU and memory characteristics as well as their high-level performance metrics, is portable across platforms, and facilitates a wide range of system studies.
翻译:我们提出Ditto,这是一个用于克隆终端到终端云应用的自动框架,包括单项和微项服务,除了应用逻辑外,还记录I/O和网络活动以及内核操作。Ditto对应用克隆采取分级办法,首先从在分布式服务中捕捉依赖图开始,重新建立每一级的控制/数据流,最后生成模拟单个应用的系统呼叫和组装。Ditto不揭示原始应用的逻辑,促进与硬件供应商、云供应商和研究界公开分享生产服务的克隆。我们显示,在一系列不同的单级和多级应用中,精确捕捉它们的CPU和记忆特征及其高水平的性能指标,可跨平台移动,便利广泛的系统研究。