Cloud Service Models: Tutorial and Course

Cloud Service Models: Tutorial and Course - Cloud Service Models Tutorial and Cloud Service Models Course, The Ultimate Guide to Cloud Service Models. Learn Cloud Service Models Tutorial and Cloud Service Models Course at Cloud Service Models Tutorial and Course.

Cloud Service Models Tutorial and Cloud Service Models Course


Cloud Service Models: Overview


Cloud Service Models Tutorial and Course - Cloud Service Models tutorial and Cloud Service Models course, the ultimate guide to Cloud Service Models, including facts and information about Cloud Service Models. Cloud Service Models Tutorial and Course is one of the ultimate created by to help you learn and understand Cloud Service Models and the related cloud computing technologies, as well as facts and information about Cloud Service Models.



Cloud Service Models: Tutorial and Course - Cloud Service Models Tutorial and Cloud Service Models Course by , The Ultimate Guide to Cloud Service Models.



Cloud Service Models: Tutorial and Course


What Is Cloud Service Models?


Cloud Service Models include the following three types of cloud service model: Software as a Service (SaaS), Platform as a Service (PaaS), and Infrastructure as a Service (IaaS). Each cloud service model provides a level of abstraction that reduces the efforts required by the service consumer to build and deploy systems.



Cloud Service Models: Tutorial and Course


Choosing the right service model is a critical success factor for delivering cloud-based solutions. In order to choose the right service model or combination of service models, one must fully understand what each service model is and what responsibilities the cloud service providers assume versus the responsibilities the cloud service consumer assumes.



Cloud Service Models: Software as a Service (SaaS)

At the top of the stack is Software as a Service (SaaS). Software as a Service (SaaS) is a complete application delivered as a service to the service consumer. The service consumer has only to configure some application-specific parameters and manage users. The service provider handles all of the infrastructure, all of the application logic, all deployments, and everything pertaining to the delivery of the product or service. Some very common Software as a Service (SaaS) applications are customer relationship management (CRM), enterprise resource planning (ERP), payroll, accounting, and other common business software. Software as a Service (SaaS) solutions are extremely common for non-core-competency functionality. Companies choose to rely on Software as a Service (SaaS) solutions for non-core functions so they do not have to support the application infrastructure, provide maintenance, and hire staff to manage it all. Instead they pay a subscription fee and simply use the service over the Internet as a browser-based service.



The capability provided to the consumer is to use the provider's applications running on a cloud infrastructure. The applications are accessible from various client devices through either a thin client interface, such as a web browser (e.g., web-based email), or a program interface. The consumer does not manage or control the underlying cloud infrastructure, including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.



Cloud Service Models: Platform as a Service (PaaS)

The next level up on the stack is Platform as a Service (PaaS). What IaaS is to infrastructure, Platform as a Service (PaaS) is to the applications. PaaS sits on top of IaaS and abstracts much of the standard application stack - level functions and provides those functions as a service. For example, developers designing high-scaling systems often have to write a large amount of code to handle caching, asynchronous messaging, database scaling, and much more. Many Platform as a Service (PaaS) solutions provide those capabilities as a service so the developers can focus on business logic and not reinvent the wheel by coding for underlying IT "plumbing."



The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages, libraries, services, and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure, including network, servers, operating systems, or storage, but has control over the deployed applications and possibly configuration settings for the application-hosting environment.



The CSA describes Platform as a Service (PaaS) as: The delivery of a computing platform and solution stack as a service. Platform as a Service (PaaS) offerings facilitate deployment of applications without the cost and complexity of buying and managing the underlying hardware and software and provisioning hosting capabilities.



The CSA also mentions that Platform as a Service (PaaS) services are available entirely from the Internet. Platform as a Service (PaaS) vendors manage the application platform and provide the developers with a suite of tools to expedite the development process. Developers give up a degree of flexibility with Platform as a Service (PaaS) because they are constrained by the tools and the software stacks that the Platform as a Service (PaaS) vendor offers. The developers also have little-to-no control over lower-level software controls like memory allocation and stack configurations.



The Platform as a Service (PaaS) vendors control all of that and may even throttle how much compute power a service consumer can use so that the vendor can ensure the platform scales equally for everyone. Early Platform as a Service (PaaS) pioneers like Force.com, Google Apps Engine, and Microsoft Azure dictated both the platform stack and the underlying infrastructure to developers. Force.com dictates that developers write in Apex code and the underlying infrastructure must be on Force.com's data center. Google Apps Engine originally required that developers code in Python and on the Google data center while Azure originally required .NET technologies on Microsoft data centers. A new breed of Platform as a Service (PaaS) vendors have emerged and have created an open Platform as a Service (PaaS) environment where consumers can implement the Platform as a Service (PaaS) platform on the infrastructure of their choice and with many options for the development stack, including PHP, Ruby, Python, Node.js, and others. This approach is critical for widespread adoption by enterprises since many enterprises require or prefer to keep some or all of the application on-premises in a private cloud. Often, large enterprises leverage by keeping their data in a private cloud and moving non-mission-critical components into the public cloud.



