Internet and Cloud Computing
Assignment - Cloud System Design and Evaluation
Learning Outcome 1: The aim of this deliverable is twofold: Firstly, to develop technological foundations in Distributed and Cloud Systems and secondly, to develop expertise in designing and developing robust and scalable Cloud Systems.
Assignment: You have to design and document the architecture of a private cloud, implement it, and then deploy on it a whiteboard application. The whiteboard application should run on at least two separate machines/nodes within your private cloud, each applications instance serving a different group of users. You have to demonstrate that the distributed application running in your private cloud is consistent in a way that all the users will see the same application state across different instances. The application should scale to support a number of additional users and offer an improved quality of service as compared to the one if it was running on a single machine.
The assignment has a set of tasks and there is a set of activities that need to be performed in each task.
Note 1: You will work in groups (average group size is 4) for this assignment, however, the evaluation will be based upon individual performance. You are free to select your group members and make sure that you work as a team and share your understanding, expertise and skills with other members of your group.
Note 2: We will not restrict you to a particular set of tools or technologies as far as you can justify your choices in your architecture and implementation. You should critically assess your options before you propose your architecture and carefully evaluate the tools and technologies to implement your architecture.
Task 1: Produce a Design of your Private Cloud
Each group should produce an architecture of your own private cloud. You should evaluate available cloud computing technologies and architectures before you propose a suitable architecture of your private cloud. You should put in place mechanisms to achieve consistency, scalability, agility and quality of service. You should also propose a suitable network topology for your private cloud to manage traffic and provide fault tolerance. In this task, you should also have a clear understanding of the tools and technologies that you will use to implement the design of your private cloud. You should have convincing reasons to justify the technology choices that you have made for the implementation of your architecture.
Note 3: For your information, some of the popular cloud stacks include Apache CloudStack, OpenStack, Vsphere, MS Azure, AWS, Nimbus, IBM Smart Cloud, Ubuntu Enterprise Cloud, Eucalyptus and OpenNebula. You may use a toolkit of your choice as far as you can justify this in your architecture. Similarly, you may use a hypervisor of your choice, such as XEN, KVM, VMware ESX, lguest, Hyper-V or virtual box, to virtualize system resources.
Task 2: Implement the Private Cloud
Each group will implement the architecture for the private cloud that has been proposed in Task 1. To implement your private cloud, you should use the set of tools and technologies that you have shortlisted in Task 1. You should be able to show a working implementation of the private cloud in this task. Your implementation should enable the private cloud to provide a consistent, scalable and low latency access to your whiteboard application. This should also enable new virtual machines to be provisioned and decommissioned with minimal human intervention.
Note 4: Zabbix, Cloud Watch, Nagios, Grafana, Ganglia, NMS, OPNET, Open Nebula are a few examples of monitoring tools. However, you are free to select a tool of your choice as far as you have good reasons behind your selection.
Note 5: Each group should set up the private cloud on a minimum number of nodes possible. You should deploy the whiteboard application in each virtual machine. However, the distributed application should offer consistency and should look like a single application to outside users. There are no additional marks for setting up a higher number of nodes in your private cloud.
Task 3: Development of a Distributed whiteboard Application
You need to design and develop a whiteboard application that can be shared between multiple nodes of the private cloud. You need to run this whiteboard in a distributed environment (at least two nodes should run the application) and the whiteboard should support basic drawing features such as line, circle, and rectangle as well as text anywhere in the whiteboard.
Task 4: Demonstrate the Private Cloud
There are two aspects of demonstration: Group as well as individual demonstration.
Each group member will demonstrate the private cloud that they have produced in Task 2 by deploying the application that they have produced in task 3.
Each group should produce a combined group video that all group members will submit as a part of their individual submissions. The video (max 10 minutes) should highlight the functionality of your private cloud and their individual contributions in Tasks 1, 2 and 3.
All team members have to validate the contributions of their colleagues. You should highlight how you are monitoring the computing, storage and network resources in your private cloud and should provide information about consistency, performance, availability and scalability of resources. The cloud resource consumption (performance numbers) should go up/down with more number of users using the whiteboard application instances and vice versa.
Task 5: Critical review of your system
Each student will submit an individual critical review of your system in no more than 2 pages. This should be based on your own understanding and contributions. You should have two sections in this task. 5.1. Present a critical analysis of the weaknesses and strengths of your system. 5.2. You should present alternative models to improve your system and give reasons on how the proposed changes will improve the functionality of your system if you have been given another chance.
1. Task 1: Design and Technological choices for your private cloud (2 pages max)
2. Task 2: Implementation details of your private cloud (2 pages max)
3. Task 3: Distributed Whiteboard Application design and development (2 pages max)
4. Task 4: Individual Contributions and URL of the group video (1 page max)
5. Task 5: Critical review of your system (2 pages max)