Intelligent Application Migration within a Self ... - Springer Link

13 downloads 26594 Views 2MB Size Report
Abstract A typical hybrid cloud connects a private data center to a portion of a public cloud. It can potentially scale up the computing pool of a private cloud on.
Intelligent Application Migration within a Self-Provisioned Hybrid Cloud Environment Wei-Jen Wang, Yo-Ming Lo, Shao-Jui Chen and Yue-Shan Chang

Abstract A typical hybrid cloud connects a private data center to a portion of a public cloud. It can potentially scale up the computing pool of a private cloud on demand. This work presents a novel adaptive computing framework that enables intelligent automatic application migration between a private data center and a public cloud. In the case that the workload of the private data center is too high, the proposed framework can create more computing resources in the public cloud automatically, and then move applications to the public cloud in order to reduce the workload of the private data center. The proposed framework employs the multi-agent technique to manage all resources, monitor system behavior, and negotiate all actions in the hybrid cloud. We have built a prototype of a hybrid cloud environment to demonstrate that the proposed framework is able to perform intelligent application migration and self-provisioning. Keywords Application migration based intelligence

 Cloud computing  Hybrid cloud  Agent-

1 Introduction The emerging cloud computing technology [1–3] aims to deliver flexible, ondemand computing resources as services to different users. According to the NIST’s definition of cloud [4], a cloud is a share pool of configurable computing W.-J. Wang (&)  Y.-M. Lo  S.-J. Chen Department of Computer Science and Information Engineering, National Central University, 300 Jhongda Rd., Jhongli, Taoyuan, Taiwan Y.-S. Chang Department of Computer Science and Information Engineering, National Taipei University, 151 University Rd., Sanhsia, New Taipei, Taiwan

James J. (Jong Hyuk) Park et al. (eds.), Computer Science and Convergence, Lecture Notes in Electrical Engineering 114, DOI: 10.1007/978-94-007-2792-2_28,  Springer Science+Business Media B.V. 2012

295

296

W.-J. Wang et al.

Fig. 1 The idea of the proposed framework

resources that can be rapidly provisioned and released. Recently, the deployment model for hybrid clouds [5–8] is becoming more popular in both the academia and the industry. A typical hybrid cloud [9] connects a private datacenter to a portion of a public cloud through a virtual private network (VPN). It adopts the concept of Virtual Private Cloud (VPC) [8–10], which is a user-defined group of virtual resources on a public cloud. In 2010, Amazon announced its virtual private cloud [8] service that can provision a private, isolated cloud on Amazon Web Services (AWS) Cloud, where the users can launch computing resources in a user-defined virtual network. In Taiwan, the cloud computing center of Industrial Technology and Research Institute (ITRI) [11] also launched a hybrid cloud project to support the VPC service in their public cloud. One benefit of using VPC is that, the VPC model can scale up the computing pool of a private cloud on demand. When the workload of a private cloud is high, the hybrid cloud environment can dynamically create several virtual machine instances in the public cloud to form a VPC and then move some workload to the VPC. As a result, the quality of service in a hybrid cloud can be ensured by resource provisioning and service migration. To enable intelligent, dynamic application migration in a hybrid cloud, one may adopt the agent technology [12– 15] for system monitoring, self-provisioning, computation coordination, and automatic load balancing. Ian Foster et al. [12] have pointed out that agent technology can enhance the ability of problem solving of grid. We believe it can enhance the cloud computing environment as well. For example, a multi-agent intelligent system can be installed on a hybrid cloud. Some agent is responsible for system monitoring, while some decides how and when to perform system reconfiguration in a hybrid cloud. This research aims to provide an intelligent, agent-based framework that supports dynamic application migration in a hybrid cloud, in particular dynamic application migration between the public cloud and the private cloud. Figure 1 shows the concept of proposed framework where there are two major components. The first component is a smart multi-agent system that detects the status of the hybrid cloud and manages the resources in the hybrid cloud. We used the Java Agent Development framework (JADE) [16] to implement this component. The

Intelligent Application Migration

297

second component is a hybrid cloud environment where a set of mobile applications are running. The proposed framework is able to adjust the workload by moving applications automatically. When existing computing resources are not enough to serve all applications, the proposed framework will notify the public cloud to create more computing resources automatically. We have built a prototype of the proposed framework. In the future, we plan to implement the proposed framework on a larger hybrid cloud environment that connects a small private data center in National Central University and a virtual private cloud in the ITRI public cloud [11].

