CLOUD APPLICAION PROGRAMMING AND ANEKA PLATFORM
Chapter 3
CLOUD APPLICATION PROGRAMMING & ANEKA
PLATFORM
FRAMEWORK OVERVIEW
▪ Aneka is a software platform for developing cloud computing applications.
▪ Aneka is a pure PaaS solution for cloud computing.
▪ Aneka is a cloud middleware product that can be deployed on a heterogeneous
set of resources: a network of computers, a multicore server, datacenters,
virtual cloud infrastructures, or a mixture of these.
▪ The framework provides both middleware for managing and scaling distributed
applications and an extensible set of APIs for developing them.
Below provides a complete overview of the components of the Aneka framework:
Inside the Aneka Cloud environment there are different aspects involved in
providing a scalable and elastic infrastructure and distributed runtime for
applications.
JANHAVI N L, Ass. Prof., Dept. of B.C.A, VVFGC, Tumkur 1
CLOUD APPLICAION PROGRAMMING AND ANEKA PLATFORM
These services involve:
➢ Elasticity and scaling:
Aneka supports dynamically upsizing and downsizing of the infrastructure
available for applications.
➢ Runtime management:
It is primarily represented by the container and a collection of services that
manage service membership and lookup, infrastructure maintenance, and
profiling.
➢ Resource management:
Aneka is an elastic infrastructure in which resources are added and removed
dynamically according to application needs and user requirements.
➢ Application management:
A specific subset of services is devoted to managing applications. These
services include scheduling, execution, monitoring, and storage management.
➢ User management:
Aneka is a multitenant environment supporting multiple user applications,
offering an extensible user system crucial for security, defining users, groups,
and permissions, and essential for accounting management.
➢ QoS/SLA management and billing:
Within a cloud environment, application execution is metered and billed. Aneka
provides a collection of services that coordinate together to take into account
the usage of resources by each application and to bill the owning user
accordingly
-----------------------------------------------------------------------------------------
ANATOMY OF THE ANEKA CONTAINER
The Aneka container constitutes the building blocks of Aneka Clouds and
represents the runtime machinery available to services and applications.
The main role of the container is to provide a lightweight environment in
which to deploy services and some basic capabilities such as communication
channels through which it interacts with other nodes in the Aneka Cloud.
The services installed in the Aneka container can be classified into three major
categories:
➢ Fabric Services
➢ Foundation Services
➢ Application Services
FABRIC SERVICES
▪ Fabric Services define the lowest level of the software stack representing the
Aneka Container.
▪ Fabric Services provide access to the resource-provisioning subsystem and
to the monitoring facilities implemented in Aneka.
JANHAVI N L, Ass. Prof., Dept. of B.C.A, VVFGC, Tumkur 2
CLOUD APPLICAION PROGRAMMING AND ANEKA PLATFORM
▪ Resource-provisioning subsystem dynamically providing new nodes on demand
by relying on virtualization technologies.
▪ The monitoring facilities allow for hardware profiling implement a basic
monitoring infrastructure that can be used by all the services installed in the
container
▪ Resource management is another fundamental feature of Aneka Clouds. It
comprises several tasks: resource membership, resource reservation, and
resource provisioning.
▪ Aneka provides a collection of services that are in charge of managing
resources. These are the Index Service (or Membership Catalogue),
Reservation Service, and Resource Provisioning Service.
▪ Profiling and monitoring services are mostly exposed through the Heartbeat,
Monitoring, and Reporting Services.
▪ The Heartbeat Service periodically collects the dynamic performance
information about the node and publishes this information to the membership
service in the Aneka Cloud.
▪ Reporting Services manages the store for monitored data and makes them
accessible to other services or external applications for analysis purposes
▪ Monitoring Services acts as a gateway to the Reporting Service and forwards to
it all the monitored data that has been collected on the node
FOUNDATION SERVICES
▪ Foundation Services are related to the logical management of the distributed
system built on top of the infrastructure.
▪ Foundation Services provide supporting services for the execution of distributed
applications.
▪ These services are integrated by all supported programming models to provide
advanced and comprehensive application management.
▪ These services cover:
➢ Storage management for applications
➢ Accounting, billing, and resource pricing
➢ Resource reservation
Storage management for applications:
Aneka offers two different facilities for storage management
1. Centralized file storage
Centralized file storage used for the execution of compute intensive
applications require powerful processors, centralized storage node, or a pool of
storage nodes are sufficient.
2. Distributed file system
Distributed file system suitable for the execution of data-intensive applications and
the processing power does not constitute a performance bottleneck.
Accounting, billing, and resource pricing:
Accounting Services in Aneka:
- Tracks application status and provides a detailed breakdown of distributed
infrastructure usage.
JANHAVI N L, Ass. Prof., Dept. of B.C.A, VVFGC, Tumkur 3
CLOUD APPLICAION PROGRAMMING AND ANEKA PLATFORM
-Captures a comprehensive history of application execution, storage, and
resource utilization, forming the basis for user charges in Aneka.
Manages billing in the multitenant cloud platform:
- Offers detailed information on user resource usage and associated costs.
- Provides varied pricing based on services, offering an integrated budget
view and detailed cost breakdown for each application and user.
Resource Reservation
Aneka's Resource Reservation supports the execution of distributed applications
It is built on majorly 2 different services :
o Resource Reservation ,
o Allocation Service
Reservation Request:
Applications with time-sensitive deadlines request reservations for a specific
number of nodes within a given timeframe.
Reservation Confirmation:
The Reservation Service processes the request and, if possible, confirms the
reservation by providing a unique reservation identifier.
Application Execution:
During execution, the application utilizes the reservation identifier to select and
use the reserved nodes, ensuring exclusive access.
Allocation Service Verification:
On each reserved node, the Allocation Service verifies job permissions using the
reservation identifier, ensuring valid occupation of the execution timeline.
APPLICATION SERVICES
▪ Manage the execution of applications and constitute a layer that differentiates
according to the specific programming model used for developing distributed
applications on top of Aneka.
▪ The types and the number of services that compose this layer for each of the
programming models may vary according to the specific needs or features of
the selected model.
▪ Two major types of activities that are common across all the supported models
are:
o Scheduling and
o Execution.
▪ Common tasks that are performed by the scheduling component are the
following:
o Job to node mapping
o Rescheduling of failed jobs
o Job status monitoring
o Application status monitoring
▪ Control the execution of single jobs that compose applications. They are in
charge of setting up the runtime environment hosting the execution of jobs.
▪ Some common operations that apply across all the range of supported models:
o Unpacking the jobs received from the scheduler
o Retrieval of input files required for job execution
JANHAVI N L, Ass. Prof., Dept. of B.C.A, VVFGC, Tumkur 4
CLOUD APPLICAION PROGRAMMING AND ANEKA PLATFORM
o Sandboxed execution of jobs
o Submission of output files at the end of execution
o Execution failure management (i.e., capturing sufficient contextual
information useful to identify the nature of the failure)
o Performance monitoring
o Packing jobs and sending them back to the scheduler
----------------------------------------------------------------------------------------
BUILDING ANEKA CLOUDS
Aneka is a platform for developing distributed applications for clouds. Aneka
supports various deployment models for public, private, and hybrid clouds.
Infrastructure Organization
The infrastructure involves deploying nodes and installing the Aneka node
manager (daemon), a remote management service for deploying and controlling
container instances, ultimately forming the Aneka Cloud.
Repositories, crucial for Aneka Cloud deployment, store libraries necessary
for the platform. These repositories offer libraries through channels like HTTP, FTP,
or file sharing.
The Management Console handles multiple repositories, selecting the most
suitable one.
Logical Organization
The logical organization of Aneka Clouds can be very diverse, since it
strongly depends on the configuration selected for each of the container instances
belonging to the Cloud.
The most common scenario is to use a master-worker configuration with
separate nodes for storage, as shown in Figure
JANHAVI N L, Ass. Prof., Dept. of B.C.A, VVFGC, Tumkur 5
CLOUD APPLICAION PROGRAMMING AND ANEKA PLATFORM
A common configuration of the master node is as follows:
o Index Service (master copy)
o Heartbeat Service
o Logging Service
o Reservation Service
o Resource Provisioning Service
o Accounting Service
o Reporting and Monitoring Service
o Scheduling Services for the supported programming models
A very common configuration of the worker node is the following:
o Index Service
o Heartbeat Service
o Logging Service
o Allocation Service
o Monitoring Service
o Execution Services for the supported programming model
The common configuration of a storage node is the following:
o Index Service
o Heartbeat Service
o Logging Service
o Monitoring Service
o Storage Service
JANHAVI N L, Ass. Prof., Dept. of B.C.A, VVFGC, Tumkur 6
CLOUD APPLICAION PROGRAMMING AND ANEKA PLATFORM
Private cloud deployment mode
This deployment is acceptable for a scenario in which the workload of the
system is predictable and a local virtual machine manager can easily address
excess capacity demand.
Most of the Aneka nodes are constituted of physical nodes with a long
lifetime and a static configuration and generally do not need to be reconfigured
often.
Below figure shows a common deployment for a private Aneka Cloud:
Public Aneka cloud deployment
Public Cloud deployment mode features the installation of Aneka master and
worker nodes over a completely virtualized infrastructure that is hosted on the
infrastructure of one or more resource providers such as Amazon EC2 or GoGrid.
Below figure an overview of this scenario.
JANHAVI N L, Ass. Prof., Dept. of B.C.A, VVFGC, Tumkur 7
CLOUD APPLICAION PROGRAMMING AND ANEKA PLATFORM
Aneka deployment within a single IaaS provider ensures cost-effective data
transfer and optimal network performance, allowing dynamic provisioning for
elastic scaling.
The Resource Provisioning Service, configured with diverse images and
templates, plays a pivotal role, along with Accounting and Reporting Services,
crucial for billing in a multitenant Cloud based on user and application resource
consumption.
Hybrid cloud deployment
This infrastructure will constitute the static deployment of Aneka that can be
elastically scaled on demand when additional resources are required.
This scenario constitutes the most complete deployment for Aneka that is able to
leverage all the capabilities of the framework:
o Dynamic Resource Provisioning
o Resource Reservation
o Workload Partitioning
o Accounting, Monitoring, and Reporting
------------------------------------------------------------------------------------------
CLOUD PROGRAMMING AND MANAGEMENT
Aneka provides developers with a comprehensive and extensible set of APIs,
administrators with powerful and intuitive management tools.
Aneka SDK
Aneka provides APIs for developing applications on top of existing
programming models, implementing new programming models, and developing
new services to integrate into the Aneka Cloud.
JANHAVI N L, Ass. Prof., Dept. of B.C.A, VVFGC, Tumkur 8
CLOUD APPLICAION PROGRAMMING AND ANEKA PLATFORM
The SDK provides support for,
➢ Application Model
➢ Service Model
Application Model
▪ Application model covers the development of applications and new
programming models.
▪ This model represents the minimum set of APIs that is common to all the
programming models for representing and programming distributed
applications on top of Aneka.
▪ This model is further specialized according to the needs and the particular
features of each of the programming models.
Service Model
▪ Service Model defines the general infrastructure for service development.
▪ The Aneka Service Model mandates that services in the Aneka Cloud adhere to
the IService interface within a container.
▪ This interface includes essential elements like Name, Status, and Control
operations (Start, Stop, Pause, Continue), along with message handling
through the HandleMessage method.
▪ Services may extend functionalities by providing clients as needed.
JANHAVI N L, Ass. Prof., Dept. of B.C.A, VVFGC, Tumkur 9
CLOUD APPLICAION PROGRAMMING AND ANEKA PLATFORM
Service model Life cycle
Service Initialization:
Services start in the Unknown or Initialized state during creation.
Container Startup:
Start method is called during container startup.
Services move from Initialized to Starting and finally to Running state.
Error Handling:
If an exception occurs during startup, the service goes to the Unknown
state, indicating an error.
Pause/Resume:
While Running, services can be paused (Pausing, Paused) and resumed
(Resuming, Running).
Container Shutdown:
Stop method is called during container shutdown.
Services go from Running to Stopping and finally to Stopped state.
-----------------------------------------------------------------------------------------------------------------------------
MANAGEMENT TOOLS
▪ Aneka is a pure PaaS implementation and requires virtual or physical hardware
to be deployed.
▪ Infrastructure Management:
o Aneka leverages both virtual and physical hardware, with the Resource
Provisioning Service handling virtual resources and the Administrative
Console managing physical hardware through the PAL API.
▪ Platform Management:
o Infrastructure forms the base for Aneka Clouds, deploying services and
containers. Platform management includes logical organization,
JANHAVI N L, Ass. Prof., Dept. of B.C.A, VVFGC, Tumkur 10
CLOUD APPLICAION PROGRAMMING AND ANEKA PLATFORM
partitioning hardware for various Cloud configurations, and essential
operations like monitoring and resource provisioning.
▪ Application Management:
o Aneka's management layer provides APIs for monitoring and profiling,
enabling administrators to track resource usage by users and
applications.
o The Aneka Cloud Management Studio serves as the central
Administrative Console, offering detailed insights into application
execution and resource utilization.
JANHAVI N L, Ass. Prof., Dept. of B.C.A, VVFGC, Tumkur 11