Cloud Computing: An Architectural Perspective

Cloud Computing is a term heavily used in today's world. Not even a day passes by without hearing the words "Cloud Computing". It has become an increasingly important part of every person's life. However, it is still largely an unknown entity to the majority of people. Learning about what it is and how it works would be very beneficial to all who use it. My goal for this study is to take an architectural perspective towards the implementation of Cloud Computing. On a high level, there are different kinds of cloud service available, and it needs a cloud client in order to access those services. Software-as-a-Service (SaaS) is a cloud delivery model, which is used to deliver the software application as a service over the Web. It eliminates the need to deploy or execute the application on the user's own machines. Since an application vendor is responsible for the maintenance and support of the application in the S a a S model, it allows the user to focus on using the application. Platform-as-a-Service (PaaS) is a cloud delivery model, which delivers a platform and a solution stack as a service to allow its users to develop and deploy the application, just by using the PaaS solution. It allows users to focus on the development and deployment aspect of the application and relieves them from the complexity of buying and managing the computing resources [48]. Infrastructure-as-a-Service (IaaS) is a delivery model that delivers computing infrastructure such as virtualized datacenters as a service. In this model, it provides users a hardware/software layer with computing resources, operating systems in the form of virtualized infrastructure. A careful examination of different Cloud Computing offerings and their providers can suggest alternatives about the advantages and disadvantages of their services. This study analyzes various Cloud Computing services and their providers in order to enlighten users about choices that can be made in moving their application to the cloud or moving to the cloud in general.