2 Related Work Agent-based systems [12–18] have been widely studied in the past decade. The fundamental computing element in an agent-based system is the agent, which acts as an independent, identical, and autonomous process with the ability to communicate with other agents [16]. Different agents may perform different tasks, and they can work together to accomplish a complex task in a distributed environment. Some agent-based systems such as JADE [14, 16] and SALSA [19] support dynamic agent migration. The mobility feature gives more flexibility and more efficiency to programmers and system administrators [13]. Many software engineers and researchers focused their research on either the study of agent-based systems [12–14, 16–19] or the study of hybrid cloud models [5, 6, 8–10]. However, the topic of automatic service and application migration in a cloud is relatively scarce in the literature. Zhang et al. [7] proposed a workload factoring service to make the best use of public cloud services along with data centers. They used a fast algorithm to detect frequent data items, and enabled factoring incoming requests on volume and data content upon an environment where data popularity may change in different time slots. Amoretti et al. [15] presented a framework that supports code mobility, and used a pull strategy for service migration. Kaisler and Money [20] proposed a model to examine feasibility of service migration in a cloud computing environment by considering security, integration, and service implementation. Hao et al. [21] considered the problem of service selection and migration in clouds. They developed a framework to facilitate service migration, and designed a cost model and a genetic algorithm to determine the tradeoffs on service selection and migration.

3 The Proposed Framework This section will present the proposed framework, consisting of a smart multiagent system called the federated broker, and a hybrid cloud environment that hosts a set of mobile applications. In our hybrid cloud computing model, we

298

W.-J. Wang et al.

assume that the resources in the private data center must be fully utilized before any resources in the public cloud are used. This assumption comes from the constraint that the users must pay for using the public cloud resources and people do not want to waste money for no reason. We also assume that applications are always submitted to the private data center. The applications then wait in a queue for execution. An application is executed in the private data center directly if the private data center is capable of running the application. Otherwise, it may be transferred to the public cloud for execution.

3.1 Federated Broker The federated broker, mostly implemented in JADE [16], is a smart multi-agent system for system monitoring and reconfiguration decision. The federated broker consists of three major components—the system monitoring agent, the service migration agent, and the reconfiguration decision agent. Figure 2 shows the three major components of the federated broker and the interactions among these components and the hybrid cloud environment. Each cloud of the hybrid cloud environment has a cloud administration agent in it to interact with the federated broker. It gathers the information of physical machines and applications, and sends the data to the system monitoring agent of the federated broker. The system monitoring agent then processes the primitive data and saves the digested data in a profiling database. The reconfiguration decision agent periodically retrieves data from the system monitoring agent and the profiling database, and then uses the information to decide whether the system requires reconfiguration. If the reconfiguration decision agent decides to perform reconfiguration, it will notify the service migration agent to move some applications from the private data center to the public cloud. Virtual machines in the public cloud will be created if the computing pool in the public cloud is not enough. The three major components of the federated broker are described below: • System Monitoring Agent (SyMA): the agent receives data from cloud administration agents, such as the identity of an application, the status of an application, and the workload information of the hardware. Then it filters the data and puts historical data in a profiling database. It does not make any decision for system reconfiguration. Some fresh data such as the current state of the private data center are sent to the reconfiguration decision agent directly. • Reconfiguration Decision Agent (RDA): the agent is supposed to use the current state of the private center and the historic data in the profiling database to predict the future workload of the private data center. The prediction result and a pre-defined reconfiguration policy are used together to decide how to adjust the workload ratio of the private data center and the public cloud. When the workload of the private data center is high, the RDA will create more virtual machine instances in the public cloud and move applications to the public cloud.

Intelligent Application Migration

299

Fig. 2 The federated broker and its interactions with the hybrid cloud

It also periodically evaluates the state of the public cloud, and may terminate some virtual machine instances in the public cloud if they are not used. • Service Migration Agent (SeMA): while the agent receives a reconfiguration decision message, it will send commands to the private data center and the public cloud to ask for application migration. If the public cloud does not have enough virtual machines to host incoming applications, the agent will check the reconfiguration policy and then create more virtual machines on the public cloud if necessary and legal. The agent does not decide which application should move to the public cloud. Instead, it tells the manager of the private data center to move a certain percentage of workload to the public cloud.

