Unit - Ii Cloud Computing Architecture: Architecture and Event-Driven Architecture
Unit - Ii Cloud Computing Architecture: Architecture and Event-Driven Architecture
Unit - Ii Cloud Computing Architecture: Architecture and Event-Driven Architecture
As we know, cloud computing technology is used by both small and large organizations
to store the information in cloud and access it from anywhere at anytime using the
internet connection.
o Front End
o Back End
Front End
The front end is used by the client. It contains client-side interfaces and applications that
are required to access the cloud computing platforms. The front end includes web servers
(including Chrome, Firefox, internet explorer, etc.), thin & fat clients, tablets, and mobile
devices.
1. Client Infrastructure
Client Infrastructure is a Front end component. It provides GUI (Graphical User
Interface) to interact with the cloud.
2. Application
The application may be any software or platform that a client wants to access.
3. Service
A Cloud Services manages that which type of service you access according to the client’s
requirement.
ii. Platform as a Service (PaaS) – It is also known as cloud platform services. It is quite
similar to SaaS, but the difference is that PaaS provides a platform for software creation,
but using SaaS, we can access software over the internet without the need of any platform.
Example: Windows Azure, Force.com, Magento Commerce Cloud, OpenShift.
4. Runtime Cloud
Runtime Cloud provides the execution and runtime environment to the virtual
machines.
6. Infrastructure
It provides services on the host level, application level, and network level. Cloud
infrastructure includes hardware and software components such as servers, storage,
network devices, virtualization software, and other storage resources that are needed to
support the cloud computing model.
7. Management
Management is used to manage components such as application, service, runtime cloud,
storage, infrastructure, and other security issues in the backend and establish
coordination between them.
8. Security
Security is an in-built back end component of cloud computing. It implements a security
mechanism in the back end.
9. Internet
The Internet is medium through which front end and back end can interact and
communicate with each other.
Infrastructural Constraints
Followings are the basic constraints:
Transparency
Scalability
Intelligent Monitoring
Security
Transparency
In a Cloud environment, virtualization is the key to share the resources.
It is impossible to satisfy the demand with single resource or server. Hence, there
should be transparency in resources, load balancing and application, so that we can
scale the resources on demand.
Scalability
Scaling up an application is easy but scaling up an application delivery solution is not
easy, because it includes configuration overhead or even re-architecting the network.
Hence, application delivery is required to be scalable that need the virtual
infrastructure so that, resources are provisioned and de-provisioned easily.
Intelligent Monitoring
Application solution delivery is required to be capable of intelligent monitoring to
achieve transparency and scalability.
Security
In security, the mega data center in the cloud must be securely architected.
The control node, an entry point in mega data center also requires to be secure.
Users can make use of bulk resources which can be obtained quickly whenever there are
demands. NIST has also stated some features as being essential for services to be regarded
as cloud hosting services.
• On-demand services that end users can sign up for and obtain without delays.
• Wide network access because users can access such services through multiple
platforms like laptops, desktops and mobiles.
• Measured services because users will pay according to what they use; so, billing is
offered as a utility service.
• Elasticity and scalability to cope with increases in demand.
The SaaS applications have been designed for end users and they are offered across the
Internet. The PaaS refers to sets of tools or services designed for coding and implementing
the applications efficiently. IaaS refers to the software and hardware which powers it,
such as, servers, networks, storage, and operating system.
Client server is a process where data processing is distributed between a client and a
server. The best example of client/server is – emails and RDBMS based web applications.
In simpler words, client server is a kind of application architecture whereas cloud
computing is the way that defines how applications are hosted. Cloud is the latest
technology that allows businesses to abstract software from the hardware, and scale
up/down the applications as per the business demands.
Cloud computing allows your business to work wherever you like, whenever you like.
However, cloud computing is not quite as simple as it may seem. Inside of the world of
cloud computing, there are three major service models. By comparing the three different
models, you will be better able to determine which cloud computing service model is
right for your business.
Each offers a different level of flexibility and control over the product that your business
is 'buying'. Each also varies in its relationship to your existing IT infrastructure. Because
of the wide variances between the three, it is important to determine which model will
suit your business's needs the best.
Some of the other service categories which are more commonly classified
as anything as a Service (XAAS) are:
There may be an alternative for this problem. Rather than owning their own computing
infrastructure or data centers, companies can rent access to anything from applications to
storage from a cloud service provider. One benefit of using cloud computing services is
that firms can avoid the upfront cost and complexity of owning and maintaining their own
IT infrastructure, and instead simply pay for what they use, when they use it.
How it works:
In a cloud computing system, there's a significant workload shift. Local computers no
longer have to do all the heavy lifting when it comes to running applications. The network
of computers that make up the cloud handles them instead. Cloud technology can handle
those heavy loaded tasks automatically easily and efficiently. This brings down the
hardware & software demands. The only thing that the users have to think is the cloud
computing interface software of the system, which works merely as a web-browser in the
front end of the user. The cloud's network takes care of the rest along with the back-end.
One central server is used to manage the entire cloud system architecture. The server is
solely responsible for handling the smoothness of traffic without disruption. Middleware
is a particular type of software that is used to perform processes & also connects
networked computers. Depending on the demand of client/user, the storage is provided
by the cloud technology's service provider.
Cloud technology users can use the data center through the company's network or
internet facilities. This technology provides various advantages; as users can access the
cloud from anywhere at any time, but the network bandwidth should have to be more.
This technology not only facilitates desktop and laptop users but the mobile users can also
access their business systems based on their demand.
As we already know that cloud computing is fast and efficient, applications running on the
cloud take advantages of flexibility and computing power, i.e., the speed of processing a
task. Many computers of a single organization work together along with their application
on the cloud as if all the applications were running on a single machine. This flexibility of
accessing the cloud resources allows users to use much or little of the resource based on
the demand.
The network plays a key role in the delivery of cloud-based services as it provides a means
to connect every IT system and has the ability to provision and scale these resources to
meet application and end-user requirements. It also is one of strategic element used for
management of security objectives in the cloud as it:
Enables infrastructure enhancements by supporting server consolidation,
virtualized environment, automated infrastructure and support application mobility.
Addresses access requirements emerging from thin clients or organization mobility
requirements which may extend to any device at any time from any place.
Offers application analytics by clustering requirements and enabling remote usage
or community services
Supports varied traffic patterns through location independent endpoints while
ensuring automated provisioning and orchestration.
Providers offer a range of NaaS technologies, but three services are especially common:
Virtual Private Networks
Bandwidth on-demand
Transport optimization
VPNs allow organizations to extend the function of their secure, on-premises networks to
insecure networks such as the Internet. To protect the integrity and confidentiality of the
data traversing those insecure networks, VPNs implement additional security measures.
While similar to wide area networks, VPNs do not depend on dedicated communication
links between networks.
Bandwidth on-demand is a service that allocates network resources based on the needs of
particular devices on that network. More bandwidth is allocated to nodes experiencing
peak demands, and, as demand subsides, bandwidth is scaled down. Major network and
One way to minimize the amount of data transmitted over a network is to use a content
distribution network (CDN). CDNs cache content across geographically distributed nodes.
When users access static content from a service, they are routed to the closest available
CDN node. If the requested content is cached on the node, it is delivered to the user
immediately. Otherwise, the content is retrieved from the source system, delivered to the
user and then cached for future reference. There are many CDN providers, including
Amazon, Comcast, Level 3, Microsoft Azure and Verizon.
State Routing Protocol (SRP) uses software and routing algorithms to determine optimal
network data transfer and communication paths between network nodes. Routing
protocols facilitate router communication and overall network topology understanding.
A routed protocol is used to deliver application traffic. It provides appropriate addressing
information in its internet layer or network layer to allow a packet to be forwarded from
one network to another. Examples of routed protocols are the Internet Protocol (IP)
and Internetwork Packet Exchange (IPX).
Secure Shell Protocol (SSH) is a method for secure remote login from one computer to
another. It provides several alternative options for strong authentication, and it protects
the communications security and integrity with strong encryption. It is a secure
alternative to the non-protected login protocols (such as telnet) and insecure file transfer
methods (such as FTP). The protocol is used in corporate networks for:
providing secure access for users and automated processes
interactive and automated file transfers
issuing remote commands
managing network infrastructure and other mission-critical system components.
Converged enhanced Ethernet Protocol (CEE) eliminates the dropping of frames due to
congestion and thereby ensures lossless transmission of FCoE (Fibre Channel over
Ethernet) traffic over an Ethernet network. The lossless Ethernet is required for the
reliable transmission of FC data over an Ethernet network. Unlike TCP/IP, the loss of a
single FC frame typically requires the entire FC exchange to be aborted and re‐
transmitted, instead of just re‐sending a particular missing frame. CEE makes a high-speed
(such as 10 Gbps or higher) Ethernet network a viable storage networking option, similar
to an FC SAN.
Extensible Messaging and Presence Protocol (XMPP) is a set of open technologies for
instant messaging, presence, multi-party chat, voice and video calls, collaboration,
lightweight middleware, content syndication, and generalized routing of XML data. The
XMPP protocol is based on the typical client server architecture, in which the XMPP client
uses the XMPP server with the TCP socket.
XMPP provides a general framework for messaging across a network, offering a multitude
of applications beyond traditional instant messaging (IM) and the distribution of presence
data. It enables the discovery of services residing locally or across a network, as well as
finding out about the availability of these services.
XMPP is well-matched for cloud computing where virtual machines, networks and
firewalls would otherwise present obstacles to alternative service discovery and
presence-based solutions. Cloud computing and storage systems rely on diverse forms of
communication over multiple levels, including not only messaging between systems to
relay state but also the migration of the distribution of larger objects, like storage or
virtual machines.
Modern day business applications use variety of programming platforms to develop web-
based applications. Since they are built using different development languages, it becomes
really difficult to ensure accurate communication between applications. Web services
provide a common platform that allows multiple applications built on various
programming languages to have the ability to communicate with each other.
A web service is a collection of open protocols and standards used for exchanging data
between applications or systems. This interoperability (e.g., between Java and Python, or
Windows and Linux applications) is due to the use of open standards. Web service is a
standardized medium to propagate communication between the client and server
applications on the World Wide Web.
The main component of a web service is the data which is transferred between the client
and the server, and that is XML. XML (Extensible markup language) is a counterpart to
HTML and easy to understand the intermediate language that is understood by many
programming languages. So when applications talk to each other, they actually talk in
XML. This provides a common platform for application developed in various programming
languages to talk to each other.
Service Provider: The service provider implements the service and makes it available on
the Internet.
Service Requestor: Service requestor is the application that is looking for and invoking or
initiating an interaction with a service. The browser plays the requester role, driven by a
consumer or a program without a user interface.
Service Registry: The registry provides a central place where developers can publish new
services or find existing ones.
The basic web services platform is XML + HTTP. Web Services using SOAP, REST, and JSON.
All the standard web services work using the following components:
SOAP (Simple Object Access Protocol)
UDDI (Universal Description, Discovery and Integration)
WSDL (Web Services Description Language)
SOAP (Simple Object Access Protocol) was originally part of the specification that included
the Web Services Description Language (WSDL) and Universal Description, Discovery, and
Integration (UDDI). It is used now without WSDL and UDDI. SOAP essentially provides the
envelope for sending the Web Services messages. SOAP generally uses HTTP, but other
means of connection may be used.
REST (Representation State Transfer) appeals to developers because it has a simpler style
that makes it easier to use than SOAP. It also less verbose so that less volume is sent when
communicating.
While both SOAP and REST use XML for interchange, JavaScript Object Notation (JSON)
uses a subset of JavaScript.
WSDL (Web Services Description Language) forms the basis for the original Web Services
specification. It consists a service provider and a service consumer. A service provider
describes its service using WSDL. A service consumer issues one or more queries to the
repository to locate a service and determine how to communicate with that service. The
service consumer uses the WSDL to send a request to the service provider.
Their basic functions can be summarized in the phrases 'Host', 'Build', and 'Consume'. Each
offers a different level of flexibility and control over the product that could serve the needs
of various businesses. Each also varies in its relationship to your existing IT infrastructure.
Because of the wide variances between the three, it is important to determine which model
will suit your business's needs the best.
SAAS has become an increasingly prevalent delivery model as underlying technologies that
support Web services and service-oriented architecture (SOA) mature and new
development approaches, such as Ajax, become popular. SAAS is closely related to the ASP
(Application service provider) and on-demand computing software delivery models.
Many important tasks like accounting, sales, invoicing and planning all can be performed
using SaaS. SaaS is the ideal choice for small-scale businesses who do not have the
necessary budget and resources to deploy on-premise hardware. Besides, companies that
require frequent collaboration on their projects will find SaaS platforms useful.
Business Services - SaaS Provider provides various business services to start-up the
business. The SaaS business services include ERP (Enterprise Resource Planning),
CRM (Customer Relationship Management), billing, and sales.
Social Networks - As we all know, social networking sites are used by the general public,
so social networking service providers use SaaS for their convenience and handle the
general public's information.
Mail Services - To handle the unpredictable number of users and load on e-mail services,
many e-mail providers offering their services using SaaS.
CRM, Office Suite, Email, games, etc. are the software applications which are provided as a
service through Internet. The companies like Google, Microsoft provide their applications
as a service to the end users.
Advantages of SaaS
1. Affordable: On-premise hardware is not required for this model, which keeps the
costs associated low. Small-scale businesses might find this cloud platform
particularly appealing.
5. No special software or hardware versions required: All users will have the
same version of the software and typically access it through the web browser. SaaS
reduces IT support costs by outsourcing hardware and software maintenance.
Disadvantages of SaaS
1. Lack of Control: With SaaS, the vendor has control over the programs that your
company is using. If you do not feel comfortable releasing the control of your
critical business applications to another party, perhaps SaaS is not the best option
for your business.
2. Slower Speeds: Relying upon internet access to function, SaaS applications tend
to be slower than client/server applications. However, these programs are still
typically quick, though not instantaneous.
Platform-as-a-Service (PaaS)
PaaS is a programming platform for developers. This platform is generated for the
programmers to create, test, run and manage the applications. A developer can easily
write the application and deploy it directly into PaaS layer. Implementing PaaS simplifies
the process of enterprise software development. The virtual runtime environment and
deployment tools provided by PaaS give a favorable space for developing and testing
applications. The entire resources offered in the form of servers, storage and networking
are manageable either by the company or a platform provider.
With this model, a third-party vendor provides your business with a platform upon which
your business can develop and run applications. Because the vendor is hosting the cloud
infrastructure which supports the platform, PaaS eliminates your need to install in-house
hardware or software. Your business would not manage or control the underlying cloud
infrastructure, but you would maintain control over the deployed applications (unlike
AWS Elastic Beanstalk, Heroku, Force.com, Apache Stratos, Magento Commerce Cloud,
OpenShift Google Apps Engine(GAE), Windows Azure and SalesForce.com are the
examples of PaaS.
To understand in a simple terms, let compare this with painting a picture, where you are
provided with paint colors, different paint brushes and paper by your school teacher and
you just have to draw a beautiful picture using those tools.
Advantages of PaaS
4. Prebuilt business functionality: Some PaaS vendors also provide already defined
business functionality so that users can avoid building everything from very
scratch and hence can directly start the projects only.
Disadvantages of PaaS
2. Security & Compliance: In the PaaS model, the vendor will store most, or even
all, of the application's data. As such, it is imperative to assess the security
measures of the provider. This, though, often proves difficult as the vendor may
be storing their databases via a third party, thus leaving you uninformed of the
safety of your data.
IaaS is a complete package for computing. It provides computing infrastructure like virtual
server space, network connections, bandwidth, load balancers and IP addresses. The pool
of hardware resource is extracted from multiple servers and networks usually distributed
across numerous data centers. This provides redundancy and reliability to IaaS.
In traditional hosting services, IT infrastructure was rented out for a specific period of
time, with pre-determined hardware configuration. The client paid for the configuration
and time, regardless of the actual use. With the help of the IaaS cloud computing platform
layer, clients can dynamically scale the configuration to meet changing requirements and
are billed only for the services actually used. IaaS cloud computing platform layer
eliminates the need for every organization to maintain the IT infrastructure.
Advantages of IaaS
2. Shared infrastructure: IaaS allows multiple users to share the same physical
infrastructure.
3. Web access to the resources: Iaas allows IT users to access resources over the
internet.
5. Focus on the core business: IaaS providers focus on the organization's core
business rather than on IT infrastructure.
8. Simple Deployment: It is much easier for your cloud provider to deploy your
servers, processing, storage, and networking in the IaaS model than it is for you to
deploy these elements in-house, with no previous no base to build off of. As a
result, your uptime will increase as your systems will be available for use more
rapidly.
Disadvantages of IaaS
1. Security: Security is one of the biggest issues in IaaS. Most of the IaaS providers
are not able to provide 100% security.
2. Maintenance & Upgrade: Although IaaS service providers maintain the software,
but they do not upgrade the software for some organizations.
5. Costly: IaaS models are typically much more costly than PaaS and SaaS models
because they offer much more support to your business than the other two cloud
models. However, they can still be cost-effective based on their utility to your
business.
DigitalOcean, Linode, Amazon Web Services (AWS), Microsoft Azure, Google Compute
Engine (GCE), Rackspace, Sify Technologies and Cisco Metacloud.
Some of the other service categories which are more commonly classified as Anything as a
Service (XAAS) are:
IaaS is there to provide you PaaS is most often built on top SaaS offers ready-to-use,
with maximum flexibility when of an IaaS platform to reduce out-of-the-box solutions
it comes to hosting custom- the need for system that meet a particular
built apps, as well as a administration. It allows you to business need (such as
providing a general data center focus on app development website or email).
for data storage. instead of infrastructure
management.
Knowing which cloud service model is appropriate for you is much like the decision
between public, private, and hybrid cloud: it all depends on your situation. You might
choose to start with one cloud computing service model or find a need for all three: that
depends on the size and complexity of your business.
PUBLIC CLOUD
A cloud is called public when services are rendered by third-party providers over a
network open for public use, meaning that you share the same hardware, software, and
network devices with other clients of the same provider (other companies, for example).
In a public cloud, because you are only “renting” a space on the cloud from a third-party
provider, he will be the one assuming the costs and the maintenance of the whole
infrastructure. As a client you are paying for this service, you have no responsibilities over
the management of the cloud – you only use it to store your data, and pay as you go.
It is also popular among businesses of all sizes for their web applications, webmail, and
storage of non-sensitive data.
Example: Amazon elastic compute cloud (EC2), IBM SmartCloud Enterprise, Google App
Engine, IBM’s Blue, Salesforce Heroku, Windows Azure Services Platform.
PRIVATE CLOUD
Private Cloud also termed as an internal cloud or corporate cloud; which allows the
accessibility of systems and services within a specific boundary or organization. The cloud
platform is implemented in a cloud-based secure environment that is guarded by
advanced firewalls under the surveillance of the IT department that belongs to a particular
organization. Private clouds permit only authorized users, providing the organizations
greater control over data and its security. Business organizations that have dynamic,
critical, secured, management demand based requirement should adopt Private Cloud.
HYBRID CLOUD
Hybrid cloud is a combination of public and private clouds. The main aim to combine these
clouds (Public and Private) is to create a unified, automated, and well-managed computing
environment. In the Hybrid cloud, non-critical activities are performed by the public
cloud and critical activities are performed by the private cloud. It allows companies to mix
and match the facets of all three types that best suit their requirements. Mainly, a hybrid
cloud is used in finance, healthcare, and Universities.
The best hybrid cloud provider companies are Amazon, Microsoft, Google, Cisco, NetApp,
VMware and RackSpace.
Scalability: - It offers features of both, the public cloud scalability and the private cloud
scalability.
Flexibility: - It offers secure resources and scalable public resources.
Cost Efficiency: - Public clouds are more cost effective than private ones. Therefore,
hybrid clouds can be cost saving.
Security: - The private cloud in hybrid cloud ensures higher degree of security.
COMMUNITY CLOUD
The community cloud is a kind of private cloud for organizations that share common
interests. This cloud can exist on-premises or off-premises. Community Cloud allows
system and services to be accessible by group of organizations. It shares the infrastructure
between several organizations from a specific community. It is owned, managed, and
operated by one or more organizations in the community, a third party, or a combination
of them.
------------------------------------------------------------------------------