Học phần này được thiết kế tỉ mỉ nhằm trau dồi sự hiểu biết sâu sắc về các khái niệm cơ bản của Điện toán đám mây, khám phá các phân khúc đám mây khác nhau, mô hình triển khai và nhu cầu vốn có về việc áp dụng các giải pháp Điện toán đám mây. Học sinh sẽ phát triển sự đánh giá cao về sự phức tạp liên quan đến việc quản lý kiến trúc dịch vụ đám mây và trau dồi nhận thức quan trọng về các dự án dựa trên nguyên tắc Điện toán Đám mây.
History of cloud computing
Introduction to the History of Cloud Computing
Cloud computing has become the preferred method for delivering solutions and enterprise applications to businesses worldwide The inception of cloud computing dates back to the early 1960s, marked by the emergence of time-sharing concepts through Remote Job Entry IBM and DEC (Digital Equipment Corporation) were pivotal in this development, leading to the availability of full-time sharing systems by the early 1970s In the 1990s, several telecommunications giants began offering cost-effective Virtual Private Network (VPN) services, optimizing network traffic through efficient server usage By 1994, the term "cloud" metaphorically entered the lexicon to describe virtualized services.
The Inventor of Cloud Computing
Cloud computing, as we know it today, was conceptualized in the early 1960s by J.C.R Licklider, an American psychologist and computer scientist His pioneering work in network research, particularly on ARPANet
(Advanced Research Project Agency Network), aimed to connect people and data globally and laid the foundation for cloud computing J.C.R Licklider, born on March 11th, 1915, in St Louis, Missouri, earned a BA degree from Washington University in 1937, specializing in physics, mathematics, and psychology In 1938, he completed his MA in psychology and obtained his Ph.D from the University of Rochester in 1942
Licklider's profound interest in information technology, coupled with his diverse achievements, led to his appointment as the Head of the Information Processing Techniques Office (IPTO) at ARPA (US Department of Defense Advanced Research Project Agency) in 1962 Under his leadership, ARPANet, a precursor to the modern internet, was established.
Cloud Computing's Evolution in the 21st Century
The era of cloud computing continued to evolve into the 21st century In the mid-2000s, around 2006, Amazon pioneered Amazon Web Services (AWS) and introduced Elastic Computing Cloud (EC2) In 2008, Google launched its beta version of a search engine Microsoft announced its cloud computing service, Microsoft Azure, in 2008, designed for testing, deployment, and application management In 2012, Google Compute Engine was introduced to the public at the end of December 2013 Oracle entered the scene with Oracle Cloud, offering three primary services for businesses: Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS) Today, Linux and Microsoft Azure are prominent players in the cloud computing landscape.
Fundamental concepts of cloud computing
Cloud computing offers several fundamental characteristics that make it a powerful technology for businesses Here's a summary of the five major characteristics:
On-demand Self-Service: Cloud computing allows users to easily provision infrastructure and services with a click of a button This self-service capability aligns with modern businesses' agile software development needs, eliminating the long wait times associated with traditional infrastructure setup
Rapid Elasticity and Scalability: Cloud computing provides automatic scalability, allowing businesses to handle rapid workload changes Resources can be added or removed quickly without causing downtime This feature helps businesses efficiently manage varying workloads, such as those during sales events
Multi-tenancy and Resource Pooling: Cloud computing supports multi-tenancy, where multiple customers share the same physical infrastructure without compromising security and privacy Resource pooling ensures efficient utilization of resources and reduces costs for customers
Pay-per-use Pricing: Cloud services are charged based on actual usage, shifting IT costing from capital expenditures (Capex) to operational expenditures (Opex) Customers are billed for the resources they consume, allowing for cost savings through efficient resource management
Broad Network Access: Cloud services are accessible over the internet from anywhere and any device Public cloud services are available globally, and the use of edge computing further accelerates service delivery at the cloud's edges, improving accessibility
These characteristics provide businesses with flexible, cost-effective, and scalable solutions, making cloud computing a valuable technology for various applications
Figure 1 Fundamentals of cloud computing
Characteristics of cloud computing
Cloud computing is defined by five essential characteristics, and the presence of all these features distinguishes it as true cloud computing:
On-demand self-service: Users have the ability to autonomously request and access computing resources like server time and network storage without the need for direct interaction with the service provider
Broad network access: Cloud capabilities are accessible via the network and can be reached through standard mechanisms, enabling usage across various devices, including mobile phones, laptops, and personal digital assistants (PDAs)
Elastic resource pooling: Cloud providers aggregate their computing resources, serving multiple consumers through a multi-tenant model Physical and virtual resources are dynamically allocated and reassigned based on consumer demand The location of these resources may not be directly known to the consumer but can often be specified at a higher level of abstraction, such as by country, state, or data center These resources can include storage, processing power, memory, and network bandwidth
Rapid elasticity: Cloud services are designed for quick and flexible provisioning They can rapidly scale out to meet increased demand and just as quickly scale in when demand decreases From the consumer's perspective, these capabilities often seem unlimited, allowing them to purchase resources in any quantity at any time
Measured service: Cloud systems employ automatic resource management with metering capabilities suitable for the type of service provided This metering allows for the monitoring, control, and reporting of resource usage It provides transparency for both the service provider and the consumer, ensuring efficient utilization of resources These resources can encompass storage, processing, bandwidth, and active user accounts
Figure 2 Characteristics of cloud computing
The need of cloud computing in the real world
The primary drivers behind the adoption of cloud computing are the attributes of convenience and reliability In the past, the transfer of files necessitated the use of physical storage devices such as USB flash drives, external hard drives, or CDs, which then needed to be transported to different locations In contrast, employing a cloud- based solution like Dropbox streamlines this process, ensuring that files are accessible from any computer with an internet connection Furthermore, the cloud greatly simplifies file sharing, enabling seamless collaboration over the internet
Cloud computing has found a multitude of practical applications across various domains, significantly impacting the way businesses and institutions operate Here are some real-world applications of cloud computing:
Online Data Storage: Cloud computing facilitates the storage of files, images, audio, video, and more in the cloud, eliminating the need for costly physical storage systems It provides easy access to stored data as per organizational requirements
Backup and Recovery: Cloud vendors offer secure data storage and backup solutions, making data recovery easier and more reliable compared to traditional methods This ensures data safety and retrievability
Big Data Analysis: Cloud computing addresses the challenge of storing and analyzing large volumes of data Organizations can store extensive datasets in the cloud and use high-quality tools for data analytics to derive valuable insights
Testing and Development: Cloud services offer a cost-effective and flexible platform for product development, testing, and deployment Organizations benefit from scalable IT resources, reducing expenses associated with these processes
Anti-Virus Applications: Cloud-based antivirus software is stored in the cloud and monitors systems remotely for security risks, providing protection and the convenience of remote software downloads
E-commerce Applications: Cloud-based e-commerce platforms enable rapid responses to market opportunities and challenges They streamline business operations, managing customer and product data in cloud environments
Cloud Computing in Education: Cloud computing has revolutionized education, offering e-learning, distance learning platforms, and student information portals It creates an engaging environment for students, faculty, and researchers, enhancing learning, teaching, and experimentation
E-Governance Applications: Cloud computing supports various government activities by providing a more efficient and cost-effective approach to managing services, applications, and resources It enhances scalability and customization while reducing unnecessary expenses.
Computing paradigm
Definition
Cloud computing architecture is a pivotal element that facilitates the storage and accessibility of data via the internet It encompasses both front-end and back-end components, providing clients with a user interface for interaction and service providers with the means to manage and deliver cloud services Here is an overview of the components of cloud computing architecture:
The front end is the client-facing aspect of cloud computing, providing the interfaces and applications necessary for users to access cloud computing platforms It includes:
Client Infrastructure: Offers a graphical user interface (GUI) for user interaction with the cloud
Applications: These can be any software or platforms that clients intend to access
Services: Determine the type of services accessed based on client requirements
The back end is the service provider's realm, responsible for managing the resources essential for delivering cloud computing services It comprises:
Data Storage: Offers significant storage capacity to store and manage data in the cloud
Infrastructure: Provides services at the host, application, and network levels, including hardware (servers, storage, network devices), virtualization software, and other resources
Management: Coordinates components like applications, services, runtime environments, storage, infrastructure, and security in the backend
Security: Implements security mechanisms within the backend to ensure data safety
Internet: Serves as the medium through which front end and back end components interact and communicate
Cloud computing architecture combines service-oriented and event-driven architectures and is structured to serve clients and service providers, enabling seamless data storage and retrieval through internet connectivity
Figure 3 Architecture of cloud computing
The benefits of cloud computing architecture are numerous and can have a significant positive impact on businesses:
Solves latency issues and enhances data processing
Reduces IT operating costs and offers data accessibility
Allows easy scaling of cloud resources
Provides flexibility for competitive advantages
Enhances disaster recovery and security
Encourages remote work and team collaboration.
Client/Server Model
The client-server model in computer networking is a foundational concept where all end systems are categorized as either clients or servers, each serving distinct roles and purposes:
Clients take on an active role in the communication process by initiating communication sessions through requests sent to servers To perform this role effectively, clients must possess knowledge of available servers and the services they offer It's important to note that clients can communicate exclusively with servers and cannot directly interact with other clients
Servers, in contrast, assume a passive role They respond to their clients' requests, executing specific actions based on these requests and returning results as necessary
The division of roles extends to the software level, where various protocols in the TCP/IP suite employ client and server software to facilitate communication While client software is typically found on client hardware, and server software is located on server hardware, there are instances where devices can function as both clients and servers Notably, web clients like Mozilla Firefox, Internet Explorer, and Google Chrome, and web servers such as Apache, Microsoft IIS, and GWS, exemplify this client-server interaction in the context of web communication
At a more abstract level, the client-server architecture is a widely used software design approach that decomposes software into two primary components:
Client-side (or simply, client): This application runs on end-user computers, offering a user interface (UI) that governs the application's look, feel, and interaction with users Additionally, it may utilize and consume local resources on the user's device, such as temporary and local storage
Server-side (or simply, server): This application receives requests from clients and houses the logic needed to generate and deliver the appropriate data in response Instead of a user interface, servers generally feature an application programming interface (API) for interaction Moreover, they often include a database to persistently store all application data
Scalability: Centralized systems can be scaled up more easily to accommodate increasing demands
Easy Management: Centralization simplifies system management and maintenance, as it's all handled in one central location
Accessibility: Centralized data and resources are typically more easily accessible to users
Data Security: Centralized systems can have enhanced data security measures due to concentrated management
Network Traffic Congestion: Centralized systems can suffer from network traffic congestion, especially during peak usage times
High Cost: Implementing and maintaining centralized systems can be expensive
Robustness: Centralized systems can be vulnerable to single points of failure, potentially leading to system-wide outages
Maintenance Difficulty: Maintenance of a centralized system can be complex and challenging
Unacquirable Resources: In a centralized system, resources can become unavailable if the central point fails, leading to downtime or data loss
When you are using your computer and enter www.google.com in the browser such as Google chrome, Coc Coc, or FireFox So that calls client computer When you click the searching button, at this point the browser sends a request to the Google web server Now, Google web server responds data to the browser and display them to user
P2P Model
In the P2P model, all end systems possess equivalent capabilities and responsibilities, enabling any party to initiate a communication session Participants in a P2P network share a portion of their hardware resources, meaning that they both provide and request resources They employ similar networking programs to connect and interact with each other
Peer-to-peer (P2P) is a decentralized communication model where both parties involved have equal capabilities, and either can initiate a communication session In stark contrast to the client-server model, where the client requests a service and the server fulfills it, the P2P network model allows each node to operate as both a client and a server
P2P systems have the potential to offer features such as anonymized routing of network traffic, the creation of massive parallel computing environments, and the facilitation of distributed storage However, many P2P programs primarily focus on media sharing, leading to a common association with software piracy and copyright infringement
Comprise two or more computers in a network
Share individual resources, including DVD players, printers, and disk drives
Each computer in a P2P network can operate as both a client and a server
Enables direct communication between computers within the network
All computers on the P2P network can access client devices directly connected to one specific computer
Requires a means of connection, such as a Wi-Fi router
Involve numerous clients connecting to a central server where most applications and data are centrally installed
Clients access resources and data from the central server
Typically deliver faster access speeds due to the support of a large number of clients
Clients function as independent workstations without resource sharing
Facilitate easier application and file upgrades because files are primarily stored on the central server
In a client-server network, security is managed by the server rather than individual users
Figure 6 Client-server vs P2P comparation
Cost-Efficiency: P2P networks are cost-effective as they don't require expensive centralized servers Setup costs are reduced, and payments may be one-time
Reliability: P2P networks are decentralized, so one part can fail without disrupting others Users can still access files from functioning parts
Scalability: P2P networks can handle additional clients without sacrificing performance Bandwidth availability can increase when more users share files
Server Requirement: Each computer in a P2P network acts as a server and workstation, eliminating the need for dedicated servers and reducing overhead costs
Resource Sharing: Resources are shared among users, allowing devices to provide and consume resources simultaneously P2P can facilitate locating and downloading online files
Decentralization: Lack of centralization makes file location and retrieval more challenging, as files are stored on individual machines
Performance: As the number of devices on the network increases, performance may degrade, as each computer is accessed by other users P2P networks may not work well in growing networks
Security: P2P networks offer limited security for individual files, relying primarily on permissions Unauthorized users may gain access without proper logins
Remote Access: Unsecured codes on a terminal may allow remote users to access files without proper permissions, compromising network security
Backup Recovery: Backup is complex in P2P networks since data isn't centralized Each computer must be backed up separately
One of the most popular examples of P2P is Torrent Every computer is connected each other on the internet in torrent Many computers can download files from one computer if it uploads the files Also, every computer has the potential to upload parts of a file if that computer has previously downloaded some segments of the file
High-Performance Computing
High-performance computing (HPC) involves utilizing parallel data processing to enhance computational performance and execute intricate calculations This approach aggregates computing power to enable advanced applications to run efficiently and swiftly, surpassing the capabilities of traditional computers, workstations, and servers
The significance of high-performance computing (HPC) is evident in the modern world, where technological breakthroughs and innovations depend on cutting-edge technology, data, and advanced computation As technologies like artificial intelligence (AI), machine learning (ML), and the Internet of Things (IoT) continue to evolve, they demand vast quantities of data and high-performance computing capabilities HPC systems can perform quadrillions of calculations per second, a substantial contrast to typical laptops or desktops that manage, at most, 3 billion calculations per second with a 3 GHz processor
HPC is indispensable for the following reasons:
Fostering Innovation: HPC serves as a catalyst for groundbreaking innovations in fields like science, technology, business, and academia
Enhancing Processing Speed: Speed is of the essence for various computing operations, applications, and workloads, and HPC significantly improves processing speeds
Building a Robust IT Infrastructure: HPC sets the stage for a dependable and rapid IT infrastructure capable of storing, processing, and analyzing vast datasets for a multitude of applications
Parallel computing involves executing multiple processors simultaneously to process applications or computations This computing architecture breaks down large problems into independent, smaller parts that can be processed concurrently Multiple CPUs communicate via shared memory, combining results upon completion This approach is particularly useful for handling large computations by distributing the workload among multiple processors
Parallel computing enhances application processing speed and task resolution by harnessing the combined computational power of systems It is a fundamental principle used by most supercomputers Operational scenarios requiring substantial processing power often employ parallel processing
Typically, in parallel computing infrastructure, multiple processors are installed in a server rack The application server subdivides computational requests into smaller segments, which are then processed simultaneously on each server This contrasts with early computer software designed for serial computation, which executed one instruction at a time
Parallel computing offers several advantages, including
Ability to tackle larger problems
To illustrate, consider a real-life example: when two cashiers simultaneously serve two customers, it saves time and reduces complexity, similar to how parallel computing operates
Cluster computing refers to a group of interconnected computers that collaborate, operating as a unified entity These connected computers work in unison, creating the perception of a single, cohesive system Clusters are typically linked through high-speed local area networks (LANs)
Cluster computing holds significant importance for various reasons:
Cost-Efficiency: Cluster computing provides a cost-effective alternative to large server or mainframe computer solutions
Enhanced Content Delivery: It accelerates content processing and critical services
Scalability: Many organizations and IT companies adopt cluster computing to boost scalability, availability, processing speed, and resource management while maintaining economical costs
Continuous Computational Power: Cluster computing ensures that computational power is consistently available
Vendor-Independent: It offers a standardized approach for deploying parallel high-performance systems, independent of specific hardware vendors and their product choices
Cluster Computing offers several advantages, including
Distributed computing refers to a system where processing and data storage are spread across multiple devices or systems rather than being concentrated in a single central device In a distributed system, each device or system possesses its own processing capabilities and can also handle the storage and management of data independently These devices or systems collaborate to perform tasks and share resources, with no single device acting as a central hub
An example of a distributed computing system is cloud computing, where resources like computing power, storage, and networking are provided over the Internet and accessed on demand In such a system, users can access and utilize shared resources through a web browser or other client software
Key components of a Distributed Computing System include:
Devices or Systems: These elements have their own processing capabilities and can manage their own data
Network: The network connects these devices or systems, enabling communication and data exchange
Resource Management: Distributed systems often incorporate resource management systems to allocate and oversee shared resources like computing power, storage, and networking
The architecture of a Distributed Computing System is typically Peer-to-Peer, where devices or systems can act as both clients and servers, directly communicating with each other
Advantages of Distributed Computing Systems:
Limitations of Distributed Computing Systems:
P2 Designing an appropriate architectural Cloud Computing framework for a given scenario
Definition
Layer 1 (User/Client layer)
The first layer, known as the "Client Layer," is the foundation of the cloud architecture It's where all users or clients connect to the cloud Clients can be various devices like thin clients (which rely on other systems for full functionality), thick clients (with their own processing power), or mobile devices that can access web applications While cloud applications are accessed similarly to web applications, they have distinct internal properties This layer comprises client devices
In layer 1, users and clients establish connections with the cloud Accessing cloud applications is akin to accessing web applications and requires internet or network access However, the internal characteristics of cloud applications differ from traditional web applications Therefore, layer 1 plays a crucial role in establishing the connection between users or clients and the cloud.
Layer 2 (Network layer)
Layer 2 serves as the connection point that allows users to link up with the cloud The entire cloud infrastructure relies on this connection to provide services to customers In a public cloud, this connection is primarily through the Internet, which is usually accessible from various locations worldwide The exact location of the public cloud remains abstract to users
On the other hand, a private cloud may use a local area network (LAN) for connectivity, but its operation still hinges on the network in use Typically, when accessing either a public or private cloud, users require a minimum bandwidth, which is sometimes specified by the cloud providers It's important to note that the quality of this Internet connection between the user and cloud is not covered by service-level agreements (SLAs) In other words, SLAs do not guarantee the quality of service (QoS) for this layer.
Layer 3 (Cloud management layer)
Layer 3 encompasses software components that play a crucial role in managing the cloud These software components can include a cloud operating system (OS), which acts as an intermediary between the data center (containing the actual resources) and the user They can also include management software used for resource management, scheduling, provisioning, and optimization tasks These functions help ensure efficient use of cloud resources, such as server and storage workload consolidation, and internal cloud governance
It's important to note that this layer falls within the purview of service-level agreements (SLAs) In other words, the operations that occur in this layer significantly impact the SLAs agreed upon between users and service providers Any delays in processing or discrepancies in service provisioning can lead to an SLA violation As per the rules, any SLA violation can result in penalties imposed by the service provider
This is applicable to both private and public clouds Well-known service providers like Amazon Web Services (AWS) and Microsoft Azure offer public cloud services, while platforms like OpenStack and Eucalyptus facilitate the creation, deployment, and management of private clouds.
Layer 4 (Hardware resource layer)
Layer 4 is where the actual hardware resources are provided In a public cloud, this typically involves the use of a data center in the backend In a private cloud, it can also be a data center or a high-capacity, interconnected hardware system This layer falls under the purview of service-level agreements (SLAs), and it plays a crucial role in governing the SLAs
The availability and provisioning of resources are especially critical in this layer When a user accesses the cloud, the cloud resources should be made available as quickly as possible and within the timeframe defined by the SLAs If there are any discrepancies in provisioning resources or applications, the service provider may be subject to penalties
Data centers in this layer are equipped with high-speed network connections and efficient data transfer algorithms to ensure rapid and reliable data access Multiple data centers can be used for a single cloud, and conversely, multiple clouds can share a data center
This architecture represents the core structure of a cloud, with strict layering, which is typically followed for any cloud application Depending on how the cloud is deployed, there may be some flexibility or loose isolation between Layer 3 and Layer 4.
Architecture design and its working mechanism for ATN company
ATN is a Vietnamese company specializing in the sale of toys targeting teenagers across multiple provinces in Vietnam The company boasts an annual revenue exceeding $700,000 Currently, ATN operates multiple shops, each equipped with its own database to manage and store individual shop transactions Shop data is collected and sent to the board of directors on a monthly basis, requiring significant time and effort for data consolidation Furthermore, real-time stock information is not readily available to the board To address these challenges, ATN is exploring the implementation of cloud computing to streamline data management and access
Problems ATN Aims to Solve:
Data Consolidation: Currently, ATN faces challenges in consolidating data from multiple shops This leads to inefficiencies and delays in decision-making for the board of directors
Real-Time Stock Information: The board lacks real-time access to stock information This hinders their ability to make informed decisions regarding stock management and replenishment
Resource Management: ATN needs a more efficient way to manage its IT resources, and cloud computing can provide scalability and flexibility
Cost Efficiency: ATN aims to reduce IT operating costs, and cloud computing can offer a more cost- effective solution
Figure 9 Architecture desgin for ATN
My proposed cloud architecture for ATN appears to address the company's data management and access challenges effectively Here's a summary of working mechanism:
This layer represents the users or clients interacting with your system, such as the ATN shop employees Users at this layer initiate connections to the cloud They can use devices like computers, mobile phones, or any other devices to access the cloud's web application interface These users make changes to the data, and this information is sent to the cloud The user layer ensures that data changes can be made through a user-friendly interface
The network layer plays a crucial role in enabling users to connect to the cloud In this case, it's the means by which the data from ATN shops is sent to the cloud's web application For a public cloud, the Internet typically serves as the network layer The quality of this connection, including bandwidth, impacts the user's ability to access the cloud
The cloud management layer consists of software that manages various aspects of the cloud This software includes a cloud operating system, which serves as an interface between the data center (where the cloud resources are located) and the user In this case, this layer handles resource management, scheduling, provisioning, and other administrative functions This layer is critical for optimizing resource usage, server consolidation, and ensuring that the cloud operates efficiently Layer 4 (Hardware resource layer):
The hardware resource layer provides the physical infrastructure for your cloud The "Hardware
Resource Layer" in cloud architecture, includes data centers, physical servers, storage, network infrastructure, data management, virtualization, and resource provisioning It forms the foundation of cloud computing, where physical servers and databases store data and applications In this scenario, it's where data changes from ATN shops are processed and managed, ensuring the cloud application's reliability and performance.
Dependencies and components of ATN App
Cloud Infrastructure: The ATN App relies on cloud infrastructure for its hosting and data storage needs This infrastructure encompasses servers, databases, and various other cloud-based resources, all of which are managed by the designated cloud service provider
Internet Connectivity: A dependable internet connection is crucial to ensure real-time data updates and access Both ATN shops and the central management website require internet connectivity to effectively communicate with the cloud infrastructure
Cloud Service Provider: The ATN App is reliant on the services and capabilities provided by the selected cloud service provider This encompasses services like data synchronization, security features, and the ability to scale resources
ATN Shops: Each individual shop is linked to the cloud's web application interface, facilitating real-time updates of shop data This connection ensures that any alterations made in a shop's data are promptly reflected in the cloud
Web Application Interface: The web application interface within each shop plays a central role in the efficient and user-friendly management of data It offers a convenient platform for handling data at the shop level
Centralized Management: The website accessible to the boss and admin serves as a centralized hub for data management It establishes a connection with the cloud service, enabling interaction with the cloud database This platform allows the boss and admin to oversee and manage data from all shops in one place
Cloud Service: The cloud service serves as an intermediary between the web application interfaces at the shops and the cloud database It ensures that data modifications are synchronized and updated in real-time, ensuring a consistent and reliable view of the data
Cloud Database: The cloud database acts as the primary repository for all data, storing information from all ATN shops It is accessible to authorized users through the website
P3 Defining an appropriate deployment model for a given scenario
Three cloud deployment models
Public cloud model
The public cloud is a cloud computing model that allows widespread access to cloud services and resources Here are the key points about the public cloud:
The public cloud provides access to systems and services to anyone, including the general public and major industry groups
It is owned and managed by the entity delivering the cloud services, not the end-users
Minimal Investment: There are no substantial upfront costs; users pay for what they use, making it accessible for enterprises needing immediate resource access
No Setup Cost: Service providers handle the entire infrastructure, eliminating the need for users to set up hardware
No Infrastructure Management: Users are relieved from managing the cloud infrastructure
No Maintenance: Maintenance tasks are handled by the service provider
Dynamic Scalability: On-demand resources are available to meet a company's evolving needs
Security Concerns: Public clouds are considered less secure as resources are open to the public, which may raise security issues
Low Customization: Since public clouds serve many users, they may not be highly customizable to meet individual requirements
Examples of public cloud services include Google App Engine This model is suitable for organizations looking for cost-effective, accessible, and quickly scalable cloud solutions but should be cautious regarding security and customization limitations
Private cloud model
The private cloud is a cloud deployment model that offers an exclusive and one-on-one environment for a single user or customer Here are the main points about the private cloud:
The private cloud provides a cloud computing environment where the hardware resources are dedicated to a single user or organization
It is sometimes referred to as the "internal cloud" because it is typically used within a specific organization or boundary
Better Control: Users have complete control over service integration, IT operations, policies, and user behaviors
Data Security and Privacy: It's suitable for storing sensitive corporate information, providing access only to authorized staff and ensuring enhanced security
Supports Legacy Systems: Private clouds are compatible with legacy systems that may not work with the public cloud
Customization: Organizations can customize the private cloud solution to meet their specific needs and requirements
Less Scalable: Private clouds have a limited scalability range as they serve a smaller number of clients
Costly: They are often more expensive compared to public clouds because of the personalized and dedicated nature of the services
Private clouds are suitable for organizations that require complete control over their cloud environment, have specific security and compliance needs, or need to support legacy systems However, they may be less cost- effective and less scalable than public clouds
Community cloud model
The community cloud is a cloud deployment model that allows systems and services to be accessible by a group of organizations with shared concerns or tasks Here are the key points about the community cloud:
The community cloud is a distributed system created by integrating the services of different clouds to meet the specific needs of a community, industry, or business
It is designed for a specific group of organizations with common interests or security requirements Advantages:
Cost-Effective: Sharing the cloud infrastructure among multiple organizations or communities can be cost-effective
Security: Community clouds often provide better security than public clouds due to the shared and restricted user group
Shared Resources: Organizations in the community can share resources and infrastructure, improving resource utilization
Collaboration and Data Sharing: Community clouds are suitable for collaborative efforts and data sharing among member organizations
Limited Scalability: Community clouds are typically less scalable because multiple organizations share the same resources based on their shared interests
Rigid Customization: As data and resources are shared among different organizations, customization may be limited, as changes by one organization could impact others within the community
Community clouds are beneficial for groups of organizations that have shared goals and interests but may require trade-offs in scalability and customization due to the shared nature of the cloud resources
Selected deployment model for ATN company with detailed explaination
Criteria Weight Public Cloud Private Cloud Community cloud
Table 1 Decision matrix table for selecting deployment model Explaination:
Cost: Community Cloud offers the most cost-effective solution for ATN because it allows sharing costs among multiple organizations, which is crucial for a company with revenue of $700,000/year
Security: Private Cloud is rated highest for security, but Community Cloud is also considered secure Both are suitable options
Scalability: Public Cloud is highly scalable, but it might be overkill for ATN's revenue and shop count Community Cloud offers moderate scalability
Customization: Private Cloud offers the highest level of customization, but Community Cloud still allows some customization based on shared interests
Based on the decision matrix and ATN's specific needs, the Community Cloud model is the most suitable deployment option It excels in cost- effectiveness, security, and collaboration, which align with ATN's scenario of multiple shops needing to share data and resources within a specific community.
P4 Comparing the service models for choosing an adequate model for a given scenario
Comparing 3 service models (IaaS, PaaS, SaaS)
The cloud offers three primary service models for delivering computing resources to end customers:
Software as a Service (SaaS): In the SaaS model, software applications are hosted and maintained by a service provider These applications are accessible over the internet from various client devices, such as web browsers or program interfaces Customers use the software without managing the underlying infrastructure SaaS examples include customer relationship management (CRM), business intelligence analytics, and online accounting software
Platform as a Service (PaaS): PaaS provides a development and deployment environment for consumer- created or acquired applications Customers can develop, run, and manage applications using programming languages, libraries, and tools offered by the provider While customers do not control the underlying infrastructure, they have control over the deployed applications and their configuration settings PaaS vendors manage the infrastructure, including networks, servers, and storage Examples of PaaS providers are Google App Engine and Microsoft Azure Services
Infrastructure as a Service (IaaS): In the IaaS model, customers can provision fundamental computing resources like processing, storage, and networks on a pay-per-use basis They can deploy and run their software, including operating systems and applications While customers have control over their operating systems, storage, and applications, they do not manage the underlying cloud infrastructure's physical components The service provider is responsible for equipment ownership, housing, cooling, operation, and maintenance A notable IaaS provider is Amazon Web Services (AWS)
The key distinction between PaaS and IaaS lies in the level of control users have PaaS is more managed by vendors, whereas IaaS requires greater customer management Organizations that already have specific software packages or applications and want to run them in the cloud often choose IaaS, whereas PaaS is suited for those who want to develop and deploy applications without managing the underlying infrastructure.
An adequate model for ATN app with justification
Criteria Weight SaaS PaaS IaaS
Table 2 Decision matrix for comparing service models Based on the decision matrix, the IaaS model scores the highest (74) and is the recommended choice for ATN App Here's why:
Development Flexibility: IaaS provides the highest level of control over the development environment, which is crucial for customizing ATN App to meet specific requirements
Infrastructure Management: IaaS gives ATN App the most control over infrastructure management, allowing them to tailor resources to their needs
Scalability: IaaS offers the best scalability options, enabling ATN App to handle fluctuations in workloads effectively
Maintenance and Updates: IaaS allows ATN App to manage software updates and maintenance, providing more flexibility
Cost Control: IaaS aligns well with precise cost control, as ATN App pays only for the resources used
IaaS is the most versatile model, offering the flexibility and control that ATN App needs while supporting efficient resource management and scalability This makes it the suitable choice for ATN App's cloud deployment.
M1 Discussing why an organization should migrate to a Cloud Computing solution
Advantages and disadvantages points of using cloud computing solution
The advantages of cloud computing can be summarized as follows:
Cost Savings: Cloud computing eliminates the need for upfront investments in physical hardware and reduces the costs associated with hardware maintenance This cost-effectiveness is especially beneficial for small and medium-sized businesses
High Speed: Cloud deployment is fast and efficient, requiring fewer clicks to get the necessary resources This rapid deployment accelerates project timelines and business operations
Back-up and Restore Data: Cloud-based data storage simplifies backup and recovery processes It offers a more efficient and reliable way to protect data, reducing downtime and data loss risks
Automatic Software Integration: Cloud platforms handle software integration automatically This eliminates the need for extensive customization and integration efforts, streamlining operations
Reliability: Cloud hosting services offer high reliability with instant updates and maintenance This reliability ensures that systems and applications are always up to date and available
Mobility: Cloud services provide remote access to data and applications, enabling employees to work from anywhere with an internet connection This enhances mobility and flexibility in the workforce
Unlimited Storage Capacity: The cloud offers virtually limitless storage capacity, allowing organizations to scale their storage as needed without significant upfront costs
Collaboration: Cloud computing facilitates secure collaboration among geographically dispersed teams This promotes efficient teamwork and communication
Quick Deployment: Cloud-based systems can be fully operational within minutes The speed of deployment varies depending on the technologies used but generally accelerates time-to-value for businesses
These advantages make cloud computing an attractive solution for businesses seeking cost savings, agility, and enhanced performance while reducing the burden of managing physical infrastructure and IT resources
The disadvantages of cloud computing can be summarized as follows:
Performance Can Vary: Cloud applications share resources, which can lead to varying performance
Technical Issues: Cloud technology is susceptible to outages and technical problems, even with high maintenance standards
Security Threats: Sharing sensitive company data with third-party cloud providers can expose it to potential security breaches
Downtime: Cloud providers can experience downtime due to power loss, connectivity issues, or maintenance
Internet Connectivity: Reliable internet access is essential for using cloud computing
Lower Bandwidth: Many cloud providers impose bandwidth limits, with excess usage incurring high costs
Lack of Support: Cloud companies often provide limited customer support, relying on FAQs and online resources.
Persuasion to the organization to utilize cloud computing instead of local apps
deployment models in real world cloud app
Choosing the appropriate cloud deployment model is a critical decision for optimizing IT infrastructure Each model has its own set of benefits and is well-suited to specific situations The choice hinges on the particular needs and limitations of an organization
The term "public clouds" is self-explanatory They are accessible to the general public, and data is generated and stored on servers maintained by third-party providers These service providers own and manage the server infrastructure, eliminating the need for user companies to purchase and maintain their own hardware These provider companies offer resources over the internet either for free or on a pay-per-use basis Users have the flexibility to scale these resources according to their needs
Public cloud deployment is the preferred choice for businesses that have fewer concerns about data privacy Examples of popular public cloud deployment models include Amazon Elastic Compute Cloud (Amazon EC2, recognized as a leading service provider by ZDNet), Microsoft Azure, Google App Engine, IBM Cloud, Salesforce Heroku, and many others
Amazon Web Services (AWS): AWS is one of the largest public cloud service providers It offers a wide range of cloud services, including computing power, storage, databases, machine learning, and more Many startups and enterprises use AWS for scalable and cost-effective cloud solutions
Microsoft Azure: Microsoft Azure provides a comprehensive suite of cloud services Organizations can leverage Azure for virtual machines, AI services, and various enterprise solutions It's commonly used by businesses for cloud-based infrastructure
From a technical perspective, public and private cloud models are quite similar, sharing very few differences in their architectures The key distinction lies in ownership: a public cloud is available to the general public, while a private cloud is solely owned by a specific company This private cloud model is often referred to as an internal or corporate cloud
The servers in a private cloud can be hosted externally or on the company's premises Regardless of their physical location, these infrastructures operate on a dedicated private network and utilize software and hardware exclusively intended for the owner company's use
Access to the information stored in a private cloud is restricted to a well-defined group of individuals, preventing the general public from utilizing it Given the increasing number of data security breaches in recent years, many large corporations have opted for a closed private cloud model to minimize security concerns
In contrast to the public model, the private cloud offers greater flexibility for tailoring the infrastructure to the company's specific requirements Private clouds are particularly well-suited for companies aiming to safeguard their mission-critical operations or for businesses with continually evolving needs
It's worth noting that several public cloud service providers, such as Amazon, IBM, Cisco, Dell, and Red Hat, also offer private cloud solutions
IBM Cloud Private: IBM offers private cloud solutions for businesses looking to keep sensitive data and applications within their own data centers IBM Cloud Private allows for cloud-native development while maintaining data control
VMware Cloud: VMware provides private cloud solutions that allow organizations to extend their on- premises infrastructure into the cloud VMware's software-defined data center can be run on private clouds for added security and control
A hybrid cloud, like most hybrid concepts, combines the strengths of the deployment models mentioned earlier (public, private, and community) It enables organizations to cherry-pick the elements from these three types that align most closely with their needs
For instance, a company can achieve load balancing by placing mission-critical workloads in a secure private cloud while utilizing a public cloud for less sensitive tasks The hybrid cloud model not only provides security and management for strategically vital assets but does so in a manner that optimizes costs and resources Furthermore, this approach simplifies the movement of data and applications between different cloud environments
Google Anthos: Google Cloud's Anthos is a hybrid cloud platform that enables organizations to build, deploy, and manage applications across on-premises and multiple cloud environments, including Google Cloud, AWS, and Azure
Hewlett Packard Enterprise (HPE): HPE offers a hybrid cloud solution that integrates with public cloud providers like AWS and Azure It allows enterprises to have a unified approach to managing their hybrid cloud infrastructure
Comparison between 4 deployment models
To aid in my selection of a deployment model, I’ve found a comparative table summarizing the key business-critical features of each cloud type
Ease of setup and use Easy Requires IT proficiency Requires IT proficiency Requires IT proficiency
Data security and privacy Low High Comparatively high High
Data control Little to none High Comparatively high Comparatively high
Reliability Low High Comparatively high High
Scalability and flexibility High High Fixed capacity High
Cost-intensive; the most expensive model
Cost is shared among community members
Cheaper than a private model but more costly than a public one
Demand for in-house hardware No Depends Depends Depends
D1 Justifying the tools chosen to realise a Cloud Computing solution
Solution for ATN company
Deploymemt model
As I mentioned the chosen deployment model above, the Community Cloud model appears to be the most fitting deployment option It excels in cost-effectiveness, security, and collaboration, aligning well with ATN's scenario where multiple shops within a specific community need to share data and resources.
Service model
I also recommend a service model that is suitable for ATN company, it is IaaS model which is the most appropriate choice It offers the versatility, control, and scalability necessary for ATN App's cloud deployment, allowing efficient resource management to meet its specific needs.
Programming language
Choosing Node.js with Express for the back end and React.js for the front end is a solid choice for building the ATN company's applications
React.js, on the other hand, is a popular front-end library known for its component-based architecture and ease of development It allows for the creation of responsive and user-friendly interfaces, which is essential for applications targeting teenagers With React, I can build interactive and dynamic user interfaces that can help enhance the user experience
Node.js is known for its scalability and performance, making it suitable for handling data from multiple shops across various provinces I also use Express to make the web app easier to execute, as a web application framework for Node.js, provides an efficient way to build APIs and handle data transactions
These technologies are widely used in the industry and have strong community support, making it easier to find resources and solutions as I develop the applications for ATN Additionally, they work well together, allowing you to create a cohesive and seamless user experience
Figure 18 Node JS and ReactJS logos
Database
Selecting PostgreSQL as the database for your ATN company's applications is a wise decision PostgreSQL is a powerful, open-source relational database management system known for its reliability, scalability, and extensibility It offers a wide range of advanced features and capabilities that are well-suited for various business applications I chose this for the following reasons:
Data Integrity: PostgreSQL provides robust data integrity with support for foreign keys, constraints, and transactions, ensuring that your data remains consistent
Scalability: It can handle large volumes of data and high levels of traffic, making it suitable for applications with multiple shops and users
Community and Support: PostgreSQL has an active and supportive community, which means you can find a wealth of resources, documentation, and help when needed
Security: It offers advanced security features, including data encryption, authentication, and role-based access control to protect your data
Reliability: It is known for its reliability and robustness, with features like point-in-time recovery and continuous archiving.
Cloud platform
After considering some cloud platforms on the market, I decided to choose Azure which is a popular cloud platform with a strong presence and a growing customer base Microsoft has made significant investments in data centres worldwide, and they have a data centre in Southeast Asia (Singapore region) Azure provides a comprehensive set of services and robust integration with Microsoft technologies If your organization is already using Microsoft software or tools, Azure might be a seamless fit for ATN needs
Chandrasekaran, K (2015) Essentials of cloud computing, Boca Raton, FL, CRC Press
Anon (2023) History of cloud computing: Brief overview of cloud computing, EDUCBA, [online]
Available at: https://www.educba.com/history-of-cloud-computing/ (Accessed 26 September 2023)
Madooei, A (n.d.) Client-server applicationả, Client-server Application - OOSE, [online] Available at: https://madooei.github.io/cs421_sp20_homepage/client-server-app/ (Accessed 26 September 2023)
Roomi, M (2020) 7 advantages and disadvantages of peer to peer network: Drawbacks & benefits of peer to Peer Network, HitechWhizz, [online] Available at: https://www.hitechwhizz.com/2020/11/7- advantages-and-disadvantages-drawbacks-benefits-of-p2p-network.html (Accessed 27 September
Awati, R (2021) What is high-performance computing (HPC)?, Data Center, TechTarget, [online]
Available at: https://www.techtarget.com/searchdatacenter/definition/high-performance-computing- HPC (Accessed 27 September 2023)
Anon (n.d.) What is Parallel Computing - javatpoint, www.javatpoint.com, [online] Available at: https://www.javatpoint.com/what-is-parallel-computing (Accessed 27 September 2023)
Anon (2021) An overview of cluster computing, GeeksforGeeks, GeeksforGeeks, [online] Available at: https://www.geeksforgeeks.org/an-overview-of-cluster-computing/ (Accessed 27 September 2023)
Anon (2023b) What is distributed computing?, GeeksforGeeks, GeeksforGeeks, [online] Available at: https://www.geeksforgeeks.org/what-is-distributed-computing/ (Accessed 27 September 2023)
Vavra, C (2022) Five characteristics of cloud computing, Control Engineering, [online] Available at: https://www.controleng.com/articles/five-characteristics-of-cloud-computing/ (Accessed 27
Afreen, S (2023) What is cloud computing architecture: Simplilearn, Simplilearn.com, Simplilearn, [online] Available at: https://www.simplilearn.com/tutorials/cloud-computing-tutorial/cloud- computing-architecture (Accessed 27 September 2023)
Anon (2023a) Cloud deployment models, GeeksforGeeks, GeeksforGeeks, [online] Available at: https://www.geeksforgeeks.org/cloud-deployment-models/ (Accessed 27 September 2023)
Neal (2023) Fundamentals of cloud computing, Digital Cloud Training, [online] Available at: https://digitalcloud.training/fundamentals-of-cloud- computing/#:~:text=Cloud%20computing%20offers%20computing%20resources,effort%20and%20 cloud%2Dprovider%20interaction (Accessed 28 September 2023)
Richard Peterson and Peterson, R (2023) Advantages and disadvantages of cloud computing, Guru99, [online] Available at: https://www.guru99.com/advantages-disadvantages-cloud-computing.html (Accessed 30 September 2023).