InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Scenarios and Solutions for Using Windows Azure

Posted by Abel Avram on Apr 27, 2010

Sections
Architecture & Design,
Development,
Operations & Infrastructure
Topics
.NET ,
Cloud Computing
Tags
PaaS ,
Windows Azure

Bill Zack, Architect Evangelist for Microsoft, has detailed in an online presentation key scenarios for using the cloud and solutions provided by Windows Azure.

There are applications with an usage pattern making them appropriate for the cloud, but there are also applications which are better to be not deployed onto a cloud because the owner ends up spending more to run them.

Workloads

  • On and Off – applications that are used sporadically during certain periods of time over the day or the year. Many batch jobs that run at the end of the day or the month fall in this category. Providing the required capacity for such applications is more expensive than running them in the cloud because much of the time the respective capacity lies unused.
  • Growing Fast or Failing Fast – a workload pattern encountered by startups which cannot accurately predict the rate of success of their new business and, consequently, the actual capacity needs. Startups usually start small increasing their capacity over time when demand raises. Such applications are fit for the cloud because the cloud can accommodate the growing resource needs quickly.
  • Unpredictable Bursting – this happens, for example, when the usual load on a web server is temporarily increased by a large value, so large that the system does not cope with the transient traffic. The owners should have provided enough capacity to absorb such loads, but they did not expect such peak of traffic. Even if they did anticipate it, the added capacity would sit mostly unused. This is another good candidate for the cloud.
  • Predictable Bursting – the load constantly varies in a predictable way over time. The owner could buy the necessary equipment and software having it on-premises without having to rely on a cloud provider.

Zack continues by describing scenarios for computation, storage, communications, deployment and administration along with the solutions provided by Windows Azure.

Computation

  • On-demand Application Instances – this pattern applies during special events when applications need to scale-up quickly, and later to scale down. Windows Azure accommodates such needs with automatically managed Web and Worker Roles.
  • Worker Role Distribution – this is used when large jobs are done by breaking them in small chunks, each one being associated with a Worker Role instance.

Storage

  • Blob – Blobs are used to store large amounts of unstructured data.
  • Tables – a non-relational solution for storing massive amounts of data.
  • DB – SQL Azure offers a relational database in the cloud.
  • Data Protection – Data stored in a cloud can be encrypted if it contains sensitive information and one wants to make sure it is not disclosed. Windows Azure will provide encryption/decryption services in the near future.
  • Information Service – Microsoft has a data marketplace for companies which want to sell or buy data.

Communication

  • Service-oriented Integration – Azure allows applications to consume services provided by other applications. Microsoft’s integrated solution is WCF Web Services, worker roles being able to expose such endpoints.
  • Messaging – Messaging is provided by Windows Azure Queues for asynchronous communication between web and worker roles.
  • Messaging through Firewalls – Applications can communication with each other through the Service Bus Queues which does not require additional ports to be opened.

Deployment

  • Could Deployment - Applications are deployed to the cloud using separate service definition and configuration files, and are packaged according to the targeted roles. The web and worker roles and their types are defined in the service definition file, while the service configuration file contains the number of each of these roles.
  • Moving On-Premise Applications to the Cloud – while this is not feasible for most applications, there are some that can be ported like a simple ASP.NET web site.
  • Mixed Environment, On-Premise and Cloud – Windows Azure provides the possibility to combine on-premises applications with services in the cloud by using REST interfaces, secure access to SQL Azure, Service Bus  and Access Control Service.
  • Dual Application – Applications could be designed to run both on-premises and in the cloud, but the design process is not simple. This could be useful if an organization runs its application on its own servers but uses the cloud during seasonal peak times like Christmas.
  • Security Federation – Windows Azure provides security federation through Access Control Service.
  • SaaS – Applications deployed in the cloud can be provided as services.

Administration

  • Design for Operations – Windows Azure provides a diagnostic API letting the operations to monitor and identify problems.
  • Service Instance Management – Application instances can be started, stopped or suspended either though an API or via the Azure portal.

No comments

Watch Thread Reply

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.