0% found this document useful (0 votes)
23 views23 pages

Unit 2 CC

Cloud computing notes

Uploaded by

Anitha M K
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
0% found this document useful (0 votes)
23 views23 pages

Unit 2 CC

Cloud computing notes

Uploaded by

Anitha M K
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 23

UNIT 2

CLOUD PLATFORM ARCHITECTURE


1. CLOUD COMPUTING: DEFINITION, CHARACTERISTICS
Cloud computing is a virtualization-based technology that allows us to create, configure, and
customize applications via an internet connection. The cloud technology includes a
development platform, hard disk, software application, and database. The term cloud refers to
a network or the internet. It is a technology that uses remote servers on the internet to store,
manage, and access data online rather than local drives. The data can be anything such as files,
images, documents, audio, video, and more.
Cloud Computing means storing and accessing the data and programs on remote servers that
are hosted on the internet instead of the computer’s hard drive or local server. Cloud computing
is also referred to as Internet-based computing, it is a technology where the resource is provided
as a service through the Internet to the user. The data that is stored can be files, images,
documents, or any other storable document. Transparency, scalability, security and intelligent
monitoring are some of the most important constraints which every cloud infrastructure should
experience. Current research on other important constraints is helping cloud computing system
to come up with new features and strategies with a great capability of providing more advanced
cloud solutions.
Characteristics of Cloud Computing
There are many characteristics of Cloud Computing here are few of them :
1. On-demand self-services: The Cloud computing services does not require any human
administrators, user themselves are able to provision, monitor and manage computing
resources as needed.
2. Broad network access: The Computing services are generally provided over standard
networks and heterogeneous devices.
3. Rapid elasticity: The Computing services should have IT resources that are able to
scale out and in quickly and on a need basis. Whenever the user requires services, it is
provided to him and it is scale out as soon as its requirement gets over.
4. Resource pooling: The IT resource (e.g., networks, servers, storage, applications, and
services) present are shared across multiple applications and occupant in an
uncommitted manner. Multiple clients are provided service from a same physical
resource.
5. Measured service: The resource utilization is tracked for each application and
occupant; it will provide both the user and the resource provider with an account of
what has been used. This is done for various reasons like monitoring billing and
effective use of resource.
6. Multi-tenancy: Cloud computing providers can support multiple tenants (users or
organizations) on a single set of shared resources.
7. Virtualization: Cloud computing providers use virtualization technology to abstract
underlying hardware resources and present them as logical resources to users.
8. Resilient computing: Cloud computing services are typically designed with
redundancy and fault tolerance in mind, which ensures high availability and reliability.
9. Flexible pricing models: Cloud providers offer a variety of pricing models, including
pay-per-use, subscription-based, and spot pricing, allowing users to choose the option
that best suits their needs.
10. Security: Cloud providers invest heavily in security measures to protect their users’
data and ensure the privacy of sensitive information.
11. Automation: Cloud computing services are often highly automated, allowing users to
deploy and manage resources with minimal manual intervention.
12. Sustainability: Cloud providers are increasingly focused on sustainable practices, such
as energy-efficient data centers and the use of renewable energy sources, to reduce their
environmental impact.

2. Cloud deployment models: public, private, hybrid, community


Cloud Deployment Model
Cloud Deployment Model functions as a virtual computing environment with a
deployment architecture that varies depending on the amount of data you want to store
and who has access to the infrastructure.

Types of Cloud Computing Deployment Models


The cloud deployment model identifies the specific type of cloud environment based
on ownership, scale, and access, as well as the cloud’s nature and purpose. The
location of the servers you’re utilizing and who controls them are defined by a cloud
deployment model. It specifies how your cloud infrastructure will look, what you can
change, and whether you will be given services or will have to create everything
yourself. Relationships between the infrastructure and your users are also defined by
cloud deployment types.
• Public Cloud
• Private Cloud
• Hybrid Cloud
• Community Cloud
Public Cloud
The public cloud makes it possible for anybody to access systems and services. The public
cloud may be less secure as it is open to everyone. The public cloud is one in which cloud
infrastructure services are provided over the internet to the general people or major industry
groups. The infrastructure in this cloud model is owned by the entity that delivers the cloud
services, not by the consumer. It is a type of cloud hosting that allows customers and users to
easily access systems and services. This form of cloud computing is an excellent example of
cloud hosting, in which service providers supply services to a variety of customers. In this
arrangement, storage backup and retrieval services are given for free, as a subscription, or on
a per-user basis. For example, Google App Engine etc.

Advantages of the Public Cloud Model


