Cloud Applications
Cloud Applications
Cloud Applications
MODULE 5
Cloud Platforms in Industry
• Amazon Web Services (AWS)
• Google Cloud Platform (GCP)
• Microsoft Azure
Cloud Platforms in Industry
• Cloud computing allows end users and developers to leverage
distributed computing infrastructure and platforms.
• These distributed platforms offer on demand compute, storage and
more advanced services.
• There are several different options for building enterprise cloud
computing applications.
Amazon web services
Amazon Web Services(AWS)
• AWS is a collection of webservices providing developers compute,
storage and more advanced services.
• AWS is most popular for IaaS Services. (PaaS and SaaS)
• And also popular for its compute engine EC2.
• The platform is accessible through SOAP and RESTful web services.
• Provides a web based console where user can administrate and
monitor the resources and services.
• The expenses are calculated on pay-as-you-go basis.
Compute Services
• The fundamental service provided by AWS is Amazon EC2 (Elastic
Cloud Compute).
• It delivers Infrastructure-as-a-service solution.
• It allows to deploy servers in the form of virtual machines as an
instance of a specific image.
• Images comes with preinstalled operating system and a software
stack.
Compute Services
Amazon Machine Image (AMI)
• AMIs are the templates from which a virtual machine
is created.
• These images are stored in Amazon S3 and is identified by a unique
number in the form of ami – xxxxxx and a manifest XML file.
• It has a predefined operating system installed having Amazon kernel
image (AKI : aki – yyyyyy) and Amazon RAM Image (ARI : ari – zzzzzz).
• It is provided to the user.
EC2 Instance
• Represents a virtual machine.
• These are created using AMI as templates.
• The processing power is measured in terms of EC2 compute units
(ECUs).
• 1 ECU is defined as 1.0 – 1.2GHz processor.
Amazon EC2 Instances Characteristics
https://calculator.aws/#/createCalculator/EC2?nc2=h_ql_pr_calc
EC2 Instances
• Standard Instances
• Micro Instances
• High-Memory Instances
• High-CPU Instances
• Cluster Compute Instances
• Cluster GPU Instances
EC2 Instances
• Standard Instances: Configuration that are suitable for most
applications.
• Micro Instances: These instances are suitable for the applications that
consume limited amount of computing power and memory.
• Small web application with limited traffic
• High-Memory Instances: These instances are suitable for the
applications that need huge workloads and require a large amount of
memory.
• Three tier web applications
EC2 Instances
• High-CPU Instances: This is applicable for computational intensive
applications.
• Cluster Compute Instances: Provides virtual clusters. These clusters
have high CPU compute power, Large memory and high I/O and
network performance.
• Cluster GPU Instances: These instance are highly applicable for heavy
graphic computations. They have high CPU compute power, Large
memory and high I/O and network performance.
EC2 Environment
• EC2 instances are executed within a virtual environment.
• This environment is responsible for allocating addresses, allocating
storage volumes, access control and network connectivity.
• By default, instances are created with internal IP address.
• An elastic IP and a domain name is given for an instance.
• It is of the form ec2-xxx.xxx.xxx.compute-x.amazonaws.com.
• Compute-x gives the availability region or zone.
Advanced Computing Services
• AWS CloudFormation:
• It is an infrastructure automation
platform for AWS.
• Deploys the AWS resources much
faster, more efficient and more secure.
• Uses template files to automate
the setup of AWS resources.
Advanced Computing Services
• AWS Elastic Beanstalk:
• Compute service that makes easier for the developers to deploy the
applications in the cloud
• The AWS Beanstalk handles the configuration.
• Providing the capacity provisioning, load balancing, auto scaling, health
monitoring.
Elastic Beanstalk Working
Amazon Elastic MapReduce (EMR)
• Processes quickly and cost-effectively process vast amounts of data.
• AWS EMR uses Hadoop, to distribute the data .
• Used in log analysis, web indexing, data warehousing, financial
analysis, scientific simulation.
Compute Services
• EC2 instance
• Amazon Machine Image (AMI)
• EC2 Environment
• AWS CloudFormation
• AWS Elastic Beanstalk
• Amazon Elastic MapReduce
Storage services
Storage Services
• AWS provides a collection of services for data storage and information
management.
• The core storage service provided by AWS is S3 (Simple Storage
Service).
• The core components of S3 are two:
• Buckets
• Objects
Storage Services
• S3 (Simple Storage Service)
• Amazon Elastic Block Store (EBS)
• Amazon Elastic Cache
S3 Storage
• S3 is accessible through a REST interface.
• The storage is organized in a two level hierarchy: the storage space is
organized into buckets that cannot be further partitioned.
• Objects stored cannot be manipulated like standard files: Not allows
renaming, modifying or relocation the object.
• Once an object has been added to the bucket, its content and position is
immutable.
• Only way to change is to remove the object and add it again
S3 Storage
• Content is not immediately available to users: Changes done are not
immediately reflected.
• Request will occasionally fail.
S3 Objects
• The data is stored in distinct units called objects.
• An object is identified by a unique name.
• It is stored in the bucket.
• The name cannot be longer than 1024 bytes when encoded in UTF-8.
• User’s create an object via a PUT request.
• The maximum size of an object is 5 GB.
• GET is used to retrieve and DELETE is used to delete the object.
• Metadata is maintained for each object.
S3 Buckets
• A bucket is a container of objects.
• Buckets are top level elements of S3 storage and do not support
nesting.
• A bucket is located in a specific geographic location and replicated for
fault tolerance.
• User can select the zone to create a bucket.
• Once a bucket is created, alL the objects that belong to the bucket will
be in the same availability zone.
Resource naming
• Buckets, Objects, Metadata are made accessible through REST
interface.
• These are represented by URL(Uniform Resource Locators) under the
domain s3.amazonaws.com.
• These buckets can be accessed in three different forms
• Canonical form:
• http://s3.amazonaws.com/bucket-name/
• Less restriction in terms of no.of characters allowed.
Resource naming
• Subdomain form:
• http://bucketname.s3.amazon.com.
• The name has to be between 3 to 36 characters long.
• Contain only letters, numbers, periods and dashes.
• Start with a letter or number.
• Contain at least one letter.
Resource naming
• Virtual Hosting:
• http://bucket-name.com/
• Custom URL. It is done by entering direct bucket name.
• To access the objects, object name is given in the URI.
• http://s3.amazonaws.com/bucket-name/object_name
• http://bucketname.s3.amazon.com/object_name
• http://bucket-name.com/object_name
Access Control and Security
• S3 allows the access to buckets and objects by the means of Access
Control Policies (ACPs).
• ACP is a set of grant permissions that are attached to a resource
expressed in XML configuration file.
• Permissions:
• READ
• WRITE
• READ_ACP
• WRITE_ACP
• FULL_CONTROL
Amazon Elastic Block Storage (EBS)
• Amazon EBS allows AWS users to provide EC2 instances
with persistent storage that can be mounted at instance start-up.
• They accommodate up to 1 TB of space.
• EBS volumes reside within the same availability zone of EC2.
Amazon ElastiCache
• Amazon ElastiCache is a cache-as-a-service developed
and distributed by Amazon Web Services (AWS).
• It is a fully managed solution that has the ability to deploy, manage,
and scale a distributed in-memory cache environment in the cloud.
• It eliminates the complexity associated with setting up and managing a
distributed cache environment.
• It can be dynamically resized according to the demand of the
application.
Structured Storage Solutions
• Preconfigured EC2 AMIs
• Amazon RDS
• Amazon Simple DB
• Amazon CloudFront
Structured Storage Solutions
• Preconfigured EC2 AMIs:
• These are predefined templates for the installation of given DBMS.
• Available AMIs are SQL Server, MySQL, Oracle, PostgreSQL, etc.
• Instances are priced hourly according to EC2 cost model.
• Configuration, maintenance, and management is done by the EC2 user.
Structured Storage Solutions
• Amazon RDS:
• RDS is a relational database services managed by Amazon.
• Configuration and Management is done by the service providers.
• Provides automatic backup, recoveries and replications.
• The two relational databases engines are: MySQL and Oracle.
• Provides multi-AZ deployment and read replicas.
Structured Storage Solutions
• Amazon Simple DB:
• Simple DB provides support for semi-structured data.
• Uses top-level elements to organize the data store.
• Data is represented as collection of attributes rather than tables.
• Useful for extracting large volumes of data.
• Select * from domain_name where every(attribute_name) = ‘value’
Structured Storage Solutions
• Amazon CloudFront:
• CloudFront is an implementation of a content delivery network.
• It leverages a collection of edge servers for streaming the web content.
• AWS provides users with simple web service APIs to manage CloudFront.
Communication
Services
Communication Services
• Amazon provides facilitates the communication among existing
applications and services.
• These services are of two types:
• Virtual Networking
• Messaging
Communication Services
• Virtual Networking:
• Virtual networking service allows the users to control the connectivity.
• Amazon VPC and Amazon Direct Connect provide connectivity solutions.
• VPC provides a great flexibility in creating virtual private networks.
• Amazon Direct Connect allows AWS users to create dedicated networks using
ports.
Communication Services
• Messaging: Three different types of messaging services are offered:
• Amazon Simple Queue Service (SQS)
• Amazon Simple Notification Service (SNS)
• Amazon Simple Email Service (SES)
Communication Services
• Amazon SQS:
• Messaging happens by the means of message queues, hosted in AWS
infrastructure.
• Using AWS console, users can create an unlimited number of message
queues.
• These messages are securely and redundantly stored within AWS
infrastructure.
Communication Services
• Amazon SNS:
• Uses publish-subscribe method for connecting heterogenous applications.
• Allows applications to be notified when new content of interest is available.
• Amazon SES:
• Provides scalable email service that leverages the AWS infra.
• Once the user signs up, the communication happens through email.
Google Cloud Platform
GCP
• Google cloud platform (GCP), like other cloud providers, is a medium
through which users access the cloud services and computing services
developed by google.
• Includes wide range of services that can be used in different sectors.
GCP Services
• Compute services
• Storage services
• Network services
Compute services
• Compute Engine: It is an IaaS (Infrastructure As A Service)
service that provides virtual machines hosted on Google’s
infrastructure.
Compute services
• App Engine: The App Engine is a PaaS (Platform As A Service)
offering of Google Cloud used for building scalable web
applications and IoT backends.
• It scales applications automatically
based on the traffic received.
• It facilitates users with built-in services and APIs, for
example, Datastores, NoSQL, user authentication API, etc.
Compute services
• Kubernetes Engine: Google Kubernetes Engine is an easy-to-
use cloud-based Kubernetes service used for running
containerized applications.
• Kubernetes is an open-source framework for
container management.
• Hybrid or multi-cloud environments
Storage Services
• Google cloud storage: Google Cloud Storage is the object
storage service offered by Google Cloud.
• It provides some interesting features such as object
versioning or fine-grain permissions.
• Cloud Storage lets you choose among four different types of
storage classes: regional, Multi-regional, Nearline, and
Coldline.
• Multi-regional and Regional are high-performance
object storage, whereas Nearline and Coldline are
backup and archival storage.
Storage Services
• Cloud Firestore: Cloud Firestore is a flexible, scalable database
for mobile, web, and server development from Firebase and
Google Cloud.
• It keeps the data in-sync across client apps.
Storage Services
• Google Cloud Filestore: Google Cloud Filestore is widely used
when it comes to performing heavy machine learning tasks,
media processing, etc.
• It is highly preferred when there is a need for high
throughput.
• It is generally not considered as a storage option, but a
temporary drive for performing high read intensive tasks.
Storage Services
• Cloud SQL: Cloud SQL is a fully-managed database service that
helps in setting up, maintain, manage, and administer
relational databases on the Google Cloud Platform.