0% found this document useful (0 votes)
13 views

module n 2

cloud

Uploaded by

vidhyapm
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views

module n 2

cloud

Uploaded by

vidhyapm
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 77

CLOUD COMPUTING

Cloud Platform Design Goals

Scalability, virtualization, efficiency, and reliability are four major design goals of a cloud
computing platform.

Cloud management receives the user request, finds the correct resources, and then calls
the provisioning services which invoke the resources in the cloud. The cloud management
software needs to support both physical and virtual machines.

The platform needs to establish a very large-scale HPC infrastructure. The hardware and
software systems are combined to make it easy and efficient to operate. System scalability
can benefit from cluster architecture. If one service takes a lot of processing power, storage
capacity, or network traffic, it is simple to add more servers and bandwidth. System
reliability can benefit from this architecture. Data can be put into multiple locations.
Cloud-Enabling Technology:

Broadband Networks and Internet Architecture


Data Center Technology
Virtualization Technology
Web Technology
Multitenant Technology
Service Technology
CLOUD COMPUTING
Enabling Technologies for Clouds
The key driving forces behind cloud computing are the ubiquity of broadband and wireless
networking, falling storage costs, and progressive improvements in Internet computing
software.

-
CLOUD COMPUTING
Generic Cloud Architecture Example- Security-aware cloud Architecture

A security-aware cloud platform built with a virtual cluster of VMs, storage, and networking resources
over the data-center servers operated by providers.
CLOUD COMPUTING
Generic Cloud Architecture Example

● The figure shows a security-aware cloud architecture. The Internet cloud is

envisioned as a massive cluster of servers. These servers are provisioned on


demand to perform collective web services or distributed applications using data-
center resources. The cloud platform is formed dynamically by provisioning or
deprovisioning servers, software, and database resources. Servers in the cloud can
be physical machines or VMs. User interfaces are applied to request services. The
provisioning tool carves out the cloud system to deliver the requested service.
● In addition to building the server cluster, the cloud platform demands distributed

storage and concomitant services. The cloud computing resources are built into
the data centers, which are typically owned and operated by a third-
party provider. Consumers do not need to know the underlying technologies.
CLOUD COMPUTING
Generic Cloud Architecture Example

● The cloud demands a high degree of trust of massive amounts of data retrieved

from large data centers. We need to build a framework to process large-scale


data stored in the storage system. This demands a distributed file system over
the database system. Other cloud resources are added into a cloud platform,
including storage area networks (SANs), database systems, firewalls, and
security devices.
● The software infrastructure of a cloud platform must handle all resource

management and do most of the maintenance automatically. Software must


detect the status of each node server joining and leaving, and perform relevant
tasks accordingly.
CLOUD COMPUTING
Layered Cloud Architecture

The architecture of a cloud is developed at three layers: infrastructure, platform, and


application. These three development layers are implemented with virtualization and
standardization of hardware and software resources provisioned in the cloud. The services
to public, private, and hybrid clouds are conveyed to users through networking support
over the Internet and intranets involved.

The infrastructure layer is built with virtualized compute, storage, and network resources.
The abstraction of these hardware resources is meant to provide the flexibility demanded
by users.

The platform layer is for general-purpose and repeated usage of the collection of software
resources. This layer provides users with an environment to develop their applications, to
test operation flows, and to monitor execution results and performance.

The application layer is formed with a collection of all needed software modules for SaaS
applications. Service applications in this layer include daily office management work, such
-as information retrieval, document processing, and calendar and authentication services.
CLOUD COMPUTING
Layered Cloud Architecture

-
CLOUD COMPUTING
Market-Oriented Cloud Architecture

As consumers rely on cloud providers to meet more of their computing needs, they will require
a specific level of QoS to be maintained by their providers, in order to meet their objectives and
sustain their operations. To achieve this, the providers cannot deploy traditional system-
centric resource management architecture. Instead, market-oriented resource management is
necessary to regulate the supply and demand of cloud resources to achieve market equilibrium
between supply and demand.

The designer needs to provide feedback on economic incentives for both consumers and
providers. The purpose is to promote QoS-based resource allocation mechanisms. In addition,
clients can benefit from the potential cost reduction of providers.

The request examiner ensures that there is no overloading of resources whereby many service
requests cannot be fulfilled successfully due to limited resources. The Pricing mechanism
decides how service requests are charged. The VM Monitor mechanism keeps track of the
availability of VMs and their resource entitlements. The Dispatcher mechanism starts the
execution of accepted service requests on allocated VMs. The Service Request Monitor
mechanism keeps track of the execution progress of service requests. Multiple VMs can be
started and stopped on demand on a single physical machine to meet accepted service

-requests, hence providing maximum flexibility.


CLOUD COMPUTING
Market-Oriented Cloud Architecture

-
CLOUD COMPUTING
Infrastructure as a Service (IaaS) (T1)

Infrastructure as a Service

The IaaS model is about providing compute and storage resources 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).
NIST Definitions

The user of IaaS has single ownership of the hardware infrastructure allotted to
him (may be a virtual machine)

The IaaS provider has control over the actual hardware and the cloud user can
request
a-llocation of virtual resources
CLOUD COMPUTING
Infrastructure as a Service (IaaS)
CLOUD COMPUTING
IaaS platform and architecture

IaaS is made up of a collection of physical and virtualized resources that provide


consumers with the basic building blocks needed to run applications and workloads
in the cloud.

Physical data centers: IaaS providers will manage large data centers, typically around
the world, that contain the physical machines required to power the various layers of
abstraction on top of them and that are made available to end users over the web. In
most IaaS models, end users do not interact directly with the physical infrastructure,
but it is provided as a service to them.

Compute: Providers manage the hypervisors and end users can then
programmatically provision virtual “instances” with desired amounts of compute and
memory (and sometimes storage). Most providers offer both CPUs and GPUs for
different types of workloads. Cloud compute also typically comes paired with
supporting services like auto scaling and load balancing that provide the scale and
performance characteristics that make cloud desirable in the first place.
CLOUD COMPUTING
IaaS platform and architecture
Network: Networking in the cloud is a form of Software Defined
Networking in which traditional networking hardware, such as routers and
switches, are made available programmatically, typically through APIs.

Storage: The three primary types of cloud storage are block storage, file
storage, and object storage. Block and file storage are common in
traditional data centers but can often struggle with scale, performance and
distributed characteristics of cloud. Thus, of the three, object storage has
thus become the most common mode of storage in the cloud given that it is
highly distributed (and thus resilient), it leverages commodity hardware,
data can be accessed easily over HTTP, and scale is not only essentially
limitless but performance scales linearly as the cluster grows.
CLOUD COMPUTING
IaaS Advantages
• Flexible: The most flexible cloud computing model.

• Control: Clients retain complete control of their infrastructure

• Pay-as-you-Go: Unlike traditional IT, IaaS does not any upfront, capital
require
expenditures, and end users are only billed for what they use.
• Speed: With IaaS, users can provision small or vast amounts of resources in a matter of
minutes, testing new ideas quickly or scaling proven ones even quicker.

• Availability: Through things like multizone regions, the availability and resiliency of cloud
applications can exceed traditional approaches.

• Scale: With seemingly limitless capacity and the ability to scale resources either
automatically or with some supervision, it’s simple to go from one instance of an
application or workload to many.

• Latency and performance: Given the broad geographic footprint of most IaaS providers,
it’s easy to put apps and services closers to your users, reducing latency and improving
performance.
CLOUD COMPUTING
When to Use IaaS https://www.bmc.com/blogs/saas-vs-paas-vs-iaas-whats-the-difference-and-how-to-choose/#ref3

• Startups and small companies may prefer IaaS to avoid spending time and
money on purchasing and creating hardware and software.

• Larger companies may prefer to retain complete control over their


applications and infrastructure, but they want to purchase only what they
actually consume or need.

• Companies experiencing rapid growth like the scalability of IaaS, and they
can change out specific hardware and software easily as their needs evolve.

• Website hosting :Running websites using IaaS can be less expensive than
traditional web hosting.

• Storage, backup and recovery :Organisations avoid the capital outlay for
storage and complexity of storage management, which typically requires a
skilled staff to manage data. IaaS is useful for handling unpredictable
demand and steadily growing storage needs. It can also simplify planning
and management of backup and recovery systems.
CLOUD COMPUTING
When to Use IaaS https://azure.microsoft.com/en-in/overview/what-is-iaas/

• High-performance computing. High-performance computing (HPC) on


supercomputers, computer grids or computer clusters helps solve complex
problems involving millions of variables or calculations.

• Big data analysis. Mining data sets to locate or tease out hidden
patterns requires a huge amount of processing power, which IaaS
economically provides.

• Anytime you are unsure of a new application’s demands, IaaS offers


plenty of flexibility and scalability.
CLOUD COMPUTING
IaaS Limitations & Concerns

• Security: While the customer is in control of the apps, data, middleware,


and the OS platform, security threats can still be sourced from the host or
other virtual machines (VMs). Insider threat or system vulnerabilities may
expose data communication between the host infrastructure and VMs to
unauthorized entities.

• Multi-tenant security: Since the hardware resources are dynamically


allocated across users as made available, the vendor is required to ensure
that other customers cannot access data deposited to storage assets by
previous customers. Similarly, customers must rely on the vendor to
ensure that VMs are adequately isolated within the multi tenant cloud
architecture.

• Internal resources and training: Additional resources and training may


be required for the workforce to learn how to effectively manage the
infrastructure. Due to inadequate control into the infrastructure however,
monitoring and management of the resources may be difficult without
adequate training and resources available in house.
CLOUD COMPUTING
IaaS Providers

• Amazon Web Services : Amazon EC2.


• Microsoft Azure : Azure Virtual Machines.
• Google Cloud : Google compute engine.
• IBM Cloud : IBM Cloud Private.
• Digital Ocean : Digital Ocean Droplets.
CLOUD COMPUTING
Service oriented architecture (SOA)

SOA, or service-oriented architecture, defines a way to make software


components reusable via service interfaces. These interfaces utilize common
communication standards in such a way that they can be rapidly incorporated
into new applications without having to perform deep integration each time.

Each service in an SOA embodies the code and data integrations required to
execute a complete, discrete business function. The service interfaces provide
loose coupling, meaning they can be called with little or no knowledge of how
the integration is implemented underneath. The services are exposed using
standard network protocols—such as SOAP (simple object access
protocol)/HTTP or JSON/HTTP—to send requests to read or change data. The
services are published in a way that enables developers to quickly find them
and reuse them to assemble new applications.

two major service-oriented architecture styles :


1. REST (REpresentational State Transfer)
2. WS (Web Services)
CLOUD COMPUTING
REST(REpresentational State Transfer) (T2), https://www.codecademy.com/articles/what-is-rest

REST, or REpresentational State Transfer, is an architectural style for providing


standards between computer systems on the web, making it easier for systems
to communicate with each other. REST-compliant systems, often called RESTful
systems, are characterized by how they are stateless and separate the concerns
of client and server. It is a software architecture style for distributed systems,
particularly distributed hypermedia systems, such as the World Wide Web. It
was developed in parallel with the HTTP/1.1 protocol.
CLOUD COMPUTING
REST Principles (T2)

The REST architectural style is based on four principles:

1. Resource Identification through URIs.

2. Uniform, Constrained Interface.

3. Self-Descriptive Message.

4. Stateless Interactions.
CLOUD COMPUTING
REST Principles - Resource Identification through URIs (T2)

Resource : The key abstraction of information in REST is a resource. Any information


that can be named can be a resource, such as a document or image or a temporal
service.
The RESTful web service exposes a set of resources which identify targets of
interaction with its clients. Each particular resource is identified by a unique name, or
more precisely, a Uniform Resource Identifier (URI) providing a global addressing
space for resources involved in an interaction between components as well as
facilitating service discovery. The URIs can be bookmarked or exchanged via
hyperlinks, providing more readability.
CLOUD COMPUTING
REST Principles - Uniform, Constrained Interface (T2)

Interaction with RESTful web services is done via the HTTP standard, client/server
cacheable protocol.

Resources are manipulated using a fixed set of four CRUD (create, read, update,
delete) operations:

GET — retrieve a specific resource or a collection of resources


POST — Create or partial update of a resource
PUT — Create or update resource by replacement.
DELETE — remove a resource

Operations characteristics:
1. Safe : An operation is safe if does not modify resources.
2. Idempotent: An idempotent operation is an operation, action, or request that
can be applied multiple times without changing the result, i.e. the state of the
system, beyond the initial application. Making multiple identical requests has the
same effect as making a single request.
Ref - https://stackoverflow.com/a/31797951
CLOUD COMPUTING
REST Principles - Uniform, Constrained Interface (T2)
CLOUD COMPUTING
REST Principles - Self-Descriptive Message (T2)

A REST message includes enough information to describe how to process the message.
This enables intermediaries to do more with the message without parsing the message
contents.

In REST, resources are decoupled from their representation so that their content can be
accessed in a variety of standard formats (e.g., HTML, XML, MIME, plain text, PDF, JPEG,
JSON, etc.) i.e the resources can have multiple representations. RESTful systems
empowers client to ask for data in a form they understand.

Example:

Client request Server Response

Metadata about the resource is available and can be used for various purposes, such as
cache control, transmission error detection, authentication or authorization, and access
control.
CLOUD COMPUTING
REST Principles - Stateless Interactions (T2)

Stateless Interactions: Systems that follow the REST paradigm are stateless, meaning that
the server does not need to know anything about what state the client is in and vice versa.
In this way, both the server and the client can understand any message received, even
without seeing previous messages. Each client request is treated independently.

Statelessness benefits :
1. Clients isolated against changes on server
2. Promotes redundancy - unlocks performance:
a. don’t really need to know which server client was talking to
b. No synchronization overhead

No state saved
on server, so
even if server
fails, the client
connects to
another server
and continue
CLOUD COMPUTING
More points on REST

• Rest is not a standard :


It is a design and architectural style for large scale distributed systems

• Rest is not same as http:


Http can also be used in non-RESTful way. Example : SOAP services
that use http to transport data.
CLOUD COMPUTING
Web Services (T2)

Web Service : a software system designed to support interoperable machine-to-


machine interaction over a network.

The term “web service” is often referred to a self-contained, self-describing, modular


application designed to be used and accessible by other software applications across
the web.
Once a web service is deployed, other applications and other web services can
discover and invoke the deployed service. Other systems interact with the web
service in a manner prescribed by its description.

A web service is one of the most common instances of an SOA implementation.

The technologies that make up the core of today’s web services are:

1. Simple Object Access Protocol (SOAP)


2. Web Services Description Language (WSDL)
3. Universal Description, Discovery, and Integration (UDDI)
CLOUD COMPUTING
Web Services (T2)

Simple Object Access Protocol (SOAP)


SOAP provides a standard packaging structure for transmission of XML documents over various
Internet protocols, such as SMTP, HTTP, and FTP. By having such a standard message format,
heterogeneous middleware systems can achieve interoperability i.e different systems can
communicate and share services regardless of their underlying implementation.

A SOAP message consists of a root element called envelope, The envelope element is the mandatory
element in the SOAP message and is used to encapsulate all of the data in the SOAP message. It
contains :
1. A Header element that contains header information – The header element can contain
information such as authentication credentials which can be used by the calling application. It can
be extended by intermediaries with additional application-level elements such as routing
information ,transaction management, message parsing instructions.
2. a body element that carries the payload of the message.

The content of the payload will be marshaled by the sender’s SOAP engine and unmarshaled at the
receiver side, based on the XML schema that describes the structure of the SOAP message.
Ref - https://www.guru99.com/soap-simple-object-access-protocol.html
CLOUD COMPUTING
Web Services (T2)

SOAP Message Structure :


CLOUD COMPUTING
Web Services (T2)

Web Services Description Language (WSDL)

WSDL describes the interface, a set of operations supported by a web service in a


standard format. It standardizes the representation of input and output parameters
of its operations as well as the service’s protocol binding, the way in which the
messages will be transferred on the wire. Using WSDL enables disparate clients to
automatically understand how to interact with a web service.
WSDL is an XML format for describing network services as a set of endpoints operating
on messages containing either document-oriented or procedure-oriented information.

Universal Description, Discovery, and Integration (UDDI)

UDDI provides a global registry for advertising and discovery of web services. Users
can find web services by searching for names, identifiers, categories, or the
specification implemented by the web service.
CLOUD COMPUTING
Web Services in action (T2)
CLOUD COMPUTING
Web Services in action (T2)
Refer to Figure 5.2(previous slide):

Step 1 : The service provider publishes its location and description to the UDDI registry.

Step 2: The service requester queries the UDDI registry using names, identifiers, or the
specification. The UDDI registry finds the corresponding service and returns the WSDL document
of the service.

Step 3: The service requester reads the WSDL document and forms a SOAP message binding to
all constraints in the WSDL document.

Step 4: This SOAP message is sent to the web service as the body of an HTTP/SMTP/FTP request.

Step 5: The web service unpacks the SOAP request and converts it into a command that the
application can understand and executes the command.

Step 6: The web service packages the response into another SOAP message, which it sends back
to the client program in response to its HTTP/SMTP/FTP request

Step 7: The client program unpacks the SOAP message to obtain the results
CLOUD COMPUTING
Web services protocol stack (T2)

A web service protocol stack is a protocol stack (a stack of computer networking


protocols) that is used to define, locate, implement, and make Web services interact
with each other. A Web service protocol stack typically stacks four protocols:

1. Transport Protocol: responsible for transporting messages between network


applications and includes protocols such as HTTP, SMTP, FTP, as well as the more
recent Blocks Extensible Exchange Protocol (BEEP).
2. Messaging Protocol: responsible for encoding messages in a common XML
format so that they can be understood at either end of a network connection.
Currently, this area includes such protocols as XML-RPC, WS-Addressing, and
SOAP.
3. Description Protocol: used for describing the public interface to a specific Web
service. The WSDL interface format is typically used for this purpose.
4. Discovery Protocol: centralizes services into a common registry so that network
Web services can publish their location and description, and makes it easy to
discover what services are available on the network. Universal Description
Discovery and Integration (UDDI) was intended for this purpose, but it has not
been widely adopted.
CLOUD COMPUTING
REST vs RESTful

Basis terms Restless Web Service Restlful Web Service

It is based on the principles of


Architecture It is not based on the principles of REST. REST architecture and is
integrable with other computer
systems on the network.
REST principles It does not uses REST principles. It uses REST principles.

Communication It uses SOAP services. It uses REST services.

Data Formats It supports only XML format. It supports JSON, HTML, etc format.

These services uses service interface to These services uses URL to


Functions
show business logic. show business logic.

It is more usable and flexible for the


Usability and It is less usable and flexible for the users.
users.
Flexibility

Less secure as it uses the security


Security Aspects More secure as it designs it’s own security
layers to communication protocols.
layer.

Bandwidth It uses a small bandwidth. It uses a large bandwidth.


CLOUD COMPUTING
Platform as a Service(PaaS) Programming Model https://azure.microsoft.com/en-in/overview/what-is-paas/

Platform as a service (PaaS) is a complete development and deployment environment in the cloud,
with resources that enable you to deliver everything from simple cloud-based apps to sophisticated,
cloud-enabled enterprise applications. You purchase the resources you need from a cloud service
provider on a pay-as-you-go basis and access them over a secure Internet connection.

PaaS abstraction provides a platform built on top of the abstracted hardware that can be used by
developers to create cloud applications. This platform is delivered via the web, giving developers the
freedom to concentrate on building the software without having to worry about operating systems,
software updates, storage, or infrastructure.
CLOUD COMPUTING
Platform as a Service(PaaS) Programming Model
Like IaaS, PaaS includes infrastructure—servers, storage networking—but also middleware,
and
development tools, business intelligence (BI) services, database management systems and more. PaaS is
designed to support the complete web application lifecycle: building, testing, deploying, managing and
updating.
The hardware, as well as any mapping of hardware to virtual resources, such as virtual servers, is
controlled by the PaaS provider. The cloud user can configure and build on top of this middleware, such
as define a new database table in a database
CLOUD COMPUTING
PaaS Advantages https://www.ibm.com/cloud/learn/paas

1. Faster time to market: With PaaS, there’s no need to purchase and install the
hardware and software you’ll use to build and maintain your application
development platform and no need for development teams to wait while you do this.
You simply tap into the cloud service provider’s PaaS resources and begin developing
immediately.

2. Faster, easier, less-risky adoption of a wider range of resources: PaaS platforms


typically include access to a greater variety of choices up and down the application
development stack—operating systems, middleware, and databases, and tools such
as code libraries and app components—than you can affordably or practically
maintain on-premises. It also lets you test new operating systems, languages, and
tools without risk—that is, without having to invest in the infrastructure required to
run them.

3. Develop for multiple platforms—including mobile—more easily. Some service


providers give you development options for multiple platforms, such as computers,
mobile devices and browsers making cross-platform apps quicker and easier to
develop.
CLOUD COMPUTING
PaaS Advantages
4. Easy, cost-effective scalability: If an application developed and hosted on-premises
starts getting more traffic, you’ll need to purchase more computing, storage, and even
network hardware to meet the demand, which you may not be able to do quickly
enough and can be wasteful (since you typically purchase more than you need). With
PaaS, you can scale on-demand by purchasing just the amount of additional capacity
you need.

5. Support geographically distributed development teams: Because the development


environment is accessed over the Internet, development teams can work together on
projects even when team members are in remote locations.

6. Efficiently manage the application lifecycle : PaaS provides all of the capabilities that
you need to support the complete web application lifecycle: building, testing,
deploying, managing and updating within the same integrated environment.

7. Lower costs: Because there’s no infrastructure to build, your upfront costs are lower.
Costs are also lower and more predictable because most PaaS providers charge
customers based on usage.
CLOUD COMPUTING
When to Use PaaS

1. Development framework: PaaS provides a framework that developers can build upon
to develop or customise cloud-based applications. PaaS lets developers create
applications using built-in software components. Cloud features such as scalability,
high-availability and multi-tenant capability are included, reducing the amount of
coding that developers must do.

2. Analytics or business intelligence: Tools provided as a service with PaaS allow


organisations to analyse and mine their data, finding insights and patterns and
predicting outcomes to improve forecasting, product design decisions, investment
returns and other business decisions.

3. PaaS can streamline workflows when multiple developers are working on the same
development project. If other vendors must be included, PaaS can provide great speed
and flexibility to the entire process. PaaS is particularly beneficial if you need to create
customized applications.
CLOUD COMPUTING
When to Use PaaS

4. API development and management: You can use PaaS to develop, run, manage, and
secure application programming interfaces (APIs) and microservices.

5. Internet of Things (IoT): PaaS can support the broad range of


application environments, programming languages, and tools used for IoT
deployments.
CLOUD COMPUTING
PaaS Limitations & Concerns
1. Operational limitation(Lack of control): Customized cloud operations with
management automation workflows may not apply to PaaS solutions, as the platform
tends to limit operational capabilities for end users. Although this is intended to
reduce the operational burden on end users, the loss of operational control may affect
how PaaS solutions are managed, provisioned, and operated.

2. Vendor lock-in: Business and technical requirements that drive decisions for a specific
PaaS solution may not apply in the future. If the vendor has not provisioned
convenient migration policies, switching to alternative PaaS options may not be
possible without affecting the business.

3. Runtime issues: In addition to limitations associated with specific apps and services,
PaaS solutions may not be optimized for the language and frameworks of your choice.
Specific framework versions may not be available or perform optimally with the PaaS
service. Customers may not be able to develop custom dependencies with the
platform.
CLOUD COMPUTING
PaaS Limitations & Concerns
4. Data security: Organizations can run their own apps and services using PaaS solutions,
but the data residing in third-party, vendor-controlled cloud servers poses security
risks and concerns. Your security options may be limited as customers may not be able
to deploy services with specific hosting policies.

5. Integrations: The complexity of connecting the data stored within an onsite data
center or off-premise cloud is increased, which may affect which apps and services can
be adopted with the PaaS offering. Particularly when not every component of a legacy
IT system is built for the cloud, integration with existing services and infrastructure
may be a challenge.

6. Customization of legacy systems: PaaS may not be a plug-and-play solution for


existing legacy apps and services. Instead, several customizations and configuration
changes may be necessary for legacy systems to work with the PaaS service. The
resulting customization can result in a complex IT system that may limit the value of
the PaaS investment altogether.
CLOUD COMPUTING
PaaS Providers (T2)
• Amazon Web Services : Elastic Beanstalk.
• Microsoft Azure : Azure DevOps.
• Google Cloud : Google App Engine.
CLOUD COMPUTING
PaaS Demo : AWS Elastic Beanstalk

https://www.youtube.com/watch?v=jnMUp2c9AzA
CLOUD COMPUTING
PaaS Demo : AWS Elastic Beanstalk
CLOUD COMPUTING
Communication Mechanism

“Inter-service communication is essential to consider when building