• Minimal Investment: Because it is a pay-per-use service, there is no substantial upfront
fee, making it excellent for enterprises that require immediate access to resources.
• No setup cost: The entire infrastructure is fully subsidized by the cloud service
providers, thus there is no need to set up any hardware.
• Infrastructure Management is not required: Using the public cloud does not necessitate
infrastructure management.
• No maintenance: The maintenance work is done by the service provider (not users).
• Dynamic Scalability: To fulfil your company’s needs, on-demand resources are
accessible.
Disadvantages of the Public Cloud Model
• Less secure: Public cloud is less secure as resources are public so there is no guarantee
of high-level security.
• Low customization: It is accessed by many public so it can’t be customized according
to personal requirements.
Private Cloud
The private cloud deployment model is the exact opposite of the public cloud deployment
model. It’s a one-on-one environment for a single user (customer). There is no need to share
your hardware with anyone else. The distinction between private and public clouds is in how
you handle all of the hardware. It is also called the “internal cloud” & it refers to the ability to
access systems and services within a given border or organization. The cloud platform is
implemented in a cloud-based secure environment that is protected by powerful firewalls and
under the supervision of an organization’s IT department. The private cloud gives greater
flexibility of control over cloud resources.

Advantages of the Private Cloud Model


• Better Control: You are the sole owner of the property. You gain complete command
over service integration, IT operations, policies, and user behaviour.
• Data Security and Privacy: It’s suitable for storing corporate information to which only
authorized staff have access. By segmenting resources within the same infrastructure,
improved access and security can be achieved.
• Supports Legacy Systems: This approach is designed to work with legacy systems that
are unable to access the public cloud.
• Customization: Unlike a public cloud deployment, a private cloud allows a company to
tailor its solution to meet its specific needs.
Disadvantages of the Private Cloud Model
• Less scalable: Private clouds are scaled within a certain range as there is a smaller
number of clients.
• Costly: Private clouds are more costly as they provide personalized facilities.
Hybrid Cloud
By bridging the public and private worlds with a layer of proprietary software, hybrid cloud
computing gives the best of both worlds. With a hybrid solution, you may host the app in a safe
environment while taking advantage of the public cloud’s cost savings. Organizations can move
data and applications between different clouds using a combination of two or more cloud
deployment methods, depending on their needs.
Advantages of the Hybrid Cloud Model
• Flexibility and control: Businesses with more flexibility can design personalized
solutions that meet their particular needs.
• Cost: Because public clouds provide scalability, you’ll only be responsible for paying
for the extra capacity if you require it.
• Security: Because data is properly separated, the chances of data theft by attackers are
considerably reduced.
Disadvantages of the Hybrid Cloud Model
• Difficult to manage: Hybrid clouds are difficult to manage as it is a combination of both
public and private cloud. So, it is complex.
• Slow data transmission: Data transmission in the hybrid cloud takes place through the
public cloud so latency occurs.
Community Cloud
It allows systems and services to be accessible by a group of organizations. It is a distributed
system that is created by integrating the services of different clouds to address the specific
needs of a community, industry, or business. The infrastructure of the community could be
shared between the organization which has shared concerns or tasks. It is generally managed
by a third party or by the combination of one or more organizations in the community.

Advantages of the Community Cloud Model


• Cost Effective: It is cost-effective because the cloud is shared by multiple organizations
or communities.
• Security: Community cloud provides better security.
• Shared resources: It allows you to share resources, infrastructure, etc. with multiple
organizations.
• Collaboration and data sharing: It is suitable for both collaboration and data sharing.
Disadvantages of the Community Cloud Model
• Limited Scalability: Community cloud is relatively less scalable as many organizations
share the same resources according to their collaborative interests.
• Rigid in customization: As the data and resources are shared among different
organizations according to their mutual interests if an organization wants some changes
according to their needs they cannot do so because it will have an impact on other
organizations.

3. CATEGORIES OF CLOUD COMPUTING


Cloud Computing can be defined as the practice of using a network of remote servers hosted
on the Internet to store, manage, and process data, rather than a local server or a personal
computer. Companies offering such kinds of cloud computing services are called cloud
providers and typically charge for cloud computing services based on usage. Grids and clusters
are the foundations for cloud computing.
Types of Cloud Computing
Most cloud computing services fall into three broad categories:
1. Software as a service (SaaS)
2. Platform as a service (PaaS)
3. Infrastructure as a service (IaaS)
Software as a Service | SaaS
SaaS is also known as "On-Demand Software." It is a software distribution model in which
services are hosted by a cloud service provider. These services are available to end-users over
the internet, so the end-users do not need to install any software on their devices to access these
services.

Characteristics of SaaS:
o Web-based Delivery: SaaS apps can be accessed from anywhere with an internet
connection because they are supplied over the internet, often through a web browser.
Users no longer need to install and maintain software programs on their local machines
as a result.
o Multiple Users or "tenants" can access SaaS applications from a single instance of the
program thanks to the concept of multi-tenancy. As a result, the provider can serve
several clients with the same application without administering unique program
instances for every client.
o Automatic Updates: SaaS providers are in charge of keeping the software up to date
and making sure that everyone has access to the newest features and security patches.
Users are no longer required to manually install updates or fixes as a result.
o Scalable: SaaS systems are scalable, which can readily grow or shrink in response to
user demand. This frees up enterprises from worrying about infrastructure or licensing
fees and lets them add or remove users as needed.
o Pricing on a Subscription Basis: SaaS programs are frequently sold using a
subscription-based pricing model, in which customers pay a monthly or yearly price to
access the program. As a result, companies won't need to invest significantly in software
licenses upfront.
o Data Security, including data encryption, access restrictions, and backups, is the
responsibility of SaaS providers. Users no longer need to handle their own data security
because of this.

