CS计算机代考程序代写 SQL python javascript database Java file system gui Excel 1

1

School of Information Technology and Electrical Engineering

INFS3208 – Cloud Computing

Project (20 Marks)

Due at 1 PM 22/10/2021 (Friday in Week 12)

Overview and objectives

The goal of this assignment is to propose a cloud-based application in a proposal (5 marks) and implement

the application (15 marks) with cloud computing technologies and related programming skills. You will need

to propose the project, implement the code, and present the work all by yourself. You feel free to choose any

application you are interested in and utilise the right cloud computing technologies to carry it out. You are

allowed to re-use something that you’ve done before, but you need to re-implement or deploy the application

with the learned cloud technologies. A novel project idea with excellent implementations will be nominated

for the student project competition awards. Overall, your project will be open-ended, and your project should

demonstrate how to make use of cloud computing technologies and what specific benefits your cloud

application can get from cloud computing. You are required to complete the proposal and implementation

individually. You must submit the proposal and the source code on the blackboard before 1:00 PM 15/10/2021.

It is your responsibility to ensure the submission on time.

Proposal (5 Marks)

The proposal aims to test your understanding of the concepts, characteristics, and relevant technologies in

Cloud Computing. Moreover, your ability to design a cloud application will be assessed. Turn in a printed

two-page project proposal that includes but is not limited to the following sections:

• Introduction:
o Give background information about this project: What is this project about?
o Explain the motivation of this project: Why is this project important?
o Describe the overall objectives: What features does this project have?
o Explain the benefits brought by cloud computing: How does cloud computing fit in this project?

• Technical Solutions:
o Describe what front-end technologies you use in this project.
o Describe what back-end technologies you use in this project.
o Estimate the cloud cost (e.g. VM, cluster network, software, etc.).

• Architecture Design:
o Depict the workflow or framework of the project in a figure.
o Describe in detail the architecture of the project.

The teaching team will follow up with your implementation to ensure that the project is reasonably proposed

with appropriate size and difficulty.

According to the previous experience, students’ projects are normally categorised into two types:

1. Type I: a web-based application (e.g. PHP/JavaScript + MySQL/NoSQL + Docker) that is scalable,
reliable, and resilient in the cloud.

2

2. Type II: a data-analytic application (e.g. Jupyter Notebook + Scala/Python/Java + Spark SQL /
Streaming / MLlib) that is capable of analysing big data.

You can choose either one according to your background and preference. There are a few technical

requirements that must be met when designing your project in the proposal.

Technical requirements:

If your project belongs to Type I,

• For the front-end design, you should have a functional user interface allowing users to interact with
the application (e.g., login, search, etc.).

• To support the overall objectives of this project, you should have a backend design (e.g., database)
working together with front-end UI smoothly.

• You should adopt a micro-service architecture and containerise your micro-services with multiple
containers. You should use docker-compose to orchestrate all the containers.

• In your design, your application should have scalability and reliability with the help of cloud
technologies.

If your project belongs to Type II,

• You need to perform a challenging data analytic task (e.g., big data queries, classification/regression,
clustering/association rule mining, etc.) to solve a real problem.

• You do not have to analyse the real big data in this task, but the dataset you pick up should be
reasonably large and complex. To persist the data, you need to store the data in either database

(relational/non-relational databases, e.g., MySQL/Redis/MongoDB/Cassandra) or distributed file

system (e.g., HDFS).

• You should run this analytical task on a Spark cluster using Spark programming techniques and
related Spark built-in libraries (i.e., SQL, MLlib, Streaming, and GraphX). You can choose either

Python or Scala as the programming language.

• To demonstrate the analysis results, your program should be able to visualise results with some tools
(e.g., matplotlib in Python) in Jupyter/Zeppelin Notebook.

No matter which types your project belongs to, the cloud infrastructure costs should be fair and reasonable.

You can use Google Cloud Platform Pricing Calculator when making the budget plan in the proposal.

Implementation (15 Marks)
The implementation aims to test your ability to build and deliver a cloud application that is proposed in your

proposal. The implementation should be technically consistent with the proposed features and functionalities

in the proposal. You are allowed to re-use something that you’ve done before, but you need to re-implement

or deploy the application with learned cloud technologies. Please note that simply re-using the code is not

allowed. If the previous project was a group one, you need to acknowledge your previous team members that

this project will be re-implemented with new cloud technologies and they must confirm their consent. To

demonstrate your project, you should present it to your tutor in the tutorial and practical sessions in Week 12.

To avoid the absence of your presentation, you should alternatively prepare a 10-minute video presentation

of your project. The presentation should include but not limited to the following parts:

• Background & Motivation;

• Project architecture and applied technologies;

• For Type I projects, database design (for database users) or Data storage (for file system users);

• For Type II projects, descriptions of analytic models and applied data in Spark programming;

• GUI demonstration or result visualisation;

• Comparing to non-cloud development and deployment, what advantages and disadvantages does cloud
computing have in your project.

3

You should use the credit wisely and avoid all unnecessary expenses on cloud services during the group project.

Also, you should monitor the balance of the credits during the implementation. Please contact your tutor as

soon as possible when the credit is running out. Note that the GCP credit is not unlimited.

You should backup the implementation code and data regularly (at least every week). It is your interest to

ensure that you fully understand the technical requirements of this individual project. If you have any concerns

or problems, please contact your session’s tutor or ask questions on Ed Discussion.

Submission

You should make an online submission before 1 PM 22/10/2021 (Friday in Week 12):

• Your proposal should be no more than 1,000 words in two pages and should be submitted to Turnitin;

• The source code and the relevant data should be compressed into a single file and should be submitted
to Blackboard.

You are welcome to discuss your proposal and implementation with the teaching team during tutorial/practical

sessions or on Ed Discussion.