UBC Theses and Dissertations
Partitioning and distribution of web applications to the hybrid cloud Kaviani, Nima
Hybrid cloud deployment is an effective strategy in deploying software services across public cloud and private infrastructure. It allows deployed software systems to benefit from cost savings and scalability offerings of the cloud while keeping control over privacy- or security-sensitive code and data entities. However, the complexity of determining which code and data entities should reside on-premises, and which can be migrated to the cloud is daunting. Researchers have attempted to address this complexity by using partitioning algorithms to optimize distribution and deployment of code entities across public cloud and private infrastructure. However, we have identified the following shortfalls with the existing research work: Current research does not provide enough flexibility in placement of software function execution and data entities between public/private hosts. In particular it does not allow for replication or optimized separation of code and data entities in relation to one another. Current research on partitioning of software systems does not explicitly consider the dynamics of a hybrid cloud deployment when making decisions about public cloud and private infrastructure. Particularly, current research lacks support for making explicit tradeoff s between monetary cost and improved performance in hybrid cloud software systems. The dynamics of the cloud require partitioning algorithms to be tailored towards features inherent to a hybrid cloud deployment. This includes encoding data dependency models and component dependency models of a software system collectively into one unique mathematical optimization model. There is no existing algorithm that allows for combined code and data dependency requirements to be modelled under one optimization formula. This thesis presents my work on implementing algorithms and tools that address the shortcomings of the previous research as discussed above. These algorithms and tools are put together under a partitioning and distribution framework named Manticore. Manticore has been used to drive partitioning and deployment decisions on several open source software systems. The experiment results show an estimate of up to 54% reduction in monetary costs compared to a premises only deployment and 56% improvement in performance compared to a na ive separation of code entities from data entities in a hybrid cloud deployment.
Item Citations and Data
Attribution-NonCommercial 2.5 Canada