0% found this document useful (0 votes)
20 views72 pages

5.1 - CloudServices

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views72 pages

5.1 - CloudServices

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 72

Cloud Computing

Shajulin Benedict
shajulin@iiitkottayam.ac.in
Indian Institute of Information Technology Kottayam
Agenda
• Cloud Applications
• Performance Issues
• Cloud programming models
• Web services
• Microservices
• Definition, characteristics, patterns

Cloud Computing
So far …

Cloud Computing
Cloud Applications

Cloud Computing
Earlier Cloud Applications

• Traditionally, cloud applications were targeting


commercial web applications

Cloud Computing
Cloud Applications

• Early 2012, cloud applications were classified as (Tobias


et al)
• Business, personal, multi-media intensive, and gaming.
• The classification was based on the perspective of providing
quality services to end users.

• Hossfeld T, Schatz R, Varela M, Timmerer C (2012) Challenges of QoE management for cloud
applications, IEEE Commun Magazine 50:28–36

Cloud Computing
Existing HPC Cloud Applications

• Cloud applications are widely being used in various


research domains
– High Energy Physics Domain
– Geographic / Seismic Domain
– Electronics Design Community
– Bioinformatics Domain
– Media and Gaming Domain
– Large-scale Engineering Simulation Studies

“Performance Issues and Performance Analysis Tools for HPC Cloud


Applications: A Survey” – Computing Journal, Springer, Nov. 2012.

Cloud Computing
High Energy Physics Domain Applications

• High Energy Physics Domain applications


• Explores the most fundamental questions about the nature of
universe
• Usually these are data-intensive applications
– Square Kilometer Array Telescope project which surveys sky
produces 100 terabits/second
– Earth Observation becoming ~4 petabytes per year / Earthquake
Science – few terabytes
• BaBar application (Stanford Univ)
Charbonneau et al (2012) “Data Intensive high energy physics analysis in a
distributed cloud” Online

Cloud Computing
Electronics Design Community

• Static Timing analysis Static Timing Analysis for Nanometer Designs: A


Practical Approach J. Bhasker (Autor), Rakesh Chadha, Springer
• Static timing analysis is a conventional way of analyzing frequency or clock rate for
an integrated circuit such as those used on most computers and similar electronic
devices.
• http://www.nimbic.com/

• Computational lithography (simulating the process of


micro fabrication) for process modeling
• Predictive models of electronic designs
• Simulation study of PCB design

Cloud Computing
Bioinformatics Domain

• Bioinformatics were widely used among HPC community – now


