A programming framework to ease development of tightly-coupled cloud applications (original) (raw)
Related papers
Developing Elastic Software for the Cloud
2016
Developing standalone applications running on a single computer is very different from developing scalable applications running on the cloud, such as data analytics applications that process terabytes of data, Web applications that receive thousands of requests per second, or distributed computing applications where components run simultaneously across many computers. Cloud computing service providers help facilitate the development of these complex applications through their cloud programming frameworks. A cloud programming framework is a software platform to develop applications in the cloud that takes care of nonfunctional concerns, such as scalability, elasticity, fault tolerance, and load balancing. Using cloud programming frameworks, application developers can focus on the functional aspects of their applications and benefit from the power of cloud computing. In this chapter, we will show how to use some of the existing cloud programming frameworks in three application domains: data analytics, Web applications, and distributed computing. More specifically, we will explain how to use MapReduce (Dean and Ghemawat, 2008) for data analytics, Google App Engine (Google, 2014) for Web applications, and SALSA (Varela and Agha, 2001) for distributed computing. The rest of the chapter is structured as follows. In section 50.2, we describe nonfunctional concerns supported at different levels of cloud services and go through existing cloud programming frameworks. In section 50.3, we explain MapReduce, Google App Engine, and Simple Actor Language System and Architecture (SALSA). In section 50.4, we illustrate how to use these three programming frameworks by showing example applications. Finally, we conclude the chapter in section 50.5.
Programming Model Support for Dependable, Elastic Cloud Applications
2012
An attractive approach to leveraging the ability of cloud-computing platforms to provide resources on demand is to build elastic applications, which can scale up or down based on resource requirements. To ease the development of elastic applications, it is useful for programmers to write applications with simple, inelastic semantics and rely on runtime systems to provide elasticity. While this approach has been useful in restricted domains, such as MapReduce, we argue in this paper that adding elasticity to general distributed applications introduces new fault-tolerance challenges that must be addressed at the programming model and run-time level. We discuss a programming model for writing elastic, distributed applications, and describe an approach to fault-tolerance that integrates with the elastic run-time to provide transparent elasticity and fault-tolerance.
State of Art Survey for Significant Relations between Cloud Computing and Distributed Computing
International Journal of Science and Business, 2020
Cloud computing plays a significant role in the world of computers. It is a modern technology that provides a fast access mechanism, expandable, reliable, and provides user specific-facilities such as software services and infrastructure. Through the Internet, the user can access resources wherever they are, so this technology is beneficial in their daily lives. Cloud services provided by the cloud (SAAS, PAAS, IAAS) enable the user to access programs and the platform. Security is the main problem facing the cloud, so people think that using the cloud and its services is not safe, as there is no guarantee of stored information. Distributed computing is a computer division that explores distributed systems, and a distributed system is a system. That exists on computers connected to the network to be communicated through messages passed between each other. Using distributed computing systems has increased due to lower hardware costs and advances in computer network technologies. Distributed computing systems provide the potential for better efficiency and sharing of resources. This article will give a brief overview of cloud history computing, its evolution, advantages, and security aspects, as well as the history of distributed computing, its structure, applications, benefits, and disadvantages. IJSB 1. Introduction These days, cloud computing has started gaining strong popularity, has moved global, and has begun to attract the attention of the commercial and academic communities. Performance enhancement using the technique of load balancing. We can spread the process and balance between servers for job processing and enhance the efficiency of our distributed system by using load balance between servers (Rashid et al., 2018). Despite all this, its development did not reach the required level until this hour, and searches for it are continuing. Using ERP systems provides the customer with accountability in the entire creation of the company, from which all departments can access recorded information to ensure that the correct procedures are carried out (Google and IBM Announce University Initiative to Address Internet-Scale Computing Challenges, 2007; SUBHI R.M. Zeebaree, Salim, et al., 2020). Cloud computing allows hardware and software programs managed by a company for users to use elsewhere and store data, share information and customer applications, as it provides its services to the user via about the Internet. Hadoop, Dryad, and another map reducing framework are the most common technologies used in the cloud system. There are also several instruments, such as Cap3, HEP, and Cloudburst, used to optimize the cloud system's efficiency. In distributed systems, the Hadoop Distributed File System is used to store and calculate the number of words in a large database. Compared with other applications used for the same reason, Hadoop's performance in distributed systems is obviously very good. Cloud providers need to give customers a good asset to extend their QoS The computations-over-Internet situation refers to the location of the sign-in of multiple customers, taking into account that Internet resources have to be allocated animatedly to concentrate on the cost composition (Alzakholi et al., 2020; Haji et al., 2020; Subhi et al., 2020). Cloud computing has attributes that distinguish it from others, in addition to that it reduces the material cost of the user, reduces management and saves the user from the burden of purchasing and maintaining the infrastructure, all these features have made it an important name in information technology during the current era. Due to over-provision and under-provision issues, the process of supplying clients with shared virtualized resources (hardware, applications, and platform) is a major challenge for the cloud provider (Gowda & Subramanya, 2015; Shukur et al., 2020).
A coordinator for scaling elastic applications across multiple clouds
Future Generation Computer Systems
Cloud computing allows customers to dynamically scale their applications, software platforms, and hardware infrastructures according to negotiated Service Level Agreements (SLAs). However, resources available in a single Cloud data center are limited, thus if a large demand for an elastic application is observed in a given time, a Cloud provider will not be able to deliver uniform Quality of Service (QoS) to handle such a demand and SLAs may be violated. One approach that can be taken to avoid such a scenario is enabling further growing of the application by scaling it across multiple, independent Cloud data centers, following market-based trading and negotiation of resources. This approach, as envisioned in the InterCloud project, is realized by agents called Cloud Coordinators and allows for an increase in performance, reliability, and scalability of elastic applications. In this paper, we propose both an architecture for such Cloud Coordinator and an extensible design that allows...
POPULAR CLOUD APPLICATIONS: A CASE STUDY
Cloud Computing: Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction . Three delivery models of Cloud Software as a Service (SaaS): The consumer uses an application, but does not control the operating system, hardware or network infrastructure on which it's running. Platform as a Service (PaaS): The consumer uses a hosting environment for their applications. The consumer controls the applications that run in the environment (and possibly has some degree of control over the hosting environment), but does not control the operating system, hardware or network infrastructure on which they are running. The platform is typically an application framework. Infrastructure as a Service (IaaS): The consumer uses "fundamental computing resources" such as processing power, storage, networking components or middleware. The consumer can control the operating system, storage, deployed applications and possibly networking components such as firewalls and load balancers, but not the cloud infrastructure beneath them.
Are clouds ready for large distributed applications
Operating Systems Review, 2010
Cloud computing carries the promise of providing powerful new models and abstractions that could transform the way IT services are delivered today. In order to establish the readiness of clouds to deliver meaningful enterprise-class IT services, we identify three key issues that ought to be addressed as first priority from the perspective of potential cloud users: how to deploy large-scale distributed services, how to deliver high availability services, and how to perform problem resolution on the cloud. We analyze multiple sources of publicly available data to establish cloud user expectations and compare against the current state of cloud offerings, with a focus on contrasting the different requirements from two classes of users -the individual and the enterprise. Through this process, our initial findings indicate that while clouds are ready to support usage scenarios for individual users, there are still rich areas of future research to be explored to enable clouds to support large distributed applications such as those found in enterprises.
Deploying Efficiently Modern Applications on Cloud
2022
This study analyses some of the leading technologies for the construction and configuration of IT infrastructures to provide services to users. For modern applications, guaranteeing service continuity even in very high computational load or network problems is essential. Our configuration has among the main objectives of being highly available (HA) and horizontally scalable, that is, able to increase the computational resources that can be delivered when needed and reduce them when they are no longer necessary. Various architectural possibilities are analysed, and the central schemes used to tackle problems of this type are also described in terms of disaster recovery. The benefits offered by virtualisation technologies are highlighted and are bought with modern techniques for managing Docker containers that will be used to build the back-end of a sample infrastructure related to a use-case we have developed. In addition to this, an in-depth analysis is reported on the central autos...
2014
Abstract—Cloud Platforms allow programmers to write ap-plications that run in the cloud, or use services from the Cloud, or both while abstracting the essence of scalability and distributed processing. With the emergence of Clouds as a nascent architecture, we need abstractions that support emerging programming models. In recent years, Cloud Computing has led to the design and developement of diverse programming models for Massive Data Processing and Compute Intensive Applications. We survey different programming models for the Cloud, including the popular MapReduce Model and others which improve upon its shortcomings. Further, we look at models which are promising alternatives to these parallel programming models.