Cloud Computing - 1644 - Assignment 2, Assignments of Web Design and Development

This assignment is graded PASS

Typology: Assignments

2022/2023

Uploaded on 09/04/2023

CookieCooka
CookieCooka 🇻🇳

4.9

(13)

8 documents

1 / 24

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
ASSIGNMENT 2 FRONT SHEET
Qualification
BTEC Level 5 HND Diploma in Computing
Unit number and title
Unit 16: Cloud Computing
Submission date
25/08/2023
Date Received 1st
submission
Re-submission Date
Date Received 2nd
submission
Student Name
Student ID
Class
GCH1103
Assessor name
Nguyen Dang Tran Long
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
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18

Partial preview of the text

Download Cloud Computing - 1644 - Assignment 2 and more Assignments Web Design and Development in PDF only on Docsity!

ASSIGNMENT 2 FRONT SHEET

Qualification BTEC Level 5 HND Diploma in Computing Unit number and title Unit 16 : Cloud Computing Submission date 25/08/2023 Date Received 1st submission Re-submission Date Date Received 2nd submission Student Name Student ID Class GCH1103 Assessor name Nguyen Dang Tran Long 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 D

 Summative Feedback:  Resubmission Feedback:

Grade: Assessor Signature: Date: Internal Verifier’s Comments: Signature & Date:

  • A. Introduction
  • B. Design
    • I. Overview function
        1. Use-case diagram
        1. Website screenshots
    • II. Tools used in the project and deploy process
        1. Tools and framework
        1. Deploy
  • C. Security
    • I. Some issue of cloud computing platform
        1. Public Cloud
        1. Private Cloud
        1. Hybrid Cloud
        1. Community Cloud
    • II. Security issues in cloud environments
  • D. Summary
  • References
  • Figure 1: Use-case diagram
  • Figure 2: Index page......................................................................................................................................................
  • Figure 3: Add-product page
  • Figure 4: Edit-product page
  • Figure 5: Searching products
  • Figure 6: VSCode UI
  • Figure 7: Github user interface
  • Figure 8: MongoDB Compass user interface
  • Figure 9: Render user interface
  • Figure 10: NodeJS website
  • Figure 11: Creating cluster
  • Figure 12: Creating database
  • Figure 13: Get connection string
  • Figure 14: Connect to MongoDB Compass
  • Figure 15: Create a new repository
  • Figure 16: package.json
  • Figure 17: Server port
  • Figure 18: Render website
  • Figure 19: Website is deployed on cloud

A. Introduction

In this assignment, we're going to learn about two important things. First, we'll see how to put a website online so people can see it. Then, we'll talk about how to keep things safe on the internet, like making sure our data and programs are secure. This assignment will help us understand both the technical side of putting a website online and the important steps to make sure everything is protected.

B. Design

I. Overview function

1. Use-case diagram

Figure 1 : Use-case diagram My website application has some basic functions such as: View/Add/Update/Delete/Search products

2. Website screenshots

Index:

Figure 4 : Edit-product page Search products: Figure 5 : Searching products II. Tools used in the project and deploy process

1. Tools and framework

IDE:

Visual Studio Code (VSCode) is a popular and versatile code editor developed by Microsoft. It's designed to provide developers with a powerful and user-friendly environment for writing, editing, and debugging code. This tool offers developers a versatile and feature-packed code editor that is highly customizable and adaptable to various programming needs. Its extensions, integrated tools, and cross-platform availability make it a popular choice for developers across different domains. Figure 6 : VSCode UI Framework: Express.js is a flexible web framework for Node.js. It helps build web applications and APIs by simplifying tasks like routing, handling requests, and managing middleware. With a minimalist approach, it allows developers to customize and extend functionalities as needed. Its features include routing, middleware support, handling HTTP methods, integrating templates, serving static files, and more. Express is widely used due to its simplicity and active community support. Source code manager: GitHub is a widely used platform for hosting and collaborating on software projects. It provides tools for version control, where developers can track changes to their code over time. GitHub uses Git, a distributed version control system, to manage code changes and facilitate collaboration among team members.

Figure 8 : MongoDB Compass user interface Cloud computing deployment tool: Render is a cloud computing platform that follows the PAAS (Platform as a Service) model, which means it takes care of many technical details so I can focus on your project. It's designed for projects of all sizes, from small startups to large enterprises, providing a scalable environment.

Figure 9 : Render user interface

2. Deploy

Download NodeJS: ExpressJS framework need to combine with NodeJS, so the first step is to download Node.js in the official Node.js website and download the version that matches my operating system. Figure 10 : NodeJS website