ventured in cloud.
• Venture in clouds include
– Accenture and ATandT have launched cloud-based medical
imaging service which is helpful for radiologists to access, review,
and store X-rays, CT, and MRI scans.
(BlueBrain project, http://www.informationweek.com/news/healthcare/interoperability/232200581)

– Metabolomics application which studies the chemical process of


metabolites was experimented using SCALE, an analysis platform
for e-Science experimental data.
• Issues include
– Memory management and poor response time

Cloud Computing
Media Domains

• Cloud application in media and gaming industries are growing due


to
– Low storage cost for massive storage and retrieval of data
• Illustration
– A small post production studio with two editing systems may need
TerraBytes of data storage requirements
– This is usually done using CDs, DVDs, or VCD and then they are
transported to some other storage devices.
– On contrary, if there is a cloud environment, the data could be
uploaded, worked, and accessed using IP addresses. (avoiding
the requirement of massive storage space)
– http://www.frost.com/sublib/display-market-insight-top.do?id=232686044

Cloud Computing
Gaming Domain

• cloud is extensively used in gaming industries due to its


enhanced scalability features
– Games are played in cloud as competing human brains which include
artificial intelligence and distributed compute resources widely for
solving those problems.
• Issues are
– Memory management and provisioning issues.

Cloud Computing
Geographic / Seismic Domain

• Climate change prediction


• Weather prediction
• Seismic analysis – earthquake study
• Issues include
• Managing large data sets
• Accessibility
• Scalability
• memory management

Cloud Computing
Large-scale Engineering Simulation Studies

• Automobile and aeronautical industries have started


experiencing cloud.
– Especially, predictive modeling is done in cloud before
production/construction.
– For instance, IBM Engineering solutions for cloud can provide a
blueprint and a foundation to quickly setup and manage highly
efficient secure electronic design automation and computer aided
design.
– Applications such as structural design, concrete modeling, automatic
building plan, design analysis, and so forth are processed using
cloud.
– Printing industries too.

Cloud Computing
Standard Benchmarks

• Benchmarks were used to study the performance issues


of cloud
• Most notable ones are
• High Performance Linpack benchmark (HPL)
– Solves linear equations
• NAS parallel benchmark
• NERSC (National Energy Research Scientific Computing)
benchmarks

Cloud Computing
Sample HPC services
• Amazon Supercomputing service(in Top500 list) ranks 42nd in 2011
top 500 and greenTop500 list.
– 240 Terraflops
– Now, it ranks 64th (2023) with 172692 cores / 9.95 Petaflops
• enCore of UK-based company has 8000 cores as a service (2012)
– Compute nodes are not virtualized
– 8,192 Intel Xeon E5 processor cores interconnected with
InfiniBand and plugged into a high-speed GPFS (General
Parallel File System), the machine is capable of 206.3
teraflops (Linpack).
• Appro's next-generation Xtreme-X™ Supercomputer
– delivers superior performance-per-watt and reduced I/O
latency with the flexible, efficient and highly versatile new
Intel® Xeon® processor E5-2600 product family
• Cartika offers dedicated clusters – Canada Co.
Cloud Computing
Performance Issues

Cloud Computing
Performance Analysis Tools

Shajulin Benedict, “Performance Issues and Performance Analysis Tools for


HPC Cloud Applications: A Survey” – Computing Journal, Springer, Nov.
Cloud Computing
2012.
List of Available PA Tools
• Amazon Cloudwatch
• Ganglia
• Nagios
• Windows Azure Diagnostic
• Intermapper CloudMonitor
• Logic Monitor – Java agent
• Cloud Status – supports more than 5000 metrics
• Nimsoft Cloud monitor – for Rackspace
• Cloud kick
• Information Manager

Cloud Computing
Performance Issues

5 Major Issues

Cloud Computing
Resource Provisioning Issues

• 4 subdivided issues
• Memory Management Issues
• Energy Management Issues
• Poor Response Time
• Resource outages

Cloud Computing
Memory Management Issues
• Cloud uses hypervisor technology, a technology that
has hardware virtualization using VMM (Virtual
Machine Manager)
• VMM allows multiple guest OSs to run concurrently on
a host computer.
• Those guest OSs receive a pseudo physical memory –
For instance, Xen Hypervisor maintains VM specific
table with a mapping of pseudo physical memory to
real memory and global mapping table that records the
mapping from machine page frames to pseudo-
physical memory.

Cloud Computing
Memory Management Issues
• Overhead issues include:
• Formation of pseudo-physical memory
• Remapping them to actual machine page frames
• Memory cleanup process using VMM
• Resource underutilization issues
• If the cleanup process fails, the memory frames allotted for a
VM count will not be reused by new ones.

Cloud Computing
Energy Management Issues
• Hardware resources are shared by guest OSs
leading to the following issues:
• Failure of providing efficient energy management
mechanisms
• Energy auditing or accounting for guest OS is a
problem
Anton B, Rajkumar B, Young CL, Albert Z (2012) A taxonomy and survey of energy-efficient
data centers and cloud computing systems. Technical, Report, CLOUDS-TR-2010-3.
arXiv:1007.0066v2
Kumar K, Yung-Hsiang Lu (2010) Cloud computing for mobile users: can offloading
computation save energy? Computer 43(4):51–56

Cloud Computing
Poor Response Time
• Response time is more centric to applications
• Enterprise applications have poor response
time due to
• users running applications from remote sites where
the latency of Wide Area Network or internet link
between the data center, cloud location, and the
user is high.
• Scientific applications have poor response
time due to
• Failed checkpointing or non-availability of cloud
resources

Cloud Computing
Resource Outages
• Resource outages (temporary suspension of
operation) occur due to
• Configuration failures, update failures, corrupt
config files, technically challenged expert
operations, or even unknown reasons.
• Microsoft’s cloud services had a 3 hour long
resource outage when an updating process was
undergone.
• Other aspect would be due to failure to boot up a
cloud instance which is hosted on a hybrid cloud
implementation, especially after VM migration or
loading a device driver.

Cloud Computing
II) Effects of Programming Model
• There exists various leading programming models for
clouds
– Task model, thread, mapreduce, PGAS (Partitioned Global
Address Space), workflow, MPI, service-oriented, and actors
• Most of these programming models have
inconsistencies between the fault recovery
mechanisms in execution and storage processes.
– Inconsistencies can lead to broken service instances
– For instance, MapReduce has no mechanism for fault recovery
mechanisms (what happens if the master fails?).

Cloud Computing
III) Impact of SLA violations
• Service terms of clouds are generally expressed in SLAs
• SLA includes automatic negotiation process, creation,
management, and enforcement of SLA
• Existing SLA faces performance challenges due to
• Loss of control over resource provisioning
• This leads to hefty penalty either for cloud providers or
consumers.
• SLA violations are monitored using some cloud frameworks
such as LAYSI (Vienna Technological University, Austria) –
Layered Approach for prevention of SLA Violations in cloud)
iv) Lack of best practices / standards
• Lack of standards lead to performance issues as
• The users are urged to select some industrial compute
resources without competence
• The users might have to write redundantly their applications
with slight modifications to different providers
• Lack of standards impacts on providing transparent codes
v) Security and their effects
• Data security is (will be) enhanced in cloud
• Providing encryption and decryption techniques lead
to reduced response time*
• Another performance concern is non-standardized
accounting as different providers have different
calculations (fraudulent billing or inefficient pricing)
• Similarly, the policy or legal issues obstruct the
smooth functioning among cloud providers
• Too much monitoring on cloud resources reduces the
performance of execution and energy consumption
*Grobauer B, Walloschek T, Stocker E (2011) Understanding cloud computing
vulnerabilities. SecurPrivacy IEEE 9(2):50–57
Performance metrics
• Performance metrics remain as a yardstick for
analyzing cloud, their services, or HPC cloud
applications.
• These metrics can be classified as follows:
• Scalability based metrics
• Architecture specific metrics
• Programming model based metrics
Scalability based metrics
• CPU capacity
• CPU’s speed in flops
• Memory size
• Cache memory size for a VM
• Scale up
• Maximum number of VMs allocated for an user
• Scale down
• Minimum number of VMs allocated for an user
• Boot time
• Booting time for a VM to get ready for usage
Scalability based metrics
• Storage capacity
• Storage size of data
• Scale uptime
• Time taken for increasing a specific number of VMs
• Scale downtime
• Time taken for decreasing a specific number of VMs
• Autoscale
• Boolean value for autoscaling feature
• Response time
• Time required to complete and receive a process
Architecture specific metrics
• Pipeline stalls
• Processor specific pipeline stalls e.g. IA64
• Cache misses
• L2 or L3 cache misses
• Frequent voltage switches
• Voltage variations caused due to applications in processors
such as Nehalem
Programming model based metrics
• MPI communication latency
• Specific to MPI programs
• Late sender or late receiver
• Specific to MPI programs
• Sequential overhead
• Specific to threaded programs such as OpenMP or OpenCL
• CLOUD PROGRAMMING
• Task model,
• Thread-based,
• Map Reduce Approaches,
• PGAS (Partitioned Global Address Space),
• Workflow,
• MPI,
• Service-oriented, and
• Actors

Cloud Computing
Cloud Programming
• Motivation
• There are thousands of servers available.
• How do you efficiently utilize these servers?
• How do you efficiently program them with your applications?
• Are you thinking about scalability, reliability, security,
availability…. Or the other cloud features???

Cloud Computing
Cloud Programming Models
• Fundamentally, cloud programming should effectively
utilize cloud resources
• Physical or virtual cloud resources,
• Large databases,
• Robust communication units, and sensors…
• Cloud programming should ease with
• Runtime support,
• Service handlers, …
• Workflow orchestrators, …
• Monitoring…

