CO3219/CO4219/CO7219 Internet and Cloud Computing
|
Cloud System Design and Evaluation
|
Learning Outcomes
The aims of this deliverable are:
1. to develop technological foundations in Cloud Systems; and
2. to develop expertise in designing and developing robust and scalable Cloud Systems
|
Assignment Brief
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, with each application’s instance serving a different group of users. You should demonstrate that the distributed application running in your private cloud is consistent in a way that all users will see the same application state across different instances. The cloud and application should scale to support additional users, and offer an improved quality of service when compared to one running on a single machine.
The assignment is separated into a set of tasks, and there is a set of activities that should be undertaken for each task.
You are not restricted to a particular set of tools or technologies, but you must justify your choices when designing and implementing your architecture. 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 [20%]
Your group should design and produce an architecture of a 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 demonstrate 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.
As an individual member of your group, you will be required to explain the design of your group’s private cloud and technological choices in your own words. You should also include an architecture diagram of your proposed system.
Task 2: Implement your Private Cloud [30%]
Your group should 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 identified in Task 1. You should be able to demonstrate 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.
Each group should set up the private cloud on a minimal 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.
As an individual member of your group, you should explain the implementation, including the environment, components and explanation of any code, in your own words.
Task 3: Develop and Deploy a Distributed Whiteboard Application [20%]
Your group will 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 be running the application. The whiteboard should support basic drawing features, such as lines and shapes, as well as allowing text to appear anywhere on the whiteboard.
The whiteboard should allow multiple users to draw simultaneously on a shared interactive canvas. When a new user joins the system, the user should obtain the current state of the whiteboard so that the same objects are displayed to every active user.
At least two virtual machines within the cloud system should host two instances of the whiteboard. However, all the users should see the same state of the whiteboard and should have the ability to perform. all the drawing operations.
As an individual member of your group should explain the design and implementation of your whiteboard application in your own words. This should include consistency, replication and state management, and how your group has implemented the application.
Task 4: Demonstrate your Private Cloud [10%, shared by all group members]
There are two aspects of demonstration.
Each group should produce a video. The video should highlight the functionality of your private cloud and their individual contributions in Tasks 1, 2 and 3.
The group 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 users and whiteboard application instances and vice versa.
As an individual member of your group, you should demonstrate a component of the private cloud that they have produced in Task 2 by deploying the application that they have produced in Task 3.
As an individual member of your group you should produce maximum one page demonstrating your individual contributions.
Task 5: Critical Review of your System [20%]
As an individual member of your group, you should a critical review of your system, in your own words. This should be based on your own understanding and contributions.
You should have cover three areas in your critical review:
1. the architecture of your system and the choices made;
2. the weaknesses and strengths of your design and implementation;
3. suggestions to improve your system’s design and implementation, including reasons for how the proposed changes will improve the functionality of your system.