Cloud computing - Improving flexibility and ensuring competitive advantage

Cloud computing provides an unmatched degree of flexibility. However, any company seeking to exploit this advantage must design and operate its solutions appropriately. Experience gathered in connection with providers and users of cloud computing services reveals what is most critical here. Cloud computing offers flexibility with great ease. Two mouse clicks are enough to reserve additional servers and two more clicks to activate them. This is a world of difference compared to the purchase of additional servers for internal use in a company. Even a classic computer centre that offers outsourcing cannot match this speed. However, cloud computing appeals to more than just users – providers of infrastructure, platforms and software are also interested in the cloud. Cloud servers see twice the utilisation compared to classic computer centres, and they operate more efficiently as a result. Because of its benefits for users and providers, cloud computing is sure to prevail. Companies like Microsoft and Apple are getting involved for good reason. This trend is still in an early phase. Even though the “cloud” is widely discussed today, the term is still somewhat nebulous. According to the American National Institute of Standards and Technology (NIST), it is defined as follows: “Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction”. The NIST definition also includes four deployment models, three service models and five essential characteristics of cloud computing.

Fig. 1: NIST model for characterisation of clouds

 

Even with this definition of the basic points, much in the field of cloud computing is still in flux. Its development is being shaped by more than just the constantly growing number of providers of cloud services. Some individual customers are even managing to influence what is offered.

Demand orientation in the cloud - customer requirement leads to new service

A large company wanted to outsource a system’s computationally intensive backend to a provider of cloud services. Along with high-performance CPUs, the virtual servers (“instances”) also needed to have more than 50 GB of main memory. During the planning stage, there was no provider that could offer such powerful computing instances. However, this demand on the part of a large company led a well-known provider to develop an appropriate range of services. In this manner, it was ultimately possible to outsource the backend as desired. In order to verify the cloud infrastructure’s general suitability for operation of the backend, load and performance tests were executed subsequently. These tests had to be adapted, however, since the cloud service provider initially interpreted them as denial-of-service attacks and blocked them. This example shows two things: First of all, it is a good time to become familiar with what the cloud has to offer. Providers are still receptive to special requests from customers. Moreover, moving services to the cloud is not yet a matter of course. Any company that begins now can secure a certain advantage over its competitors. Second, applications cannot be simply moved to the cloud and then operated like they were on the company’s own hardware. Adaptations are necessary in testing as well as in design and operation. The necessary adaptations are dependent on the service provider’s preferences in terms of non-functional requirements. Past experience with the development of cloud services has shown which aspects are important to operators.

Cloud solutions – providers focus on high availability

A traditional provider of outsourcing services for banks is implementing its own cloud solution for end customers based on Java Enterprise. The range of services is also intended for business-critical applications in the banking sector. Great emphasis is placed on the availability of the cloud solution. Thorough testing is required as a result. Based on statistical code verification techniques, the quality and stability can be ensured, for example. Continuous integration is also used in order to guarantee continuity in the area of quality assurance. This example reflects the general situation: Service providers are fine-tuning their systems for the cloud and delivering substantially more professional systems.

CAP theorem in the cloud – consistency, availability, partition tolerance

According to Eric Brewer’s theorem (“CAP theorem”), consistency must necessarily suffer to some degree with cloud-based solutions. Applications for the cloud must tolerate this inherent lack of consistency. More specifically: The application must deal with the fact that not all of the nodes will see the same data at the same time and that attaining consistency requires a certain time interval. The application should neither fail nor lose data when faced with brief inconsistencies.

Cloud solutions – economy and dependency

Alongside the technical adaptations that are required, there are also some relevant economic considerations. The major advantage of the cloud is its flexibility. However, the cost can sometimes exceed what it takes to operate one’s own servers. For example, web applications are well-suited for the cloud. On the other hand, mail servers with large quantities of data are unsuitable since they generate high monthly expenses with cloud service providers. Another point to consider when beginning the transition to the cloud is provider dependency. This can take on different aspects as a function of the service model that is chosen. Especially in cases where software as a service (SaaS) is purchased, it can be very costly to switch providers. Due to the required adaptations and other considerations, it is important to study carefully what cloud computing involves and proceed incrementally. As a general rule, a company should start by moving small applications or modules to the cloud in order to gain experience with the development and operation processes as well as the associated costs. When services are shifted to the cloud, some operational changes are always required since service providers do not provide detailed information about operating states. For example, monitoring tools that need to access ports cannot always be used.