Figure 13 : Get connection string Step 4: Open MongoDB Compass and paste the connection string into the URI, remember to replace with the password of the database user. After that, MongoDB is ready to be used. Figure 14 : Connect to MongoDB Compass Config git and upload files to Github: During web application development, I need to use Github to manage source and deploy it in Render to test. For each project, I will create one repository to manage code.

Figure 15 : Create a new repository After created a repository, I will use command to sync the current project with git:

  • git clone repository_link
  • git init
  • git remote add origin repository_link
  • git branch - m main Deploy code on Render: When deploying code on Render, there are some points that I need to notice if I do not want any errors. Mongoose version need to be at 6.11.1 by typing command in the terminal:
  • npm install [email protected] --save

Figure 18 : Render website After that, my website is successfully deployed on cloud.

Figure 19 : Website is deployed on cloud

C. Security

I. Some issue of cloud computing platform

1. Public Cloud

Security and Sensitive Data:

  • Issue: Accidentally sharing sensitive information like API keys, passwords, or personal data in public repositories.
  • Solution: Use environment variables for sensitive information. Avoid hardcoding them directly in your code. Utilize tools like .gitignore to exclude sensitive files from being pushed to the repository. Code Quality:
  • Issue: Public repositories may contain unfinished or poorly written code, which can reflect negatively on your coding skills.
  • Solution: Before making your repository public, ensure that the code is well-documented, properly formatted, and free of unnecessary comments or clutter. You can also mention in the README that the code is a work in progress. Licensing:
  • Issue: Public repositories require clear licensing to define how others can use your code.
  • Solution: Choose an appropriate open-source license for your project. GitHub provides guidance on licenses and offers templates to help you decide.
  • Issue: Building and maintaining a private cloud infrastructure can come with significant upfront costs.
  • Solution: Consider cost-benefit analysis. While initial costs are higher, long-term savings might be realized through increased efficiency, reduced operational costs, and better resource utilization. Scalability:
  • Issue: Scaling a private cloud can be more challenging compared to public clouds due to hardware limitations.
  • Solution: Design the private cloud with scalability in mind. Implement technologies like virtualization and containerization to maximize resource utilization and facilitate scaling. Resource Management:
  • Issue: Allocating and managing resources in a private cloud can be complex, leading to underutilization or overprovisioning.
  • Solution: Implement resource monitoring and management tools to ensure efficient utilization. Use techniques like workload balancing and automatic scaling. Maintenance and Updates:
  • Issue: Maintaining hardware, software, and security updates for a private cloud infrastructure requires ongoing effort.
  • Solution: Establish a regular maintenance schedule. Utilize tools for automated updates and patches. Implement strict security measures to prevent vulnerabilities. Limited Accessibility:
  • Issue: Private clouds are often hosted on-premises, which might limit accessibility from remote locations.
  • Solution: Implement secure remote access solutions such as VPNs (Virtual Private Networks) to ensure access from off-site locations.

3. Hybrid Cloud

Data Integration Complexity:

  • Issue: Integrating and managing data across on-premises and cloud environments can be complex.
  • Solution: Implement data integration tools and strategies that enable seamless data movement and synchronization between environments. Security and Compliance:
  • Issue: Ensuring consistent security and compliance across both on-premises and cloud components can be challenging.
  • Solution: Implement strong security practices, encryption, and compliance policies across all environments. Use identity and access management tools to control access. Network Latency and Performance:
  • Issue: Network latency between on-premises and cloud components can impact application performance.
  • Solution: Optimize network architecture, use content delivery networks (CDNs), and consider application performance tuning. Complexity in Management:
  • Issue: Managing resources and applications across different environments can lead to increased complexity.
  • Solution: Use cloud management platforms that provide unified management interfaces and tools. Implement automation for provisioning and scaling. Cost Management:
  • Issue: Tracking and managing costs across hybrid environments can be complex.
  • Solution: Use cost management tools and implement budgeting and monitoring mechanisms to track expenses and optimize resource usage.

4. Community Cloud

Data Exclusion and Security:

  • Issue: Maintaining data segregation and ensuring security among community members' data can be challenging.
  • Solution: Implement strong access controls, encryption, and data isolation mechanisms. Collaborate with members to define security policies. Resource Sharing and Allocation:
  • Issue: Efficiently sharing and allocating resources among multiple community members with varying needs can be complex.
  • Solution: Implement resource management tools that allow fair allocation based on member requirements. Establish clear resource sharing agreements. Compatibility and Integration: