image description
Author Vadim
image description

Cloud Models And Their Differences

Cloud services for business are becoming more popular. This approach is convenient and inexpensive. Let's understand the features of different models of such services.

Cloud computing is a well-known technology, which is based on providing users with network access to various resources, such as data or applications. Each cloud infrastructure is built on one of three service models. Let’s consider them all step by step.

  • SaaS (Software as a Service) — applications running in the cloud that are accessed by end users through the web.
  • PaaS (Platform as a Service) — a set of tools and services that facilitate the development and deployment of cloud applications.
  • IaaS (Infrastructure as a Service) — a computing infrastructure (servers, data stores, networks, operating systems) that is provided to clients to deploy and run their own software solutions.

The described scheme can be represented in the form of a diagram:

One typical illustration of the terminological confusion is the very definition of SaaS, which Wikipedia says is also often referred to as “on-demand software”. If you follow the classification established in the documentation of the leader of the cloud market Salesforce, SaaS and on-demand application – are two very different descriptive categories.

SaaS is a relatively young and promising business strategy of a new way of delivering an application service to its end consumer, in which the application is traditionally hosted in the cloud environment of the application provider itself (the opposite is when SaaS is hosted under the control of the customer itself in the so-called “private clouds”, often referred to as On-Premise SaaS).

On-demand software is a feature of the software delivery model, which gives the opportunity to dynamically increase (or vice versa – dynamically decrease) the set of features and the degree of scaling of this application. For example, some IBM mainframes allow you to technically add the number of processors when there is a lack of capacity for the current task – this is a typical on-demand product design model. Therefore, strictly speaking, on-demand software is not synonymous with cloud computing, and the fact that this model is widely used there, due to the architectural features conducive to this, is not a reason to mix these two different concepts.

Cloud applications

Cloud applications are a much broader and abstract category of concepts than SaaS alone. A cloud application is an application that runs in the cloud, that is, it is not tied to any particular infrastructure, but runs in fully virtualized services, outside of which there is nothing for such an application. The vendor fully creates and maintains this virtual platform on its own, physically based on a large park of often heterogeneous computer architectures, thus enabling the application to completely abstract itself from the physical roots of the opportunities provided. Therefore, the concept of “cloud environment” or "cloud application" is only an indication of the architectural feature of the environment or a specific software solution, but, of course, it is not a synonym of SaaS, as it is sometimes claimed.

Usually, under the "cloud platforms" immediately imagine a set of services promoted under this brand such as Amazon Web Services or Google App Engine, while marketing is characterized by the use of typical for this environment of conflicting, partially duplicating terms, such as on-premise, outsourced, pay-as-you-go, on-demand, etc. – most often it further confuses the beginner.

If we reject the excessive artificial entanglement of this promoted concept, we can distinguish three main directions of development of this popular technology:

SaaS is something that most of us use on a daily basis in the form of such popular services as Gmail, YahooMail, service, Wikipedia, most of the third-party applications built on GoogleApps etc. 
Almost any visitor can register in these distributed applications, receive some remote service, while not caring about maintenance. This entire segment can be described by the already established term - Software as a Service.

The main consumers of SaaS are small and medium-sized businesses. Most SaaS applications are designed to support interaction between employees working together on common tasks (collaboration). The SaaS application architecture, where a single instance of the application running on the server, serves multiple consumers, is multi-tenant, i.e. each consumer is provided with its own instance of the virtual application during the execution of tasks.

The SaaS scheme provides the following types of cloud applications and their maintenance: Business Apps, Office Web Apps, Management Apps, Communications, Security, etc. 
The most popular cloud applications are CRM (Customer Relationship Management system), HRM (Human Resources Management), ERP (Enterprise Resource Planning system), office applications, communication tools, etc.

PaaS is a newer development than SaaS, which offers developers cloud-based applications. Developers coming to such a vendor, get at their disposal ready-made development tools and sets of ready-made components that they can use to quickly build applications of the SaaS level, discussed above. The second component of these platforms is the associated specialized hosting that allows you to sell a double product. On the one hand, it is a platform and tools for development on its basis, and on the other hand – a ready environment for launching and cloud hosting applications created on the basis of these tools. It is important to understand that this level of the environment is a response of the market to the popularity of the top floor cloud concept, – SaaS. The surge in popularity of complex distributed applications such as Gmail has generated offers of ready-made environments for their creation, development and hosting. 

The PaaS service provides the software platform and its maintenance as a service consisting of:

  • The OS - network operating system (Unix systems including Ubuntu Server, BSD / OS Family, Solaris / SunOS, etc. or Windows Server),
  • Database - database management system (MySQL, Microsoft SQL, SQL Database, PostgreSQL, Oracle, etc.),
  • Middleware is a software of the middle layer or linking (intermediate) software, which is designed to provide interaction between different applications, systems and components,
  • Software development tools and testing - software for web application development and testing (software development environment: software frameworks, libraries, etc.) for creating web applications in programming languages: Python, Java, PHP, Ruby, JS for Node.js, etc.),
  • App server is an application server for developing, testing, debugging, and running web applications.

Thus, PaaS offers for developers the means to develop, test, deploy and support various applications.

IaaS is the most root cloud service offering, which creates, figuratively speaking, a physical foundation of the server park, configured for synchronous and redundant work, on the basis of which is built any building of cloud services, whether SaaS or PaaS. Imagine this as a pile of iron at the entrance, where at the output you get as a service exactly the cloud from the already virtually working servers, on the power of which you can run any of their cloud solutions. Here, everything is measured by the size of the quota provided from the total capacity of the pool of involved computers, allocated to you disk and RAM, and other, for the most part, virtual resources. This is Infrastructure as a Service.

The user is provided with abstract elastic computing power, for example, not a server or servers, and server time for processing its tasks. No disks for storing data but required disk space, not communication channels, but everything required for solving network bandwidth is switching.

In addition to virtualization, IaaS creation uses automation that provides dynamic resource allocation without the involvement of service provider staff, i.e. the system can automatically add or reduce the number of virtual servers, disk space for data storage, or change the network bandwidth of communication channels. Virtualization and automation ensure efficient use of computing resources and decrease the cost of renting cloud IaaS services.

IaaS is an enterprise-level solution for enterprises of different scale. The infrastructure can be placed both in the enterprise data center and in the external data center. IaaS services are designed to create and use secure private, public, and hybrid cloud environments. Providers can build hybrid cloud configurations that combine on-premises networks in the customer's office with the networks of the cloud platform.

In addition, IaaS-cloud computing services include –°loud Hosting. Cloud hosting is a hosting that can provide dynamic resource allocation, has the ability to automatically scale resources and has increased fault tolerance. Cloud hosting is an essential alternative to virtual hosting, hosting on a virtual dedicated VPS / VDS server and hosting on a physical dedicated server.

Typically, IaaS is available for rent (available IaaS service can be outsourced) corporate users. That is, users get integrated resources to create their own computing infrastructure. In this case, the user must install and configure the OS and the necessary software to perform production tasks or to develop applications.

The IaaS concept allows the user to purchase only the computing power that is required for specific tasks. Additional IaaS services may include the connection of any user's physical equipment to the cloud platform and its placement in the data center network.

In addition, every time you come across a mention of the following, popular in the recent past, technologies or concepts - it should be understood that in the modern context all this represents exactly cloud computing.

In recent years, cloud computing has received a very serious development, where each direction is gradually specialized and allocated to separate market niches. To understand the cloud web is quite simple if you clearly understand the models for which services are provided. 

Companies that plan to start using the cloud should explore different aspects and varieties of such services to choose the ones that are best suited to meet their needs.
Start working with us today!