Services Provided by SaaS:

Business Services - SaaS Provider provides various business services to start up the business.
The SaaS business services include ERP (Enterprise Resource Planning), CRM (Customer
Relationship Management), billing, and sales.
Document Management - SaaS document management is a software application offered by a
third party (SaaS provider) to create, manage, and track electronic documents. Examples:
Slack, Samepage, Box, and Zoho Forms.

Social Networks - As we all know, social networking sites are used by the general public, so
social networking service providers use SaaS for their convenience and handle the general
public's information.

Mail Services - To handle the unpredictable number of users and load on e-mail services, many
e-mail providers offer their services using SaaS.

Collaboration Tools: SaaS companies provide collaboration solutions that let teams
collaborate effectively no matter where they are physically located. Platforms for project
management, apps for team communication, and file-sharing services are some of these
resources. Examples include Slack, Microsoft Office 365, and Google Workspace (formerly G
Suite).

Human Resources Management: SaaS-based HR management systems give companies tools


to simplify key HR procedures, such as employee onboarding, payroll administration,
timekeeping, performance reviews, and employee self-service portals. Workday, BambooHR,
and ADP Workforce Now, as examples.

Customer Support and Help Desk: SaaS platforms provide customer support and help desk
solutions that enable firms to manage customer inquiries, track support tickets, and promptly
address customer issues. For instance, Salesforce Service Cloud, Freshdesk, and Zendesk.

Marketing and Sales Automation: To increase productivity and boost income, firms can
automate marketing campaigns, lead generation, customer relationship management, and sales
activities using SaaS marketing and sales automation technologies. Examples include Marketo,
Pardot, and HubSpot.

E-commerce Platforms: SaaS-based e-commerce platforms make it simpler for businesses to


launch and run online storefronts, maintain product catalogues, handle payments, and keep
track of orders.

Popular SaaS Providers

The below table shows some popular SaaS providers and services that are provided by them -

Provider Services

Salseforce.com On-demand CRM solutions

Microsoft Office 365 Online office suite

Google Apps Gmail, Google Calendar, Docs, and sites

GoToMeeting Online meeting and video-conferencing software


Constant Contact E-mail marketing, online survey, and event marketing

Oracle CRM CRM applications

Advantages of SaaS Cloud Computing Layer

1. SaaS is easy to buy - SaaS pricing is based on a monthly fee or annual fee subscription, so
it allows organizations to access business functionality at a low cost, which is less than licensed
applications.

2. One to Many - SaaS services are offered as a one-to-many model means a single instance
of the application is shared by multiple users.

3. Less hardware required for SaaS - The software is hosted remotely, so organizations do
not need to invest in additional hardware.

4. Low maintenance required for SaaS - Software as a service removes the need for
installation, set-up, and daily maintenance for organizations. The initial set-up cost for SaaS is
typically less than the enterprise software. SaaS vendors are pricing their applications based on
some usage parameters, such as the number of users using the application. So, SaaS does easy
to monitor and automatic updates.

5. No special software or hardware versions are required - All users will have the same
version of the software and typically access it through the web browser. SaaS reduces IT
support costs by outsourcing hardware and software maintenance and support to the IaaS
provider.

6. Multidevice support - SaaS services can be accessed from any device, such as desktops,
laptops, tablets, phones, and thin clients.

7. API Integration - SaaS services easily integrate with other software or services through
standard APIs.

8. No client-side installation - SaaS services are accessed directly from the service provider
using an internet connection, so they do not need to require any software installation.

Disadvantages of SaaS Cloud Computing Layer:

1) Security - Actually, data is stored in the cloud, so security may be an issue for some users.
However, cloud computing is not more secure than in-house deployment.

2) Latency issue - Since data and applications are stored in the cloud at a variable distance
from the end-user, there is a possibility that there may be greater latency when interacting with
the application compared to local deployment. Therefore, the SaaS model is not suitable for
applications whose demand response time is in milliseconds.

3) Total Dependency on the Internet - Without an internet connection, most SaaS


applications are not usable.
4) Switching between SaaS vendors is difficult - Switching SaaS vendors involve the difficult
and slow task of transferring very large data files over the internet and then converting and
importing them into another SaaS also.

Platform as a Service | PaaS

Platform as a Service (PaaS) provides a runtime environment. It allows programmers to easily


create, test, run, and deploy web applications. You can purchase these applications from a cloud
service provider on a pay-as-per-use basis and access them using an Internet connection. In
PaaS, back-end scalability is managed by the cloud service provider, so end-users do not need
to worry about managing the infrastructure.

PaaS includes infrastructure (servers, storage, and networking) and platform (middleware,
development tools, database management systems, business intelligence, and more) to support
the web application life cycle.

Examples: Google App Engine, Force.com, Joyent, Azure.

Some of the Services Provided by PaaS are:

Programming Languages: A variety of programming languages are supported by PaaS


providers, allowing developers to choose their favourite language to create apps. Languages
including Java, Python, Ruby,.NET, PHP, and Node.js are frequently supported.

Application Frameworks: Pre-configured application frameworks are offered by PaaS


platforms, which streamline the development process. These frameworks include features like
libraries, APIs, and tools for quick development, laying the groundwork for creating scalable
and reliable applications. Popular application frameworks include Laravel, Django, Ruby on
Rails, and Spring Framework.

Databases: Managed database services are provided by PaaS providers, making it simple for
developers to store and retrieve data. These services support relational databases (like MySQL,
PostgreSQL, and Microsoft SQL Server) and NoSQL databases (like MongoDB, Cassandra,
and Redis). For its database services, PaaS platforms often offer automated backups,
scalability, and monitoring tools.

Additional Tools and Services: PaaS providers provide a range of extra tools and services to
aid in the lifecycle of application development and deployment. These may consist of the
following:
o Development Tools: to speed up the development process, these include integrated
development environments (IDEs), version control systems, build and deployment
tools, and debugging tools.
o Collaboration and Communication: PaaS platforms frequently come with
capabilities for team collaboration, including chat services, shared repositories, and
project management software.
o Analytics and Monitoring: PaaS providers may give tools for tracking application
performance, examining user behaviour data, and producing insights to improve
application behaviour and address problems.
o Security and Identity Management: PaaS systems come with built-in security
features like access control, encryption, and mechanisms for authentication and
authorization to protect the privacy of applications and data.
o Scalability and load balancing: PaaS services frequently offer automatic scaling
capabilities that let applications allocate more resources as needed to manage a spike in
traffic or demand. To improve performance and availability, load balancing features
divide incoming requests among various instances of the application.

Because of the services offered by PaaS platforms, developers may concentrate on creating
applications rather than worrying about the infrastructure, middleware, or database
management that supports them. A streamlined and effective environment is provided by PaaS
for developing, deploying, and managing applications.

Development and Deployment Tools:

For the creation and deployment of software applications, Platform as a Service (PaaS)
provides a vast array of tools, libraries, and services. The following are some of the essential
tools and services that PaaS companies provide:

o Development Tools: To assist developers in writing and testing their code, PaaS
providers provide a variety of development tools, including integrated development
environments (IDEs), software development kits (SDKs), and programming languages.
These tools are frequently accessible via a web-based interface, making using them
from any location simple.

o Tools for Deployment: PaaS providers offer tools for deployment that make it simple
for developers to upload their apps to the cloud. These technologies automate processes
like scalability, configuration management, and code deployment.

o Database Administration: PaaS companies provide tools and services for database
management to assist developers in creating and maintaining their databases. This
comprises backup and recovery services and tools for database design, migration, and
replication.

o Integration with Other Services: PaaS companies offer integration with outside
services, including analytics platforms, messaging services, and payment gateways.
This eliminates the need for writing proprietary code and enables developers to quickly
integrate these services into their applications.

o Security: To assist developers in protecting their apps and data, PaaS providers offer
security tools and services. This includes tools like firewalls, access controls, and
encryption, in addition to adherence to regulatory requirements like GDPR and HIPAA.
o Analytical and Monitoring Tools: These are provided by PaaS providers to assist
developers in keeping track of the functionality of their apps and spotting problems.
These technologies offer in-the-moment insights into resource use, application usage,
and other indicators.

Development, database administration, deployment, integration with outside services, analytics


and monitoring, and security tools and services are some of the tools that fall under this
category. Developers can build, test, deploy, and manage their apps on a complete platform
provided by PaaS providers without the need for complicated infrastructure.

Popular PaaS Providers

Providers Services

Google App Engine (GAE) App Identity, URL Fetch, Cloud storage client library,
Logservice

Salesforce.com Faster implementation, Rapid scalability, CRM Services, Sales


cloud, Mobile connectivity, Chatter.

Windows Azure Compute, security, IoT, Data Storage.

AppFog Justcloud.com, SkyDrive, GoogleDocs

Openshift RedHat, Microsoft Azure.

Cloud Foundry from VMware Data, Messaging, and other services.

Advantages of PaaS

There are the following advantages of PaaS -

1) Simplified Development - PaaS allows developers to focus on development and innovation


without worrying about infrastructure management.

2) Lower risk - No need for up-front investment in hardware and software. Developers only
need a PC and an internet connection to start building applications.

3) Prebuilt business functionality - Some PaaS vendors also provide already defined business
functionality so that users can avoid building everything from very scratch and hence can
directly start the projects only.

4) Instant community - PaaS vendors frequently provide online communities where the
developer can get ideas, share experiences, and seek advice from others.

5) Scalability - Applications deployed can scale from one to thousands of users without any
changes to the applications.
Disadvantages of PaaS Loud Computing Layer

