In this 3-part series, we'll look at grid computing using the Azure cloud computing platform. In the 1th part, we will see the design patterns involved and some useful ideas. In the 2nd and 3rd parts, we'll see a code example that shows a grid computing framework developed specifically for Azure.
Not everyone knows the difference between grid computing and cloud computing, so let's briefly explain both. While Grid computing is not the same thing as cloud computing, there is a lot of synergy between them and it makes sense to use them together.
Grid computing
Grid computing is the use of a large number of computers working in parallel mode rather than stand-alone mode to handle computational problems. There are many advantages to this approach:
Save time: For a single machine to deal with one months of work, in the case of 30 computers focused on this problem, it is possible to complete in one day. The largest grid computing project in history was the SETI@home project, which gained 2 million years of total computer processing time in 10, through the ability to use hundreds of thousands of volunteer computers.
Cost savings: You can use lower-cost resources to do your job, rather than buy a large number of servers with the highest level of processor and memory. Even if you have to buy as many computing resources as you can to buy smaller, cheaper machines, they are also easier to use for other purposes.
Reliability: Grid Computing systems must anticipate failures, or changes in the availability of individual computers do not hinder successful completion of work.
Not all types of work are suitable for grid computing. Only jobs that can be broken down into smaller tasks are appropriate, and loosely coupled networks of computers that handle these tasks can run in parallel. In order to distribute tasks, collect results, and manage systems, it is necessary to build an intelligent infrastructure. Needless to be surprised, early adopters of grid computing need to solve some huge computational problems. So you'll see grid computing now used in genetics, insurance statistics, astronomy analysis, and movie animation rendering. Now, however, there has been a change: Grid computing is increasingly focused on ordinary business issues, and the competition from cloud computing accelerates this development. Computing tasks are not huge to benefit from grid computing, or to compute dense tasks for grid computing. Any task with repeated execution characteristics is suitable for grid computing. Whether you're a Fortune 500 company that needs to handle 4 million orders a month, or a midsize enterprise that only approves 1000 credit applications, grid computing can work for you. Grid computing predates the advent of cloud computing in the 10, so today's grid computing naturally does not use the cloud's way. The most common way is:
Dedicated machine: Buy a large number of computers, specifically for grid processing.
Network cycle misappropriation (Cycle stealing): When other machines in your organization are idle (such as at night), they are temporarily used for grid processing. A business workstation that is used during the day can become a grid-processing computer at night.
Global cycle misappropriation: In the worldwide Internet context, the use of the concept of cycle diversion. This is how the SETI@home project works, using more than 300000 active computers.
Cloud computing can be another way to implement grid computing, with a lot of compelling features that provide flexible scalability based on your business model, and are ready to support infrastructure that many traditional ways must be customized to develop.
Business Applications for Grid computing
In order to bring grid computing into the mainstream, some compelling business applications need to emerge. Let's take a look at the 3 business applications that are appropriate for grid computing, and the huge business value gained. The first type of example is data mining. Data mining and other forms of data analysis can identify interesting relationships and patterns from business data.
Food stores can use data mining to study buying patterns and make strategic decisions about whether or not to discount certain items.
The video rental chain can use data mining to decide which new video to recommend to customers based on their previous loan record.
E-commerce Web sites can use data mining to study the user's navigation patterns in real time, and to adjust the display of goods and advertisements.
The second example is decision analysis, which requires a set of business rules to be carried forward to make a business decision. In some scenarios, decisions involving complex computations need to be made very quickly. The parallelism of the grid can be used to get a quick response time and there will be no delay when the workload increases.
Credit institutions can use decision engines to calculate credit ratings.
Financial institutions can use decision engines to quickly approve loans.
The insurance company can use the decision engine to calculate the applicant's risk and approve its policy rate.
The third type of example is batch processing, where you occasionally need to deal with a large number of workloads, and the internal and not so many capabilities to deal with, you can use grid computing.
The fax service requires the generation and delivery of electronic fax documents. When faxing, the workload is huge and at other times low. Using a grid to handle the generation and delivery of documents avoids the huge amount of internal computing power that most of the time is useless.
Marketing campaigns may need to automatically send e-mail, faxes, letters, or voice messages to a large number of addresses. The parallelism of the grid allows such sending activities to be done in a very short time, regardless of the amount of work.
E-commerce Web site, you need to start a business process workflow for each order, and in the busy season it is possible to handle a huge amount of workflow instances. The use of grids for order processing workflows avoids bottlenecks and delays in processing these orders with limited local resources.
These examples describe the limitations of grid computing out of application types and become a common form for all business types to consider using.
Cloud computing and Microsoft's Azure platform
Cloud computing is the use of large data centers with intelligent infrastructure to provide you with the computing resources you need. Cloud computing is hosted and stored across applications and provides services for communication, workflow, security, and synchronization. The advantages of cloud computing include the following points:
Scale on Demand: how much capacity you need to have, in fact, unlimited.
Charge according to dosage: The current business model is that you only need to pay according to the amount of usage. This is not a long-term agreement, and when you change the level of consumption, it will not limit you.
No upfront input: don't buy hardware, or maintain them, or patch the operating system. Capital costs are converted into operating costs.
Smaller IT teams and fewer it incidents: features such as high availability, scalability, redundant storage, and failover are already built into this platform.
Microsoft's cloud computing platform, also known as Azure, currently consists of 4 major service areas:
Windows Azure provides application hosting and storage services. Application hosting means that software such as Web applications, Web services, or background work processes can be run "in the Cloud" (that is, in the cloud computing datacenter). The application can be load balanced to run any number of instances you need, or you can change the number of instances at any time. Cloud storage provides blob storage, queues, and data tables similar to file systems.
SQL Data Services provides a complete relational database in the cloud, with the same functionality as SQL Server Enterprise products.
. NET Services provides the functionality required for enterprise business processing. Service buses connect multiple locations or organizations to each other over the Internet in the form of publish-subscribe messages. The Access Control Service, which provides enterprise and federated security for your application. The Workflow Services (Workflow service) can execute workflows in the cloud.
Live Services provides a virtual desktop, the ability to synchronize data across computers and devices with Web applications, and the realization of various communication and collaboration functions for social networks.
Azure is an entirely new platform, and it is in the preview stage at the time of this article and is expected to be commercially available by the end of the year.
Put grid computing and Azure cloud computing together
Azure is designed to support a variety of application types, but does not provide specific features for grid computing. However, Azure provides many of the features needed for grid computing. To make Azure an excellent grid computing platform, you need to use the right design patterns and frameworks to provide grid-specific functionality. Let's take a look at the design patterns, and in the second part we'll look at the framework that supports this pattern.