Automatic software deployment using user-level virtualization for cloud-computing Future Generation Computer System (2013) Youhui Zhang, Yanhua Li, Weimin Zheng Outline • • • • Introduction The framework Performance test Conclusion Introduction (1) • Infrastructure cloud service providers deliver virtual hardware and system software in their datacenters, based on the demand from customers • It is necessary to deploy application software in similar way Virtual Appliances (VAs) • It is a pre-built software • VA-based method can reduce time and expenses VA drawbacks • Lack of flexibility • Inefficiency of storage Lack of flexibility • Customer needs software A and B to work together in a virtual machine, but the provider only has two separate VAs containing A and B respectively • The provider has to create a new VM template to combine A and B together Inefficiency of storage • OS has to be combined. Therefore, the storage overhead Introduction (2) • This paper introduces mechanisms to isolate application software from OS • Application software can be deployed in a fine granularity to increase the flexibility and decrease the storage overhead • We call such application software as on-demand software Function1 - Software preparation • Cover software into the on-demand mode • On-demand software is stored in the software depository for users’ selection Preparation of on-demand software • software can be regarded as containing three parts: Part1 includes all resources provided by the OS Part2 contains what are created/ modified/ deleted by the installation process Part3 is the data created/modified/deleted during the run time Preparation of on-demand software(cont’ d) Preparation of on-demand software(cont’ d) • Snapshot is taken to build the on-demand software Function2 - Software selection • A customer can choose the wanted OS, as well as any number of software in separated stages Function3 - On-demand deployment • When the customer actually uses the chosen software, will it be streamed from the data server and run locally without installation. The runtime environment of on-demand software (cont’ d) • The resource modified will be moved into Part 3 The runtime environment of on-demand software • Construct a runtime environment where software can locate and access any necessary resources • Runtime environment redirects all accesses for Parts 2 and 3 to the actual storage positions and guides other visits (for Part 1) to the local OS User-level file system • On-demand software is stored in the central depository and presented as files/ folders on a virtual local drive in the customer’s VM Function4 - Software customization • The VA-based solution, it is difficult to implement this function efficiently On-demand software VS Virtual appliance(VA) On-demand software VA It can communicate with other programs(on-demand software) running on the same host machine through the file system No The runtime environment operates above the OS, it can distinguish the User’s customization modifications made by different software No Communicate with other software System overview Optimizations • Content-addressable storage • Data cache Content-addressable storage • On-demand software is partitioned into shards • Compute the hash value of every shard, and the same values mean the corresponding shards are identical. Data cache • The replace strategy is based on the usage frequency Comparisons of start-up time. Comparisons of running time Conclusion • This paper provides a framework to decouple application software from VM images to improve the deployment flexibility for cloud computing • Compared with VA-based solutions, it also improves the storage efficiency • Users’ customization can been separated inherently and efficiently for reuse