1) Vendor lock-in - One has to write the applications according to the platform provided by
the PaaS vendor, so the migration of an application to another PaaS vendor would be a problem.

2) Data Privacy - Corporate data, whether it can be critical or not, will be private, so if it is
not located within the walls of the company, there can be a risk in terms of privacy of data.

3) Integration with the rest of the systems applications - It may happen that some
applications are local, and some are in the cloud. So, there will be chances of increased
complexity when we want to use data in the cloud with the local data.

4) Limited Customization and Control: The degree of customization and control over the
underlying infrastructure is constrained by PaaS platforms' frequent provision of pre-
configured services and their relative rigidity.

Infrastructure as a Service | IaaS

Iaas is also known as Hardware as a Service (HaaS). It is one of the layers of the cloud
computing platform. It allows customers to outsource their IT infrastructures, such as servers,
networking, processing, storage, virtual machines, and other resources. Customers access these
resources on the Internet using a pay-as-pe r-use model.

In traditional hosting services, IT infrastructure was rented out for a specific period of time,
with pre-determined hardware configuration. The client paid for the configuration and time,
regardless of the actual use. With the help of the IaaS cloud computing platform layer, clients
can dynamically scale the configuration to meet changing requirements and are billed only for
the services actually used.

The IaaS cloud computing platform layer eliminates the need for every organization to maintain
its IT infrastructure.

IaaS is offered in three models: public, private, and hybrid cloud. The private cloud implies
that the infrastructure resides at the customer's premise. In the case of the public cloud, it is
located at the cloud computing platform vendor's data center, and the hybrid cloud is a
combination of the two in which the customer selects the best of both public cloud and private
cloud.
Primary Characteristics of IaaS are:
o Scalability: IaaS enables users to adjust computing capacity according to their demands
without requiring long lead times or up-front hardware purchases.
o Virtualization: IaaS uses virtualization technology to generate virtualized instances that
can be managed and delivered on-demand by abstracting physical computer resources.
o Resource Pooling: This feature enables users to share computer resources, such as
networking and storage, among a number of users, maximizing resource utilization and
cutting costs.
o Elasticity: IaaS allows users to dynamically modify their computing resources in
response to shifting demand, ensuring optimum performance and financial viability.
o Self-Service: IaaS offers consumers "self-service" portals that let them independently
deploy, administer, and monitor their computing resources without the assistance of IT
employees.
o Availability: To ensure the high availability and reliability of services, IaaS providers
often run redundant and geographically dispersed data centers.
o Security: To safeguard their infrastructure and client data, IaaS companies adopt
security measures, including data encryption, firewalls, access controls, and threat
detection.
o Customization: IaaS enables users to alter the operating systems, application stacks,
and security settings of their virtualized instances to suit their unique requirements.
IaaS, or infrastructure as a service, is a cloud computing model that offers users virtualized
computer resources on a pay-per-use basis.
Users can scale their resources up or down in accordance with their demands while taking
advantage of high availability, security, and customization possibilities.
IaaS provider provides the following services -

