3.3 Interview Responses
4.1.4 Hybrid Cloud Setup Experiment
Proof of concept:
The public cloud involves the data and application access via public in- ternet channels and so many critical services and sensitive data might be exposed to the security threats on the public networks. The private cloud is more restricted environment which resides internally or nearby company premises constituting safer environment for enterprise applications and re-
Figure 4.5: Hybrid cloud setup for Telco
lated data. However, private cloud may not significantly represent the ben- efits of using cloud such as elasticity, economy of scale, cost factors, green computing etc. Hybrid cloud is the model which will prevail [22] in such cases where it’s possible to install database only in private cloud and appli- cation images residing in both private and public cloud will access it through highly secure data channels. This way an enterprise can make efficient use of internal IT resources [24] and they can switch dynamically to the public resources whenever there is a need. Following are the steps derived to im- plement enterprise applications on hybrid cloud environment (See Fig. 4.5) while balancing the load among private and public cloud instances:
1. Setup a private cloud and create private cloud instances. The private cloud instances are the chunks of the whole private cloud resources combined and it should be designed in such a way so that optimum memory and processing power are allocated to each chunk or instance. 2. Install application database (or databases) and build an application image for different applications on private cloud. Ensure that all the application images of different applications have necessary configura- tions and database access on private cloud. Application images are virtual and ready-to-use installation of applications.
3. Modify load balancing script on underlying server in use so that appli- cation can start using cloud instances to balance the incoming load. 4. Setup the public cloud instances and get elastic IPs of those instances.
It should be noted that the use of public cloud instances from multiple vendors ensures high availability as in case of down-time of cloud in- stances; system can start using cloud instances from other public cloud vendors.
5. Add public cloud instances (IPs) to load balancing script. Along with this, also add the logic to switch from private to public cloud instances whenever the private cloud instances reach at their maximum usage in terms of memory or processing or other attributes depending on the application purpose. There are different technologies and tools [52] available which can help creating such environment where both pri- vate and public computing resources can be used efficiently by defining underlying requirements.
6. Allow application and database to have external access with encrypted channels. The channel encryption shall be supported by highly efficient network security algorithms in place. Virtual private network and high bandwidth data pipe can be established in such cases.
7. Prepare auto-spawning script for public cloud instances so that when system switches the processing from private to public cloud, the public cloud instances will be started automatically. Similarly, add logic to turn off public cloud instance where the processing need is ended on that instance. This functionality is needed for the reason that public cloud usage is charged on pay-per-use basis and auto-spawning reduces the cost and adds to the dynamic elasticity of the system resources. 8. Add monitoring and logging scripts to track the system usage and
operations. It should be noted that web-based system can be accessed by single IP of a load balancer.
Experiment:
In the experiment (See Fig. 4.6) followed from the proof of concept pre- sented above, a private cloud was setup on virtualization platoform and pri- vate cloud instances were created. After that, the installation of sugarCRM mysql database was carried out and application image for sugarCRM was compiled. Already built sugarCRM images were then deployed on different private cloud instances ensuring that all the application images of sugarCRM had necessary configurations and database access on private cloud. An http
Figure 4.6: Hybrid cloud setup experiment architecture
load balancer on top of all sugarCRM images (php+apache) was developed to balance all the requests and responses coming from both private and public cloud instances.
Public cloud instances were created while getting elastic IPs of those instances. Already built sugarCRM images were deployed on public cloud instances as well. Public cloud instances (IPs) were added to http load balancer as to distribute the load. Along with this, the logic was developed to switch from private to public cloud instances whenever the private cloud instances reach at their maximum usage in terms of memory or processing or other attributes depending on the application purpose. The sugarCRM images on private and public cloud instances communicate with http load balancer configured on a standalone Apache server via http requests and responses.
Application and database were allowed to have external access with en- crypted channels so that the sugarCRM instances can interact with mysql database via mysql port. It should be noted that It was possible to deploy mysql load balancer on the underlying sugarCRM database as to balance the load from application images as well as from external applications and batch
Figure 4.7: Analysis of interview round 2 responses
jobs. Also, auto-spawning script for public cloud instances could be prepared so that when system switches the processing from private to public cloud, the public cloud instances will be started or turned off automatically. The web-based sugarCRM was accessible by single IP of an http load balancer.