
Probably, only people far from IT have not heard about cloud platforms. There is an opinion that cloud platforms in the near future will become a paradise for applications, and sooner or later almost all applications will live “in heaven”.
Under the phrase "cloud platform" often combine different technical solutions that are different from each other. In this article, we classify cloud platforms by architecture and problem they solve.
In the article, I want to convey the idea of ​​what resources can be saved by orders of magnitude more when developing applications, what type of platforms are aimed at creating applications faster and at lower costs.
')
Also, at the end of the article, a number of features of the cloud platform will be described, which is developed by joint efforts of specialists from Russia and Ukraine.
Basically, the platforms are divided into three groups.
, relative to the level of virtualization:
- Cloud hosting
- Cloud containers
- Cloud Services
Cloud hosting
This type of platform solves the problem of resource management at the operating system level. Allows you to deploy applications of almost any architecture. Solve the problem of dynamic resource allocation based on operating system virtualization.
This group of platforms appeared before everyone else and exists relatively long ago; technical solutions have well-established and proven mechanisms.
Representatives : Amazon EC2, Azure, Scalaxy, Clodo
Cloud containers
Solve the problem of dynamic resource allocation at the web server level. They allow you to deploy applications by limiting the choice of programming language (PL), sometimes partially limiting the set of functional capabilities of a particular PL.
This group appeared a little later than the previous one. The technical solution of cloud containers is mainly built on top of cloud hosting, but this is hidden from the developers at the container level of the web server.
Representatives : GAE, Heroku
Cloud Services
In addition to the organization of efficient resource consumption, cloud services are primarily intended to solve a fundamentally different issue, namely, to solve problems of long duration, complexity and high cost of development. Technically, cloud services are usually implemented on top of cloud containers or cloud hosting sites, and they are based on the principle of application virtualization within the platform.
Development of applications based on cloud services is focused on the use of the ready-made set of services API.
At the moment, this is the last level of cloud platform abstraction. As a separate class, similar platforms have appeared relatively recently.
Representatives : GAE Services, Oracle Service Bus, LongJump, Saleforces Service Cloud, Hivext Cloud Platform
API cloud services
Let's analyze the reasons for the emergence of the third group of platforms, namely cloud services, as a separate class.
The first and second groups are intended, first of all, to relieve developers of their concerns about the application infrastructure. Due to this, you can save on the administration of applications and on the consumption of resources: to pay approximately only for what you actually use on resources.
However, the
cost of administration and application resources is not the most expensive part in IT . Probably, every customer of applications knows what exactly costs the most when creating and operating his application.
The most expensive item is the salary of employees , and more specifically, it is the
salary of programmers and managers . The more extensive the project, the more programmers need, the more complex its level, the higher the level of training and knowledge required by these same programmers.

Based on the foregoing, it is obvious that saving more, especially at the stage of prototyping, creating a new product, testing your business model is not necessary on resources.
While the project lives to the point where it is necessary to save on resources, tens, hundreds of thousands of kilobaxes are spent. The project may not live to see the release spending a lot of time and money on the implementation of their business ideas.
That's precisely why cloud platforms began to appear with sets of ready-made services that are primarily aimed at reducing costs in the application development process itself.
Of course, it is the very same problem that is solved by using versatile, individual, ready-made developments and libraries. There are currently a large number of them in various areas of software development. If we analyze how the evolution of the evolution of programming techniques and PL itself develops, we can clearly distinguish transitions from low to higher levels of abstraction. At the moment, there are 5 generations of PL. Each new generation absorbs the quantitative developments of the previous generation and contains the most important, proven and proven techniques and algorithms from earlier generations. In other words, the creation of tools, techniques, and PL itself for developing applications directly obeys the law
“Transition of quantity to quality” .
At the moment, a similar situation occurs in the development of an extensive set of libraries and developments. The most proven ones are selected from them and form the basis of the next level - the basis of cloud services.
Service Oriented Programming
This approach to programming did not arise yesterday. For a relatively long time, there is SOAP and WebServices based on it with
WSDL . A couple of years ago, WebServices also talked a lot about cloud computing. Today, various platforms and sites provide their API for different protocols. This is a qualitative continuation of the SOA and WebServices paradigm.
An ecosystem of cloud services , in general, is a combination of all the services and functions that can be accessed by your application running on a particular cloud platform. The platform provides and manages these services, guaranteeing a high availability ratio, low response time, efficient allocation of resources between common and dedicated resources, etc. The beauty of such services is that deployed applications can rely on them and access them through a given interface. Services of this type are both standard, like tables and databases, and more complex - user authorization systems, payment processing, etc.
Today, a multi-cloud approach is actively used - the formation of logical chains of calls to services of different cloud platforms.
Interests of participants in the application development process
- The developer will definitely be interested in the wide range of services available to his application. Therefore, he will give preference to a platform with a larger set of useful and well-implemented services. Developers can focus on the logic of their applications and take advantage of the services offered by the platform as support. For a developer, a good cloud platform will look like a container for an inherited application grown on steroids.
- The greater the number of services offered by the platform, the fewer services will need to develop themselves. For operators, this means that during the operation of the platform, they will spend less time and effort on implementation, management and monitoring. Consequently, they will be able to concentrate on the main goal: the applications needed by the enterprise.
- For managers, the undoubted advantage of a platform with a rich set of services will be an increase in the efficiency of the enterprise. Even from the point of view of a developer or operator, it is obvious that a developed cloud platform allows different project participants to concentrate more on the development of basic, rather than auxiliary elements. Such an approach can become the basis for transforming an organization that spends a lot of time and effort only on maintaining the working condition of the infrastructure into a flexible, mobile group that is proactive.