Computing: To provision virtual machines (VMs) for end users, IaaS providers offer virtual
central processing units (CPUs) and virtual main memory. As a result, users may run their
workloads and apps on the provider's infrastructure without having to worry about managing
the underlying hardware.
Storage: Back-end storage services are provided by IaaS providers, enabling users to store and
access their files and data. This offers scalable and trustworthy storage solutions for a variety
of use cases and can include block storage, object storage, or file storage alternatives.
Network: IaaS providers provide networking tools, including routers, switches, and bridges
for the VMs through Network as a Service (NaaS). This enables connectivity and
communication between VMs and other resources while also allowing customers to create and
maintain their network architecture within the IaaS environment.
Load balancers: Infrastructure-layer load balancing services are provided by IaaS providers.
Incoming network traffic is split up among many virtual machines (VMs) or resources by load
balancers, resulting in effective resource management and excellent application and service
availability.
Security: Security features and services are frequently offered by IaaS providers as part of
their offering. To safeguard data and resources housed on the IaaS platform, this can include
network security, firewall configurations, access controls, encryption, and other security
measures.
Backup and disaster recovery services are provided by some IaaS providers, enabling
customers to create backup copies of their data and software and put recovery plans in place in
the event of data loss or system problems. This promotes business continuity and data security.
Monitoring and Management: IaaS suppliers provide tools and services for monitoring and
controlling the resources and infrastructure. This can involve managing VMs, storage, and
network configurations using management panels or APIs, as well as measuring resource
utilization, automating scaling, and monitoring performance.
It's vital to remember that depending on the provider and their offerings, the precise services
offered by IaaS providers may change. The list above illustrates some typical IaaS providers'
common services.
Advantages of IaaS Cloud Computing Layer
There are the following advantages of the IaaS computing layer -
1. Shared infrastructure - IaaS allows multiple users to share the same physical infrastructure.
2. Web access to the resources - Iaas allows IT users to access resources over the internet.
3. Pay-as-per-use model - IaaS providers provide services based on a pay-as-per-use basis.
The users are required to pay for what they have used.
4. Focus on the core business - IaaS providers focus on the organization's core business rather
than on IT infrastructure.
5. On-demand scalability - On-demand scalability is one of the biggest advantages of IaaS.
Using IaaS, users do not worry about upgrading software and troubleshooting issues related to
hardware components.
Disadvantages of IaaS Cloud Computing Layer
Security: In the IaaS context, security is still a major problem. Although IaaS companies have
security safeguards in place, it is difficult to achieve 100% protection. To safeguard their data
and applications, customers must verify that the necessary security configurations and controls
are in place.
Maintenance and Upgrade: The underlying infrastructure is maintained by IaaS service
providers, but they are not required to automatically upgrade the operating systems or software
used by client applications. Compatibility problems could come from this, making it harder for
customers to maintain their current software.
Interoperability Issues: Interoperability Problems: Because of interoperability problems,
moving virtual machines (VMs) from one IaaS provider to another can be difficult. As a result,
consumers may find it challenging to transfer providers or integrate their IaaS resources with
other platforms or services. This may result in vendor lock-in.
Performance Variability: Due to shared resources and multi-tenancy, the performance of
VMs in the IaaS system can change. During times of high demand or while sharing resources
with other users on the same infrastructure, customers' performance may fluctuate.
Dependency on Internet Connectivity: Internet access is crucial to IaaS, which is largely
dependent on it. Any interruptions or connectivity problems could hinder access to cloud
infrastructure and services, which would have an impact on productivity and business
operations.
Learning Curve and Complexity: Using and administering IaaS calls for a certain amount
of technical know-how and comprehension of cloud computing principles. To efficiently use
and manage the IaaS resources, organizations may need to spend money on IT employee
training or turn to outside experts.
Cost Management: IaaS provides scalability and flexibility, but it can also result in difficult
cost control. In order to prevent unforeseen charges, customers must keep an eye on and
manage their resource utilization. Higher costs may be the result of inefficient use of resources
or improper resource allocation.

4. Cloud Computing Architecture


Architecture of cloud computing is the combination of both SOA (Service Oriented
Architecture) and EDA (Event Driven Architecture). Client infrastructure, application, service,
runtime cloud, storage, infrastructure, management and security all these are the components
of cloud computing architecture.
The cloud architecture is divided into 2 parts, i.e.
1. Frontend
2. Backend

The below figure represents an internal architectural view of cloud computing.


1. Frontend
Frontend of the cloud architecture refers to the client side of cloud computing system. Means
it contains all the user interfaces and applications which are used by the client to access the
cloud computing services/resources. For example, use of a web browser to access the cloud
platform. The front end is used by the client. It contains client-side interfaces and applications
that are required to access the cloud computing platforms. The front end includes web servers
(including Chrome, Firefox, internet explorer, etc.), thin & fat clients, tablets, and mobile
devices.
2. Backend
Backend refers to the cloud itself which is used by the service provider. It contains the resources
as well as manages the resources and provides security mechanisms. Along with this, it includes
huge storage, virtual applications, virtual machines, traffic control mechanisms, deployment
models, etc. The back end is used by the service provider. It manages all the resources that are
required to provide cloud computing services.
Components of Cloud Computing Architecture
There are the following components of cloud computing architecture -
1. Client Infrastructure - Client Infrastructure is a Front-end component. It provides GUI
(Graphical User Interface) to interact with the cloud.
2. Application - The application may be any software or platform that a client wants to access.
3. Service - A Cloud Services manages that which type of service you access according to the
client’s requirement.
Cloud computing offers the following three type of services:
i. Software as a Service (SaaS) – It is also known as cloud application services. Mostly, SaaS
applications run directly through the web browser means we do not require to download and
install these applications. Some important examples of SaaS are given below –
Example: Google Apps, Salesforce Dropbox, Slack, HubSpot, Cisco WebEx.
ii. Platform as a Service (PaaS) – It is also known as cloud platform services. It is quite
similar to SaaS, but the difference is that PaaS provides a platform for software creation, but
using SaaS, we can access software over the internet without the need of any platform.
Example: Windows Azure, Force.com, Magento Commerce Cloud, OpenShift.
iii. Infrastructure as a Service (IaaS) – It is also known as cloud infrastructure services. It is
responsible for managing applications data, middleware, and runtime environments.
Example: Amazon Web Services (AWS) EC2, Google Compute Engine (GCE), Cisco
Metapod.
4. Runtime Cloud - Runtime Cloud provides the execution and runtime environment to the
virtual machines.
5. Storage - Storage is one of the most important components of cloud computing. It provides
a huge amount of storage capacity in the cloud to store and manage data.
6. Infrastructure - It provides services on the host level, application level, and network level.
Cloud infrastructure includes hardware and software components such as servers, storage,
network devices, virtualization software, and other storage resources that are needed to support
the cloud computing model.
7. Management - Management is used to manage components such as application, service,
runtime cloud, storage, infrastructure, and other security issues in the backend and establish
coordination between them.
8. Security - Security is an in-built back-end component of cloud computing. It implements a
security mechanism in the back end.
9. Internet - The Internet is medium through which front end and back end can interact and
communicate with each other.