Both Google and Microsoft now support multiple development languages, whereas in the past they only supported one.



Heroku and Engine Yard are examples of mature public Platform as a Service (PaaS) solutions that provide multiple stacks for developers, although now they can be deployed only on AWS. Another huge advantage of Platform as a Service (PaaS) is that these platforms integrate with numerous third-party software solutions, which are often referred to as plugins, add-ons, or extensions. Here are some examples of categories of extensions that can be found in most mature Platform as a Service (PaaS) solutions:





By leveraging APIs to access numerous third-party solutions, developers can provide fail over, high service level agreements (SLAs), and achieve huge gains in speed to market and cost efficiency since they don't have to manage and maintain the technology behind the APIs. This is the power of Platform as a Service (PaaS), where developers can quickly assemble a collection of mature and proven third-party solutions simply by calling APIs and not having to go through a procurement process followed by an implementation process for each third-party tool. Platform as a Service (PaaS) allows companies to focus on their core competencies and integrate with the best-of-breed tools in the marketplace. Platform as a Service (PaaS) is the least mature of the three cloud service models but analysts predict a huge boom in the Platform as a Service (PaaS) marketplace in the next several years.



Cloud Service Models: Infrastructure as a Service (IaaS)

There are three cloud service models: Software as a Service (SaaS), Platform as a Service (PaaS), and Infrastructure as a Service (IaaS). Each cloud service model provides a level of abstraction that reduces the efforts required by the service consumer to build and deploy systems. In a traditional on-premises data center, the IT team has to build and manage everything. Whether the team is building proprietary solutions from scratch or purchasing commercial software products, they have to install and manage one-to-many servers, develop and install the software, ensure that the proper levels of security are applied, apply patches routinely (operating system, firmware, application, database, and so on), and much more. Each cloud service model provides levels of abstraction and automation for these tasks, thus providing more agility to the cloud service consumers so they can focus more time on their business problems and less time on managing infrastructure.



The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, and deployed applications and possibly limited control of select networking components.



The Cloud Security Alliance (CSA), a standards organization for , states that Infrastructure as a Service (IaaS): Delivers computer infrastructure (typically a platform virtualization environment) as a service, along with raw storage and networking. Rather than purchasing servers, software, data center space, or network equipment, clients instead buy those resources as a fully outsourced service.



With Infrastructure as a Service (IaaS), many of the tasks related to managing and maintaining a physical data center and physical infrastructure (servers, disk storage, networking, and so forth) are abstracted and available as a collection of services that can be accessed and automated from code- and/or web-based management consoles. Developers still have to design and code entire applications and administrators still need to install, manage, and patch third-party solutions, but there is no physical infrastructure to manage anymore. Gone are the long procurement cycles where people would order physical hardware from vendors that would ship the hardware to the buyer who then had to unpackage, assemble, and install the hardware, which consumed space within a data center. With Infrastructure as a Service (IaaS), the virtual infrastructure is available on demand and can be up and running in minutes by calling an application programming interface (API) or launching from a web-based management console. Like utilities such as electricity or water, virtual infrastructure is a metered service that costs money when it is powered on and in use, but stops accumulating costs when it is turned off. In summary, Infrastructure as a Service (IaaS) provides virtual data center capabilities so service consumers can focus more on building and managing applications and less on managing data centers and infrastructure.



There are several Infrastructure as a Service (IaaS) vendors in the marketplace and too many to name in this Cloud Service Models Tutorial and Course. The most mature and widely used Infrastructure as a Service (IaaS) cloud service provider is Amazon Web Services (AWS). Rackspace and GoGrid are also early pioneers in this space. is an open source project that provides Infrastructure as a Service (IaaS) capabilities for those consumers who want to avoid vendor lock-in and want the control to build their own Infrastructure as a Service (IaaS) capabilities in-house, which is referred to as a private cloud. There are a number of companies that are building Infrastructure as a Service (IaaS) solutions on top of similar to how there are many different distributions of Linux.



Cloud Service Models: Summary

Cloud computing is revolutionizing the way software is built and delivered. We are in a paradigm shift, moving away from a legacy model where we buy and control infrastructure and build or buy software to a new world where we consume everything as services. It is critical that managers and architects fully understand the pros and cons of cloud computing, the definitions of each cloud service model, and the definitions of each cloud deployment model. When leveraged properly, cloud computing can bring an organization unprecedented agility and greatly reduced costs while connecting the organization to a global collection of services. However, if cloud computing is not fully understood, an organization can find itself building yet another collection of IT-silo-based software solutions that never delivers on its promises to the business.



Cloud Service Models: Further Reading