They have been talking about clouds, cloud technologies and virtualization for a long time, especially about the three most popular service models: software as a service (SaaS), platform as a service (PaaS), and
infrastructure as a service (IaaS). In today's article, we would again like to address this issue and talk about the features and
applicability of cloud services.
/ Flickr / Robert / CCThe stack of cloud technologies consists of three parts, each of which represents a separate category of services. At the top level is SaaS - in fact, these are cloud applications that can be accessed via the web interface. It is followed by PaaS - a platform for self-development and deployment of applications.
')
At the third level, IaaS is located - servers, storage, networks, computing infrastructure, which the client receives in use to run its solutions. The described structure can be represented in the form of the following scheme:
To demonstrate these three types of services, an analogy with pizza is often used - a kind of “Pizza as a Service”. When a consumer orders and eats pizza in a cafe or restaurant, then this is SaaS, and if he orders it to his house, then this is PaaS. If he went to the store, bought the ingredients and prepared the dish himself, then we can say that it is IaaS.
Now we’ll go a little deeper into each of these technologies and start at the end of the stack - IaaS.
What is IaaS
If you select IaaS, you will get servers, network resources and storage as a connected service. It turns out that the company acquires computing resources from the supplier, avoiding the need to purchase its own hardware and maintain it. At the same time, the service can be provided according to the type of public cloud,
private cloud or combined approach.
The concept of IaaS includes the following features:
- Resources is a service. The client has the opportunity at any time to increase and decrease the amount of resources consumed
- Multiple users can work with physical resources due to virtualization capabilities.
- Flexible payment models (for example, the option of pay as you go, when the company pays only for the consumed power)
Given all the above, you can determine when to use IaaS solutions. Contacting IaaS is worth it in that case, a company sometimes needs to increase its capacity during surges - that is, there is a need for operational infrastructure scaling.
Another option is that a company is a startup that does not have the funds to purchase its own hardware and maintain it, or the organization wants to launch an experimental business line and it is not always advisable to purchase equipment for this (the project may not take off).
However, despite the flexibility and scalability of IaaS, the technology has certain limitations. In this regard, there are situations when it is not recommended to use it. For example, a company is a player in a regulated industry whose rules do not allow data to be stored on non-company servers.
Here I would like to add that
there is an opinion that supposedly you should not use cloud solutions for business-critical applications. However, we note that this is not the case. A critical business application can be deployed on a productive server with 16 cores and terabytes of memory, which provides for the duplication of a number of components (including at higher levels).
What is PaaS
Platform as a service, or PaaS,
simplifies application deployment and management, while hiding work with servers, load balancing,
DNS, and others. Therefore, there is no need to hire engineers to maintain the infrastructure. This allows developers to pay more attention to development and deployment issues.
It should be noted here, since PaaS is the second level of the pyramid of cloud services, it is built on the basis of IaaS, however, it reduces the time even more from the moment an idea is generated to its realization. This is achieved through greater automation of processes and abstraction from iron.
To abstract the concept of working with servers, the following was done:
- Implemented build system that compiles and stores code;
- An application management database has been implemented that monitors versions and metadata;
- A task scheduler has been launched, which processes a large group of servers and runs the application on several machines as on one;
- Load Balancer manages Internet traffic;
- DNS work is automated;
- A form of containerization has been implemented (FreeBSD Jail, Solaris Zones, Linux Containers), which prevents one application from interfering with another.
The first and last points are those elements that contributed to the growth of Docker popularity. The Linux Container technology has long been part of the Linux kernel, but only large companies or PaaS providers decided to automate their use.
Companies use architecture and microservices focused on working with software, because they offer opportunities for automatic deployment and testing of code, as well as scaling depending on the load. This functionality and implements PaaS.
Unfortunately, this approach has one serious drawback. You transfer part of the control to a kind of black box and become dependent on it. Otherwise, however, companies are constantly reinventing the bicycle or starting to use slow tools.
A little bit about SaaS
In the case of SaaS, the consumer acquires the ability to use provider applications running in the cloud. Applications are available from various client devices, for example through a browser. According
to Gartner, the SaaS market grew by 21.7% to $ 38.9 billion in 2016. In 2017, the growth rate will only increase.
Software as a service (SaaS) is the last level of cloud computing that most often complements PaaS, as can be seen from the diagram at the beginning of the article. This is a full-featured user application that performs certain functions, such as working with images or sound. Subscription remains the most popular form of payment in this segment.
In the case of SaaS, application configuration, monitoring and backup issues are transferred to the cloud provider’s area of ​​responsibility. Therefore, this model of work does not require the presence of a technical specialist in the organization’s team — the provider does everything.
Thus, the higher-level model you plan to use, the lower the level of IT competencies required from the team. The reverse is also true - the lower the IT level of your company, the higher level model you will need.
PS A few more materials on the topic from our blog: