Tải bản đầy đủ (.pdf) (50 trang)

Assignment 2 Cloud Computing (1644 Distinction)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.42 MB, 50 trang )

ASSIGNMENT 2 FRONT SHEET
Qualification

BTEC Level 5 HND Diploma in Computing

Unit number and title

Unit 16: Cloud Computing

Submission date

Date Received 1st submission

Re-submission Date

Date Received 2nd submission

Student Name

Bui Quang Minh

Student ID

GCD210325

Class

GCD1104

Assessor name


Tran Trong Minh

Student declaration
I certify that the assignment submission is entirely my own work and I fully understand the consequences of plagiarism. I understand that
making a false declaration is a form of malpractice.
Student’s signature
Grading grid
P5

P6

P7

P8

M3

M4

D2

D3


 Summative Feedback:

Grade:

 Resubmission Feedback:


Assessor Signature:

Internal Verifier’s Comments:

Signature & Date:

Date:


Table of Contents
P5. CLOUD COMPUTING PLATFORM CONFIGURATION ................................................................................. 6
I. Render configuration............................................................................................................................... 6
II. Connecting Render to Git ....................................................................................................................... 7
III. PostgreSql configuration on Render ..................................................................................................... 8
P6. CLOUD PLATFORM IMPLEMENTATION .................................................................................................. 10
I. Database for ATN .................................................................................................................................. 10
1. Creating database............................................................................................................................. 10
2. Connecting database to postgreSql ................................................................................................. 13
II. Code implementation ........................................................................................................................... 14
1. UseCase diagram .............................................................................................................................. 14
2. Project structure ............................................................................................................................... 15
3. Home page ....................................................................................................................................... 16
4. Shop page ......................................................................................................................................... 19
5. Admin page....................................................................................................................................... 22
6. Director page .................................................................................................................................... 23
III. Commiting code to Git ........................................................................................................................ 27
1. Creating repository ........................................................................................................................... 27
2. Uploading code on github ................................................................................................................ 28
IV. Deploying app to Render .................................................................................................................... 30
P7. CLOUD PLATFORM PROBLEM ANALYSIS AND SOLUTIONS .................................................................... 32

I. Limited Control and Flexibility............................................................................................................... 32
II. Internet connection .............................................................................................................................. 32
III. Vendor Lock-In..................................................................................................................................... 33
IV. Downtime ............................................................................................................................................ 33
P8. ASSESS COMMON SECURITY ISSUES IN CLOUD ENVIRONMENTS ......................................................... 35
I. Overview ................................................................................................................................................ 35
II. Security issues ...................................................................................................................................... 35
1. Misconfiguration .............................................................................................................................. 35


2. Uauthorized access........................................................................................................................... 35
3. Data loss ........................................................................................................................................... 36
4. Insecure APIs .................................................................................................................................... 36
4. Hijacking of accounts ........................................................................................................................ 36
5. Retricted access to network operations .......................................................................................... 37
M3. DISCUSS PROBLEMS AND LIMITATIONS IN THE DEVELOPMENT PROCESS .......................................... 38
I. Overview ................................................................................................................................................ 38
1. Cloud computing .............................................................................................................................. 38
2. Top challenges in cloud computing .................................................................................................. 38
II. Issues in development process ............................................................................................................ 38
1. Data security and privacy ................................................................................................................. 38
2. Cost management ............................................................................................................................ 39
3. Lack of expertise ............................................................................................................................... 39
4. Control or governance...................................................................................................................... 39
5. Compliance ....................................................................................................................................... 39
6. Multi Cloud environments................................................................................................................ 39
7. Performance challenges ................................................................................................................... 39
8. Migration .......................................................................................................................................... 39
M4. ADDRESS SECURITY ISSUES WHEN BUILDING SECURE CLOUD PLATFORM .......................................... 40
I. Big questions for cloud security ............................................................................................................ 40