5. LAYERED CLOUD COMPUTING ARCHITECTURE


Layered Architecture of Cloud
Application Layer
1. The application layer, which is at the top of the stack, is where the actual cloud apps
are located. Cloud applications, as opposed to traditional applications, can take
advantage of the automatic-scaling functionality to gain greater performance,
availability, and lower operational costs.
2. This layer consists of different Cloud Services which are used by cloud users. Users
can access these applications according to their needs. Applications are divided
into Execution layers and Application layers.
3. In order for an application to transfer data, the application layer determines whether
communication partners are available. Whether enough cloud resources are accessible
for the required communication is decided at the application layer. Applications must
cooperate in order to communicate, and an application layer is in charge of this.
4. The application layer, in particular, is responsible for processing IP traffic handling
protocols like Telnet and FTP. Other examples of application layer systems include web
browsers, SNMP protocols, HTTP protocols, or HTTPS, which is HTTP’s successor
protocol.
Platform Layer
1. The operating system and application software make up this layer.
2. Users should be able to rely on the platform to provide them with Scalability,
Dependability, and Security Protection which gives users a space to create their apps,
test operational processes, and keep track of execution outcomes and
performance. SaaS application implementation’s application layer foundation.
3. The objective of this layer is to deploy applications directly on virtual machines.
4. Operating systems and application frameworks make up the platform layer, which is
built on top of the infrastructure layer. The platform layer’s goal is to lessen the
difficulty of deploying programmers directly into VM containers.
5. By way of illustration, Google App Engine functions at the platform layer to provide
API support for implementing storage, databases, and business logic of ordinary web
apps.
Infrastructure Layer
1. It is a layer of virtualization where physical resources are divided into a collection of
virtual resources using virtualization technologies like Xen, KVM, and VMware.
2. This layer serves as the Central Hub of the Cloud Environment, where resources are
constantly added utilizing a variety of virtualization techniques.
3. A base upon which to create the platform layer. constructed using the virtualized
network, storage, and computing resources. Give users the flexibility they want.
4. Automated resource provisioning is made possible by virtualization, which also
improves infrastructure management.
5. The infrastructure layer sometimes referred to as the virtualization layer, partitions the
physical resources using virtualization technologies like Xen, KVM, Hyper-V, and
VMware to create a pool of compute and storage resources.
6. The infrastructure layer is crucial to cloud computing since virtualization technologies
are the only ones that can provide many vital capabilities, like dynamic resource
assignment.
Datacentre Layer
1. In a cloud environment, this layer is responsible for Managing Physical Resources such
as servers, switches, routers, power supplies, and cooling systems.
2. Providing end users with services requires all resources to be available and managed in
data centers.
3. Physical servers connect through high-speed devices such as routers and switches to
the data center.
4. In software application designs, the division of business logic from the persistent data
it manipulates is well-established. This is due to the fact that the same data cannot be
incorporated into a single application because it can be used in numerous ways to
support numerous use cases. The requirement for this data to become a service has
arisen with the introduction of microservices.
5. A single database used by many microservices creates a very close coupling. As a result,
it is hard to deploy new or emerging services separately if such services need database
modifications that may have an impact on other services. A data layer containing many
databases, each serving a single microservice or perhaps a few closely related
microservices, is needed to break complex service interdependencies.
6. ARCHITECTURAL DESIGN CHALLENGES
Six open challenges in cloud architecture development
• SCervice Availability and Data Lock-in Problem
• Data Privacy and Security Concerns
• Unpredictable Performance and Bottlenecks
• Distributed Storage and Wide spread Software Bugs
• Cloud Scalability, Interoperability, and Standardization
• Software Licensing and Reputation Sharing
Challenge1—Service Availability and Data Lock-in Problem
• The management of a cloud service by a single company is often the source of single
points of failure. To achieve HA, one can consider using multiple cloud providers. Even
if a company has multiple data centers located in different geographic regions, it may
have common software infrastructure and accounting systems. Therefore, using
multiple cloud providers may provide more protection from failures.

• Another availability obstacle is distributed denial of service (DDoS) attacks. Criminals


threaten to cut off the incomes of SaaS providers by making their services unavailable.
Some utility computing services offer SaaS providers the opportunity to defend against
DDoS attacks by using quick scale-ups.

• Software stacks have improved interoperability among different cloud platforms, but
the APIs itself are still proprietary. Thus, customers cannot easily extract their data and
programs from one site to run on another.

• The obvious solution is to standardize the APIs so that a SaaS developer can deploy
services and data across multiple cloud providers. This will rescue the loss of all data
due to the failure of a single company.

• In addition to mitigating data lock-in concerns, standardization of APIs enables a new


