Unit Iv Programming Model
Unit Iv Programming Model
Programming Models in Cloud Computing: Everyone heard about the emerging technique cloud
computing in this contemporary world. First of all, what is cloud computing and why it is important?
Generally, cloud computing is the services of computing delivery like storage, networking, analytics,
software, database, and servers over the internet. Thus cloud computing courses is much useful
nowadays in this world for all these purposes. Cloud computing programming is helpful to access all
these above services efficiently.
On-demand self-service
Resource Pooling
Rapid Elasticity
Measure Service
1. On-demand self-service
With this feature, one can individually establish the automatic server time and network storage capabilities
of Oracle Database Cloud Service. This is possible without interacting with the humans and with the
service providers.
3. Resource Pooling
To serve for multiple consumers, it is necessary to pool the resources of provider’s computing with multi-
talented models. Likewise, this model includes various dynamic resources of physical and virtual that
assigns and reassigns as per the demands of the consumers. For example, the resources include
memory, storage, processing, and network bandwidth.
4. Rapid Elasticity
In some cases, the capabilities can be automatically released. On the other hand, it is essential for quick
inward and outward scaling corresponding with the demand. To the consumer, the capabilities obtainable
for provisioning frequently appear to be limitless and can be adopted in any time for any quantity.
5. Measured Service
Specifically, cloud systems habitually control and enhance the usage of the resource via appropriate to
the type of service through the level of abstraction. This service includes processing, storage, bandwidth,
and active user accounts. To mention that, the usage of the resource is monitor, control, and report that
provides transparency for the provider as well as the consumer utilized services.
Programming Language of Cloud Computing
To point out, the cloud is a concept level of the operating system than the language concept. But the
Programming Models in Cloud Computing programming includes some computer programming
languages for accessing and operating the cloud. Such languages are Perl, learn javascript, AJAX, ASP,
Java, PHP and learn MySQL. Additionally, if you wish to implement a new programming language that is
specifically designed to operate the cloud should optimize for cloud computing and must be easy to learn,
efficient, modern, fast, and powerful. As a result, cloud computing programming, the latest technology is
much useful to improve your career and use to access and operate the cloud.
HALOOP
Architecture
HaLoop is a great extension for Hadoop as it provides support for iterative
application. In order to meet these requirement the changes that are made in
Hadoop to efficiently support Iterative data analysis are:
1.) Providing a new application programming interface to simplify the iterative
expressions.
2.) An automatic generation of Map reduce program by the master node using
a loop control module until the loop condition is met.
3.) The new task scheduler supports data locality in these application in order
to efficiently perform iterative operations.
4.) The task scheduler and task tracker are modified not only to manage
execution but also manage cache indices on slave module.
Some of the important feature of HaLoop which makes all these feasible are:
1.) Inter-iteration Locality : The major goal of HaLoop is to keep the data for
map and reduce that uses same data on different iteration on the same
machine. Here data is easily cached and is reused for various other
application.
2.) Reducer Input Cache: HaLoop will cache reducer inputs across all
reducers and create a local index for the cached data. Additionally, the
reducer inputs are cached before each reduce function invocation, so that
tuples in the reducer input cache are sorted and grouped by reducer input key.
3.) Reducer Output Cache: The reducer output cache stores and indexes the
most recent local output on each reducer node. This cache is used to reduce
the cost of evaluating fixpoint termination conditions. That is, if the application
must test the convergence condition by comparing the current iteration output
with the previous iteration output, the reducer output cache enables the
framework to perform the comparison in a distributed fashion.The reducer
output
Program on HaLoop :
In order to write a HaLoop program we need to follow following steps:
1.) Loop body (as one or more mapreduce pair)
2.) terminating condition and loop invariant data (optional)
3.) Map function to convert input key-value pair into intermediate
(in_key,in_value) pair.
4.) reduce function to produce (out_key,out_value)
PERFORMANCE EVALUATION
The figure on the left compares the performance of HaLoop for the iterative algorithms.
Figure 1 sows that HaLoop need not shuffle the constant input from Mappers to Reducers
at every iteration, which explains the significant savings.
Figure 2 shows an overall performance by iteration of HaLoop vs. Hadoop on the Billion
Triple data-set. The figure shows that HaLoop scales better than Hadoop since it can cache
intermediate results from iteration to iteration.
TWISTER
Additional functionality:
1.) Static and variable Data : Any iterative algorithm requires a static and
variable data. Variable data are computed with static data (Usually the larger
part of both) to generate another set of variable data. The process is repeated
till a given condition and constrain is met. In a normal map-reduce function
using Hadoop or DryadLINQ the static data are loaded uselessly every time
the computation has to be performed. This is an extra overhead for the
computation. Even though they remain fixed throughout the computation they
have to be loaded again and again.
Twister introduces a “config” phase for both map and reduces to load any
static data that is required. Loading static data for once is also helpful in
running a long running Map/Reduce task
2.) Fat Map task : To save the access a lot of data the map is provided with
an option of configurable map task, the map task can access large block of
data or files. This makes it easy to add heavy computational weight on the
map side.
3.) Combine operation: Unlike GFS where the output of reducer are stored in
separate files, Twister comes with a new phase along with map reduce called
combine that’s collectively adds up the output coming from all the reducer.
ii) configureMaps(Value[]values) and configureReduce(Value[]values) to
configure map and reduce with additional static data
TWISTER ARCHITECTURE
Access Data
1. To access input data for map task it either reads dta from the local disk of
the worker nodes.
2. receive data directly via the broker network.
They keep all data read as file and having data as native file allows Twister to
pass data directly to any executable. Additionally they allow tool to perform
typical file operations like
(i) create directories, (ii) delete directories, (iii) distribute input files across
worker nodes, (iv) copy a set of resources/input files to all worker nodes, (v)
collect output files from the worker nodes to a given location, and (vi) create
partition-file for a given set of data that is distributed across the worker nodes.
Intermediate Data
The intermediate data are stored in the distributed memory of the worker
node. Keeping the map output in distributed memory enhances the speed of
the computation by sending the output of the map from these memory to
reduces.
Messaging
The use of publish/subscribe messaging infrastructure improves the efficiency
of Twister runtime. It use scalable NaradaBrokering messaging infrastructure
to connect difference Broker network and reduce load on any one of them.
Fault Tolerance
There are three assumption for for providing fault tolerance for iterative
mapreduce:
(i) failure of master node is rare adn no support is provided for that.
(ii) Independent of twister runtime the communication network can be made
fault tolerant.
(iii) the data is replicated among the nodes of the computation infrastructure.
Based on these assumptions we try to handle failures of map/reduce tasks,
daemons, and worker nodes failures.
PERFORMANCE EVALUATION
SPINNER
Although HaLoop and Twister are efficient in handling many iterative algorithm
but many machine learning and graph algorithms still perform poorly, due to
those systems’ inability to exploit the (sparse) computational dependencies
present in these tasks
As Spinner refers to the recomputed solution as partial solution so we
differentiation iteration into Bulk iteration, where each iteration produces
completely new partial solution from previous iteration result and Incrmental
Iteration, where each iteration result differs partially from the previous result.
Existing data flow system supports bulk iteration where the whole result is
consumed to get a new result but incremental iteration evolve the result by
adding some data points. This implies adding of a mutable state that is carried
to the new iteration.
An incremental iteration can be expressed using the bulk iterations with two
data sets (S and W) for the partial solution and a step functions combining u
and
. The step function reads both data sets and computes a new version of S and
W. However, recall that the primary motivation for incremental iterations is to
avoid creating a completely new version of the partial solution, but to apply
point updates instead. The updated partial solution should be implicitly carried
to the next iteration.
PERFORMANCE EVALUATION
Figure 1 Compares the Spinner(Stratosphre) and compare them with other
framework like Spark and Giraffe.
Description:
With the enormous increase in data there has been an urgent requirement to
process these data in a effective manner.These frameworks take the huge
blocks of data and convert them into simple key value pair and make them
easy and modular to analyze. The interesting part in their implementation is
that the framework is capable of performing these task parallel on multiple
Nodes and hence balancing the load to reduce overhead on any single node.
Why Iterative
The MapReduce framework like Hadoop and Dryad has been very successful
in fulfilling the need of the people to analyze huge files and compute data
intensive problems. Although it takes care of many problems but many data
analysis techniques require iterative computations, including PageRank ,
HITS (Hypertext-Induced Topic Search) , recursive relational queries,
clustering, neural-network analysis, social network analysis, and network
traffic analysis.
These techniques have a common trait: data are processed iteratively until the
computation satisfies a convergence or stopping condition. Most of the
iterative algorithm are run once and then output is operated with initial output
to generate the required result. This type of program terminates only when
fixed output is reached i.e the result does not changes from one iteration to
another.
The MapReduce framework does not directly support these iterative data
analysis applications. Instead, programmers must implement iterative
programs by manually issuing multiple MapReduce jobs and orchestrating
their execution using a driver program . in which the data flow takes the form
of a directed acyclic graph of operators. These platforms lack built-in support
for iterative programs.
Hadoop is an Apache open source framework written in java that allows distributed
processing of large datasets across clusters of computers using simple programming
models. The Hadoop framework application works in an environment that provides
distributed storage and computation across clusters of computers. Hadoop is designed
to scale up from single server to thousands of machines, each offering local
computation and storage.
Hadoop Architecture
At its core, Hadoop has two major layers namely −
MapReduce
MapReduce is a parallel programming model for writing distributed applications
devised at Google for efficient processing of large amounts of data (multi-terabyte
data-sets), on large clusters (thousands of nodes) of commodity hardware in a reliable,
fault-tolerant manner. The MapReduce program runs on Hadoop which is an Apache
open-source framework.
Hadoop Distributed File System
The Hadoop Distributed File System (HDFS) is based on the Google File System
(GFS) and provides a distributed file system that is designed to run on commodity
hardware. It has many similarities with existing distributed file systems. However, the
differences from other distributed file systems are significant. It is highly fault-tolerant
and is designed to be deployed on low-cost hardware. It provides high throughput
access to application data and is suitable for applications having large datasets.
Apart from the above-mentioned two core components, Hadoop framework also
includes the following two modules −
Hadoop Common − These are Java libraries and utilities required by other
Hadoop modules.
Hadoop YARN − This is a framework for job scheduling and cluster resource
management.
Application mapping
How it works
Its role in DevOps use cases
Best practices on mapping application dependencies
What is application mapping?
Application mapping is the process of discovering and identifying the
interactions and interdependencies between application components and
their underlying hardware infrastructure.
To ensure that apps perform optimally, it’s important to discover and map
the underlying dependencies. The technology that enables this capability
is common called “application mapping”, but Application Discovery and
Dependency Mapping (ADDM) is another word for it. Application mapping
solutions are:
A management solution that discovers the relationships of app components
and the underlying components and maps them to deliver a comprehensive
insight into the resources running in the IT infrastructure and their
dependencies.
(See how IT discovery & service mapping work.)
Network monitoring
Agent on server
Overall cost
Operating performance
For instance, operating a hybrid mix of private and public cloud and data
center deployments makes sense if your goal is to minimize cost.
However, adding too many high availability nodes may prevent
standardization in node configurations. Managing change controls in such
environments could be more expensive and add to the administrative
burden—exactly what you were trying to avoid in the first place.
Regulatory compliance
Discoverable
In compliance with regulatory policy frameworks adopted for
sensitive IT workloads
Compliance is an ongoing effort that also requires organizations to
identify gaps, prioritize risk, and track compliance progress with every
change. A change control management practice would traditionally
require IT to track dependency changes and apply the necessary changes.
A correct standard operating procedure would involve automated
triggering of configuration changes in adherence to a compliance policy
that remains consistent regardless of the application changes.
According to research, however, more than a third of organizations cannot
track assets or resort to manual asset tracking capabilities—risking
compliance failure.
Google App Engine (GAE) is a Platform as a Service (PaaS) cloud-based Web hosting
service on Google's infrastructure. For an application to run on GAE, it must comply with
Google's platform standards, which narrows the range of applications that can be run
and severely limits those applications' portability.
GAE supports the following major features:
1. Dynamic Web services based on common standards
2. Automatic scaling and load balancing
3. Authentication using Google's Accounts API
4. Persistent storage, with query access sorting and transaction management
features
5. Task queues and task scheduling
6. A client-side development environment for simulating GAE on your local system
7. One of either two runtime environments: Java or Python
Google File System:
Abbreviated as GFS, a Global File System is a cluster file system that enables a
cluster of computers to simultaneously use a block device that is shared between
them.
GFS reads and writes to the block device like a local file system, but also allows
the computers to coordinate their I/O to maintain file system consistency.
With GFS any changes that are made to the file system on one computer will
immediately be seen on all other computers in that cluster.
GFS provides fault tolerance, reliability, scalability, availability and performance
to large networks and connected nodes. GFS is made up of several storage
systems built from low-cost commodity hardware components.
It is optimized to accommodate Google's different data use and storage needs,
such as its search engine, which generates huge amounts of data that must be
stored.
Big Tables and Google NO SQL System:
Google Cloud Bigtable is a productized version of the NoSQL database that
stores Google's bits and bytes.
The big selling point is it doesn't require the maintenance traditionally needed for
compatible on-prem NoSQL solutions.
Bigtable is a compressed, high performance, and proprietary data storage
system built on Google File System, Chubby Lock Service and a few other
Google technologies.
Bigtable maps two arbitrary string values (row key and column key) and
timestamp (hence three-dimensional mapping) into an associated arbitrary byte
array.
It is not a relational database and can be better defined as a sparse, distributed
multi-dimensional sorted map.
Bigtable is designed to scale into the petabyte range across "hundreds or
thousands of machines, and to make it easy to add more machines [to] the
system and automatically start taking advantage of those resources without any
reconfiguration".
Google’s Distributed Lock Service (Chubby):
Chubby is a distributed lock service intended for coarse-grained synchronization
of activities within Google's distributed systems.
Chubby has become Google's primary internal name service; it is a common
rendezvous mechanism for systems such as MapReduce; the storage systems
GFS and Bigtable use Chubby to elect a primary from redundant replicas; and it
is a standard repository for files that require high availability, such as access
control lists.
Chubby is a relatively heavy-weight system intended for coarse-grained locks,
locks held for "hours or days", not "seconds or less."
Amazon AWS
What is AWS?
The full form of AWS is Amazon Web Services. It is a platform that offers
flexible, reliable, scalable, easy-to-use and, cost-effective cloud computing
solutions.
History of AWS
2002- AWS services launched
2006- Launched its cloud products
2012- Holds first customer event
2015- Reveals revenues achieved of $4.6 billion
2016- Surpassed $10 billon revenue target
2016- Release snowball and snowmobile
2019- Offers nearly 100 cloud services
2021- AWS comprises over 200 products and services
Migration
Migration services used to transfer data physically between your datacenter and AWS.
1. DMS (Database Migration Service)– DMS service can be used to migrate on-
site databases to AWS. It helps you to migrate from one type of database to
another — for example, Oracle to MySQL.
2. SMS (Server Migration Service)– SMS migration services allows you to
migrate on-site servers to AWS easily and quickly.
3. Snowball— Snowball is a small application which allows you to transfer
terabytes of data inside and outside of AWS environment.
Storage
1. Amazon Glacier- It is an extremely low-cost storage service. It offers secure
and fast storage for data archiving and backup.
2. Amazon Elastic Block Store (EBS)- It provides block-level storage to use
with Amazon EC2 instances. Amazon Elastic Block Store volumes are
network-attached and remain independent from the life of an instance.
3. AWS Storage Gateway- This AWS service is connecting on-premises
software applications with cloud-based storage. It offers secure integration
between the company’s on-premises and AWS’s storage infrastructure.
Security Services
1. IAM (Identity and Access Management)— IAM is a secure cloud security
service which helps you to manage users, assign policies, form groups to
manage multiple users.
2. Inspector— It is an agent that you can install on your virtual machines, which
reports any security vulnerabilities.
3. Certificate Manager— The service offers free SSL certificates for your
domains that are managed by Route53.
4. WAF (Web Application Firewall)— WAF security service offers application-
level protection and allows you to block SQL injection and helps you to block
cross-site scripting attacks.
5. Cloud Directory— This service allows you to create flexible, cloud-native
directories for managing hierarchies of data along multiple dimensions.
6. KMS (Key Management Service)— It is a managed service. This security
service helps you to create and control the encryption keys which allows you to
encrypt your data.
7. Organizations— You can create groups of AWS accounts using this service to
manages security and automation settings.
8. Shield— Shield is managed DDoS (Distributed Denial of Service protection
service). It offers safeguards against web applications running on AWS.
9. Macie— It offers a data visibility security service which helps classify and
protect your sensitive critical content.
10.GuardDuty— It offers threat detection to protect your AWS accounts and
workloads.
Database Services
1. Amazon RDS- This Database AWS service is easy to set up, operate, and scale
a relational database in the cloud.
2. Amazon DynamoDB- It is a fast, fully managed NoSQL database service. It is
a simple service which allow cost-effective storage and retrieval of data. It also
allows you to serve any level of request traffic.
3. Amazon ElastiCache- It is a web service which makes it easy to deploy,
operate, and scale an in-memory cache in the cloud.
4. Neptune- It is a fast, reliable and scalable graph database service.
5. Amazon RedShift- It is Amazon’s data warehousing solution which you can
use to perform complex OLAP queries.
Analytics
1. Athena— This analytics service allows perm SQL queries on your S3 bucket
to find files.
2. CloudSearch— You should use this AWS service to create a fully managed
search engine for your website.
3. ElasticSearch— It is similar to CloudSearch. However, it offers more features
like application monitoring.
4. Kinesis— This AWS analytics service helps you to stream and analyzing real-
time data at massive scale.
5. QuickSight— It is a business analytics tool. It helps you to create
visualizations in a dashboard for data in Amazon Web Services. For example,
S3, DynamoDB, etc.
6. EMR (Elastic Map Reduce)— This AWS analytics service mainly used for
big data processing like Spark, Splunk, Hadoop, etc.
7. Data Pipeline— Allows you to move data from one place to another. For
example from DynamoDB to S3.
Management Services
1. CloudWatch— Cloud watch helps you to monitor AWS environments like
EC2, RDS instances, and CPU utilization. It also triggers alarms depends on
various metrics.
2. CloudFormation— It is a way of turning infrastructure into the cloud. You
can use templates for providing a whole production environment in minutes.
3. CloudTrail— It offers an easy method of auditing AWS resources. It helps
you to log all changes.
4. OpsWorks— The service allows you to automated Chef/Puppet deployments
on AWS environment.
5. Config— This AWS service monitors your environment. The tool sends alerts
about changes when you break certain defined configurations.
6. Service Catalog— This service helps large enterprises to authorize which
services user will be used and which won’t.
7. AWS Auto Scaling— The service allows you to automatically scale your
resources up and down based on given CloudWatch metrics.
8. Systems Manager— This AWS service allows you to group your resources. It
allows you to identify issues and act on them.
9. Managed Services— It offers management of your AWS infrastructure which
allows you to focus on your applications.
Internet of Things
1. IoT Core— It is a managed cloud AWS service. The service allows connected
devices?like cars, light bulbs, sensor grids, to securely interact with cloud
applications and other devices.
2. IoT Device Management— It allows you to manage your IoT devices at any
scale.
3. IoT Analytics— This AWS IOT service is helpful to perform analysis on data
collected by your IoT devices.
4. Amazon FreeRTOS— This real-time operating system for microcontrollers
helps you to connect IoT devices in the local server or into the cloud.
Application Services
1. Step Functions— It is a way of visualizing what’s going inside your
application and what different microservices it is using.
2. SWF (Simple Workflow Service)— The service helps you to coordinate both
automated tasks and human-led tasks.
3. SNS (Simple Notification Service)— You can use this service to send you
notifications in the form of email and SMS based on given AWS services.
4. SQS (Simple Queue Service)— Use this AWS service to decouple your
applications. It is a pull-based service.
5. Elastic Transcoder— This AWS service tool helps you to changes a video’s
format and resolution to support various devices like tablets, smartphones, and
laptops of different resolutions.
Developer Tools
1. CodeStar— Codestar is a cloud-based service for creating, managing, and
working with various software development projects on AWS.
2. CodeCommit— It is AWS’s version control service which allows you to store
your code and other assets privately in the cloud.
3. CodeBuild— This Amazon developer service help you to automates the
process of building and compiling your code.
4. CodeDeploy— It is a way of deploying your code in EC2 instances
automatically.
5. CodePipeline— It helps you create a deployment pipeline like testing,
building, testing, authentication, deployment on development and production
environments.
6. Cloud9— It is an Integrated Development Environment for writing, running,
and debugging code in the cloud.
Mobile Services
1. Mobile Hub— Allows you to add, configure and design features for mobile
apps.
2. Cognito— Allows users to signup using his or her social identity.
3. Device Farm— Device farm helps you to improve the quality of apps by
quickly testing hundreds of mobile devices.
4. AWS AppSync— It is a fully managed GraphQL service that offers real-time
data synchronization and offline programming features.
Business Productivity
1. Alexa for Business— It empowers your organization with voice, using Alexa.
It will help you to Allows you to build custom voice skills for your
organization.
2. Chime— Can be used for online meeting and video conferencing.
3. WorkDocs— Helps to store documents in the cloud
4. WorkMail— Allows you to send and receive business emails.
Desktop & App Streaming
1. WorkSpaces— Workspace is a VDI (Virtual Desktop Infrastructure). It allows
you to use remote desktops in the cloud.
2. AppStream— A way of streaming desktop applications to your users in the
web browser. For example, using MS Word in Google Chrome.
Artificial Intelligence
1. Lex— Lex tool helps you to build chatbots quickly.
2. Polly— It is AWS’s text-to-speech service allows you to create audio versions
of your notes.
3. Rekognition — It is AWS’s face recognition service. This AWS service helps
you to recognize faces and object in images and videos.
4. SageMaker— Sagemaker allows you to build, train, and deploy machine
learning models at any scale.
5. Transcribe— It is AWS’s speech-to-text service that offers high-quality and
affordable transcriptions.
6. Translate— It is a very similar tool to Google Translate which allows you to
translate text in one language to another.
Customer Engagement
1. Amazon Connect— Amazon Connect allows you to create your customer care
center in the cloud.
2. Pinpoint— Pinpoint helps you to understand your users and engage with them.
3. SES (Simple Email Service)— Helps you to send bulk emails to your
customers at a relatively cost-effective price.
Game Development
1. GameLift– It is a service which is managed by AWS. You can use this service
to host dedicated game servers. It allows you to scale seamlessly without taking
your game offline.
Applications of AWS services
Amazon Web services are widely used for various computing purposes like:
Advantages of AWS
Following are the pros of using AWS services:
AWS allows organizations to use the already familiar programming models,
operating systems, databases, and architectures.
It is a cost-effective service that allows you to pay only for what you use,
without any up-front or long-term commitments.
You will not require to spend money on running and maintaining data centers.
Offers fast deployments
You can easily add or remove capacity.
You are allowed cloud access quickly with limitless capacity.
Total Cost of Ownership is very low compared to any private/dedicated servers.
Offers Centralized Billing and management
Offers Hybrid Capabilities
Allows you to deploy your application in multiple regions around the world
with just a few clicks
Disadvantages of AWS
If you need more immediate or intensive assistance, you’ll have to opt for paid
support packages.
Amazon Web Services may have some common cloud computing issues when
you move to a cloud. For example, downtime, limited control, and backup
protection.
AWS sets default limits on resources which differ from region to region. These
resources consist of images, volumes, and snapshots.
Hardware-level changes happen to your application which may not offer the
best performance and usage of your applications.
Cloud Environment
Legal
John Sammons, in The Basics of Digital Forensics (Second Edition), 2015
International e-Discovery
With the cloud environment and data regularly flying across borders, international electronic
discovery is becoming an issue. Not every country has the same views on privacy or the same
legal standards and procedures for discovery. As a result, gaining access to data in a foreign
country is very complex. The Sedona Conference’s Framework for Analysis of Cross-Border
Discovery Conflicts: A Practical Guide to Navigating the Competing Currents of International
Data Privacy and e-Discovery is an excellent introduction to the complexities involved in
international e-Discovery. You can download it for free
from http://www.thesedonaconference.org/.
View chapter Purchase book
Control APIs: APIs that allow the end customer to configure their cloud provisioned
service. Amazon EC2 provides a multitude of APIs that allow customers to configure
their services, as defined within the Amazon Elastic Compute Cloud: API
Reference.27 Examples include the allocation of internet protocol (IP) addresses,
creating/editing of access control lists, or monitoring of specific instances.
▪
Data APIs: APIs within which data may flow into or out of the provisioned service. Such
data flows can also be into alternate cloud providers, so that data can flow from one
provider and into the provisioned service provided by an alternate provider.
▪
Application functionality APIs: Although the earlier APIs provide the ability to transfer
data between alternate providers, or indeed management of the overall solution, the
application functionality APIs can provide considerably more functionality that the end
customer can interact with, ranging from the simple availability of shopping baskets to
integration with social networking solutions, and considerably more in between.
While the flexibility of cloud APIs is not in question, and indeed depending on the source
considered one of the driving forces behind the widespread adoption of cloud computing, there
does remain considerable security considerations.
Indeed, these security considerations may not even be malicious, whereby an administrator may
inadvertently invoke an action that may have significant repercussions. Consider the command
available for EC2 customers entitled ec2-terminate-instances. As you can likely guess, this
command will terminate an EC2 instance, the implication of this action is that the data stored
within the instance will also be deleted.
In order to reduce the risk of such an action being inadvertently carried out, there is an
opportunity to implement a safeguard to prevent inadvertent deletion using a feature available
through the AWS console, command line interface, or API. Such a feature provides protection
against termination with the DisableApiTermination attribute; this controls whether an instance
can indeed be terminated using the console, Command Line Interface, or an API.
While such a feature, or rather attribute, is an important step in preventing accidental deletion of
a particular instance, it is only one example of where an accidental action can have significant
repercussions. A simple error such as mistyping the IP address for an instance is equally likely to
result in the unavailability of the provisioned service, and does not have the luxury of an attribute
to protect against the error. While of course the latter example is a simpler fix than the deletion
of an instance, these examples do demonstrate some of the challenges facing the use of cloud
APIs.
Other challenges facing cloud end customers, and their use of APIs, are also malicious attempts
to circumvent authorized process. In a recent article published by DarkReading,28 author Rob
Lemos presents the security risks API keys present to their end customers. Such keys are utilized
to identify applications utilizing provisioned services; however, should such keys fall into the
hands of malicious actors they can be used to capture confidential data or rack up fees for the end
customer. The issue has arisen not due to a weakness in the keys themselves, but rather the
manner in which they are managed, whereby in particular implementations they are used to
identify users, and as such are not protected by developers as assets that are critical to the
business with examples of them being e-mailed and being stored on desktop hard drives.
Recently, the CSA chapter Switzerland (https://chapters.cloudsecurityalliance.org/switzerland)
held a chapter meeting focusing entirely on service orientated architecture as it relates to cloud
computing in which coauthor Raj Samani recently spoke. This meeting focused on the security
challenges relating to APIs within a cloud environment and presented emerging research within
this field. Emerging areas of research include the use of technology to enforce access policy, and
governance rules as they pertain to the use of APIs. It is therefore recommended for the reader to
coordinate with the chapter should they wish to get more detailed information about this very
important (and sadly not hugely researched) topic.
View chapter Purchase book
Network Isolation
Zonghua Zhang, Ahmed Meddahi, in Security in Network Functions Virtualization, 2017
Abstract:
Virtual datacenters in cloud environment become increasingly popular and widely used for many
types of business service. In particular, it leverages standardization and consolidation of
commodity hardware to allow effective and safe sharing of pooled resources. Through a
hypervisor-based mechanism, it is able to isolate the compute resources between the tenants that
are co-located on the same end host. However, resource sharing brings new challenges and
security issues, mainly due to the fact that the tenants do not have full control over both
underlying infrastructure and physical, virtual network resources. Thus, malicious attackers are
given opportunities to get the information of the tenants of interest by intentionally or
unintentionally consuming a large part of the network, intrusively trapping their data and further
performing illegal operations through side-channel attacks or DoS attacks. One of the important
solutions is network isolation, which has been taken as an essential building block for improving
security level as well as ensuring security control in resource sharing and data communication.
View chapter Purchase book
Application Migration
Tom Laszewski, Prakash Nauduri, in Migrating to the Cloud, 2012
Amazon and Oracle Cloud Templates
Deploying ADF in a cloud environment is most feasible when a cloud service provider such as
Amazon, Terremark, or Savvis makes available the templates already created by Oracle for that
purpose. These templates provide preinstalled applications such as Oracle WebLogic, Oracle
Enterprise Linux, and Oracle JRockit.
TIP
The most straightforward template to use can be downloaded
from https://edelivery.oracle.com/oraclevm if you are using your own Oracle Virtual
Server instance. When creating an Amazon instance, follow the instructions
at www.oracle.com/technetwork/middleware/weblogic/wlsovm-ref-133104.pdf. This document
also contains instructions for configuring and starting Oracle WebLogic.
Templates should provide a Linux environment with the following software:
•
http://blogs.oracle.com/alison/2008/04/installing_oracle_vm.html
NOTE
Deploying ADF applications in the cloud is relatively straightforward given that Oracle provides
a lot of information to configure the environment. Take the time to try out different
configurations using the templates and you will find success based upon your organization's
cloud strategy.
What is CloudSim?
Last Updated : 14 Jun, 2021
Cloud Computing is one of the hottest topics in town. It has completely
transformed how modern-day applications are developed and maintained with
high scalability and low latency.
CloudSim is an open-source framework, which is used to simulate cloud
computing infrastructure and services. It is developed by the CLOUDS Lab
organization and is written entirely in Java. It is used for modelling and
simulating a cloud computing environment as a means for evaluating a
hypothesis prior to software development in order to reproduce tests and
results.
For example, if you were to deploy an application or a website on the cloud and
wanted to test the services and load that your product can handle and also tune
its performance to overcome bottlenecks before risking deployment, then such
evaluations could be performed by simply coding a simulation of that
environment with the help of various flexible and scalable classes provided by
the CloudSim package, free of cost.
Features of CloudSim:
Step 1: From the zip folder extracts cloudsim-3.0.3 into a folder. Also, extract
the commons-math3-3.6.1 jar into the same folder.
Step 2: Open Eclipse IDE and go to File -> New -> Java Project.
Step 3: Enter any name for your project and then uncheck the Use default
location box just under it and click on Browse.
Browse to the folder where you extracted your files and select the cloudsim-
3.0.3 folder.
Don’t click on Finish yet, because we need to add a jar file to our project.
Step 4 Click Next and go to Libraries -> Add External JARs. Now browse to
the same folder where you extracted your commons-math3 jar file and Open it.
Step 5 Finally click on Finish and wait for the project to build. After the project
has been built, from the Project Explorer you can click on your project and from
the dropdown go-to examples -> org.cloudbus.cloudsim.examples where you
can find pre-written sample codes and try to run them.
Scope