3.2 Hybrid Cloud Environment The hybrid cloud environment consists of two set of computing resources. One is the private data center, and the other is the public cloud that provisions resources on demand. There are three major components in the hybrid cloud environment. Figure 3 shows how the three components in the hybrid cloud environment interact with users and the federated broker. The details of them are described below: • Local Monitoring Agents (LMA): each machine of the private data center has a local monitoring agent in it. The LMA periodically transmits the observed machine status to the private cloud administration agent, which will then organize the data and send the data to the system monitoring agent of the

300

W.-J. Wang et al.

Fig. 3 The federated broker and its interactions with the hybrid cloud

federated broker. Note that the public cloud does not have any LMA in it. Similar functionality should be provided through the API of the public cloud. • Cloud Administration Agent (CAA): both the public cloud and the private data center of the hybrid cloud environment have their own cloud administration agent. Each CAA is a central manager of its computing pool. It is responsible to gather system information and to send the information to the federated broker. It is also responsible to receive commands from the federated broker and to execute the commands for the federated broker. • Application Management Agent (AMA): the AMA is designed to manage applications in the private data center or the public cloud. To execute an application, the user has to submit the application to the AMA in the private data center. The application then waits in a queue. As soon as the application is selected for execution, it will be registered in the private CAA and then be executed in the private data center. When the AMA receives a message for application reconfiguration from the federated broker, it will ask the selected application to save its state. The state along with the program of the application will be sent to the public CCA by the private CCA. Then, the migrated application is resumed by the public CCA.

4 Migration Policies and Preliminary Results The current implementation of the proposed framework uses average CPU load and the number of applications as the criteria to judge whether a reconfiguration is required. To execute an application in the proposed framework, a pre-define

Intelligent Application Migration

301

number of virtual machines for the application must be provided. The information will be used to judge whether the resources are enough to serve a newly incoming application. The framework will create enough virtual machines in the public cloud to host the application. Applications that are submitted to the AMA of the private data center are put in a waiting queue first. A waiting application is executed immediately if there are enough resources in the private data center. Otherwise, the private CAA notifies the federated broker for the situation, and then the federated broker contacts the public CAA to create more resources for the waiting applications. When the resources are ready, the public CAA will notify the federated broker, which will then ask the private CAA to migrate some applications to the public cloud. Finally, some waiting applications are moved to the public CAA for execution to reduce the workload in the private data center. We have built a prototype consisting of one server (2 quad-core CPUs and 8 GB RAM) with four VMs as the private data center and another server (each with 2 quad-core CPUs and 16 GB RAM) as the public cloud. The maximum number of VMs that can be created in the public cloud is set to be 5. We designed an experiment to evaluate the prototype. In the experiment, we submitted 5, 10, 15, and 20 applications to the prototype. Each application is a distributed application that demands 2*3 machines to calculate a maximum likelihood estimation problem with execution time of 30*50 s. In addition, we used three different policies to see how the proposed framework works in the experiment. The first policy, no migration, only executes applications on the private data center. This policy represents the traditional computing model that only uses a private data center for computation. The second policy, migration based on the number of applications, only moves applications to the public cloud while the private data center is overloading. The number of applications to run on the public cloud is set to 50% of the number of total applications. The third policy, migration based on the execution time of applications, moves applications to the public cloud while the private data center is overloading as well. The proposed framework tries to re-arrange 50% of the total remaining expected execution time of applications in the public cloud. Figure 4 demonstrates the result of the experiment. It shows that the proposed framework with intelligent application migration can effectively reduce the total execution time of the applications. This can be attributed to that the proposed framework automatically creates as many virtual machines in the public cloud as the number of machines in the private data center, and then moves applications to the public cloud. The result also shows that using execution time for decision-making is more effective. Note that the proposed framework using the third policy creates the same amount of virtual machines in the public cloud as that using the second policy. The third policy is more efficient because the applications in the private data center and the applications in the public cloud almost finish at the same time.

302

W.-J. Wang et al.

Fig. 4 The result of executing different number of applications using different policies

5 Conclusions and Future Work In this paper, we presented a novel computing framework for hybrid clouds based on multi-agent technology. The framework is able to create virtual machine instances and to move applications to the public cloud automatically in the case that the workload is too high in the private data center. We implemented the proposed framework in a prototype of a hybrid cloud environment, and conducted an experiment using three different migration policies to evaluate the proposed framework. The preliminary result demonstrated that the framework is able to handle a short-term workload peak in the private data center by moving the workload to the public cloud. In the future, we plan to improve the automatic migration policy and the self-provisioning mechanism by considering different public cloud pricing models and the issues of quality of service. We also plan to build a larger hybrid cloud environment to evaluate the proposed framework. Acknowledgments This work was partially supported by the Nation Science Council of Republic of China under Grant No. 100-2218-E-008-005- and by Industrial Technology Research Institute of Republic of China under Grant No. B0-A0007.

References 1. Pallis G (2010) Cloud computing: the new frontier of internet computing. IEEE Internet Comput 14(5):70–73 2. Armbrust M, Fox A, Griffith R, Joseph AD, Katz RH, Konwinski A, Lee G, Patterson DA, Rabkin A, Stoica I, Zaharia M (2009) Above the cloud: a Berkeley view of cloud computing. Electrical Engineering and Computer Sciences, University of California at Berkeley, 10 Feb 2009

Intelligent Application Migration

303

3. Forter I, Zhao Y, Raicu I, Lu S (2008) Cloud computing and grid computing 360-degree compared. Grid computing environment workshop 4. Mell P, Grance T (2009) The NIST definition of cloud computing, version 15, NIST. Retrieved Jan 2010, from http://csrc.nist.gov/groups/SNS/cloud-computing/ 5. Sotomayor B, Montero RS, Llorente IM, Foster I (2009) Virtual infrastructure management in private and hybrid clouds. IEEE Internet Comput 13(5):14–22 6. Van den Bossche R, Vanmechelen K, Broeckhove J (2010) Cost-optimal scheduling in hybrid IaaS clouds for deadline constrained workloads. In: 2010 IEEE 3rd international conference on cloud computing (CLOUD), pp 228–235 7. Zhang H, Jiang G, Yoshihira K, Chen H, Saxena A (2009) Intelligent workload factoring for a hybrid cloud computing model. In: Proceedings of the 2009 congress on services—I, pp 701–708 8. Amazon Virtual Private Cloud (VPC), retrieved from http://aws.amazon.com/vpc/ 9. Nick JM, Cohen D, Kaliski BS Jr (2010) Key enabling technologies for virtual private clouds. In: Furht B, Escalante A (eds) Handbook of cloud computing. Springer Science+Business Media, LLC, New York, pp 47–63 10. Wood T, Shenoy P, Gerber A, Ramakrishnan KK, Van der Merwe J (2009) The case for enterprise-ready virtual private clouds. In: Proceedings of HotCloud’09 workshop on hot topics in cloud computing, San Diego, CA, USA, June 2009 11. Cloud Computing Center for Mobile Applications, retrieved from http://www.itri.org.tw/chi/ ccma/ 12. Foster I, Jennings NR, Kesselman C (2004) Brain meets brawn: why grid and agents need each other, AAMAS’04, 19–23 July 2004, New York, NY, USA 13. Lange DB, Oshima M (1999) Seven good reasons for mobile agents. Commun ACM 42:88–89 14. Spanoudakis N, Moraitis P (2006) The Gaia2JADE process for multi-agent systems development. Appl Artif Intel J 20(2):251–273 15. Amoretti M, Laghi MC, Tassoni F, Zanichelli F (2010) Service migration within the cloud: code mobility in SP2A. In: 2010 international conference on high performance computing and simulation, pp 196–202, June 2010 16. Java Agent Development Framework (JADE), retrieved from http://jade.tilab.com/ 17. Olfati-Saber R (2006) Flocking for multi-agent dynamic systems: algorithms and theory. IEEE Trans Auto Cont 51(3):401–420 Mar 18. Jung JJ (2009) Consensus-based evaluation framework for cooperative information retrieval systems. Knowl Inf Syst 18(2):199–211 19. Varela CA, Agha G (2001) Programming dynamically reconfigurable open systems with SALSA (OOPSLA 2001 ACM Conference on Object-Oriented Systems, Languages and Applications). ACM SIGPLAN Not 36:20–34 20. Kaisler S, Money WH (2011) Service migration in a cloud architecture. In: 44th Hawaii international conference on system sciences (HICSS), pp 1–10 21. Hao W, Yen I-L, Thuraisingham B (2009) Dynamic service and data migration in the clouds. In:33rd annual IEEE international computer software and applications conference, pp 134–139