Assignment-1 Cloud, Cloud Programming, Essays (university) of Information Technology

Assignments for Cloud Programming

Typology: Essays (university)

2022/2023

Uploaded on 08/10/2023

loc-nguyen-22
loc-nguyen-22 🇻🇳

1 document

1 / 58

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
ASSIGNMENT 1 FRONT SHEET
Qualification
BTEC Level 5 HND Diploma in Computing
Unit number and title
Unit 16: Cloud computing
Submission date
27/5/2023
Date Received 1st
submission
Re-submission Date
Date Received 2nd
submission
Student Name
Nguyen Phuoc Loc
Student ID
GCC210155
Class
GCC1001
Assessor name
Le Huynh Quoc Bao
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
P1
P2
P3
P4
M1
M2
D1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a

Partial preview of the text

Download Assignment-1 Cloud, Cloud Programming and more Essays (university) Information Technology in PDF only on Docsity!

ASSIGNMENT 1 FRONT SHEET

Qualification BTEC Level 5 HND Diploma in Computing

Unit number and title Unit 16: Cloud computing

Submission date 27/5/2023 Date Received 1st submission

Re-submission Date Date Received 2nd submission

Student Name Nguyen Phuoc Loc Student ID GCC

Class GCC1001 Assessor name Le Huynh Quoc Bao

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

P1 P2 P3 P4 M1 M2 D

 Summative Feedback:  Resubmission Feedback:

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

Signature & Date:

  1. As a developer, explain to the board director the fundamentals of cloud computing and how it is

popular nowadays(about 2500 words)

  1. Proposed solution (higher level solution description – around 700 words) and explain the

appropriateness of the solution for the scenario (about 400 words with images and diagrams)which

might include:

a. Architectural design (architectural diagram and description).

b. Detailed design:

i. Deployment model (discussion on why that model was chosen).

ii. Service model (discussion on why that model was chosen).

iii. Programming language/ webserver/database server chosen.

  1. Summary.

General guidelines:

● Instead of providing definitions but also provide with examples.

● Provide more own arguments instead of definitions

● Making use of academic references instead of web tutorials

● For a cloud architecture look at the bottom of this document

Learning Outcomes and Assessment Criteria

Pass Merit Distinction

LO1 Demonstrate an understanding of the fundamentals of Cloud Computing

and its architectures

LO1 & 2

D1 Justify the tools chosen to realise

a Cloud Computing solution.

P1 Analyse the evolution and

fundamental concepts of Cloud

Computing.

P2 Design an appropriate

architectural Cloud Computing

framework for a given scenario.

M1 Discuss why an organisation

should migrate to a Cloud Computing

solution.

LO2 Evaluate the deployment models, service models and technological

drivers of Cloud Computing and validate their use

P3 Define an appropriate deployment

model for a given scenario.

P4 Compare the service models for

choosing an adequate model for a

given scenario.

M2 Demonstrate these deployment

models with real world examples.

  • CHAPTER 1: ANALYZE THE EVOLUTION AND FUNDAMENTAL CONCEPTS OF CLOUD COMPUTING (P1)
    • I. History of Cloud Computing:..................................................................................................................................
    • II. Fundamental concepts of cloud computing.
        1. Definition of Cloud Computing
        1. Client-server model.........................................................................................................................................
    • III. Peer-to-peer model (P2P).
        1. Definition:
        1. How P2P networks work:
        1. P2P network architecture:
        1. Advantages of P2P networks:
        1. Disadvantages of P2P networks:.....................................................................................................................
        1. Examples of P2P networks:
    • IV. High Performance Computing (HPC).
        1. Parallel Computing:.........................................................................................................................................
        1. Distributed Computing:
        1. Cluster Computing:
    • V. Cloud Deployment Model...................................................................................................................................
        1. Public Cloud:
      • 2 Private Cloud:
        1. Hybrid Cloud:
        1. Community Cloud:
    • VI. Service Model.
        1. Software as a Service (SaaS).
        1. Platform as a Service (PaaS)
        1. Infrastructure as a Service (IaaS).
        1. Compare the service models for choosing an adequate model for a given. (P4)
    • VII. Characteristics of Cloud Computing.
    • VIII. Virtualization and Multicore
        1. Virtualization.
        1. Multicore:........................................................................................................................................................
  • (P2) CHAPTER 2: DESIGN AN APPROPRIATE ARCHITECTURAL CLOUD COMPUTING FRAMEWORK FOR A GIVEN SCENARIO
    • I. Cloud Computing Architecture.
    • II. Architecture design for ATN organization.
  • CHAPTER 3: CLOUD SOLUTION FOR ATN COMPANY.
    • I. Overview Scenario.
    • II. The reason why ATN Company should use cloud?
    • III. Which deployment model should be used and why?........................................................................................
    • IV. Which programming language should be used?
        1. What is PHP:....................................................................................................................................................
        1. Features of PHP:..............................................................................................................................................
        1. Why use PHP?
    • V. Which database should be used?
        1. What is MySql?
        1. Benefits of MySql?
        1. Why should use MySql?
    • VI. Which cloud platform should be used?
        1. What is Heroku?..............................................................................................................................................
        1. Why work on Heroku?
    • VII. Cloud architecture diagram explanation
  • References

CHAPTER 1: ANALYZE THE EVOLUTION AND FUNDAMENTAL CONCEPTS OF

CLOUD COMPUTING (P1)

I. History of Cloud Computing:

Cloud computing has a rich history that can be traced back to the 1950s. One of the earliest concepts

related to cloud computing was the "theory of time-sharing," introduced by computer scientist John

McCarthy. This concept involved multiple users accessing a central computer system through terminals,

allowing them to rent computational capabilities affordably.

In the 1960s, J.C.R Licklider developed the ARPANET, which laid the groundwork for a global computer

network where users could access programs and data anywhere. During this time, running hosted

applications through terminals became feasible, enabling information exchange between terminals and

the leading service.

The 1970s witnessed the development of virtual machines, allowing multiple operating systems to run

simultaneously on a single physical platform. In the 1990s, telecommunication companies transitioned

from point-to-point data circuits to virtual private network services, providing shared access to a single

physical infrastructure.

In 1997, Professor Ramnath Chellapa defined cloud computing as a paradigm driven by economic rationale

rather than technical limitations. This marked an important milestone in shaping the understanding of

cloud computing.

Significant advancements in cloud computing were made throughout the late 1990s and early 2000s.

Salesforce.com emerged in 1999, offering enterprise-level applications through a simple website. In 2002,

Amazon Web Services (AWS) introduced cloud-based retail services, including data storage and

computation. Then, in 2006, AWS launched Elastic Compute Cloud (EC2), allowing small companies to rent

computers to host and run their applications. Google Docs and Dropbox were also introduced around this

time, enabling end users to utilize cloud computing for document sharing and file storage directly.

Between 2008 and 2009, the focus shifted towards private clouds, where infrastructure is dedicated to a

single organization, while public clouds allow multiple clients to share server resources. Open-source

platforms gained traction during this period, as collaboration among programmers became crucial for

developing high-quality cloud-related software.

productivity, faster and more efficient use of available resources, and security, cloud computing is the

preferred option for individuals and businesses.

(FRANKENFIELD, 2023)

  1. Client-server model

a. Definition:

The client-server model, which divides the workload or tasks among providers of a resource or service,

such as servers and requesters known as clients, is structured like an application architecture. In the client-

server architecture, when the client computer sends a request for data to the server through the internet,

the server accepts the requested process and delivers the data packets requested back to the client. None

of the client's resources are shared.

(syedmodassirali, 2022)

b. How the Client – Server model works?

Client: "Client" refers to a person or organization using a service. Similarly, in the digital world, a client is

