Unit V
Unit V
When you deploy an application to the cloud, you start with the
advantages and disadvantages of a distributed system that is
the Internet and add to that mix the fundamental
characteristics that clouds offer.
The question a developer needs to ask is whether his
application’s function is best served by cloud or local
deployment.
That answer depends upon the attributes of the application that
the developer is trying to preserve or enhance, and how
locating those services in the cloud impacts those attributes
The location of an application or service plays a fundamental role in how
the application must be written.
An application or process that runs on a desktop or server is executed
coherently, as a unit, under the control of an integrated program.
An action triggers a program call, code executes, and a result is returned
and may be acted upon
Taken as a unit, “Request => Process => Response” is an atomic
transaction
Because the transaction is executing locally within the purview of a
monolithic application, the process is stateful and transaction is
consistent.
The properties necessary to guarantee a reliable transaction in databases
and other applications and the technologies necessary to achieve them
have been called the ACID principle.
Atomicity: The atomic property defines a transaction
as something that cannot be subdivided and must
be completed or abandoned as a unit.
Consistency: The consistency property states that the
system must go from one known state to another
and that the system integrity must be maintained.
Isolation: The isolation property states that the
system cannot have other transactions operate on
data that is currently being processed by a
transaction.
Durability: The durability property states that the
system must have a mechanism to recover from
committed transactions should that be necessary
Functionality Mapping
• Functionality mapping in the context of cloud
computing typically refers to the process of mapping or
aligning the functionalities and requirements of an
application or service to the features and capabilities
offered by a cloud computing platform. This involves
understanding the specific needs and characteristics of
an application and identifying the corresponding
services or resources provided by the cloud provider to
meet those requirements.
• Here's a breakdown of the key aspects of functionality
mapping in cloud computing:
• Application Requirements:
– Identify the specific requirements of your application, such
as computing power, storage, network capabilities,
security, scalability, and other functional aspects.
• Cloud Service Selection:
– Evaluate the available services and features offered by the
cloud provider. This includes infrastructure services (e.g.,
virtual machines, storage, networking), platform services
(e.g., databases, messaging queues), and higher-level
services (e.g., machine learning, serverless computing).
• Mapping Application Components:
– Map each component of your application to the most suitable
cloud service or resource. For example, decide whether a
specific function can be implemented using a serverless
function (e.g., AWS Lambda) or if a relational database service
(e.g., Amazon RDS) is appropriate for your data storage needs.
• Scalability and Performance Considerations:
– Consider the scalability requirements of your application and
choose cloud services that can scale horizontally or vertically
based on your needs. Evaluate the performance characteristics
of the selected services to ensure they meet your application's
performance expectations.
• Data Management:
– Determine how data will be stored, managed, and
accessed. Cloud providers offer various storage options
(e.g., Amazon S3, Azure Blob Storage) and databases
(e.g., MySQL, MongoDB) with different performance
and scalability characteristics.
• Security and Compliance:
– Address security requirements and compliance
considerations by leveraging cloud provider features
such as identity and access management (IAM),
encryption, and compliance certifications.
• Cost Optimization:
– Consider the cost implications of using different cloud
services. Optimize resource usage to minimize costs
while ensuring that your application meets its
performance and scalability requirements.
• Integration with Other Services:
– Identify how different components of your application
will integrate with each other and with external
services. Leverage cloud provider features for seamless
integration and communication between services.
• Monitoring and Management:
– Set up monitoring and management tools provided by the
cloud platform to track the performance, availability, and
health of your application.
By effectively mapping the functionalities of your
application to the appropriate cloud services, you can
leverage the benefits of cloud computing, including
scalability, flexibility, and cost efficiency. This process is
crucial for designing and deploying applications in a
cloud environment that aligns with the specific needs
and goals of your business or project.
Application Attributes
Application attributes in cloud computing refer to the
characteristics and qualities that define how an application
behaves and operates within a cloud environment. These
attributes are important considerations when designing,
deploying, and managing applications in the cloud.
Here are some key application attributes in the context of cloud
computing:
• Scalability:
• Definition: The ability of an application to handle increased
workloads by adding resources dynamically.
• Cloud Consideration: Cloud platforms offer scalable services,
such as auto-scaling groups and serverless computing, to
automatically adjust resources based on demand.
• Flexibility:
– Definition: The ease with which an application can adapt to
changing requirements and environments.
– Cloud Consideration: Cloud services provide flexibility through the
use of modular and configurable resources, enabling easy
adjustments to meet evolving needs.
• Reliability:
– Definition: The ability of an application to maintain consistent
performance and availability.
– Cloud Consideration: Cloud providers offer redundant and
geographically distributed data centers, ensuring high availability
and reliability through features like load balancing and fault
tolerance.
• Security:
– Definition: The protection of data, resources, and systems from
unauthorized access, attacks, and data breaches.
– Cloud Consideration: Cloud providers offer a range of security
features, including identity and access management (IAM),
encryption, and security groups to help secure applications and
data.
• Performance:
– Definition: The responsiveness and efficiency of an application in
terms of processing speed and resource utilization.
– Cloud Consideration: Cloud platforms provide various computing
instances, storage options, and content delivery networks (CDNs)
to optimize application performance.
• Cost Efficiency:
– Definition: The ability to optimize resource usage and minimize
costs without compromising performance.
– Cloud Consideration: Cloud services often follow a pay-as-you-go
model, allowing users to scale resources up or down based on
demand, leading to cost optimization.
• Maintainability:
– Definition: The ease with which an application can be updated,
modified, and maintained over its lifecycle.
– Cloud Consideration: Cloud platforms support continuous
integration and deployment (CI/CD) pipelines, enabling
automated testing and deployment for enhanced maintainability.
• Interoperability:
– Definition: The ability of an application to integrate and work
seamlessly with other systems and services.
– Cloud Consideration: Cloud providers offer a variety of APIs
and integration options, facilitating interoperability with
external services and applications.
• Compliance:
– Definition: Adherence to legal, regulatory, and industry-specific
standards and requirements.
– Cloud Consideration: Cloud providers often provide
compliance certifications and tools to help users meet
regulatory requirements.
• Monitoring and Analytics:
– Definition: The ability to collect, analyze, and respond to data
regarding application performance, user behavior, and system
health.
– Cloud Consideration: Cloud platforms offer monitoring and
analytics tools to track application metrics, troubleshoot issues,
and optimize performance.
Considering these attributes during the design and
development phases of an application helps ensure that it
aligns with the capabilities and advantages of cloud
computing, resulting in a more efficient, scalable, and
resilient solution.
Cloud Service Attribute
Cloud service attributes in cloud computing define the
characteristics and features that distinguish different cloud
services. These attributes help users understand the
capabilities and functionalities offered by cloud service
providers.
Here are some key attributes of cloud services:
• On-Demand Self-Service:
• Definition: Users can provision and manage computing
resources as needed without requiring human intervention
from the service provider.
• Example: Users can provision virtual machines or storage
resources on demand through a web interface.
• Broad Network Access:
– Definition: Cloud services are accessible over the network and
can be accessed by a variety of devices, such as laptops,
smartphones, and tablets.
– Example: Accessing cloud-based applications through web
browsers or APIs from different devices.
• Resource Pooling:
– Definition: Computing resources are pooled and shared among
multiple users, with each user's data and applications logically
isolated.
– Example: Virtualization technologies enable the sharing of
physical resources among multiple virtual machines.
• Rapid Elasticity:
– Definition: Resources can be rapidly and automatically scaled
up or down to accommodate changing workloads.
– Example: Auto-scaling groups that automatically adjust the
number of server instances based on demand.
• Measured Service:
– Definition: Cloud resource usage is monitored, controlled, and
reported, providing transparency for both the provider and
the consumer.
– Example: Usage metrics, such as the number of virtual
machine hours or storage consumed, are tracked and billed
accordingly.
• Service Models:
– Definition: Different layers of services provided by cloud providers,
including Infrastructure as a Service (IaaS), Platform as a Service
(PaaS), and Software as a Service (SaaS).
– Example: IaaS provides virtualized computing resources, PaaS
offers a platform for application development, and SaaS delivers
fully functional software applications over the internet.
• Deployment Models:
– Definition: Different ways cloud services can be deployed, including
Public Cloud, Private Cloud, Hybrid Cloud, and Multi-Cloud.
– Example: Public Cloud services are available to the general public,
while Private Cloud services are dedicated to a specific
organization.
• Self-Service Portals:
– Definition: User interfaces or portals that allow users to
provision, manage, and monitor cloud resources without
direct interaction with the cloud provider.
– Example: Web-based dashboards or consoles for managing
virtual machines, storage, and other resources.
• Automation and Orchestration:
– Definition: The ability to automate repetitive tasks and
coordinate workflows to improve efficiency.
– Example: Using scripting or orchestration tools to automate
the deployment and scaling of applications.
• Security and Compliance Features:
– Definition: Built-in security measures and compliance features
provided by the cloud service to protect data and meet
regulatory requirements.
– Example: Identity and access management, encryption, and
compliance certifications offered by cloud providers.
• High Availability and Redundancy:
– Definition: Ensuring that cloud services are highly available
and resilient to failures through redundancy and failover
mechanisms.
– Example: Distributing applications across multiple data centers
or regions to minimize downtime.
• Understanding these attributes helps users
choose the right combination of cloud services
that align with their specific needs and
requirements. It also provides a framework for
evaluating and comparing different cloud
providers and their offerings.