Cloud applications must be designed to be different from the past

Source: Internet
Author: User
Keywords Different must new thinking
Tags application application design applications change client cloud cloud applications design

Editor's note: This article is Eucalyptus Bae CEO Marten Mickos.

The software has not changed since its inception: run the application, then the application is running on the platform. But with the development of infrastructure, the fundamentals of application design and deployment do change-sometimes very fiercely.

For example, the emergence of a PC, x86 architecture in the 1980 and the birth of a client/server model have dramatically changed the application design principles. Then, with the advent of the web and open source technology in the middle of the 1990, the upheaval again. Whenever this happens, developers are forced to rethink the way software is developed and deployed.

Now there is a new leap in infrastructure capabilities, led by Amazon Web Services (especially in the context of a leap in network speed). Obviously, in order to take full advantage of the new cloud facilities, the applications that have been successful on AWS must be fundamentally different from those that run on the enterprise server-even if it is not the same as the application running on the virtual server. In addition, there are other factors that determine that cloud applications must be designed to be different from the past. The following are some of the key factors that determine how the new and Old World evolves:

Scalability

The Old world's expansion is achieved through expansion-to accommodate more users or data, just buy a larger pair of servers.

In the new world, scalability is usually achieved by scaling horizontally. To increase is not a larger machine, but the same kind of multiple machines. In the cloud world, those machines are virtual machines.

Elastic

Previously, software was unreliable, and flexibility was achieved at the hardware level.

Today, underlying infrastructure hardware is seen as a weak link, so applications must be adapted to adapt. The application does not guarantee that every virtual machine instance works correctly. It doesn't matter if a single virtual machine fails for a while, and the application must be prepared for it.

Take Netflix, it's the most advanced cloud user, and it's the furthest step on the road to cloud applications. They have a process called Chaosmonkey that randomly kills virtual machine instances under the application load. What is the purpose of this? is to ensure that the application is functioning and resilient: forcing application developers to develop more flexible applications by allowing applications to face random instances of loss.

Explosive

In the old world, applications such as finance and payroll are generally stable and predictable. The number of system users at a particular time, and the number of records to be processed are basically known.

In the new world, workloads are changeable and unpredictable. Today's software systems must reach farther, reaching consumers and devices with service needs that are unpredictable and cannot be measured (think about the 12306 sites that become the target). The new architecture is needed to adapt to the unpredictable fluctuations of the independent application load. Although we are now on the cloud, but obviously in the initial stage.

Software diversity

In the past, software didn't have much variety. Each app is written in one language and uses a database. Companies are generally backed up with one or a few operating systems. The software stack is simple enough to be boring (at least for now).

And in the new World of clouds, things are very different. An application may use many different languages, different libraries, different toolkits, and different database products. At the same time, because you can create and start your own mirrors in the cloud and tailor them to specific requirements, a company's applications must be able to run on a variety of configurations.

From virtual machine to cloud

There is a difference between the relatively new hypervisor and the modern way of thinking in the cloud. The hypervisor performance of virtualization's pioneer and leader VMware is basically not the same as the physical machine.

In the cloud, the virtual is not the representative of the physical server, but the representative of the Computing unit.

User Patience

In the old world, users are taught to be patient. Because the system's response may take a long time to complete some simple extraction or update requests, new features are also slow to add.

In the new world, users are impatient. They can hardly tolerate delays and are unwilling to wait. They want the software to be constantly updated, if not every day, at least weekly. You can find relevant evidence in your self service IT. Where you're not handing a note to the IT department and then waiting a few days to respond, the user needs resources that can be delivered.

(Responsible editor: The good of the Legacy)

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.