a computer (Host), i.e., capable of receiving information or using a particular service from the service

providers (Servers).

Server: Similarly, it means someone or a medium serving something when discussing servers. The server

is a computer situated on the ground that delivers information or access to specific services in this digital

world.

The clients request something, and the server serves them during its current time in the database.

(syedmodassirali, 2022)

Figure 2 How the Client-Server work?

c. How the browser interacts with the servers?

There are a few steps to follow to interact with a client's servers.

  • The user enters the URL (Uniform Resource Locator) of the website or file. The Browser then

requests the DNS (DOMAIN NAME SYSTEM) Server.

  • DNS Server lookup for the address of the WEB Server.
  • DNS Server responds with the IP address of the WEB Server.
  • The Browser sends over an HTTP/HTTPS request to WEB Server’s IP (provided by the DNS server).
  • The server sends over the necessary files for the website.
  • The Browser then renders the files, and the website is displayed. This rendering is done with the

help of a DOM (Document Object Model) interpreter, CSS interpreter, and JS Engine collectively known as

the JIT or (Just in Time) Compilers.

from clients, who are most often web browsers. When a client requests, the server will reply to this request

by sending needed web pages, files, or other resources. The Web browser acts as a client and sends the

request to the server associated with this URL when an Internet user enters it. The request is processed

by a server, retrieved from an appropriate website or resource, and forwarded to the client for display.

The efficient distribution of resources, as well as the ability for users to access information and services on

the Internet, is facilitated by this client-server model.

III. Peer-to-peer model (P2P).

  1. Definition:

The Peer-to-Peer (P2P) model is a decentralized communications model in which each party has the same

capabilities, and either party can initiate a communication session.

The P2P network model makes it possible for each node to act as both a client and a server, compared

with the Client-Server Model in which clients make requests that are fulfilled by servers.

Autonomous routing of network traffic, sizeable parallel computing environments, distributed storage,

and other functions may be provided by P2P systems. Many P2P programs focus on sharing media, which

is why software piracy and copyright infringement are frequently associated with p2p.

A broad range of operating parameters such as: can be controlled by application P2P applications. The

number of connections to be sought or allowed at one time by a member. Which systems can be

connected to or avoided? Which services are to be offered? The amount of system resources that are

allocated to the network. Only a handful of P2P applications connect to subsets of active nodes on the

network with restricted user control.

(Rosencrance, 2022)

Figure 4 peer-to-peer model

  1. How P2P networks work:

Once a file has been downloaded, it will normally take the following steps: The user opens his web browser

and visits an available website to download it. In this case, the site acts as a server. The user's computer is

an agent that receives data from it. In this process, the downloaded files are transferred from point A, the

website, to point B, the user's computer, as a one-way street.

However, this process will occur differently for users who download the corresponding file utilizing P2P.

P2P software must be installed on the user's computer to create a virtual network of users for this

application. The file will be downloaded in bits from various computers on the network that already have

this file when a user downloads it.

At the same time, data is being sent from a user's computer to other network computers requesting it.

This is the same situation as a two-way street, where files are filled with several pieces of information that

come to users' computers and leave if requested. The file transfer traffic is distributed among different

computers.

(Rosencrance, 2022)

IV. High Performance Computing (HPC).

HPC technology uses clusters of powerful processors, working in parallel, to process massive multi-

dimensional datasets (big data) and solve complex problems at extremely high speeds. HPC systems

typically perform over one million times faster than the fastest commodity desktop, laptop, or server

systems.

The supercomputer, a purpose-built computer that contains millions of processors or processor cores, has

been the HPC system paradigm for decades. Supercomputers are still with us; at this writing, the fastest

supercomputer is the US-based Frontier, with a processing speed of 1.102 exaflops, or quintillion floating-

point operations per second (flops). However, HPC solutions are being run by more and more organizations

today in clusters of high-speed computing servers hosted on-premises or via the cloud.

HPC workloads uncover new insights that advance human knowledge and create significant competitive

advantage. For example, high-performance computing is used to sequence DNA, automate stock trading,

and run artificial intelligence algorithms and simulations, like those that allow autonomous cars to drive

themselves, analyze terabytes of data streaming from the Internet of Things sensors, radar, and GPS

systems in real-time, to make split-second decisions.

(Anon., 2021)

  1. Parallel Computing:

Definition : Parallel computing involves using multiple computing resources simultaneously to solve a

computational problem. The problem is divided into smaller parts that can be solved concurrently, with

each part being further broken down into instructions. These instructions are executed simultaneously on

different processors or cores. To ensure coordination, an overall control mechanism is employed.

An example of parallel computing is processing payroll. The computational problem can be divided into

discrete pieces of work, such as calculating salaries for different employees. These pieces of work can be

executed concurrently, allowing for faster processing compared to using a single compute resource.

Figure 5 Parallel computing example of processing payroll

Parallel computers can be single computers with multiple processors/cores or a network of interconnected

computers. Modern computers have multiple functional units, execution units/cores, and hardware

threads, enabling parallel processing. Large parallel computers, known as supercomputers, often consist

of hardware clusters from different vendors connected by networks.

Benefits of parallel computing:

  • Increased computational speed: Utilizing multiple compute resources simultaneously reduces the

execution time of complex computational tasks. By breaking down the workload into smaller parts

and executing them concurrently on multiple processors, parallel computing can achieve higher

computational performance than a single compute resource.

  • Handling big data: Parallel computing enables the processing large and complex datasets that a

single resource cannot efficiently handle. By partitioning tasks into smaller pieces and processing

them parallel across multiple processors, parallel computing can effectively handle large and

distributed datasets.

Besides that, distributed computing also has some disadvantages:

  • Security risks: Multiple devices, servers, and connections in a distributed system increase the

vulnerability to security breaches and data leaks. Proper security measures and continuous

monitoring are required to mitigate these risks.

  • Setup complexity: Setting up a distributed system is a complex task that requires time, resources,

and skilled personnel. This can lead to high initial costs for companies, although the long-term

benefits often outweigh the investment.

  • Overloading issues: In a distributed system, simultaneous data transmission from multiple nodes

can cause overloading, leading to performance degradation and delays in executing commands.

  • The complexity of implementation: Distributed systems involve complex software and hardware

components, requiring expertise in handling communication, security, and maintenance. Ensuring

efficient and reliable operation can be challenging.

  • Network errors: Communication breakdowns and errors can occur in a distributed system due to

network issues. Troubleshooting such errors becomes difficult as data is distributed across multiple

nodes.

  • Data integration: Proper data integration is crucial for a distributed system to ensure synchronized

communication. Maintaining consistency among processes, functions, and changes can be

challenging, requiring skilled professionals with programming expertise.

(Anon., 2021)

Figure 6 The distributed computing

An example of distributed computing is Ride-sharing services like Uber or Lyft utilize distributed computing

to handle large-scale operations and provide real-time services to users. When a user requests a ride, the

distributed backend system processes the request across multiple servers, finding an available driver,

calculating the optimal route, and providing real-time updates. This distributed computing infrastructure

allows efficient resource utilization, handling concurrent ride requests from different locations and

ensuring system responsiveness and reliability. Ride-sharing services demonstrate how distributed

computing enables handling massive operations, delivering real-time services, and enhancing the overall

user experience.

  1. Cluster Computing:

Definition : Cluster computing is a collection of tightly or loosely connected computers that work together

so that they act as a single entity. The connected computers execute operations all together thus creating

the idea of a single system. The clusters are generally connected through fast local area networks (LANs).

(shubhikagarg, 2021)

Advantages:

  • High Performance: The systems offer better and enhanced performance than mainframe

computer networks.

  • Easy to manage: Cluster Computing is manageable and easy to implement.