Cloud Computing
Cloud Programming
• There are several cloud programming solutions
• Google Mapreduce,
• Apache Hadoop,
• Microsoft Dryad,
• Azure Twister
• (All are variants of the mapreduce concept).
• Differs in terms of data handling mechanisms (file
system handling approaches):
• Mapreduce uses GFS
• Hadoop uses HDFS (Hadoop Distributed File System).
• Dryad uses shared directories.
• Twister uses blob (Binary Large Object)

Cloud Computing
Cloud Programming - Basics

Partitioning
subdivides larger jobs to smaller
tasks (both computation and data).
Mapping
maps tasks to computing resources.
Reduction
unifying the results back from
workers.
Scheduling
scheduler could assist the mapping
process when resources are limited…
Cloud Computing
MapReduce programming
• It is a parallel/distributed programming model (a
software framework) involving tens of thousands of
servers and massive amounts of data processing.
• C++ based programming framework.
• It uses map and reduce functions. It uses GFS
approach.
• Ie. large files are read (terra bytes). Reading files are based
on:
– Based on streaming (for large data)
– Based on randomness (for small data)
• Mapreduce is implemented as libraries.
• Mapreduce with VMs would increase the performance
of cloud applications.
• There are several mapreduce libraries or extensions
Cloud Computing

(eg. Hadoop).
MapReduce Framework

Mapped to Cloud Resources

I/p
o/p
slices

Key-Value Pairs

Cloud Computing
Apache Hadoop framework
• It is implemented in Java. (OPEN-source). Versions--
Hadoop 3.3. HENCE, Cross-platform
• It uses Hadoop Distributed File System (instead of
GFS).
• Hadoop components include..
Scheduling
unit
HDFS (YARN)
Mapreduce

• YARN – yet another resource negotiator


• GFS and HDFS differs in the file structure, io, and
balancing mechanisms. Cloud Computing

• The performance of HDFS is better than GFS.


GFS
• GFS is applied for applications that require massive
data storage across millions of servers.
• Eg. Applications – e-governance (connecting multiple
servers with millions of employee, salary, , data).
• It might not fit well if the applications require low
latency!! (in such cases, message passing based
programming could be an option).

Cloud Computing
GFS
• GFS architecture consists of 3 entities:
• Clients
– It communicates with master
– stores or reads data from chunk servers (Master server should
give the information).
• Master server
– coordinates clusters while sharing the files.
– Ie, master server prepares metadata about where data is located.
– it ensures the availability of chunk servers via. heartbeat msgs.
• Chunk servers – stores chunks on local filesystem of linux
machines.

Cloud Computing
HDFS architecture
• Master → namenode
• Chunkserver →
datanode
• Chunk → block

• 128 MB chunks…
• Namenode receives
heartbeat from
datanode.
• Many masternodes..
• HDFS client could
decide where data
should reside. Cloud Computing
GFS vs. HDFS
SLNo. GFS HDFS
Datastructure / Client, master, and chunkservers. Master → namenode
Filesystem Chunkserver → datanode
Google files are divided into 64MB Chunk → block
chunks.
128 MB chunks
Each chunk is identified by a 64 bit
handle.

They are replicated three times


(default).

Each chunk is divided into 64KB


blocks.

They are identified by checksums.

Master node receives heartbeat Namenode receives


from chunckserver heartbeat from datanode.

Only one master Cloud Computing Many masternodes


GFS vs. HDFS
Slno GFS HDFS
IO GFS client could not HDFS client could decide
decide where data resides where data should reside.
(it is based on leases).

Writing files can be in a Only appending of files is


random fashion allowed.
Data replicas Replicas are stored on A special program named
chunkservers with balancer is utilized for
minimum utilization by replicas.
Masters.

Cloud Computing
Cloud Programming – Service Oriented
Perspective
• Most of the cloud applications are enterprise oriented
(based on services).
• As we know, applications are written in order to
efficiently write / share data or infrastructure over
devices.
Direct access is not good. (Especially over internet)

Share / Access / Write


Data

• In fact, webservices avoid direct access to data. The


webservices use a few robust protocols – HTTP,
SOAP, REST, RPCs, JSON, XML…
• Mostly, via. user interfaces!!
Cloud Computing
Advantages of webservices
Data access is via. interface. (Especially over internet)

Data Interface Share / Access / Write

