Download Cloud Computing - 1644 - Assignment 1 and more Assignments Web Design and Development 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 03 /08/2023 Date Received 1st submission Re-submission Date Date Received 2nd submission Student Name Student ID Class GCH1103 Assessor name Nguyen Dinh 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 P1 P2 P3 P4 M1 M2 D
Summative Feedback: Resubmission Feedback:
Grade: Assessor Signature: Date: Internal Verifier’s Comments: Signature & Date:
- Introduction
- I. Task
- Client / Server
- P2P
- High Performance Computing
- 3.1. Parallel Computing
- 3.2. Cluster Computing
- 3.3. Distributed Computing
- Deployment model
- 4.1. Public cloud
- 4.2. Private cloud
- 4.3. Community cloud
- 4.4. Hybrid cloud
- Service models
- 5.1. Infrastructure as a Service (IaaS)
- 5.2. Platform as a Service (PaaS)
- 5.3. Software as a Service (SaaS)
- 5 characteristics of cloud computing
- Virtualization / Multicore
- 7.1. Virtualization
- 7.2. Multicore
- II. Task
- Why ATN should use cloud?
- Which deployment model should be used and why?
- Which service model should be used and why?
- Which programming language should be used?
- Which database should be used?
- Which cloud platform should be used?
- Dynamic Scalability Architecture
- III. Conclusion
- References
- Figure 1: Public cloud (Chandrasekaran, 2014)
- Figure 2: Private cloud (Chandrasekaran, 2014).........................................................................................................
- Figure 3: Community cloud (Chandrasekaran, 2014)
- Figure 4: Hybrid cloud (Chandrasekaran, 2014)
- Figure 5: IaaS
- Figure 6: PaaS..............................................................................................................................................................
- Figure 7: Essential characteristics of cloud computing...............................................................................................
2. P2P Peer-to-peer (P2P) refers to a decentralized way of sharing and distributing resources directly between individual computers or devices without the need for a central server. A peer-to-peer network, each computer can act as both a client and a server. This means that each device can request resources or services from other peers in the network and also provide resources or services to others. P2P cloud computing has several advantages over the client/server model, such as:
- First, it is more scalable. As the number of peers in the network increases, the number of resources and services available also increases.
- Second, it is more efficient. Peers can share resources and services with each other, which can reduce the overall cost of cloud computing.
- Third, it is more secure. There is no central server to attack, so P2P cloud computing is less vulnerable to security attacks. However, P2P cloud computing also has some disadvantages. First, it can be less reliable. If a peer goes offline, then the resources and services that it was providing are no longer available. Furthermore, it can be more complex to manage. Peers need to be able to communicate with each other and coordinate their activities. Here are some examples of P2P cloud computing applications:
- File sharing : P2P file sharing applications (such as BitTorrent) allow users to share files with each other without the need for a central server.
- Distributed computing : P2P distributed computing applications (such as SETI@home) allow users to donate their spare computing power to solve complex problems.
- Content delivery networks : P2P content delivery networks (such as LimeWire) can be used to deliver content to users more quickly by distributing the content across multiple peers. 3. High Performance Computing
3.1. Parallel Computing
Parallel computing is a type of computation in which many calculations or processes are carried out simultaneously. This is accomplished by breaking the problem into independent parts so that each processing element can execute its part of the algorithm simultaneously with the others. In parallel computing, since there is simultaneous use of multiple processor machines, the following apply:
- It is run using multiple processors (multiple CPUs).
- A problem is broken down into discrete parts that can be solved concurrently.
- Each part is further broken down into a series of instructions. Parallel computing can be used to solve a wide variety of problems, including:
- Scientific computing : Parallel computing is often used to solve scientific problems that require a lot of computation, such as weather forecasting, climate modeling, and protein folding.
- Engineering : Parallel computing is also used in engineering applications, such as structural analysis, fluid dynamics, and computer-aided design.
- Data processing : Parallel computing can be used to process large amounts of data, such as in big data applications and machine learning.
- Graphics : Parallel computing is used in graphics applications, such as video games and computer- generated imagery. There are two main types of parallel computing: shared memory and distributed memory.
- Shared memory parallel computing systems have a single pool of memory that is shared by all of the processing elements. This makes it easy for the processing elements to communicate with each other, but it can also be a bottleneck if the memory is not large enough.
- Distributed memory parallel computing systems have multiple pools of memory that are not shared by all of the processing elements. This makes it more difficult for the processing elements to communicate with each other, but it also allows for more scalability. Here are some examples of parallel computing:
- Human brain : The human brain is a massively parallel computer that consists of billions of neurons. These neurons communicate with each other to process information and generate behavior.
- Graphics processing unit (GPU): The GPU is a specialized processor that is designed for parallel computing. GPUs are often used to accelerate graphics applications, but they can also be used for other tasks, such as machine learning.
- Cloud : The cloud is a distributed computing platform that can be used to run parallel applications. The cloud can provide a large pool of processing resources that can be used to solve complex problems. (Chandrasekaran, 2014, p. 2)
3.2. Cluster Computing
Distributed computing is commonly used in various applications, such as:
- Big Data Processing : Distributed computing is well-suited for handling vast amounts of data in parallel, making it essential for big data analytics and processing.
- Internet-based Services : Many online services and platforms, like search engines and social media networks, rely on distributed computing to handle user requests efficiently.
- Scientific Research : In scientific research, distributed computing allows researchers to perform complex simulations and data analysis collaboratively.
- Content Delivery : Content delivery networks (CDNs) use distributed computing to cache and deliver content from multiple locations, reducing load times and improving user experience. Examples of Distributed Computing:
- Blockchain : Blockchain networks are distributed ledgers that operate on a decentralized consensus mechanism. Each node in the network holds a copy of the blockchain and collaborates with others to validate and add new transactions to the chain.
- SETI@home : This is a distributed computing project where volunteers donate their computer's idle processing power to help analyze radio signals from space in the search for extraterrestrial intelligence. (Chandrasekaran, 2014, p. 3) 4. Deployment model
4.1. Public cloud
A public cloud is a cloud computing model in which the services are hosted by a third-party provider and made available to the public over the internet. This means that anyone can access the services, regardless of their location or organization. (Chandrasekaran, 2014)
Figure 1 : Public cloud (Chandrasekaran, 2014) Characteristics of Public cloud:
- Highly scalable : The public cloud is highly scalable. The resources in the public cloud are large in number and the service providers make sure that all the requests are granted.
- Affordable : The public cloud is offered to the public on a pay-as-you-go basis; hence, the user has to pay only for what he or she is using (usually on a per-hour basis). And, this does not involve any cost related to the deployment
- Less secure : The public cloud is less secure out of all the four deployment models. This is because the public cloud is offered by a third party and they have full control over the cloud. Though the SLAs ensure privacy, still there is a high risk of data being leaked. Public clouds offer a number of advantages over traditional on-premises IT infrastructure. These advantages include:
- Scalability : Public clouds are highly scalable, so you can easily add or remove resources as needed.
- Cost-effectiveness : Public clouds are typically more cost-effective than on-premises IT infrastructure, especially for small businesses and startups.
- Ease of use : Public clouds are easy to use and manage, even for non-technical users.
- Security : Public clouds are typically very secure, as they use a variety of security measures to protect your data. However, there are also some disadvantages to using public clouds. These disadvantages include:
- Data security : There is always a risk that your data could be compromised in a public cloud environment.
- Security : Private clouds are designed to meet strict security standards, making them suitable for organizations handling sensitive data or complying with industry regulations. Private clouds are typically owned and operated by the organization, but they can also be outsourced to a third-party vendor. Private clouds offer a number of advantages over public clouds, including:
- Security : Private clouds are typically more secure than public clouds, as they are not accessible to the public.
- Compliance : Private clouds can be configured to meet the specific compliance requirements of an organization.
- Control : Organizations have more control over the private cloud environment, as they can customize the services to meet their specific needs. However, private clouds also have some disadvantages, including:
- Cost : Private clouds can be more expensive than public clouds, as organizations need to purchase and maintain the hardware and software infrastructure.
- Complexity : Private clouds can be more complex to set up and manage than public clouds.
- Scalability : Private clouds can be more difficult to scale than public clouds, as organizations need to add more hardware and software as the demand for services increases. Application of Private Cloud:
- Government Organizations : Governments often utilize private clouds to maintain control over sensitive data and to comply with strict security regulations.
- Healthcare Institutions : Healthcare providers opt for private clouds to secure patient data and comply with health data privacy regulations.
- Financial Institutions : Banks and financial institutions use private clouds to protect financial data and meet industry-specific compliance requirements.
- Research Institutions : Organizations engaged in sensitive research projects choose private clouds to safeguard intellectual property and research data.
4.3. Community cloud
A community cloud is a type of cloud computing model that is shared among multiple organizations with similar interests, needs, or compliance requirements. In this model, a group of organizations, often from the same industry or community, collaboratively use and manage the cloud resources. (Chandrasekaran,
Figure 3 : Community cloud (Chandrasekaran, 2014) Characteristics of Community Cloud:
- Shared infrastructure : Organizations within the community pool their resources, such as servers, storage, and networking, to create a shared cloud infrastructure.
- Cost sharing : Community cloud allows organizations to share the costs of infrastructure, maintenance, and security, making it a cost-effective solution for all members involved.
- Partially secure : Partially secure refers to the property of the community cloud where few organizations share the cloud, so there is a possibility that the data can be leaked from one organization to another, though it is safe from the outside world. Community clouds are typically owned and operated by a third-party vendor, but they can also be self- managed by the community. Community clouds offer a number of advantages over public clouds and private clouds, including:
- Cost-effectiveness : Community clouds can be more cost-effective than public clouds, as the organizations in the community can share resources and services.
- Security : Community clouds can be more secure than public clouds, as the organizations in the community can share security best practices.
- Compliance : Community clouds can be configured to meet the specific compliance requirements of the organizations in the community.
- Control : Organizations in the community have more control over the community cloud environment, as they can customize the services to meet their specific needs. However, community clouds also have some disadvantages, including:
- Complex cloud management : Cloud management is complex and is a difficult task in the hybrid cloud as it involves more than one type of deployment models and also the numbers of users are high. Hybrid clouds offer a number of advantages over public clouds, private clouds, and on-premises infrastructure, including:
- Scalability : Organizations can quickly scale resources by leveraging the elasticity of public cloud services during peak demand while maintaining control over critical applications and data in the private cloud.
- Data Security : Sensitive data can be kept in the private cloud, providing organizations with greater control, data privacy, and compliance with industry regulations. However, hybrid clouds also have some disadvantages, including:
- Complexity : Managing and integrating multiple cloud environments can be complex, requiring expertise and coordination to ensure smooth operations and data flow.
- Data Integration : Moving data between public and private clouds can be challenging, especially when dealing with large datasets or sensitive information Application of Hybrid cloud:
- Development and Testing : Developers can use the hybrid cloud for testing and development environments, optimizing resource usage and cost efficiency.
- Data Backup and Disaster Recovery : Organizations can use the public cloud for data backup and disaster recovery, while keeping critical data and applications on-premises or in a private cloud. 5. Service models
5.1. Infrastructure as a Service (IaaS)
Infrastructure as a Service (IaaS) is one of the three main cloud computing service models, along with Platform as a Service (PaaS) and Software as a Service (SaaS). IaaS provides organizations with access to computing resources, such as virtual machines, storage, and networking. (Chandrasekaran, 2014)
Figure 5 : IaaS IaaS provides a virtual data center, where users can create and manage virtual machines, storage instances, and networking configurations without the need for physical hardware. This virtualized infrastructure is hosted and maintained by the cloud provider, freeing users from the burden of managing on-premises data centers and hardware. With IaaS, organizations do not need to purchase or maintain their own physical hardware. Instead, they can rent the resources they need from a cloud provider. This can save organizations money on capital expenses and operational costs. IaaS is a good option for organizations that need to:
- Scale their IT infrastructure quickly and easily
- Reduce their IT costs
- Focus on their core business activities Advantages of IaaS:
- Pay-as-you-use model : The IaaS services are provided to the customers on a pay-per-use basis. This ensures that the customers are required to pay for what they have used. This model eliminates the unnecessary spending on buying hardware
- Scalability : IaaS enables rapid scaling of resources to meet fluctuating demands, ensuring that businesses can handle varying workloads effectively.
Figure 6 : PaaS Advantages of PaaS:
- Collaboration and Teamwork : PaaS fosters collaboration among developers and teams, making it easier to work together on projects, share code, and collaborate in real-time.
- Automatic Scalability : PaaS platforms offer automatic scaling capabilities, allowing applications to handle varying workloads and traffic spikes without the need for manual intervention. This ensures that applications can respond to changing demands efficiently.
- Offline Access : Some PaaS providers enable developers to work offline by synchronizing their local development environment with the PaaS services. This allows developers to continue developing applications locally and deploy them online when they regain internet connectivity. Disadvantages of PaaS:
- Vendor Lock-in : Depending on the PaaS provider, migrating applications between different platforms may be complex due to differences in APIs and configurations.
- Limited Control : PaaS abstracts the underlying infrastructure, which may limit certain low-level configurations and control over the hosting environment.
- Less security : Organizations may have security concerns when hosting sensitive data or applications on a shared PaaS environment. Here are some examples of PaaS services:
- Heroku : It is a popular PaaS service that is known for its ease of use and its large community of developers. Heroku supports a variety of programming languages and frameworks, making it a good choice for organizations that need to develop and deploy applications quickly.
- Cloud Foundry : It is an open-source PaaS platform that can be deployed on-premises or in the cloud. Cloud Foundry is a good choice for organizations that want to have more control over their PaaS environment.
5.3. Software as a Service (SaaS)
Software as a Service (SaaS) is a cloud computing model that provides users with access to software applications over the internet. In this model, the software is hosted and maintained by a third-party provider, and users can access it through a web browser or application interface without the need for local installation or hardware management. (Chandrasekaran, 2014) SaaS services provide the following benefits:
- Cost Savings : SaaS eliminates the need for organizations to purchase and manage software licenses and hardware, resulting in cost savings and reduced IT overhead.
- Less maintenance : SaaS services eliminate the additional overhead of maintaining the software from the client side the service provider itself maintains the automatic updates, monitoring, and other maintenance activities of the applications.
- Automatic Updates : SaaS providers manage software updates and maintenance, ensuring that users always have access to the latest features and improvements. Disadvantages of SaaS:
- Data Security : Organizations may have concerns about data security and privacy when entrusting their data to a third-party SaaS provider.
- Connectivity requirements : Users require a stable internet connection to access and use SaaS applications, which can be a limitation in areas with limited connectivity. Here are some examples of SaaS services:
- Microsoft Office 365 : Office 365 is a popular SaaS service that provides organizations with access to Microsoft Office applications, such as Word, Excel, and PowerPoint.
- Google Workspace : Google Workspace is a popular SaaS service that provides organizations with access to Google's productivity suite, including Gmail, Docs, Sheets, and Slides.
- Salesforce : Salesforce is a popular SaaS service that provides organizations with customer relationship management (CRM) software.
- Adobe Creative Cloud : Adobe Creative Cloud is a popular SaaS service that provides organizations with access to Adobe's creative suite, including Photoshop, Illustrator, and InDesign.