Definition of Cloud Computing
Cloud computing is a term that can be defined as having an IT processing as a service rather than product or software and easiest way to visualize it is to compare to electricity. In addition, Cloud computing is an emerging computing model for enabling an on-demand network access to a shared pool of configurable computing resources , such as networks, servers, storage, applications , and services that can be rapidly provisioned and released with minimal management effort or service provider interaction . Therefore, customers may avoid owning computing infrastructure through renting from computing providers.In this way, cloud users may benefit from the reduced cost and the rapid cloud service provisioning, in addition to their capability of expanding or reducing their computing infrastructures efficiently on-demand.
Another definition of cloud computing is that it describes a new supplement , consumption and delivery model for IT services based on internet, and typically involves the provision of dynamically scalable and often virtualized resources as a service over the internet. In general, large numbers of cloud customers are small and medium enterprises (SMEs) as in many cases they cannot afford the large capital expenditure of traditional IT. These SMSs will only pay on demand, as they do for other utilities such as water and electricity. Furthermore, as any other technology, cloud computing provides benefits as well as risks need to be mitigated. For instance, cloud computing benefits include increased scalability, pay-as-you-go model, disaster recovery, and increased mobility, while primary risks that may slow cloud adoption include vendor lock-in, security, privacy and confidentiality and poor service level agreements (SLAs). Furthermore, Cloud computing can be broken into three service models, namely, Application, Platform and Infrastructure. Application (Software as a service) is the highest layer in the cloud stack where end customers can purchase a working application. In other words, SaaS solution is composed of some intrinsic elements, such as pay-as-you-go based contractibility, flexibility in scalability and elasticity, share-ability of the resource, out-of-the box service–based. In this service, applications are transferred to millions of users through browsers, where providers and end users may save costs through maintenance and pay-as-you-go respectively. Therefore, consumers don’t manage the underlying cloud infrastructure. What is more, no upfront investment or software licenses are needed. Salesforce is one of the best-known providers of this service, especially, Saleforce Customer Relationships Management (CRM) system. In addition, SaaS is commonly used for HR apps and has been worked its way up the food chain to enterprise resource planning (ERP), with players such as Workday. In any case, advantages of using SaaS include proliferation, data integration, exit strategy, and minimal customization.
Furthermore, SaaS service model enables a complete application solution to be offered as a service to a user, who may access it via user-centric interface. In this way, service provider is responsible for the deployment, maintenance, update, and security of the application. Although, security and confidentiality issues are concerned, SaaS advantages over traditional software distribution include location-agnostic, seamless upgrade, data recovery and backup, instant deployment and zero infrastructure ownership. Additionally, SaaS is remotely managed and delivered by external provider. In this regard, SaaS usage involves not only security and confidentiality risks but also service level agreements and contracts. Moreover, shared resources of the cloud may enhance economic scale benefits, such as price reduction. However, scalability, agility and shortened time to market may be primary drivers for SaaS adoption. In traditional approach, software delivery was based on an application instance for single user according to customer’s requirement. Therefore, software application was very expensive, while security issues were addressed. On the other hand, multitenancy feature in SaaS model dramatically reduces costs but unfortunately raised security threats. Furthermore, multitenancy design approach is based on virtual partitions of data and configurations for letting client to work customized instance of the application. Therefore, Multitenancy should not be confused with multiuser. In addition, benefits of multitenancy approach include less complex maintenance of the application, hardware resources utilization and overall lower price. The second cloud model, Platform as a service (PaaS) or development as a service, deliver a solution stack which consumes cloud infrastructure to sustain SaaS.This solution enormously facilitates application development and/or deployment. In addition, capability provided to use consumer is to provision storage, networks, processing and other resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. Although, consumers don’t control underlying cloud infrastructure, but may have control over operating systems, storage, deployed/developed applications, and possibly selection of networking components. In the context of cloud computing, application infrastructure (AI) embedded and enhanced with features of cloud computing is being offered to customers as a cloud-based products to enable business application and defined as PaaS.
PaaS model is an application platform which provides a complete stack of development, building, operating applications and services, deployment, testing, hosting, storage, security and also versioning. As a consequence, PaaS user can develop applications without installing any development kit or database server on local machine. Furthermore, cloud based application infrastructure (aka PaaS) solution has more benefits than application infrastructure located on-premises. For instance, Cloud PaaS offers multitenancy provisioning, tracking, and elastically horizontal scaling, customizable configurations, web interface, enhanced privacy and tenant bases security as well as tenant bases self-service administration. As consequence, remarkable advantages of PaaS include faster time to market (TTM), reusable data formats, zero upfront cost, simplified deployment and development environment abstraction as well as time and cost effective. In addition, PaaS shares a porous border with IaaS in terms of terminology and offering, thus increasing misunderstanding of cloud computing concepts. For instance, PaaS may be deployed on IaaS as Heroku on Amazon or may be detached from IaaS such as Force.com. In this regard, PaaS can be defined as a technology services layered between system infrastructure layer (IaaS) and SaaS, thus middleware solution. Although, some vendors may offer pure PaaS or pure IaaS, others may combine them as IaaS plus middleware which runs on virtual machine and offers as a complete solution, such as Netsuite that markets amalgamation of SaaS and PaaS and isolated PaaS by Force.com. Furthermore, Tools and Software APIs PaaS platform offers are similar to on-premises infrastructure, such as application and database management tools for both tenants to conduct self-service related operations through service layer and providers for managing technology stack of the platform, business process technologies, application servers, enterprise services, as well as application development tools. Finally, Cloud multitenancy that is based on logically exclusive instances running on a shared environment, where each tenant (user) operates on exclusive resources in computing environment, can be implemented differently according to required type of multitenancy, whether custom based or not, and the degree of depth of sharing.
Furthermore, tenancy types, application and enterprise, cannot be easily isolated from each other. For the enterprise type, collection of instances of the applications is running in a shared environment, where each instance serves individual platform user. In addition, application type tenant concept is based on several applications running on shared environment where customers use them from the cloud.
In general, PaaS platform generally comes equipped with ready software developing technologies, such as Python, Java, LAMP and .Net, so as to enable consumers to focus on writing code. Some platforms are dedicated to lightweight development, such as Dapper.net and Yahoo Pipes. The advantages of PaaS include buying fully functional production environment, focus on business value rather than platform, and leverage economies of scale.
Infrastructure as a service (IaaS), the capability provided to the customer is to provision processing, storage, networks, and other fundamental computing resources where the customer is able to deploy and run arbitrary software, which can include operating systems and applications. Therefore, IaaS is an evolutionary process based on hardware delivery, such as network, storage combined with software delivery, such as OS as a cloud service. Fundamental IaaS characteristics include internet based, on-demand scaling, hardware virtualization and management through orchestration process. Furthermore, this model can be defined as computer infrastructure delivery as a service with usage-based pricing model. Advantages of IaaS include peak leveling and high scalability, while risks are potential vendor lock-in, privacy and security. Features of IaaS infrastructure that IaaS provider offers to the potential customers include management and networking capability, virtual environments, and persistence storage.
Additionally, IaaS platform offers provisioning and de-provisioning of on-demand computing resources where billing is based on usage metric. Depending on cloud and source type, There are varies IaaS delivery models including outsourced private cloud, insourced private cloud and outsourced public cloud. In addition, IaaS generally acts as a computing and storage utilities, where scalable, flexible and on-demand based usage storage capabilities are delivered to the potential customers via standard web interface. For the IaaS computing resource, there are various delivery models that IaaS provider can utilize depending on customer demands. For instance, IaaS customers who require a guaranteed computing resource will be offered a committed based approach, where provisioned resources are committed to this customer. Moreover, for customers who have not demanded any guaranteed resources may be offered to a simplified delivery approach, where provider will exert a best effort to allocate demanded resource, but nothing is guaranteed, and finally, middle ground for both approaches where only certain amount of computing resources are guaranteed for the customer to utilize, but customer may also use if there is any extra and unutilized capacity. In addition, IaaS providers offer service level agreement (SLAs) that cover different types of cloud service elements including network based SLAs for connection and internet availability, Persistence (Storage) SLAs, which covers throughput based storage performance measuring or input/output operation per second. In addition, some organization may have the needs to create a hybrid IaaS cloud by combining an internal IaaS with an external cloud service using orchestrator for automating processes between clouds.
In general, cloud computing business model has various advantages in terms of cost, on-demand provisioning services and elastic scalability over traditional IT services. However, security threat is the primary element that fastens the widespread of cloud computing. For instance, insecure APIs or interfaces to access cloud services, reliability, and data leakage/loss. In this respect, customer’s discomfort in these issues is the biggest hurdle to the adoption of cloud computing. Therefore, Cloud customers expect from cloud providers to preserve data integrity against data improper information destruction and confidentiality against unauthorized access through access control policy done through authentication and authorization. In addition, role-based security policy for application modification must also be implemented. Further, while IaaS is suitable for some situations, it may not be suitable for others. A situation where IaaS Model is best suitable includes, when resource demand is an extremely volatile, extreme scaling needed, conducting pilot or temporary projects and organizations’ capex reduction. By contrast, IaaS adoption would not provide any value when organization’s dedicated infrastructure meets its needs. The boundary between IaaS and PaaS is recently getting blurred in the cloud market forcing IaaS providers to expand service portfolios by including PaaS related offerings, thus creating hybrid cloud.
In addition, IaaS can be located either in public domain called public IaaS, where computing and networking infrastructure is managed and maintained by third party, namely, IaaS provider, or it can be managed and maintained by an organization due to security concerns, thus private IaaS.