Data sharing is effective

Commn is platform independent

Highly distributed.
Cloud Computing
Web service access protocols – REST vs.
SOAP
• SOAP (Simple Object Access Protocol) is a
webservice access protocol in webservices1.0.
• REST is for webservices2.0.
• SOAP:
• It utilizes XML with lengthly rules for WS-Addressing, WS-
Security, WS-Policy, WS-Federation, WS-Coordination, WS-
ReliableMessaging, and so forth…
• Users need to utilize what they need (hence, flexible).
• It has a support for error handling.
• SOAP could work without http transport protocol.
• Challenges of SOAP protocol:
– Too many information are required for simpler tasks.
– It requires XML data structure to handle data!!

Cloud Computing
Web service access protocols – REST vs.
SOAP
• REST
• Overrides the challenges of SOAP.
• But, the webservices built based on REST are prone to
unknown errors (poor error handling mechanisms).
• REST is highly light weight mechanism when compared to
SOAP.
• REST uses four web verbs
– GET, POST, PUT, DELETE
• REST utililizes Javascript Object Notation (JSON), CSV
(instead of XML). Thus, parsing is faster.

Cloud Computing
Web 1.0, 2.0, 3.0, 4.0, and 5.0
• Web 1.0
• Just delivered web pages for the search.
• 1994, (one-way communication)
• The content is only “read-only” and non-interactive
• Web 2.0
• 2004, Interactive (social media sites)
• Technologies such as Javascript became more robust.
• Web 3.0
• Became more like a semantic search (tailored to your search
preferences)
• Decentralized; focused on blockchains; trustful;
• Web 4.0
• Focused on mobile web and mobile technologies.
• i.e, it tries to service almost all devices around the world.
Cloud Computing
Web 1.0, 2.0, 3.0, 4.0, and 5.0
• Web 5.0
• Futuristic one
• To create an extra decentralized. They share the same vision.
• Powerful than Web 3.0;
• It focuses on linked web to develop Emotional Web.
• i.e., it creates an emotional interaction between humans and
computers.
• The development is ON PROGRESS…

Cloud Computing
Monolithic System
Data access is via. interface. (Especially over internet)

Data Interface Share / Access / Write

• Example case: Ecommerce application


Multiple services – Order service, Accounting service, inventory service, shipping

Multiple Services / Share / Access / Write


Data
Via. interface Via. browser

• Advantages: simple to develop, test, deploy.

Cloud Computing
Challenges
• Challenges of such monolithic service system:
• What happens if a new developer modifies the code??
– He might have lesser knowledge on the existing programs or the
associated programming language.
– Hence, it takes too much time to delivery…
– Not scalable
• Software bugs lead to a standstill !!!
– In feb2016, Japanese Hitomi spacecraft broke off due to s/w
failures.
• Software update requires the monolith system to rerun or
reboot the entire application (all dependent services).
• Most of the services are often loaded in containers these
days.
– The monolithic service system might have to load a large volume
of programs on these containers!!! Hence, poor performance.
– Migration issues due to Cloud
heavy memory footprints.
Computing
Introduction to microservices
• Microservices are distributed applications consisting of
smaller independent (isolated) service modules.
• The service modules can be implemented in
independent programming languages (node.js or go or
java, python, or c++)
• – leading to a flexible development scenario.
• Finding out a software bug could be much easier now
(ie. Less time is required).
• Continuous integration of new developments is
possible.
• In succinct,
• Time to the market for services is much lesser than monolithic
solutions.
• Engineers and s/w developers could enjoy autonomy to
Cloud Computing

develop, ship, and iterate s/w improvements.


Microservices - Characteristics

Flexibility Modularity Fine grain Decentralized


• Continuous • Each service • Each service • All services are
integration of modules should be as decentralized.
s/w contribute to small as
overall system possible (but
independent)

Cloud Computing
DevOps
• It is a combination of development and IT operations.
• DevOps promotes collaboration between Development
and Operations team to deploy code to production
faster in an automated & repeatable way.
• DevOps engineer is responsible for deploying and
automating applications (i.e., automates Software
Development Life Cycle)
• Adv:
• Quick development
• It increases the business profits
• It simplifies collaboration.

