Developing Elastic Software for the Cloud

Shigeru Imai, Pratik K. Patel, Carlos A. Varela · 2016

Cloud computing provides great opportunities for application developers to create scalable and elastic applications in a cost-efficient manner. More specifically, well designed cloud computing services offer not only scalability and elasticity but also fault tolerance, data locality, load balancing, and pricing models associated with various QoS policies. As cloud providers take care of these non-functional concerns, the application developers can focus on the functional aspects of their applications and benefit from the power of cloud computing. From the application developer's perspective, programming models and frameworks to develop cloud applications largely depend on the layered architecture of the cloud-computing paradigm, i.e., whether the application is to be deployed on IaaS (infrastructure as a service) or PaaS (platform as a service) clouds. In this chapter, we describe Google App Engine as an example of a PaaS programming framework beside MapReduce and SALSA (Simple Actor Language System and Architecture) as examples of distributed computing frameworks available on PaaS and IaaS. To give concrete usage examples of these frameworks, we show a data analytics application using MapReduce, a Web application using Google App Engine, and a distributed computing application using SALSA respectively

Read the paper · More papers on PaperTik