usage model in which the same software infrastructure can be used in both public and
private clouds. Such an option could enable “surge computing,” in which the public
cloud is used to capture the extra tasks that cannot be easily run in the data center of a
private cloud.
Challenge 2—Data Privacy and Security Concerns

• Current cloud offerings are essentially public (rather than private)networks, exposing
the system to more attacks. Many obstacles can be overcome immediately with well-
understood technologies such as encrypted storage, virtual LANs, and network
middleboxes (e.g., firewalls, 44 packet filters).

• For example, you could encrypt your data before placing it in a cloud. Many nations
have laws requiring SaaS providers to keep customer data and copyrighted material
within national boundaries.

• Traditional network attacks include buffer overflows, DoS attacks, spyware, malware,
rootkits, Trojan horses, and worms. In a cloud environment, newer attacks may result
from hypervisor malware, guest hopping and hijacking, or VM rootkits.

• Another type of attack is the man-in-the-middle attack for VM migrations. In general,


passive attacks steal sensitive data or passwords. Active attacks may manipulate kernel
data structures which will cause major damage to cloud servers.
Challenge 3—Unpredictable Performance and Bottle necks

• Multiple VMs can share CPUs and main memory in cloud computing, but I/ O sharing
is problematic. For example, to run 75 EC2 instances with the STREAM benchmark
requires a mean bandwidth of 1,355 MB/second. However, for each of the 75 EC2
instances to write 1 GB files to the local disk requires a mean disk write bandwidth of
only 55 MB/second. This demonstrates the problem of I/O interference between VMs.
One solution is to improve I/O architectures and operating systems to efficiently
virtualize interrupts and I/O channels.
• Internet applications continue to become more data-intensive. If we assume
applications to be “pulled apart” across the boundaries of clouds, this may complicate
data placement and transport. Cloud users and providers have to think about the
implications of placement and traffic at every level of the system, if they want to
minimize costs. This kind of reasoning can be seen in Amazon’s development of its new
CloudFront service. Therefore, data transfer bottlenecks must be removed, bottleneck
links must be widened, and weak servers should be removed.

Challenge 4—Distributed Storage and Wide spread Software Bugs

• The database is always growing in cloud applications. The opportunity is to create a


storage system that will not only meet this growth, but also combine it with the cloud
advantage of scaling arbitrarily up and down on demand. This demands the design of
efficient distributed SANs.

• Data centers must meet programmers’ expectations in terms of scalability, data


durability, and HA. Data consistence checking in SAN-connected data centers is a
major challenge in cloud computing.

• Large-scale distributed bugs cannot be reproduced, so the debugging must occur at a


scale in the production data centers. No data center will provide such a convenience.
One solution may be a reliance on using VMs in cloud computing. The level of
virtualization may make it possible to capture valuable information in ways that are
impossible without using VMs. Debugging over simulators is another approach to
attacking the problem, if the simulator is well designed. 45

Challenge 5—Cloud Scalability, Interoperability, and Standardization


• The pay-as-you-go model applies to storage and network bandwidth; both are counted
in terms of the number of bytes used. Computation is different depending on
virtualization level. GAE automatically scales in response to load increases and
decreases; users are charged by the cycles used.

• AWS charges by the hour for the number of VM instances used, even if the machine is
idle. The opportunity here is to scale quickly up and down in response to load variation,
in order to save money, but without violating SLAs.

• Open Virtualization Format (OVF) describes an open, secure, portable, efficient, and
extensible format for the packaging and distribution of VMs. It also defines a format
for distributing software to be deployed in VMs. This VM format does not rely on the
use of a specific host platform, virtualization platform, or guest operating system. The
approach is to address virtual platform-agnostic packaging with certification and
integrity of packaged software. The package supports virtual appliances to span more
than one VM.
• OVF also defines a transport mechanism for VM templates, and can apply to different
virtualization platforms with different levels of virtualization. In terms of cloud
standardization, we suggest the ability for virtual appliances to run on any virtual
platform. We also need to enable VMs to run on heterogeneous hardware platform
hypervisors. This requires hypervisor-agnostic VMs. We also need to realize cross-
platform live migration between x86 Intel and AMD technologies and support legacy
hardware for load balancing.
Challenge 6—Software Licensing and Reputation Sharing
• Many cloud computing providers originally relied on open-source software because the
licensing model for commercial software is not ideal for utility computing.

• The primary opportunity is either for open source to remain popular or simply for
commercial software companies to change their licensing structure to better fit cloud
computing. One can consider using both pay-for-use and bulk-use licensing schemes to
widen the business coverage.

• One customer’s bad behaviour can affect the reputation of the entire cloud. For instance,
blacklisting of EC2 IP addresses by spam-prevention services may limit smooth VM
installation.

• An opportunity would be to create reputation-guarding services similar to the “trusted


e-mail” services currently offered (for a fee) to services hosted on smaller ISPs. Another
legal issue concerns the transfer of legal liability. Cloud providers want legal liability
to remain with the customer, and vice versa. This problem must be solved at the SLA
level

You might also like