Cloud Computing
DevOps - Goals
• Minimizes the • The development
testing and and operational
deployment time. teams collaborate
each other.

Automation Collaboration

Configuration
Integration
Management

• Only required • Continuous


configuration files integration (with new
are studied and updates in the
delivered. software and testing
• No code should modules)
break
Cloud Computing
DevOps Components
• Development
• Build – studies the usage of cloud resources and plans to
build them on the fly.
• Code – writing code; tracking changes;
• Test – avoids manual testing (i.e., testing is automated)
• Plan – organize the work (based on the collaborative
suggestions from the operational team)
• Operations
• Monitor – Continuous monitoring
• Deploy – Automated deployment
• Operate – Collaborative operations
• Release – Automated release

Cloud Computing
DevOps – Tools
• Git
• Docker and Kubernetes
• Jenkins
– Jenkins is an open source automation server. It helps automate
the parts of software development related to building, testing, and
deploying, facilitating continuous integration and continuous
delivery (source: internet).
• Nagios – monitoring tool
• Gitops - GitOps is an operational framework that takes
DevOps best practices used for application development such
as version control, collaboration, compliance, and CI/CD, and
applies them to infrastructure automation.
(https://about.gitlab.com/topics/gitops/_
• Argo CD is a declarative continuous delivery tool for
Kubernetes.
• Service Mesh – for service discovery, traffic mgmt., (in
microservices)
DevOps Engineer – Knowledge requirements
• Linux commands
• Scripting languages (python, golang, nodejs…)
• git (and github commands – pull, merge, branching)
• Cloud networking concepts (AWS, Google, Azure)
• Terraform and Ansible (creation of servers –
Infrastructure as code- configuration management
tools for efficient integration)
• Microservices (docker, containers) and Kubernetes
• CI/CD pipelines (It ensures that each code change,
including fixing bugs, seamlessly integrates into the
running applications – automate deployment to
production)
• Monitoring/Logging (Prometheus, Grafana, Nagios)
Cloud Computing
OpenStack
• Openstack is a private cloud enabling software
architecture.
• It is a modular architecture.
• It provides a set of core services for including services
related to storage, compute, and i/o
• Software components
• Compute
• Storage
– Object,
– Block
• File system
• Networking
• Dashboard,
• Identity
• Image service, and so forth
OpenStack
• Compute Software Module
• It supports the management of virtual machine instances at
scale.
• It is abstracted through the hypervisors.

• Storage – Object storage Module


• It provides support for storing and retrieving arbitrary data in
the cloud.
• It provides a high degree of resiliency through data replication.
• It supports over petabytes of data.
Openstack
• Block storage
• It provides persistent block storage for compute instances.
• It is responsible to ensure the creation of required volumes of
blocks and to attach the volumes to the VMs or cloud
instances.
• Networking
• It provides various networking services to cloud users .
• For instances,
– IP addressing
– DHCP
– DNS support
– Load balancing
– Framing firewall policies, and so forth.
Openstack
• Dashboard module
• It provides a web-based interface for both cloud administrators
and cloud users.
• It enables users to check the budget information, active
instances, and status of clouds.
• It also provides opportunity to manage the cloud instances
– for instance, to delete VM instances or docker images.

• Image service
• It provides disk-image management services, including image
discovery, registration, and delivery services to the Compute
service.
• Images are OS files of VM instances or dockers.
OpenStack Terms
• Compute -- NOVA
• Storage
– Object, -- Swift
– Block -- Cinder
• File system
• Networking -- Neuton
• Dashboard, -- Horizon
• Identity -- Keystone
• Image service -- Glance
OpenStack Architecture
Functionality of OpenStack S/W components
• The nova-api handles the requests and responses
from and to the end user.
• The nova-compute creates and destroys the instances
as and when a request is made.
• Nova-scheduler schedules the tasks to the nova-
compute
• The glance registry stores the details of the image
along with its metadata.
• The Image Store, stores the images predefined by the
admin/user.
• The nova-network ensures the network connectivity
and routing.
• https://www.youtube.com/watch?v=IYv9todvxrI
Comparison of AWS-OpenStack
Comparison of AWS-OpenStack

You might also like