micro-services.”

Monolithic Application
- Runs on a single process, with multiple components.
- Components communicate(pass data) with one another through language-level function
calls.
- All components run within the same process — intra-process communication.

Micro-service Architecture
- Runs on multiple processes/services, usually across multiple servers.
- Each service instance is a process.
- Services interact using inter-process communication protocols.
- Protocols such as HTTP, AMQP(Advanced Message Queuing Protocol ), or a binary protocol
like TCP.
Ref: https://docs.microsoft.com/en-us/dotnet/architecture/microservices/architect-microservice-container-applications/communication-in-microservice-architecture
CLOUD COMPUTING
Interaction styles
(https://livebook.manning.com/book/microservices-patterns/chapter-3/15)

Interaction styles can be categorised in two dimensions

First dimension
1. One-to-one : Each client request is processed by exactly one service
2. One-to-many : Each request is processed by multiple services

Second dimension
3. Synchronous : The client expects a timely response from the service and might
even block while it waits.
2. Asynchronous : The client doesn’t block, and the response, if any, isn’t
necessarily sent immediately.
CLOUD COMPUTING
One-to-one interaction
The following are the different types of one-to-one interactions

1. Request/response— A service client makes a request to a service and


waits for a response. The client expects the response to arrive in a timely
fashion. It might even block while waiting. This is an interaction style that
generally results in services being tightly coupled.

3.Asynchronous request/response— A service client sends a request to a


service, which replies asynchronously. The client doesn’t block while
waiting, because the service might not send the response for a long
time.

4.One-way notifications— A service client sends a request to a


service, but no reply is expected or sent.
CLOUD COMPUTING
One-to-many interaction

The following are the different types of one-to-many interactions

- Publish/subscribe— A client publishes a notification message, which is


consumed by zero or more interested services.

- Publish/async responses— A client publishes a request message and


then waits for a certain amount of time for responses from
interested services.
CLOUD COMPUTING
Asynchronous vs Synchronous messaging

Advantages of Asynchronous messaging

- Reduced coupling: The message sender does not need to know about the
consumer.

- Multiple subscribers: Using a pub/sub model, multiple consumers can subscribe


to receive events.

- Failure isolation: If the consumer fails, the sender can still send messages. The
messages will be picked up when the consumer recovers. Asynchronous messaging
can handle intermittent downtime. Synchronous APIs, on the other hand, require
the downstream service to be available or the operation fails.

- Load leveling: A queue can act as a buffer to level the workload, so that receivers
can process messages at their own rate.
CLOUD COMPUTING
Asynchronous vs Synchronous messaging

Disadvantages of Asynchronous messaging

- Coupling with the messaging infrastructure: Using a particular messaging


infrastructure may cause tight coupling with that infrastructure. It will be difficult
to switch to another messaging infrastructure later.

- Latency: End-to-end latency for an operation may become high if the message
queues fill up.

- Complexity: Handling asynchronous messaging is not a trivial task. For example,


handling of duplicated messages, or correlating request and response messages
using a separate response queue.

- Throughput: If message queues are used, each message requires at least one
queue operation and one dequeue operation. Moreover, queue semantics
generally require some kind of locking inside the messaging infrastructure.
CLOUD COMPUTING
Messaging models

There are two main paradigms for asynchronous communication :

1.Message Queues

2.Event streams (Pub/Sub)


CLOUD COMPUTING
Message Queues https://aws.amazon.com/message-queue/

A message queue is a form of asynchronous service-to-service


communication used in serverless and microservices architectures.

Messages are stored on the queue until they are processed and deleted.

Each message is processed only once, by a single consumer.

Message queues can be used to decouple heavyweight processing,


to buffer or batch work, and to smooth spiky workloads.

Examples - Apache ActiveMQ, RabbitMQ, Apache Kafka


CLOUD COMPUTING
Message Queues (contd.)

A message queue provides a lightweight buffer which temporarily stores


messages, and endpoints that allow software components to connect to the
queue in order to send and receive messages.

The messages are usually small, and can be things like requests, replies, error
messages, or just plain information.

To send a message, a component called a producer adds a message to the queue.


The message is stored on the queue until another component called a consumer
retrieves the message and does something with it.

Many producers and consumers can use the queue, but each message is processed
only once, by a single consumer. For this reason, this messaging pattern is often
called one-to-one, or point-to-point, communications.

When a message needs to be processed by more than one consumer, message


queues can be combined with Pub/Sub messaging in a fanout design pattern.
CLOUD COMPUTING
Publish-Subscribe https://aws.amazon.com/pub-sub-messaging/

Publish/subscribe messaging is another asynchronous service-to-service communication


mechanism
In a pub/sub model, any message published to a topic is immediately received by all of
the subscribers to the topic.
Pub/sub messaging can be used to enable event-driven architectures, or to
decouple applications in order to increase performance, reliability and scalability.
CLOUD COMPUTING
Publish-Subscribe (contd.)

Four core concepts make up the pub/sub model:

1. Topic – An intermediary channel that maintains a list of subscribers to relay


messages to that are received from publishers

2. Message – Serialized messages sent to a topic by a publisher which has no


knowledge of the subscribers

3. Publisher – The application that publishes a message to a topic

4. Subscriber – An application that registers itself with the desired topic in


order to receive the appropriate messages
CLOUD COMPUTING
Publish-Subscribe – benefits

1.Eliminate Polling:
Message topics allow instantaneous, push-based delivery, eliminating the
need for message consumers to periodically check or “poll” for new
information and updates.
This promotes faster response time and reduces the delivery latency
that can be particularly problematic in systems where delays cannot be
tolerated.

2.Dynamic Targeting
Instead of maintaining a roster of peers that an application can send
messages to, a publisher will simply post messages to a topic.
Then, any interested party will subscribe its endpoint to the topic,
and start receiving these messages.
Subscribers can change, upgrade, multiply or disappear and the
system dynamically adjusts.
CLOUD COMPUTING
Publish-Subscribe (contd.)

3. Decouple and Scale Independently:


Publishers and subscribers are decoupled and work independently
from each other, which allows you to develop and scale them
independently.
Adding or changing functionality won’t send ripple effects across
the system, because Pub/Sub allows you to flex how
everything
uses everything else.

4. Simplify Communication
Communications and integration code is some of the hardest code to
write. The Publish Subscribe model reduces complexity by removing all
the point-to-point connections with a single connection to a message
topic, which will manage subscriptions to decide what messages should
be delivered to which endpoints. Fewer callbacks results in looser
coupling and code that’s easier to maintain and extend.
CLOUD COMPUTING
Redis https://aws.amazon.com/redis/

Redis, which stands for Remote Dictionary Server, is a fast, open-source, in-memory key-
value data store for use as a database, cache, message broker, and queue.

Why use Redis?


- All Redis data resides in-memory, in contrast to databases that store data on disk or SSDs.
By eliminating the need to access disks, in-memory data stores such as Redis avoid seek
time delays and can access data in microseconds.
CLOUD COMPUTING
Software as a Service

What is SaaS?

- Software as a service (or SaaS) is a way of delivering applications over the Internet—
as a service. Instead of installing and maintaining software, you simply access it via
the Internet, freeing yourself from complex software and hardware management.

- SaaS applications are sometimes called Web-based software, on-demand software,


or hosted software. Whatever the name, SaaS applications run on a SaaS provider’s
servers. The provider manages access to the application, including security,
availability, and performance.

The Payoff
SaaS customers have no hardware or software to buy, install, maintain, or update.
Access to applications is easy: You just need an Internet connection.

Ref: https://www.salesforce.com/in/saas/
CLOUD COMPUTING
SaaS Examples

Nearly every software that runs in your browser and is targeted towards the
end user can be categorised as a Software as a Service product.

Popular SaaS Applications


1. Office apps - Google Docs, Sheets, Office 365
2. Email client - Gmail, Outlook
3. File Storage - DropBox, OneDrive
4. Social Media - Facebook, Snapchat
5. Customer Relationship Management - Salesforce
6. Customer support - Zendesk
CLOUD COMPUTING
SaaS Characteristics
1.Multi-tenant Architecture
A multi-tenant architecture, in which all users and applications share a
single, common infrastructure and code base that is centrally maintained.
Because SaaS vendor clients are all on the same infrastructure and code
base, vendors can innovate more quickly and save the valuable
development time previously spent on maintaining numerous versions of
outdated code.

2.Easy Customisation
The ability for each user to easily customize applications to fit their
business processes without affecting the common infrastructure.
Because of the way SaaS is architected, these customizations are unique
to each company or user and are always preserved through upgrades.
That means SaaS providers can make upgrades more often, with less
customer risk and much lower adoption cost.
CLOUD COMPUTING
SaaS Characteristics (contd.)
3. Better Access
Improved access to data from any networked device while making it easier to manage
privileges, monitor data use, and ensure everyone sees the same information at the
same time.

4. SaaS Harnesses the Consumer Web


Anyone familiar with Amazon.com or Gmail will be familiar with the Web interface of
typical SaaS applications.
With the SaaS model, you can customise with point-and-click ease, making the weeks
or months it takes to update traditional business software seem hopelessly old
fashioned.

5. SaaS Trends
Organisations are now developing SaaS integration platforms (or SIPs) for building
additional SaaS applications.
The consulting firm Saugatuck Technology calls this the “third wave” in software
adoption: when SaaS moves beyond standalone software functionality to become a
platform for mission-critical applications.
CLOUD COMPUTING
Benefits of SaaS

Why use Saas?

1.Flexible payments: Rather than purchasing software to install, or additional hardware to


support it, customers subscribe to a SaaS offering. Generally, they pay for this service on a
monthly basis using a pay-as-you-go model.

2. Scalable usage: Cloud services like SaaS offer high vertical scalability, which gives
customers
the option to access more, or fewer, services or features on-
demand.

3.Automatic updates: Rather than purchasing new software, customers can rely on a SaaS
provider to automatically perform updates. This further reduces the burden on in-house IT staff.

4.Accessibility and persistence: Since SaaS applications are delivered over the Internet, users
can access them from any Internet-enabled device and location.
CLOUD COMPUTING
Disadvantages of SaaS
Disadvantages of SaaS

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 Internet


Without an internet connection, most SaaS applications are not usable.

4. Switching between SaaS vendors is difficult


Switching SaaS vendors involves the difficult and slow task of transferring the very large data
files over the internet and then converting and importing them into another SaaS also.
CLOUD COMPUTING
Microservice vs Monolithic Model

Monolithic Architecture
It is considered to be a traditional way of building applications. A monolithic application is
built as a single and indivisible unit. Usually, such a solution comprises a client-side user
interface, a server side-application, and a database.

Microservices Architecture
While a monolithic application is a single unified unit, a microservices architecture breaks
it down into a collection of smaller independent units. These units carry out every
application process as a separate service. So all the services have their own logic and the
database as well as perform the specific functions.
CLOUD COMPUTING
Microservice vs Monolithic Model
CLOUD COMPUTING
Strengths of Monolithic Architecture
1. Development is quite simple.

2. Testing is very simple - Just launch the application and start end-to-end testing. We
can also do test automation using Selenium without any difficulty.

3. Deploying the monolithic application is straightforward - Just copy the packaged


application to the server.

4.Scalability is simple - We only need to have a new instance of the monolithic


application and ask the load balancer to distribute load to the new instance as well.
However, as the monolithic application grows in size, scalability becomes a serious issue.

Monolithic architecture worked successfully for many decades. In fact, many of the most successful and
largest applications were initially developed and deployed as a monolith.
But serious issues like flexibility, reliability and scalability have led to the emergence of microservices
architecture.
CLOUD COMPUTING
Microservices Architecture

‘’ The microservice architectural style is an approach to developing a single


application as a suite of small services, each running in its own process and
communicating with lightweight mechanisms, often an HTTP resource API.
These services are built around business capabilities and independently
deployable by fully automated deployment machinery.
There is a bare minimum of centralized management of these services, which
may be written in different programming languages and use different data
storage technologies. ‘’

- Martin Fowler
CLOUD COMPUTING
Benefits of Microservices Architecture

1. Flexibility:
Microservices architecture is quite flexible. Different microservices can be developed in
different technologies. Since a microservice is smaller, the code base is quite less, so it’s not
that difficult to upgrade the technology stack versions. Also, we can incrementally adopt a
newer technology without much difficulty.

2. Reliability:
Microservices architecture can be very reliable. If one feature goes down, the entire
application doesn’t go down. We can fix the issue in the corresponding microservice and
immediately deploy it.

3. Development speed:
Development is pretty fast in microservices architecture. Since the volume of code is
much less for a microservice, it’s not difficult for new team members to understand and
modify the code. They become productive right from the start. Code quality is maintained
well. The IDE is much faster. A microservice takes much less time to start up. All these
factors considerably increase developers' productivity.
CLOUD COMPUTING
Benefits of Microservices Architecture (contd.)

3. Building complex applications:


With microservice architecture, it's easy to build complex applications. If the features of
the application are analyzed properly, we can break it down into independent components
which can be deployed independently. Then, even the independent components can be
further broken down into small independent tasks which can be deployed independently as
a microservice. Deciding the boundaries of a microservice can be quite challenging.
actually
It’s an evolutionary process, but once on a microservice,
in technologies.
we
4. Scalability:
Scalability is a major advantage in microservice architecture. Each microservice can be
decide
scaled
it’s individually.
easy to Since individual
develop, as microservices
there are are much
no smaller in size, caching becomes
limitation
very effective.

5. Continuous deployment:
Continuous deployment becomes easier. In order to update one component, we have
to redeploy only that particular microservice.
CLOUD COMPUTING
Comparison with SOA

What is SOA?
Service-oriented architecture was largely created as a response to traditional,
monolithic approaches to building applications. SOA breaks up the components
required for applications into separate service modules that communicate with
one another to meet specific business objectives.

Microservice architecture is generally considered an evolution of SOA as its


services are more fine-grained, and function independently of each other
CLOUD COMPUTING
Benefits of Microservices Architecture (contd.)
CLOUD COMPUTING
Comparison with SOA

SOA Microservice Architecture


Follows “share-as-much-as-possible” Follows “share-as-little-as-possible”
architecture approach architecture approach
Importance is on the concept of “bounded
Importance is on business functionality reuse
context” or Single Responsibility
They focus on people, collaboration and freedom of
They have common governance and standards
other options
Uses Enterprise Service bus (ESB) for
Simple messaging system
communication
They support multiple message protocols They use lightweight protocols such as HTTP/REST
etc.
Single-threaded usually with the use of Event Loop
Multi-threaded with more overheads to handle I/O
features for non-locking I/O handling
Maximizes application service reusability Focuses on decoupling
Traditional Relational Databases are more often Modern Relational Databases are more often used
used
A systematic change requires modifying the A systematic change is to create a new service
monolith
DevOps / Continuous Delivery is becoming
Strong focus on DevOps / Continuous Delivery
popular, but not yet mainstream
THANK YOU

K.S.Srinivas
[email protected]
+91 80 2672 1983 Extn
701

You might also like