CC - Unit 4 - Full Notes
CC - Unit 4 - Full Notes
Apart from all these, IaaS has its own unique characteristics as follows:
2.Centralized management
Even though the physical resources are distributed the management will be from
single place. The resources distributed across different parts can be controlled from
any management console. This ensures effective resource management and effective
resource utilization.
According to the load, IaaS services can provide the resources. The load on any
application is dynamic and IaaS services are capable of providing the required
services dynamically.
4.Shared infrastructure
IaaS follows a one-to-many delivery model and allows multiple IT users to share the
same physical infrastructure. The different IT users will be given different VMs. IaaS
ensures high resource utilization.
5.Preconfigured VMs
IaaS providers offer preconfigured VMs with operating system, network configuration
etc. The IT users can select any kind of VMs from scratch. The users can directly start
using the VMs as soon as they subscribe to the services.
6.Metered services
IaaS allows the IT users to rent the computing resources instead of buying it. The
services consumed by the IT user will be measured, and the users will be charged by
the IaaS providers on the amount of usage.
Suitability of IaaS
IaaS reduces the total cost of ownership(TCO) and increases the return on
investment(ROI) for start-up companies that cannot invest more in buying
infrastructure.
3.Infrastructure on demand
Some organizations may require large infrastructure for a short period of time. For
this purpose, an organization cannot afford to buy more on-premises resources.
Instead, they can rent the required infrastructure for a specific period of time. IaaS best
suits the organizations that look for infrastructure on demand or for a short time period.
IaaS helps start-up companies limit its capital expenditure. While it is widely used by
start-up companies, there are some situations where IaaS may not be the best
companies, there are some situations where IaaS may not be the best option.
• When usage is minimal: When the usage is minimal and available on-
premises infrastructure itself is capable of satisfying their needs.
• When better performance is required: Since the IaaS services are accessed
through the Internet, sometimes the performance might be not as expected due
to network latency
• When there is a need for more control on physical infrastructure: Some
organizations might require physical control over the underlying infrastructure.
As the IaaS services are abstracted as virtual resources, it is not possible to
have more control on underlying physical infrastructure.
1.Pay-as-you-use model
The IaaS services are provided to the customers on a pay-per-use basis. This ensures
that the customers are required to pay for what they have used. This model eliminates
the unnecessary spending on buying hardware.
2.Reduced TCO
Since IaaS providers allow the IT users to rent the computing resources, they need
not buy physical hardware for running their business. The IT users can rent the IT
infrastructure rather than buy it by spending large amount. IaaS reduces the need for
buying hardware resources and thus reduces the TCO.
Cloud TCO stands for cloud Total Cost of Ownership. The cost of everything needed
for cloud computing services should be included in this total: infrastructure costs,
support costs, software licensing, data storage, network bandwidth, and personnel
expense
3.Elastic resources
IaaS provides resources based on the current needs. IT users can scale up or scale
down the resources whenever they want. This dynamic scaling is done automatically
using some load balancers. This load balancer transfers the additional resource
requests to the new server and improves application efficiency.
5.Supports Green IT
In traditional infrastructure, dedicated servers are used for different business needs.
Since many servers are used, the power consumption will be high. This does not result
in Green IT.
In IaaS, the need of buying dedicated servers is eliminated as single infrastructure is
shared between multiple customers, thus reducing the number of servers to the
purchased and hence the power consumption that results in Green IT Even though
IaaS provides cost-related benefits to small-scale industries, it lacks in providing
security to the data.
The following are the drawbacks of IaaS:
Security issue: Since IaaS uses virtualization as the enabling technology, hypervisors
play an important role. There are many attacks that target the hypervisors to
compromise it.
If hypervisors get compromised then any VMs can be attacked easily. Most of the IaaS
providers are not able to provide 100% security to the VMs and the data stored on the
VMs.
A hypervisor is a software that you can use to run multiple virtual machines on a single
physical machine. Every virtual machine has its own operating system and
applications. The hypervisor allocates the underlying physical computing resources
such as CPU and memory to individual virtual machines as required.
Interperability issues: There are no common standards followed among the different
IaaS providers. It is very difficult to migrate any VM from one IaaS provider to the other.
Sometimes, the customers might face the vendor lock-in problem.
In the table, the popular IaaS providers are classified based on the license,
deployment model, and supported host OS, guest OS, and hypervisors. The end user
may choose any IaaS provide that matches their needs. Generally public IaaS
consumers need not consider the host OS as it is maintained by the service provider.
In managing cloud, the users should see the supported host OS. However, most of the
private IaaS supports popular guest OS, fully depending on the hypervisor that the
IaaS providers are supporting.
Unit-4
Topic2: Platform as a Service (PaaS)
PaaS changes the software is developed and deployed. In traditional application
development, the application will be developed locally and will be hosted in the central
location. [software deployment is the process of making software available to users
and other programs to use on a system. It can involve: Installing new software
packages or updates, configuring software applications, testing software, monitoring
the health and performance of deployed environments, and performing automated
rollbacks etc.].
In stand-alone application development the applications will be developed and
delivered as executables. Most of the applications developed by traditional
development platforms results in a licensing-based software.
whereas
PaaS changes the application development from local machine to online. PaaS
providers provide the development PaaS from the data center. The developers can
consume the services over the Internet.
PaaS allows the developers to develop their application online and also allows them
to deploy immediately on the same platform. PaaS consumers or developers can
consume language runtime, application frameworks, databases, message queues,
testing tools, and deployment tools as a service over the Internet. Thus, it reduces the
complexity of buying and maintaining different tools for developing an application.
Typical PaaS providers may provide programming languages, application frameworks,
databases, and testing tools as shown in figure. Some of the PaaS providers also
provide build tools, deployment tools, and software load balancers as a service.
1. Programming languages: PaaS providers provide a wide variety of programming
languages for the developers to develop applications.
Ex: Some of the popular programming languages provided by PaaS vendors are Java,
Perl, PHP(hypertext preprocessor), Python, Ruby, Scala, Clojure and Go.
2.Application frameworks: PaaS vendors provide application frameworks that
simplify the application development. Some of the popular application development
frameworks provided by a PaaS provider include..
Ex: Node.js(allows developers to create web and server-side applications),
Django( Python web framework to build web applications quickly and efficiently),
Drupal, Joomla, WordPress, EE6, Spring, Sinatra, Rack and Zend.
3. Offline access
A developer may not be able to connect to the Internet for a whole day to access the
PaaS services. When there is no Internet connectivity, the developers should be
allowed to work offline. To enable offline development, some of the PaaS providers
allow the developer to synchronize their local IDE with the PaaS services.
The developers can develop an application locally and deploy it online whenever they
are connected to the Internet.
4.Built in Scalability
Scalability is an important requirement for the new-generation web or SaaS
applications. It is very difficult to enable the dynamic scalability for any application
developed using traditional development platforms. In dynamic scalability the
resources are assign automatically as per the requirement for application.
But, PaaS services provide built-in scalability to an application that is developed using
any particular PaaS. This ensures that the application is capable of handling varying
loads efficiently.
5.Collaborative platform
Nowadays, the development team consists of developers who are working from
different places. There is a need for a common platform where the developers can
collaboratively work together on the same project.
Most of the PaaS services provide support for collaborative development. To enable
collaboration among developers, most of the PaaS providers provide tools for project
planning and communication.
Most of the PaaS services offer automated testing and deployment capabilities. The
development team needs to concentrate more on development rather than testing and
deployment. Thus, PaaS services are the best option where there is a need for
automated testing and deployment of the applications.
3.Time to market
The PaaS services follow the iterative and incremental development methodologies
that ensure that the application is in the market as per the time frame given.
Ex: PaaS services are the best option for application development that uses agile
development methodologies. If the software vendor wants their application to be in the
market as soon as possible, then the PaaS services are the best option for the
development.
Agile is a project management approach that emphasizes adaptability, collaboration,
and quick delivery.
PaaS is used widely to accelerate the application development process to ensure the
time to market. Most of the start-up companies and independent software (ISVs)
started migrating to the PaaS services.
Even though it is used widely, there are some situations where PaaS may not be
the best option:
Most of the PaaS services automate the testing and deployment process as soon as
the developer completes the development. This speeds up application development
and deployment than traditional development platforms.
2.Reduces TCO
The developers need not buy licensed development and testing tools if PaaS services
are selected. Most of the traditional development platforms requires high-end
infrastructure for its working which increase the Total cost ownership(TCO) of the
application development company.
Cloud TCO stands for cloud total cost of ownership. The cost of everything needed for
cloud computing services should be included in this total: infrastructure costs, support
costs, software licensing, data storage, network bandwidth, and personnel expenses.
But PaaS allows the developers to rent the software, development platforms, and
testing tools to develop, build and deploy the application.
PaaS does not require high-end infrastructure also to develop the application, thus
reducing the TCO of the development company.
An ISV (independent software vendor) makes and sells software products that run on
one or more computer hardware or operating system (OS) platforms.
5.Ease of use
The traditional development platforms use any one of command line interface (CLI) or
Integrated Development Environment(IDE) based interfaces for development. Some
developers may not be familiar with the interfaces provided by the application
development platform.
This makes the development job a little bit difficult. But, PaaS provides a wide variety
of client tools such as CLI, web CLI web UI, APIs and IDEs.
The developers are free to choose any client tools of their choice. Especially, the web
UI based PaaS services increase the usability of the development platform for all types
of developers. A Web User Interface (WebUI) is a user-friendly tool used for
managing Juniper firewalls.
To improve the performance of PaaS services, its need to recruit skilled admittaturs to
maintain the servers. This overhead is eliminated by the PaaS services as the
underlying infrastructure is maintained by the infrastructure providers. This gives
freedom to developers to work on the application development.
For handling extra load, the software vendors need to maintain an additional server. It
is very difficult for a new start-up company to provide extra servers based on the
additional load.
But, PaaS services are providing built-in scalability to the application that is developed
using the PaaS platform. PaaS provides a lot of benefits to developers when compared
to the traditional development environment.
On the other hand PaaS contains drawbacks, which are described in the
following:
1.Vendor lock-in:
Vendor lock-in refers to a situation in which a client gets dependent on a certain cloud
provider in order to complete their computing needs.
The major drawback with PaaS providers are vendor lock-in. The main reason for
vendor lock-in is lack of standards. There are no common standards followed among
the different PaaS providers.
The other reason for vendor lock-in is proprietary technologies used by PaaS
providers. Most of the PaaS vendors use the proprietary technologies that are not
compatible with the other PaaS providers. The vendor lock-in problem of PaaS
services does not allow the applications to be migrated from one PaaS provider to the
other.
2.Security issues:
Like in the other cloud services, security is one of the major issues in PaaS services.
Since data are stored in off-premise third-party servers, many developers are afraid to
go for PaaS services. Of course, many PaaS providers provide mechanism to protect
the use data, and it is not sufficient to feel the safety of on-premise deployment.
When selecting the PaaS provider, the developer should review the regulatory,
compliance, and security policies properly reviewed, the developers or users are at
the risk of data security breach.
3.Less flexibility:
PaaS providers do not give much freedom for the developers to define their own
application stack. Most of the PaaS providers provide many programming languages,
databases and other development tools.
But it is not extensive and does not satisfy all developer needs. Only some of the PaaS
providers allow developers to extend the PaaS tools with the custom or new
programming languages. Still most of the PaaS providers do not provide flexibility to
the developers.
4.Depends on Internet connection:
Since the PaaS services are delivered over the Internet, the developers should depend
on Internet connectivity for developing the application.
Even though some of the providers allow offline access, most of the PaaS providers
do not allow offline access. With slow Internet connection, the usability and efficiency
of the PaaS platform do not satisfy the developer requirements.
Software as a service (SaaS)
• SaaS provides access to ready-to-use application software and databases.
• SaaS is often used by end users who access the software through a web
browser or client program.
• The cloud provides software to the users. Users no need to install any
application on their PCs to access the software services provided by the cloud.
• The minimum requirement for access all the cloud services are internet
connection with a PC.
• The user can use the software utility but don’t have rights to control or manage
infrastructure of the cloud.
Ex: SaaS include Salesforce, Dropbox, and BigCommerce
Vulkan API
• Vulkan is a cross-platform API that works on the operating system level.
• It enables developers to create high-quality, real-time graphics in applications
and apply the communication between an application and graphical processing
unit.
Weather API.
• This is a free geo-location and weather information provider with lots of different
APIs ranging from the weather forecast, IP lookup, astronomy, geo-location,
and time zone.
• It provides access to geo-data and weather using a XML RESTful API.
Suitability of SaaS
SaaS is popular among individual and start-up companies because of the benefits it
provides the resources.
Most of the traditional software users are looking for SaaS versions of the software as
SaaS has several advantages over traditional applications. SaaS applications are best
option for the following:
1.On-demand software:
The licensed-based software model requires buying full packages software and
increases the spending on buying software.
Some of the occasionally used software does not give any return on investment(ROI).
Because of this, many end users are looking for a software that they can use as and
when they needed.
[Cloud ROI is the measure in cloud economics of the impact a cloud investment has
on an organization. Return on investment (ROI) in cloud computing is a metric that
measures the financial benefits of adopting cloud-based solutions compared to the
costs of doing so. It's a common way to evaluate the efficiency of investments and is
used to make informed decisions about cloud adoption].
If the end users are looking for on-demand software rather than the licensing-based
full-term software, then the SaaS model is the best option.
2.Software for start-up companies:
When using any traditional software, the end user should buy devices with minimum
requirements specified by the software vendor. This increases the investment on
buying hardware for start-up companies.
Since SaaS services do not require high-end infrastructure for accessing, it is suitable
option for start-up companies that can reduce the initial expenditure on buying high-
end hardware.
3.Software with varying loads:
We cannot predict the load on popular applications such as social networking sites.
The user many connect or disconnect from applications anytime.
In traditional computing, It is very difficult to handle varying loads with the traditional
infrastructure.
Whereas
In cloud computing, with the dynamic scaling capabilities, SaaS application can handle
varying loads efficiently without disrupting the normal behaviour of the application.
But still many traditional applications do not have its SaaS version. This implies that
SaaS applications may not be the best option for all types of software.
The SaaS delivery model is NOT the best option for the applications mentioned
in the following:
1.Real-time applications:
Since SaaS applications depend on Internet connectivity, it may not work better with
low Internet speed.
If data are stored far away from the end user, the latency issues may delay the data
retrieval things.
Real-time applications require fast processing of data that may not be possible with
the SaaS applications because of the dependency on high-speed Internet connectivity
and latency issues.
2.Appications with confidential data:
Data security, data governance, and data compliance are always issues with SaaS
applications.
Since data are stored with third-party service providers, there is no surety that our data
will be safe. If the stored confidential data get lost, it will make a serious loss to the
organization. It is not recommended to go for SaaS for applications that handle
confidential data.
3.Better on-premise application:
Some of the on-premise applications might fulfil all the requirements of the
organization. In such situations, migrating to the SaaS model may not the best option.
Pros and Cos of SaaS
SaaS applications are used by a wide range of individuals and start-up industries for
its cost-related benefits. Apart from the cost-related benefits. SaaS services provide
the following benefits ..
1.No client-side installation: SaaS services do not require client-side installation of
the software. The end users can access the services directly from the service provider
data center without any installation. There is no need of high-end hardware to
consume SaaS services. It can be accessed from thin clients or any handheld devices,
thus reducing the initial expenditure on buying high-end hardware.
2.Cost savings: Since SaaS services follow the quality-based billing or pay-as-you-
go billings, it demands the end users to pay for what they have used. Most of the SaaS
providers offer different subscription plans to benefit different customers. Sometimes,
the generic SaaS services such as word processors are given for free to the end users.
3.Less maintenance: SaaS services eliminate the additional overhead of maintaining
the software from the client side. Ex: in the traditional software, the end user is
responsible for performing bulk updates. But in SaaS, the service provider itself
maintains the automatic updates, monitoring and other activities of the applications.
4.Ease of access: SaaS services can be accessed from any devices if it is connected
to the Internet. Accessibility of SaaS services is not restricted to any particular devices.
It is adaptable to all the devices as it uses the responsive web UI.
5.Dynamic scaling: SaaS services are popular known for elastic dynamic scaling. It
is very difficult for on-premise software to provide dynamic scaling capability as it
requires additional hardware. Since the SaaS services leverage elastic resources
provided by cloud computing, it can handle any type of varying loads without disrupting
the normal behaviour of the application.
6.Disaster recovery: With proper backup and recovery mechanisms, replicas are
maintained for every SaaS services. The replicas are distributed across many servers.
If any server fails, the end user can access the SaaS from other servers. It eliminate
the problem of single point of failure. It also ensures the high availability of the
application.
7.Multitenancy: Multitenancy is the ability given to the end users to share a single
instance of the application. Multitenancy increase resource utilization from the service
provider side.
Even though SaaS services are used by many individuals and start-up industries, the
adoption from large industries is very low. The major problem with SaaS services is
security to the data. All companies are worried about the security of their data that are
hosted in the service provider data center.
The following are the major problems with SaaS services:
1.Security: Security is the major concern in migrating to SaaS application. Since the
SaaS application is shared between many end users, there is a possibility of data
leakage. Here, the data are stored in the service provider data center. We cannot
simply trust some third-party service provider to store our company-sensitive and
confidential data. The end user should be careful while selecting the SaaS provider to
avoid un-necessary data loss.
2.Connectivity requirements: SaaS applications require Internet connectivity for
accessing it. Sometimes, the end users Internet connectivity might be very slow. In
such situations, the user cannot access the services with ease. The dependency on
high-speed Internet connection is a major problem in SaaS applications.
3.Loss of control: Since the data are stored in third-party and off-premises location,
the end user does not have control over the data. The degree of control over the SaaS
application and data is lesser than the on-premise application.
On-premise is a model for hosting and managing software applications on a
company's own hardware