Showing posts with label Cloud Computing. Show all posts
Showing posts with label Cloud Computing. Show all posts

Wednesday 27 April 2022

Platform as a service (PaaS)

Platform as a service (PaaS) 

  • The PaaS model provides the tools within an environment needed to create applications that can run in a Software as a Service model 
  • PaaS is application middleware offered as a service to developers, integrators, and architects. 
  • Development and Operation teams use PaaS to design, build, and deliver customized applications or information services. 
  • Instead of relying on standardized SaaS, teams using PaaS have more control over solution architecture, quality of service, user experience, data models, identity, integration, and business logic.
  • In PaaS you are given a toolkit to work with, a virtual machine to run your software on, and it is up to you to design the software and its user-facing interface in a way that is appropriate to your needs.
  • So PaaS systems range from full-blown developer platforms like Windows Azure to systems like Drupal, Squarespace, Wolf, and others where the tools are modules that are very well developed and require almost no coding.
  • PaaS solution will ensure the availability of the application despite downtime of the underlying virtual machine by automatically creating a new instance of the application on a new virtual machine when the machine goes down.
  • PaaS systems can be used to host a variety of cloud services
    • Online portal-based applications like Facebook that need to scale to thousands of users 
    • Startup who wants to host their new application in a Software-as-a-Service model 
    • Can also be used for massively parallel computations 
    • Enterprises can deploy their Line-of-Business applications in the cloud, taking advantage of the scale and availability while still maintaining security and privacy of data
PaaS examples 

Windows Azure 
Google App Engine 
Hadoop platform 
Drupal 
Wolf Frameworks 
Force.com 

Amazon Web Services (AWS)

AWS is Amazon’s umbrella description of all of their web-based technology services.  Main services include:

  • Compute 
  • Storage
  • Database
  • Deployment & Management 
  • Application Services 
  • Networking 
  • Content Delivery

Category

Service

Compute

  • Amazon Elastic Compute Cloud (Amazon EC2)
  • Amazon Elastic MapReduce (Amazon EMR)
  • Auto scaling
  • Elastic Load Balancing

Storage

  • Amazon Simple Storage Service (Amazon S3) Amazon Glacier
  • AWS Storage Gateway
  • AWS Import/Export

Content Delivery

  • Amazon CloudFront

Database

  • Amazon Relational Database Service (Amazon RDS)
  • Amazon DynamoDB
  • Amazon ElastiCache

Deployment & Management

  • AWS Identity and Access Management (IAM) Amazon CloudWatch
  • AWS Elastic Beanstalk
  • AWS CloudFormation

Application Services

  • Amazon Simple Queue Service (SQS)
  • Amazon Simple Notification Service (Amazon SNS)
  • Amazon Simple Email Service (Amazon SES)
  • Amazon CloudSearch

Networking

  • Amazon Virtual Private Cloud (Amazon VPC)
  • Amazon Route 53
  • AWS Direct Connect

Tuesday 26 April 2022

SaaS (Software as a Service)

 SaaS - Definition

  • The most complete cloud computing service model is one in which the computing hardware and software, as well as the solution itself, are provided by a vendor as a complete service offering.
  • SaaS is a model where an application is hosted on a remote data center and provided as a service to customers across the internet.
  • In this model the provider takes care of all software development, maintenance and upgrades.
  • Salesforce.com is a common and popular example of a CRM SaaS application.  
Is it customizable?
  • Many people believe that SaaS software is not customizable, and in many SaaS applications this is indeed the case. eg: user-centric application like office suite 
  • Many other SaaS solutions expose Application Programming Interfaces (API) to developers to allow them to create custom composite applications eg: Salesforce.com, Quicken.com, etc 
So, SaaS does not necessarily mean that the software is static or monolithic.

SaaS characteristics
  • The software is available over the Internet globally through a browser on demand 
  • The typical license is subscription-based or usage-based and is billed on a recurring basis 
  • The software and the service are monitored and maintained by the vendor, regardless of where all the different software components are running 
  • Reduced distribution, maintenance costs and minimal end
  • user system costs generally make SaaS applications cheaper to use than their shrink-wrapped versions 
  • Such applications feature automated upgrades, updates, and patch management and much faster rollout of changes 
  • SaaS applications often have a much lower barrier to entry than their locally installed competitors, a known recurring cost, and they scale on demand 
  • All users have the same version of the software, so each user's software is compatible with another's 
  • SaaS supports multiple users and provides a shared data model through a single-instance, multi-tenancy model
SaaS - Pros
  • No large upfront costs - usually free trials 
  • Anywhere, anytime, anyone - mobility 
  • Stay focused on business processes 
  • Change software to an Operating Expense instead of a Capital Purchase, making better accounting and budgeting sense. 
  • Create a consistent application environment for all users 
  • No concerns for cross platform support 
  • Easy Access 
  • Reduced piracy of your software
  • Lower Cost: 
    • For an affordable monthly subscription; 
    • Implementation fees are significantly lower 
  • Continuous Technology Enhancements
SaaS - Cons 
  • Initial time needed for licensing and agreements 
    • Trust, or the lack thereof, is the number one factor blocking the adoption of software as a service (SaaS). 
    • Centralized control
    • Possible erosion of customer privacy 
  • Absence of disconnected use 
  • Not suited to high volume data entry
  • Broadband risk
SaaS ?? 

Imagine a system 
  • where you don't have to buy new hardware or update software 
  • where you pay nothing or pay as much as you use 
  • where everything is done as a service: Infrastructure, computing, storage and usage 
  • where you don't worry about your resources spent on Infrastructure security and operational security  where you cut your IT spending 
  • where you have freedom of usage from anywhere with internet connectivity 
  • which is eco-friendly 
Example SaaS applications 
  1. Salesforce.com 
  2. Google Apps 
    • Gmail, Google Groups, Google Calendar, Talk, Docs, etc 
    • Google Apps Marketplace (Google apps for both free and for a fee) 
  3. Microsoft Office 365 
    • Office 365 is a subscription-based online office and software plus services suite which offers access to various services and software built around the Microsoft Office platform
Which applications are suitable?

Any application can be deployed in this way. However communications over the Internet are not as fast as local connections - so leave any high volume data entry applications on your internal LAN or WAN. All the rest can go on the Internet under a SaaS approach.

Myths 
  • SaaS is still relatively new and untested 
  • SaaS is just another version of the failed ASP and hosting models of the past and will suffer the same fate as its predecessors 
  • SaaS only relieves companies of the upfront costs of traditional software licenses 
  • SaaS is only for small and mid-sized businesses and will not be accepted by large-scale organizations
  • SaaS only applies to applications such as CRM and Salesforce automation 
  • SaaS will only have a minor impact on the software industry and will fade over time 
  • It will be easy for the established software vendors to offer SaaS and dominate this market 
  • SaaS is only for corporate users
Traditional packaged Software Vs SaaS

Traditional packaged Software

Saas

Designed for customers to install, manage and maintain

Designed from the outset up for delivery as Internet-based services

Architect solutions to be run by an individual company in a dedicated instantiation of the software

Designed to run thousands of different customers on a single code

Infrequent, major upgrades every 18-24 months, sold individually to each installed base customer

Frequent, "digestible" upgrades every 3-6 months to minimize customer disruption and enhance satisfaction

Version control

Version control

Upgrade fee

- do -

Fixing a problem for individual customer

Fixing a problem for one customer fixes it for everyone

Friday 27 May 2016

Cloud Computing

Cloud computing is a model for enabling ubiquitous,convenient,on- demand network access to a shared pool of configurable computing resources(e.g.,networks, servers, storage, applications, and  services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.(byNIST)

“an Internet based computing paradigm that delivers on-demand software and hardware computing capability as a ‘service’ through virtualization where the end user is completely abstracted from the computing resources”

3-4-5 Rule

3 : Services
4 : Deployment Models
5 : Characteristics

3 : Services

1. IaaS (Infrastructure as a Service)

The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, deployed applications, and possibly limited control of select networking components (e.g., host firewalls)





2. PaaS (Platform as a Service)

The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and possibly application hosting environment configurations


Windows Azure, Google App Engine, Hadoop, etc. are some well-known PaaS platforms

3. SaaS (Software as a Service)

The capability provided to the consumer is to use the provider's applications running on a cloud infrastructure. The applications are accessible from various client devices through a thin client interface such as a web browser (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings



Moto: “No Software
Ex: Salesforce.com for CRM, Google Docs for document sharing, and web email systems like Gmail, Hotmail, and Yahoo! Mail


Cloud Service Models 
















Utility Computing


  • Utility computing is the packaging of computing resources, such as computation, storage and applications, as a metered service similar to traditional public utility (such as electricity, water, natural gas, or the telephone network).
  • This model has the advantage of a low or no initial cost to acquire computer resources; instead, computational resources are essentially rented
  • You get connected to the utility companies’ “public” infrastructure
  • You get these utility services on‐demand
  • And you pay‐as‐you use (metered service)
  • Cloud computing is the most recent technology innovation which has made utility computing a reality!

Distributed Computing

  • A distributed computing system is basically a collection of processors interconnected by a communication network in which each processor has its own local memory and other peripherals, and the communication between any two processors of the system takes place by message passing over the communication network
  • Loosely coupled systems
  • Examples: Cluster, Grid, P2P, Cloud computing, IOT
  • Uses middleware, which enables computers to coordinate their activities and to share the resources of the system.
  • Single integrated computing facility from user perspective
  • Can include heterogeneous computations where some nodes may perform a lot more computation, some perform very little computation and a few others may perform specialized functionality (like processing visual graphics)
  • Using which efficient scalable programs can be designed so that independent processes are scheduled on different nodes and they communicate only occasionally to exchange results
  • Cloud computing is also a specialized form of distributed computing, where distributed SaaS applications utilize thin clients (such as browsers) which offload computation to cloud-hosted servers (and services).
  • Additionally,cloud-computing vendors providing (IaaSand PaaS) solutions may internally use distributed computing to provide highly scalable cost-effective infrastructure and platform.

Cluster Computing


  • A computer cluster is a group of loosely or tightly coupled computers that work together closely so that in many respects it can be viewed as though it were a single computer
  • Better performance and availability and more cost‐effectiveness over single computer with same capabilities
Characteristics:
  • Loosely / tightly coupled computers
  • Centralized Job management & scheduling
  • Coined in 1987

Grid Computing:

  • Grid is a collection of a large number of loosely coupled, heterogeneous, and geographically dispersed systems in different administrative domains
  • Generally owned by multiple organizations that is coordinated to allow them to solve a common problem
Characteristics
  • Loosely coupled computers
  • Distributed Job management & scheduling
  • Originated (early 1990s)
Vision: To enable computing to be delivered as a utility
This vision is most often presented with an analogy to electrical power grids, from which it derives the name “grid”
  • The key emphasis of grid computing was to enable sharing of computing resources or forming a pool of shared resources that can then be delivered to users.
  • Focus of grid computing was limited to enabling shared use of resources with common protocols for access
  • a particular emphasis was given to handle heterogeneous infrastructure-typically a university data center.
  • "coordinated resource sharing and problem solving in dynamic, multi-institutional virtual organizations.” -Ian Foster & Steve Tucker -> "Anatomy of Grid”
  • There are also very specific differences between a grid computing infrastructure and the features one should expect from a cloud computing infrastructure
  • Grid (three-point checklist)?
    • Co-ordinates resources that are not subjecttocentralized control
    • Using standard, open, general purpose protocols and interfaces
    • To deliver nontrivial quality of service

Advantages -Distributed computing

Inherently Distributed applications:
  • Several applications are inherently distributed in nature and require distributed computing system for their realization
Information Sharing among Distributed Users:
  • In a distributed computing system, information generated by one of the users can be easily and efficiently shared by the users working at other nodes of the system .
Resource Sharing:
  • Sharing of software resources such as software libraries and databases as well as hardware resources such as printers, hard disks, etccan also be done in a very effective way among all the computers and the users of a single distributed computing system.
Extensibility and Incremental Growth:
  • It is possible to gradually extend the power and functionality of a distributed computing system by simply adding additional resources (both hardware and software) to the system as and when the need arises .
  • Incremental growth is very attractive feature because for most existing and proposed applications it is practically impossible to predict future demands of the system.
  • Addition of new resources to an existing system can be performed without significant disruption of the normal functioning of the system.
Shorter Response Times and Higher Throughput:
  • The multiple processors of the distributed computing system can be utilized properly for providing shorter response times and higher throughput than a single processor centralized system.
  • Another method often used in distributed computing systems for achieving better overall performance is to distribute the load more evenly among the multiple processors by moving the jobs from currently overloaded processors to lightly loaded ones
Higher Reliability:
  • Reliability refers to the degree of tolerance against errors and component failures in a system.
  • A reliable system prevents loss of information even in the event of component failures
  • An important aspect of reliability is availability, which refers to the fraction of time for which a system is available for use.
Better Flexibility in Meeting User’s Needs:
  • A distributed computing system may have a pool of different types of computers, in which case the most appropriate one can be selected for processing a user’s job depending on the nature of the job.
  • Better Price-Performance Ratio:
  • With the rapidly increasing power and reduction in prize of the microprocessors, combined with the increasing speed of communication network, distributed computing systems potentially have a much better price performance ratio than a single large centralized system.

Ubiquitous/ Pervasive computing


  • It is an advanced computing concept where computing is made to appear everywhere and anywhere.
  • Ubiquitous computing can occur using any device, in any location, and in any format. A user interacts with the computer, which can exist in many different forms -laptop, tablets, terminals, phones, etc.
  • Move beyond desktop machine
  • Ex: digital audio players, radio-frequency identification tags, PDAs, smartphones, GPS, and interactive whiteboards
  • Present or noticeable in every part of a thing or place
  • Information processing engaged in every day’s activities and objects