module n 2
module n 2
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:
-
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
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
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
-
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 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
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.
• 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.
• 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/
• Big data analysis. Mining data sets to locate or tease out hidden
patterns requires a huge amount of processing power, which IaaS
economically provides.
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.
3. Self-Descriptive Message.
4. Stateless Interactions.
CLOUD COMPUTING
REST Principles - Resource Identification through URIs (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:
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:
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
The technologies that make up the core of today’s web services are:
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)
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)
Data Formats It supports only XML format. It supports JSON, HTML, etc format.
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.
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.
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.
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.
https://www.youtube.com/watch?v=jnMUp2c9AzA
CLOUD COMPUTING
PaaS Demo : AWS Elastic Beanstalk
CLOUD COMPUTING
Communication Mechanism
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)
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
- Reduced coupling: The message sender does not need to know about the
consumer.
- 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
- Latency: End-to-end latency for an operation may become high if the message
queues fill up.
- 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
1.Message Queues
Messages are stored on the queue until they are processed and deleted.
The messages are usually small, and can be things like requests, replies, error
messages, or just plain information.
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.
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.)
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.
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.
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.
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.
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
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.
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.
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
- 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.)
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.
K.S.Srinivas
[email protected]
+91 80 2672 1983 Extn
701