IV Notes
IV Notes
UNIT- IV
5. Characteristics of PaaS
10
Suitability of PaaS Pros and Cons of PaaS,
6.
Summary of PaaS Providers
7. Software as a Service
NOTES
Infrastructure as a Service
IaaS provides businesses with ready-to-use IT infrastructure: development
environment, private networks, secure data storage, instruments for software
development and testing, functionality monitoring, etc.
The enterprises don’t need to build and secure their own IT infrastructure —
they fully power the development process with third-party servers and cloud
Characteristics of IaaS
1. Web access to the resources: The IaaS model enables the IT users to access
infrastructure resources over the Internet. When accessing a huge computing
power, the IT user need not get physical access to the servers. Through any
web browsers or management console, the users can access the required
infrastructure.
2. Centralized management: Even though the physical resources are distributed,
the management will be from a single place. The resources distributed across
different parts can be controlled from any management console. This ensures
effective resource management and effective resource utilization.
3. Elasticity and dynamic scaling: IaaS provides elastic services where
the usage of resources can be increased or decreased according to the
requirements. The infrastructure need depends on the load on the application.
According to the load, IaaS services can provide the resources. The load on any
application is dynamic and IaaS services are capable of proving 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
systems (OSs), network configuration, etc. The IT users can select any kind of
VMs of their choice. The IT users are free to configure VMs from scratch. The
users can directly start using the VMs as soon as they subscribed 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 based on the amount of
usage.
Suitability of IaaS
Drawbacks of IaaS :
1. Security issues: 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.
2. Interoperability 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.
3. Performance issues: IaaS is nothing but the consolidation of available
resources from the distributed cloud servers. Here, all the distributed servers
are connected over the network. Latency of the network plays an important role
in deciding the performance. Because of latency issues, sometimes the VM
contains issues with its performance
Platform as a Service
Platform as a Service is software that provides access to development tools,
APIs, and deployment instruments. Users receive access to virtual development
environments and Cloud storage, where they can build, test, and run
applications.
In PaaS, users are billed only for the platforms that they use for the time when
the services were used. There is no need to pay for excessive functionality, like
in desktop solutions.
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 runtimes, application frameworks,
databases, message queues, testing tools, and deployment tools as a service
over the Internet
PaaS providers also provide build tools, deployment tools, and software load
balancers as a service:
Programming languages: PaaS providers provide a wide variety of
programming languages for the developers to develop applications. Some of the
popular programming languages provided by PaaS vendors are Java, Perl, PHP,
Python, Ruby, Scala, Clojure, and Go.
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 Node.js, Rails,
Drupal, Joomla, WordPress, Django, EE6, Spring, Play, Sinatra, Rack, and
Zend.
Database: Since every application needs to communicate with the databases, it
becomes a must- have tool for every application. PaaS providers are providing
databases also with their PaaS platforms. The popular databases provided by
the popular PaaS vendors are ClearDB, PostgreSQL, Cloudant, Membase,
MongoDB, and Redis.
Other tools: PaaS providers provide all the tools that are required to develop,
test, and deploy an application.
Characteristics of PaaS
1. All in one: Most of the PaaS providers offer services to develop, test, deploy,
host, and maintain applications in the same IDE. Additionally, many service
providers provide all the programming languages, frameworks, databases, and
other development-related services that make developers choose from a wide
variety of development platforms.
2. Web access to the development platform: A typical development platform
uses any IDEs for developing applications. Typically, the IDE will be installed
in the developer’s machines. But, PaaS provides web access to the
development platform. Using web UI, any developer can get access to the
development platform. The web-based UI helps the developers create, modify,
test, and deploy different applications on the same platform.
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. 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.
6. Diverse client tools: To make the development easier, PaaS providers provide
a wide variety of client tools to help the developer. The client tools include CLI,
web CLI, web UI, REST API, and IDE. The developers can choose any tools of
their choice. These client tools are also capable of handling billing and
subscription management.
Suitability of PaaS
1. Collaborative development: To increase the time to market and development
efficiency, there is a need for a common place where the development team and
other stakeholders of the application can collaborate with each other. Since
PaaS services provide a collaborative development environment, it is a suitable
option for applications that need collaboration among developers and other
third parties to carry out the development process.
2. Automated testing and deployment: Automated testing and building of an
application are very useful while developing applications at a very short time
frame. The automated testing tools reduce the time spent in manual testing
tools. 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. For example, the PaaS services are the best option for
application development that uses agile development
Drawbacks
1. Vendor lock-in: 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
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
Software as a Service, also known as SaaS, is essentially a web platform that
provides users access to cloud computing on a subscription basis. Instead of
purchasing the solution one time, as if it would be a product, the software is
delivered continuously — like a service.
SaaS services provide companies with data storage and management features.
Often, these are services for process automation, marketing, collaboration, and
data organization. Development environments can also be done as SaaS —
software developers receive access to the platform where they can build, test,
and deploy a product, configure its functionality and interface with built-in tools
and templates.
Business services: Most of the SaaS providers started providing a variety of
business services that attract start-up companies. The business SaaS services
include ERP, CRM, billing, sales, and human resources.
Social networks: Since social networking sites are extensively used by the
general public, many social networking service providers adopted SaaS for their
sustainability. Since the number of users of the social networking sites is
increasing exponentially, cloud computing is the perfect match for handling the
variable load.
Document management: Since most of the enterprises extensively us electronic
documents, most of the SaaS providers started providing services that are
used to create, manage,and track electronic documents.
Mail services: The future growth in e-mail usage is unpredictable. To handle
the unpredictable number of users and the load on e-mail services, most of the
e-mail providers started offering their services as SaaS services.
Characteristics of SaaS
1. One to many: SaaS services are delivered as a one-to-many model where a
single instance of the application can be shared by multiple tenants or
customers.
2. Web access: SaaS services provide web access to the software. It allows the end
user to access the application from any location if the device is connected to the
Internet.
3. Centralized management: Since SaaS services are hosted and managed from
the central location, management of the SaaS application becomes easier.
Normally, the SaaS providers will perform the automatic updates that ensure
that each tenant is accessing the most recent version of the application without
any user-side updates.
4. Multidevice support: SaaS services can be accessed from any end user devices
such as desktops, laptops, tablets, smartphones, and thin clients.
5. Better scalability: Since most of the SaaS services leverage PaaS and IaaS for
its development and deployment, it ensures a better scalability than the
traditional software. The dynamic scaling of underlying cloud resources makes
SaaS applications work efficiently even with varying loads.
6. High availability: SaaS services ensure the 99.99% availability of user data as
proper backup and recovery mechanisms are implemented at the back end.
7. API integration: SaaS services have the capability of integrating with other
software or service through standard APIs.
Suitability of SaaS
1. On-demand software: The licensing-based software model requires buying full
packaged software and increases the spending on buying software. Some of the
occasionally used software does not give any ROI. Because of this, many end
users are looking for a software that they can use as and when they needed. 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 a suitable option for start- up companies that can reduce the
initial expenditure on buying high-end hardware.
3. Software compatible with multiple devices: Some of the applications like
word processors or mail services need better accessibility from different devices.
The SaaS applications are adaptable with almost all the devices.
4. Software with varying loads: We cannot predict the load on popular
applications such as social networking sites. The user may connect or
disconnect from applications anytime. It is very difficult to handle varying loads
with the traditional infrastructure. With the dynamic scaling capabilities, SaaS
applications can handle varying loads efficiently without disrupting the normal
behavior of the application.
Problems/Drawbacks
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 unnecessary data loss.
2. Connectivity requirements: SaaS applications require Internet connectivity
for accessing it. Sometimes, the end user’s 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 a third-party and off- premise
location, the end user does not have any control over the data. The degree of
control over the SaaS application and data is lesser than the on-premise
application.
In FaaS, developers can break down the functionality of their software into
individual features and edit them one by one. This additional abstraction level
facilitates app development and maintenance.
Software engineers can isolate an individual feature and make changes without
affecting the rest of the functionality. Narrowing the work scope down to functional
code block makes development easier and faster, especially for complex projects.
With
FaaS, developers are only responsible for the code. The provider will enable
access to app container, language runtime, operating system, and hardware,
providing a universal virtual development environment.
Examples of FaaS:
AWS Lambda: the service allows accessing software code without server setting
and management. Developers need only to upload the code, and the solution will
automatically connect the app to servers, language runtimes, OS, and highlight
the functional code fragments. From that point, developers only choose features
for editing.
Azure Functions: the platform uses trigger mechanisms to highlight functions.
Developers can set events that will lead to changes in code — for instance, a
particular user input (interaction with an app or provided data) can turn on a
function (like showing a pop-up or opening a page). Developers set up these
triggers and responses without building the software infrastructure.
IBM OpenWhisk: similar to Lambda and Azure, IBM OpenWhisk reacts to
trigger effects and produces a series of organized outputs. Developers only have
to set up action sequences and describe possible trigger events. The action itself
will be enabled by IBM’s infrastructure — users don’t have to control these
aspects.
NaaS (Network as a Service) is a cloud service model that enables clients to directly
gain access to the network infrastructure and is based on pay as you use model. It
also allows networking services to be taken on lease from a cloud vendor rather
than fixing their own network infrastructure by the customer.
This service utilizes virtualized network infrastructure and gives safe network
services to employees and clients.
NaaS service providers always attempt to maintain and handle network resources in
a way that reduces the workload of clients/employees.
NaaS facilitate consumers to run their own networks with no maintenance on their
own networking infrastructure.
Similar to cloud services, NaaS providers operate networking activities with software
and internet connection, thus enabling companies to establish their own networks
with no hardware.
In the DaaS computing model (a more advanced, fine-grained form of STaaS), data
(as opposed to files) is readily accessible through a Cloud-based platform. Data
(either from databases or object containers) is supplied “on-demand” via cloud
platforms (as opposed to the traditional, on-premise models in which the data
remains in the customer’s hands) and the vendor provides the tools that make it
easier to access and explore.
Based on Web Services standards and service-oriented architecture (SOA), DaaS
provides a dynamic infrastructure for delivering information on demand to users,
regardless of their geographical location or organizational separation – and, in the
process, presents solution providers with a number of significant opportunities.
DaaS eliminates redundancy and reduces associated expenditures by
accommodating vital data in a single location, allowing data use and/or
modification by multiple users via a single update point.
Typical business applications include customer relationship management (CRM),
enterprise resource planning (ERP), e-commerce and supply chain systems and,
more recently, Big Data analytics. Some of the best-known enterprise-level
providers are Oracle’s Data Cloud, Amazon DynamoDB, Microsoft SQL
Database (formerly known as SQL Azure) and Google Cloud’s Datastore. For open
source projects, Apache Cassandra, CockroachDB or CouchDB will almost certainly
catch your eye.