With a large number of different libraries and frameworks, the complexity of developing applications remains quite high. Even for the implementation of the prototype and validation of the business idea, the developer is faced with the need to develop a large number of related tasks not related to the main idea of ​​the application. These tasks primarily include: setting up server solutions (WebServer, DB, ORM, etc.), implementing a security model (authorizing users, distributing access rights, monitoring data integrity, and others), file storage. In reality, this is only the tip of the iceberg of tasks that are little connected with the business idea of ​​the application itself, but require the allocation of resources to solve them.
At the heart of the Hivext idea lies the SOA paradigm. However, there are a number of features that are key:
- availability of a large set of services expandable by application developers
- availability of a service bus that combines them conveniently
- availability of client libraries for all services and for different PLs that hide work with services behind clear classes and convenient methods
- cloud hosting features - automatic acquisition of additional computing resources on demand
Hivext provides
services for developers to improve the application development process, more efficient use of resources - time, money, knowledge. From the provided set of services, application developers can already implement their services for end users, which harmoniously integrate into the ecosystem of common services of the platform.
In addition, Hivext has a number of distinctive characteristics.
- development right in the cloud, without deployment - the problem of deployment is solved - there is none at all
compilation takes place directly on the platform servers, code changes immediately after saving the script affect the results - scripting - encourages writing small pieces of code logic, application development comes down to writing small scripts
- multilanguage - client and server;
- server logic can be expanded using the syntax of different programming languages ​​(currently Java, server JS, PHP), and in all programming languages ​​you can embed classes created in Java or call any script of different PL using the scripting service
- the client offers an SDK for working with the platform on different PL (j2me, j2se, javascript, PHP, ActionScript / Flash / Flex, Qt) - It is convenient to work with different teams on the same project - stitching the results at the level of the standardized services described, working with different applications as if using the same application using all the same services
Today the
list of finalists of the Zvorykinsky project (the state program of the Federal Agency for Youth Affairs), in which the Hivext Cloud Platform project passed, is officially published. We thank everyone who believes in our forces and supports our project with advice or deed!
P.S
Summarize the benefits of cloud services providing API
- Significantly simplify the life of developers, instead of developing everything from scratch, they can use the services API and get quick access to great functionality.
- accelerate the development cycle
- make applications as extensible as possible with a rich set of default features
- help to cooperate with other service providers
- help to integrate and interact with other applications written by third-party developers on the same platform
- help in managing the security of the application
- offer a set of tools for analytics of the application
- imply the presence of elasticity and scaling of the application by default
Today, probably, the majority of market participants do not perceive cloud services as a distinctive feature of PaaS solutions offered by providers. This is a completely understandable state of affairs for a given point in time, indicating the immaturity of the cloud computing market. Most likely, in the near future, the services offered by the platforms will receive more attention from all participants of IT projects.
Links to material used at the time of writing
PaaS Is The Key To The Future Of Cloud Services: APIs Are The KeyPaaS solutions: application services ecosystemPictures found on google.