Cloud Application Development

Of course, there are several benefits to the cloud for consumers. Therefore, such applications are very popular. The tricky part, however, is finding good developers. Therefore, you can go straight to and simplify your searches.

Firstly, this is the savings on the maintenance of the IT infrastructure, which the company may not have at all, or it will be reduced to a minimum. Second, cloud applications can be accessed from anywhere on the Web. Thirdly, the cloud model makes it possible to shift the need for mandatory certification of the software and hardware complex to the requirements from the consumer of services to their provider. At the same time, the very process of creating software provided from the cloud changes significantly, depending on the type of service and tools available to the developer. In addition, an unobvious, but very acute problem of delivery and deployment of cloud applications on the user’s side arises. Wikipedia gives a fairly successful interpretation of the term clouds – “a distributed data processing technology in which computer resources and capacities are provided to the user as an Internet service.” In this formulation, the key concepts are resource and service.

Service categories

At the moment, the most common division of all cloud solutions is into three categories: infrastructure as a service (IaaS), platform as a service (PaaS), and program as a service (SaaS).

IaaS is a service that abstracts the user from working with hardware resources. In the simplest case, an owner can sell the resources of their physical servers. Although most often, of course, these services provide the functionality of virtual machine resources. Examples of such services: Amazon (EC2), Windows Azure (VM Role), virtualization from VMware, Parallels, etc.

For the developer of cloud applications, the IaaS model, in fact, does not bring anything new – writing a program to work on a physical computer in practice is not much different from an application to work inside virtual machines. This is not surprising, because virtual machines were created in such a way as to be completely transparent to the software that runs under their control. Of course, there may be exceptions, and the developer can use some specific technologies provided by this or that virtualization platform to create more efficient software products. For example, to organize interaction between programs through some specific and optimized communication channel – VMware Communication Interface, storage media (Shared Folders or specialized storage subsystems) or product distribution format (Virtual Appliances), etc. And the more such specific technologies available to a developer as part of an IaaS solution, the more likely they are to cross a vague boundary into PaaS solutions.

The distinction between PaaS and IaaS is not obvious, but crucial. The term PaaS became widespread later than IaaS and is a logical development of the original ideas. Imagine a developer writing a typical enterprise or web application that looks something like this: database, web server, and application server. A developer writes an application, buys three virtual machines, and launches a corresponding component on each of them.

The creators of PaaS systems offered developers tools through which they can dynamically manage system parameters. Hence, in fact, the term PaaS comes from – the provision of platform services in the form of service. Amazon Cloud Computing and Microsoft Azure, which provide similar functionality, are prime examples of such services.

At the highest level of abstraction in the cloud stack are SaaS solutions that provide application services directly to end users. Some of the most striking examples of such solutions include Microsoft Office 365 and Google Apps. Some applications are created using the advantages of IaaS and PaaS, some are developed based on their own infrastructure – there are no uniform rules and each developer solves the assigned tasks based on the current situation. However, a typical problem faced by ISVs is organizing the delivery channels for their service.

And here we can talk about both the delivery of a cloud application to a specific end-user within the company (from the corporate cloud), and about the sale of service through providers. This problem arises primarily due to the fact that direct delivery of services to users is not always possible to organize – “intermediaries” are required in the person of service providers.

These applications are very convenient and have a number of advantages. However, do not forget that a lot depends on the developers, so contact only real specialists, such as