1. Is cloud computing secure ................................................................................................................ 40
2. Why is cloud security important ...................................................................................................... 40
II. How to overcome these security issues ............................................................................................... 41
1. Limit the cloud computing vendors.................................................................................................. 41
2. Confirm your access to cloud environment information ................................................................. 41
3. Verify Security SLAs .......................................................................................................................... 41
4. Examine the specific security measures........................................................................................... 41
5. Employ advanced firewall solutions ................................................................................................. 42
6. Implement data encryption.............................................................................................................. 42


7. Seek advice from cybersecurity experts........................................................................................... 42
D2. CRITICALLY DISCUSS HOW ORGANIZATIONS OVERCOME ISSUES ......................................................... 43
I. Solutions ................................................................................................................................................ 43
1. Data security and privacy ................................................................................................................. 43
2. Cost management ............................................................................................................................ 43
3. Lack of expertise ............................................................................................................................... 43
4. Control or governance...................................................................................................................... 43
5. Compliance ....................................................................................................................................... 44
6. Multi Cloud environments................................................................................................................ 44
7. Performance challenges ................................................................................................................... 44
8. Migration .......................................................................................................................................... 44
D3. CRITICALLY DISCUSS HOW ORGANIZATIONS PROTECT DATA WHEN MIGRATING TO CLOUD.............. 45
I. Overview ................................................................................................................................................ 45
II. How to protect data in migrating to cloud........................................................................................... 45
1. Evaluate current data landscape ...................................................................................................... 45
2. Conprehend regulatory compliance framework .............................................................................. 46
3. Select appropriate data security tools ............................................................................................. 46
4. Manage authorized personnel for data access ................................................................................ 46
5. Encrypt data during transit............................................................................................................... 47

6. Plan decommissioning activities for remaining data center ............................................................ 47
Table of Figures ............................................................................................................................................ 48
REFERENCE LIST ............................................................................................................................................ 50


P5. CLOUD COMPUTING PLATFORM CONFIGURATION
I. Render configuration
When I click "Login" in the render, it redirects me to the login page. After that, when I log in using
your GitHub account, my Render account automatically links or connects to my GitHub account. This
allows for seamless integration and authentication between my Render and GitHub accounts.

Figure 1. Login page in render

Figure 2. Login by github account


II. Connecting Render to Git
After successfully creating my Render account, I go to my GitHub account settings, navigate to
"Installations," and there I can find my Render account. I click to configure

Figure 3. Render account on github

At this point, I change the repository access to "All repositories" to grant Render permission to access
all of my repositories.

Figure 4. Repository access on github


III. PostgreSql configuration on Render
Then, I log in to Render using my GitHub account and click on "New" located on the top right side of

the Render homepage. From there, I select "PostgreSQL" as the option to create a new PostgreSQL
database.

Figure 5. PostgreSQL selection

What I need to do is simply enter the name of my database, and I can leave the other fields empty.
Render will automatically generate the necessary configurations for me. As a student, I can select the
free option to use the database for free on Render.

Figure 6. Interface for creating database (1)


Figure 7. Interface for creating database (2)


P6. CLOUD PLATFORM IMPLEMENTATION
I. Database for ATN
1. Creating database
First, I need to create a database, and I set its name as "atn." Then, I create five tables: "category" (to
classify toy categories), "role" (to categorize admin, director, and users), "shop" (to manage toy
shops), "toy" (representing ATN company products), and "users" (for regular users).

Figure 8. ATN database

Figure 9. Tables in ATN database

Category Table:




categoryid: A unique identifier for each category.
categoryname: The name of the toy category (e.g., "Action Figures," "Puzzles").

Figure 10. Category table


Role Table:



roleid: A unique identifier for each role.
rolename: The name of the role (e.g., "Admin," "Director," "User").

Figure 11. Role table

Shop Table:




shopid: A unique identifier for each shop user.
username: The username of the shop user.
password: The password for the shop user.

Figure 12. Shop table

Toy Table:










toyid: A unique identifier for each toy.
toyname: The name of the toy.
price: The price of the toy.
origin: The origin or place of manufacture.
description: A description of the toy.
category_id: A reference to the category of the toy, linking to the "category" table.
image: Possibly a field to store an image of the toy.
shop_id: A reference to the shop managing or selling the toy, linking to the "shop" table.


Figure 13. Toy table

Users Table:





userid: A unique identifier for each user.
username: The username of the user.
password: The password for the user.
role_id: A reference to the user's role, linking to the "role" table.

Figure 14. Users table



2. Connecting database to postgreSql
After successfully creating the database on Render, I'll need to obtain the connection information for
my PostgreSQL database. This information typically includes:




Host Name: The address of the PostgreSQL server where my database is hosted.
Port: The port number on which the PostgreSQL server is listening for connections.
Username: The username I'll use to access the database.

Figure 15. Database information on render

I'll use this information to set up a connection to my PostgreSQL database on my local development
environment, allowing me to interact with the database and develop my application using the data
stored in my Render-hosted database.

Figure 16. Database information on local


II. Code implementation
1. UseCase diagram
In my system for ATN Company






Regular users can view the list of toys.
Directors can view the list of toys and set the time interval for page refresh.
Shop managers can view the list of toys, update the toy information, add new toys to the
inventory, and delete toys from the inventory.
Admin users can view the list of all users and shoppers in the system.

Figure 17. UseCase diagram for ATN


2. Project structure
In my code, I've used the following technologies and structure:










I've employed the Express.js framework for building my application.
I've used Tailwind CSS to create an aesthetically pleasing user interface (UI).
I've incorporated common packages such as Nodemon for auto-reloading during development,
Session for managing user sessions, and pg (presumably for PostgreSQL) for database
interaction.
Inside the "helpers" folder, I've organized JavaScript files to perform various external tasks that
support my application.
The "models" directory contains files responsible for interacting with the database, handling
data storage, and retrieval.

The "public" folder houses CSS, JavaScript, and image files that are publicly accessible to
enhance the appearance and functionality of my application.
The "views" directory contains the pages and user interface components used in my
application.
Additionally, I have other external configuration files that are essential for my project's setup
and configuration.

This structure and the technologies I've chosen provide a foundation for developing a web application
that includes a user-friendly UI, database interaction, and various functionalities.

Figure 18. File structure in project


3. Home page
Below is the home page of the application, which includes a search bar with filter options and a list of
toys. Each toy in the list displays its name, description, image, price, origin, and category:
Search Bar: Users can use the search bar to input keywords for searching specific toys.
Filter Options: The filter options allow users to refine their search based on specific criteria.
List of Toys: Each toy item in the list typically includes the following details:







Toy Name: The name or title of the toy.
Description: A brief description or information about the toy.
Image: An image representing the toy to provide visual information.
Price: The cost or price of the toy.

Origin: The place or country where the toy is produced.
Category: The category or type to which the toy belongs, helping users classify and identify the
toy easily.

This home page provides a user-friendly interface for searching and browsing toys based on various
criteria, making it easier for users to find the toys that match their preferences and needs.

Figure 19. Interface of home page


When the page runs, it triggers the load_data function, which initiates a request to a specific route in
your application. This route, in turn, communicates with the database to fetch data related to toys.
Once the requested data is retrieved from the database, it is then returned to the page, allowing the
application to display all the toys on the home page.
$(document).ready(function(){
let categoryId;
load_data('');
function load_data(filter, category) {
$.ajax({
url: '/',
method: "POST",
data: { action: 'fetch', filter: filter, category: category},
dataType: "JSON",
success: function (data)
{
var html = '';
if(data.data.length > 0)
{
for(var count = 0; count < data.data.length; count++)
{

html += `

<div class="flex flex-col justify-between h-full">
<div>

`+
data.data[count].toyname +`


`+ data.data[count].description
+`


</div>
<div>
alt="" class="rounded mt-4 object-cover w-full h-[220px]">
</div>
</div>
<div class="w-full h-0.5 bg-white opacity-10"></div>
<div class="flex justify-between">
<div class="text-sm">

Price:<span class="text-MyYellow ml2">$`+ data.data[count].price +`</span>




Origin:<span class="text-MyYellow ml2">`+ data.data[count].origin +`</span>


</div>
<div>