How can a company’s applications be scalable and have high availability?
To achieve this, along with developing the applications, you must also have an infrastructure that can support them. For example, you may need to add servers or increase the capacities of existing ones, have redundant hardware, add logic to the application to handle distributed computing, and add logic for failovers. You have to do this even if an application is in high demand for only short periods of time. Life becomes even more complicated (and expensive) when you start to consider issues such as network latency and security boundaries.
The cloud offers a solution to this dilemma. The cloud is made up of interconnected servers located in various data centers. However, you see what appears to be a centralized location that someone else hosts and manages. By shifting the responsibility of maintaining an infrastructure to someone else, you are free to concentrate on what matters most: the application. If the cloud has data centers in different geographical areas, you can move your content closer to the people who are using it most. If an application is heavily used in Asia, have an instance running in a data center located there. This kind of flexibility may not be available to you if you have to own all the hardware.
Another advantage to the cloud is that it is a pay as you go proposition. If you do not need it, you do not have to pay for it. When demand is high, you can scale up, and when demand is low, you can scale back. Yes, by moving applications to the cloud, you are giving up some control and autonomy, but you are also going to benefit from reduced costs, increased flexibility, and scalable computation and storage. The Windows Azure Architecture Guide shows you how to do this.
Eugenio PaceM/strong> works in the Software and Services group for the Microsoft Architecture Strategy team. He develops architecture guidance to help ISVs, Hosters and Companies, build, run and consume software delivered as a service.
Dominic Betts is an expert with the patterns & practices team & other Microsoft groups.
Scott Densmore is an expert with the patterns & practices team & other Microsoft groups.
Ryan Dunn is an expert with the patterns & practices team & other Microsoft groups.
Masashi Narumoto is an expert with the patterns & practices team & other Microsoft groups.
Matias Woloski is an Enterprise Architect at Southworks S.R.L. He’s been involved in software development for 6 years. Currently, he is working with the patterns & practices team at Microsoft in a Scrum-driven project.