Welcome to MSDN Blogs Sign in | Join | Help

Scaling Viral Facebook Applications with Windows Azure

One of the coolest Windows Azure stories that was told at the recent PDC09 conference was the story of how Jim Zimmerman, CTO of Thuzi built their viral Facebook application for Outback Steakhouse and how it was hosted in Windows Azure. 

Outback Steakhouse wanted to encourage repeat guests by creating a social networking presence. Working with Microsoft partner Thuzi, the restaurant chain offered a free appetizer coupon to the first 500,000 visitors to sign up as Outback fans on the Facebook social networking service. They developed the application on the Windows Azure platform in less than eight weeks, taking advantage of its familiar environment, flexibility, and scalability.

I remember talking with Jim back in early September 2009 and how they were really nervous about the scalability requirements for hosting a viral social networking application on Facebook and how the offerings from the other cloud vendors were not a great fit for what they needed in the short-term.  Hosting a set of Virtual Machines in Amazon’s cloud offering still required quite a bit of infrastructure and set-up work – and Google’s platform required coding in another language altogether…

After all, how many free Bloomin’ Onions would you guess that folks on Facebook would could give away to one another?

BloomingOnion

Some of the challenging requirements for that Thuzi faced included:

  • Highly scalable, cost-effective cloud infrastructure was required to host viral social networking marketing applications.  The potential number of concurrent users was unknown and unpredictable. 
  • Scalable, flexible, Data Storage, message queuing, and a robust background processing environment were needed in the architecture.
  • Security access was required for  customer reporting, 3rd party service partners, and secure web services.
  • Tools and frameworks were needed to build, deploy, and manage the Azure applications development process.

The Solution:

The solution was developed using the following components:

  • Microsoft ASP.NET MVC Framework - to render a custom View for Facebook FBML
  • Facebook Developer toolkit: http://facebooktoolkit.codeplex.com
  • Windows Azure: Web/Worker Roles, Table Storage, Message Queues.
  • SQL Azure: For relational data storage and reporting.
  • Visual Studio Team System / Team Foundation Server

Windows Azure Solution Components:

  • Windows Azure provided a highly-scalable infrastructure to handle the dynamic load requirements for viral social networking applications.
  • Azure Table Storage provides a scalable mechanism to handle the data storage and retrieval requirements for application data.
  • Azure .NET Services Access Control provides secure access for applications and services.
  • VS2008 / Team Foundation Server provides an integrated development environment, source control and automated build / deploy to Azure.

Outback Facebook Campaign

They Outback Facebook campaign launched in early November, 2009 and by the time of the PDC in , they had registered over 450k new fans!  Their forecast models had predicted viral geometric growth rates and due to the popularity of the offer – and they were right!     

OutbackFans

Benefits
Some of the benefits that Thuzi and Outback gained from this solution included:

  • Faster Time to Market - enabled the partner and customers to quickly create and host highly scalable social media marketing campaigns.
  • Peace of Mind – Windows Azure delivers the scalability required to handle the unknown web traffic loads that viral web applications can often trigger.
  • Business Flexibility -  Amortized vs. Capital investments
  • Expand / Shrink infrastructure abilities – overnight!.
  • Ease of Develop / Deployment - Visual Studio 2008 + Team Foundation Server made it easy to develop, test, deploy, and manage the application.

This was also a great story on many other levels; especially about how a brick-and-mortar retail chain harnessed the power of social networking to drive real results – really fast!

Be sure to check-out this amazing story that was recently posted on Channel 9’s ARCast.tv:

ARCast.TV - Scaling Facebook Applications with Windows Azure
http://blogs.msdn.com/innov8showcase/archive/2010/02/08/arcast-tv-scaling-facebook-applications-with-windows-azure.aspx

And while your at it - feel free to sign-up for a free Bloomin’ Onion at any of the thousands of Outback Steakhouse restaurants across the country...while supplies last!

http://www.facebook.com/outback

OutbackBloomin

Technorati Tags:
Posted by jbarnes | 0 Comments

Architect Innovation Cafe Webcast-How To Architect Killer Apps with Windows 7

webcast

February 26, 2010 at 1:00pm – 2:00pm EST

Title: How to Architect a Killer App for Windows 7

Abstract: Ever since its recent launch, Windows 7 has been enjoying rapid consumer adoption and glowing press reviews. This makes it a great platform to launch your next Killer App! In this session, we will explore how to architect an application to take advantage of several compelling Windows 7 features including multi-touch, integrated search and multi-processor improvements. We will review how others have exploited this growing "Windows 7 channel" to deliver applications ranging from enterprise line of business applications to consumer oriented, "mass appeal" applications (think Social Networking clients). As a bonus, we'll demonstrate how to quickly build Internet Explorer 8 Web Slices and Accelerators to complement your Killer App and to provide new channels to extend your reach. If you've got a great idea for a Killer App, don't miss this session. If you design, architect, and/or develop applications for fun/profit, then this fast-paced session is for you.

Event ID:  1032441748

Link to Register:  http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032441748&Culture=en-US

Presenter BIO

Allan da Costa Pinto

Architect Evangelist, Microsoft

Allan da Costa Pinto recently celebrated 10 years with Microsoft. In that time he has worked in several roles ranging from software consulting to support to technical evangelism. He is currently an Architect Evangelist focused on jumpstarting software projects with Microsoft’s cutting edge technologies such as Windows 7, Windows Azure and Silverlight. He lives in Hartford CT with his amazing wife, 2 kids, and 1 cat.

Stay Connected:

clip_image002 clip_image004clip_image006clip_image008 clip_image009

Technorati Tags:
Posted by jbarnes | 0 Comments

Architect Innovation Cafe Webcast-Visual Studio Tools For Architects

image

Each month through June 2010, we’ll bring you a 60-minute Architect focused Webcast to educate on the latest trends/topics and how new technologies can align with your business needs.

February 25, 2010 at 1:00pm – 2:00pm EST

Title: Visual Studio Tools For Architects

Abstract: Come learn how the new code visualization, UML, and Architectural Validation tools inside Visual Studio 2010 come together to help you understand existing code bases, model domain specific problem domains, and maintain the proper control and visibility of those software systems.

Event ID:  1032440937

Link to Register:  http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032440937&Culture=en-US

Presenter BIO

Cameron Skinner

Product Unit Manager, Microsoft

Cameron Skinner joined Microsoft in 2005 and is currently a product unit manager on the Visual Studio team. He is responsible for overseeing the Visualization and Architecture capabilities found in Visual Studio 2010 Ultimate. Prior to Microsoft, Mr. Skinner was the CTO and chief architect of application development tools for Embarcadero Technologies. Earlier in his career, he served as CTO for Advanced Software Technologies. In his limited spare time, Mr. Skinner enjoys spending time with his wife and three children, Crossfit, and playing his acoustic bass.

Stay Connected:

clip_image002 clip_image004clip_image006clip_image008

Technorati Tags:
Posted by jbarnes | 0 Comments
Filed under:

ARCast.TV Special - An Architects Perspective on Silverlight 3

Many .NET developers are becoming more and more interested in the Rich Internet Application development space, and in particular Silverlight:

ARCast.TVLogo

In this session, we will step back from a detailed implementation technology and take a higher level look at Silverlight from the architect’s perspective. 

We will discuss the types of applications where Silverlight makes sense and some scenarios where Silverlight may not be the appropriate technology. 

We will also delve into some of the architectural decisions that the architect must consider when writing applications for this platform and where some of the tradeoffs may lie. - Tim Heuer

ARCast.TVSL4

Check it out at: http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-An-Architects-Perspective-on-Silverlight-3-featuring-Tim-Heuer/

Technorati Tags: ,
Posted by jbarnes | 0 Comments
Filed under:

Project Natal - Your Body IS the input device

Natal

Project Natal is a revolutionary new way to play the XBOX: no controller required.  See a ball? Kick it, hit it, trap it or catch it.  If you know how to move your hands, shake your hips or speak you and your friends can jump into the fun -- the only experience needed is life experience.

Get A Glimpse into the Technology behind Project Natal...and take a look inside the latest Project Natal Video at: http://www.youtube.com/watch?v=-_UzcnTYqc4

The spirit of innovation at XBOX 360 equals extraordinary entertainment experiences.  Learn more at: http://www.xbox.com/en-US/live/projectnatal

Technorati Tags:
Posted by jbarnes | 0 Comments

IE8 Accelerator Creation Guide

IE8Accelerator

Ever wanted to see how truly simple it is to configure an accelerator for Internet Explorer 8? 

Ever wonder how much more traffic you could drive to your web site with something as easy as an IE8  search accelerator (since almost every web site has at least some level of “Search” capabilities on their web site?)

An IE8 accelerator is really just short and simple XML file – here’s an example one below for doing a search on MSDN: This one is REAL handy if you happen to be a .NET Architect / Developer):

IE8AccelXML

Once installed, these things are extremely powerful – since they can offer your users simple service capabilities like “Search” (on your web site) with just 1 right-click in their browser – like this:

IE8AccelClick

To get these results – FROM YOUR WEB SITE!:

IE8AccelResults

And the best part - once you have a cool Accelerator built, feel free to upload it to the IE Gallery at: http://www.ieaddons.com

Take at look at this short, easy-to-follow guide to creating an Accelerator for Internet Explorer 8 on the IEBlog: http://blogs.msdn.com/ie/archive/2009/12/23/accelerator-creation-guide.aspx 

It’s a great (and free) way to gain more exposure for your Accelerator and ultimately YOUR services running on YOUR web sites.


kick it on DotNetKicks.com Shout it
Posted by jbarnes | 0 Comments
Filed under:

Azure Partner Briefing

Azure

Thanks to everyone who came out to the Partner Azure briefing in Tampa!  We had an awesome line-up of speakers with real-world Azure experience - and it was great hearing about their perspectives with regard to leveraging the Windows Azure offerings to develop their partner & customer offerings.

As promised, here is a link to my Skydrive folder that contains the the presentation slides from the briefing today:

http://cid-e80ea9288abd4452.skydrive.live.com/browse.aspx/AzurePartnerBriefing

Be sure to check-out all the resources to get started at www.microsoft.com/windowsazure

 

Technorati Tags: ,
Posted by jbarnes | 0 Comments
Filed under: ,

Silverlight 4 – Presentation and Code Samples

Tiki_3sl4bloglogoTiki_3

Thanks to everyone who came out to the MSDN TIKI Hut Road show event in Ft. Lauderdale on 12/02/2009 where the topic was Silverlight, Silverlight, and more Silverlight.  Joe Healy did a great job with the Silverlight 3 content and I was fortunate to be able to present on what’s coming in Silverlight 4.

Speaking of Silverlight 4 – there are just a few new things coming your way such as:

  • Tooling
  • Printing API
  • Right-click event handling
  • Webcam/microphone access
  • Mouse wheel support
  • RichTextArea Control
  • ICommand support
  • Clipboard API
  • HTML Hosting with WebBrowser
  • levated trust applications
  • Local file access
  • COM interop
  • Notification (“toast”) API
  • Network authentication
  • Cross-domain Networking changes
  • Keyboard access in full screen mode
  • Text trimming
  • ViewBox
  • Right-to-left, BiDi and complex script
  • Offline DRM
  • H.264 protected content
  • Silverlight as a drop target
  • Data binding
  • IDataErrorInfo and Async Validation
  • DependencyObject Binding
  • StringFormat, TargetNullValue, FallbackValue
  • Managed Extensibility Framework (MEF)
  • Data Grid enhancements
  • Fluid UI support in items controls
  • Implicit theming
  • Google Chrome support

You can download my slide deck and all the cool demo code samples from my SkyDrive folder at:

http://cid-e80ea9288abd4452.skydrive.live.com/browse.aspx/Silverlight4

Take a look and start playing with Silverlight 4 – gets started at http://silverlight.net

Enjoy!

Technorati Tags:
Posted by jbarnes | 0 Comments
Filed under:

The Story of MyChristmasCatalog.com

MyXmasCatalog

‘Twas the week before the holiday season…last week, I caught-up with Ron Teblum, CEO of Catalog Enterprises Inc. and Raphael Parentes, lead graphic designer, to discuss the launch of MyChristmasCatalog.com and their innovative use of Silverlight3 and Expression Blend and to deliver a truly unique one-stop, holiday shopping destination and experience.

Catalog Enterprises was one of the first registered Microsoft Bizspark Partners when the program launched almost a year ago - and now they are leading the race in e-Commerce 3.0 using Microsoft technologies.  By leveraging all the rich media capabilities in Silverlight 3, they have brought together all the familiar sights and sounds of Christmas, including Christmas in New York, Silverlight games for the kids, the narrated Christmas story, Christmas for soldiers, and a truly unique shopping experience to help you find that perfect gift for those on your holiday list this season.

And don’t forget to check the Christmas Traditions section - they have digitized all the old catalogs from your childhood; Sears, Spiegel’s, Schwarz, and JC Penney’s using their proprietary print media conversion tool that converts them into digital flip-books.  And using the Silverlight Deep-Zoom technology – you can once again see all the cool toys you didn’t get for Christmas…

http://blogs.msdn.com/innov8showcase/archive/2009/11/15/arcast-tv-the-story-of-mychristmascatalog-com.aspx

Check out the Channel 9 Interview:

 Ch9xmas

http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-The-Story-of-MyChristmasCatalogcom 

 

Posted by jbarnes | 0 Comments

NBC Winter Olympics on Silverlight

SL3NBCWinterOlympics

NBC and Microsoft are getting the band back together for a full Silverlight experience around the 2010 Winter Olympics. You'll have DVR control of the video, including rewind, sharing, and saving clips. There will be a Facebook Connect feature to allow you to socialize the insanity (or coolness, depending on your POV) of skiing with a rifle

Check-out the Channel9 article at: http://channel9.msdn.com/shows/This+Week+On+Channel+9/TWC9-Channel-9-Goes-Live-Zune-detecting-memory-leaks-Life-at-MSFT/

The site will also include Deep Zoom photo galleries so you can enjoy each flake of snow individually. More details to come as we get closer to the event.

Related Article: http://www.techcrunch.com/2008/01/06/microsoft-silverlight-gets-a-high-profile-win-2008-bejing-olympics/

Posted by jbarnes | 0 Comments

Each month through June 2010, we’ll bring you a 90-minute Architect focused Webcast to educate on the latest trends/topics and how new technologies can align with your business needs.

Architect_Innovation_Cafe

Title:  An Architect’s perspective on Silverlight 3

November 24, 2009 at 11:00am – 12:30pm PST

Presenter: Tim Heuer

Abstract:  Many .NET developers are becoming more and more interested in the Rich Internet Application development space, and in particular Silverlight.  In this session we will step back from a detailed implementation technology and take a higher level look at Silverlight from the architect’s perspective.  We will discuss the types of applications where Silverlight makes sense and some scenarios where Silverlight may not be the appropriate technology.  We will also delve into some of the architectural decisions that the architect must consider when writing applications for this platform and where some of the tradeoffs may lie.

Event ID:  1032432980

Link to Register:  http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032432980&Culture=en-US

--------------------------------------------------------------------------------------------------------------------------

Title: Cloud-computing architecture – designing multi-tenant applications on Windows Azure.

November 25, 2009, 11:00am – 12:30pm PST

Speaker:  Joseph Hofstader

Abstract: Cloud computing is one of the hottest topics in information technology today.  With all the confusion surrounding acronyms ending in ‘aas’ like Platform as a Service (PaaS), Infrastructure as a Service (IaaS) and Software as a Service (SaaS) it can be intimidating for even seasoned IT professionals.  This presentation will briefly discuss the different types of cloud platforms and then address one of the key business scenarios for the cloud: Software as a Service.

Software as a Service is a business model for making applications available over the Internet.  One of the key tenets of SaaS is multi-tenancy, or software designed to be used by multiple parties.  Designing SaaS applications touches on many of the technologies that comprise the Azure platform: Processing, Storage, Workflow, Database and most importantly security.   This presentation will discuss how each of technologies can be utilized to define a flexible architecture for multi-tenant solutions.

Event ID:  1032432981

Link to Register: http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032432981&Culture=en-US

SPEAKER BIOS

Tim Heuer

I currently work for Microsoft as a program manager for Microsoft Silverlight, a web technology aimed at delivering rich internet experiences to users.  Before this current role, I was a developer evangelist for Microsoft serving the Arizona, Nevada, New Mexico, Colorado, Montana and Utah areas aiming to strengthen and support communities and software developers in these geographies. 

Josepher Hofstader

Joseph Hofstader is an architect/evangelist in Microsoft Communications Sector.  Joe has spent his career architecting, designing and developing solutions in the telecommunications industry.  Over the last 5 years, he has been involved in architecting solutions that provide telecommunications services in the cloud.  Joe presents regularly at industry events sponsored by organizations like the TMForum  and the National Association of Broadcasters.  In his spare time Joe is an adjunct professor in the department of Information Technology and Electronic Commerce at the University of Denver’s Daniels College of Business.

Posted by jbarnes | 0 Comments

Innovation Showcase – Windows 7 Slides and Demos

InnovationShowcase

A huge Thanks! to everybody who attended the Innovation Showcase event for Windows 7…   There’s certainly a ton of exciting new features and capabilities in Windows 7 and it seemed like we hardly scratched the surface by covering this laundry list of topics:

  • The Windows 7 Taskbar
  • Jump Lists
  • Thumbnails
  • Libraries
  • Federated Search
  • The Ribbon
  • Windows Web Services
  • Background services & Tasks
  • Multi-Touch
  • Sensor & Location Platform
  • Windows Application Compatibility
  • XP Mode 

You can download all the slides and cool demos from my SkyDrive folder at:
http://cid-e80ea9288abd4452.skydrive.live.com/browse.aspx/Windows%207


Another great resources is the Windows 7 Training Kit For Developers (updated 10/22/2009):
http://www.microsoft.com/downloads/details.aspx?FamilyID=1c333f06-fadb-4d93-9c80-402621c600e7&displaylang=en

Remember to keep in touch with us at: http://blogs.msdn.com/innov8showcase
Enjoy!

Technorati Tags:

Posted by jbarnes | 0 Comments

ARCast.TV - How to Improve Testability with a Modular Architecture

ARCCASt

Mario Cardinal and Aaron Kowall discuss how to easily test in an autonomous way an application conceived with modular abstractions such as the "layer". Mario and Aaron discuss how to partition the concerns of the application into layers and best practices regarding application architecture and modularity.

 


ARCast.TV - How to Improve Testability with a Modular Architecture

 

Technorati Tags: ,,

Posted by jbarnes | 0 Comments
Filed under:

Visual Studio 2010 + .NET 4.0 = Parallelism for the Masses

SingleProc DualProc QuadProc

Got Multiple Processors?  With the hardware advances today, you would really have to search hard to find a good laptop, desktop, or server that doesn’t come with multi-core processor technologies in the box...

As software developers, we have been spoiled by Moore’s Law (http://www.intel.com/technology/mooreslaw) which states that: “The number of transistors on a chip will double about every 2 years” …

MooresLaw

If you look at the chart above, you can certainly see that this has been true over the last 25+ years.  Typically, this has been manifested as clock-speed increases..

FreeLunch

Well, my friends, I’m sorry to say it – but the free Lunch is over…and the reason is HEAT!  We have now reached a major inflection point in the industry as far as taking advantage of further improvements in processor clock speed improvements – and the reasons for this are:

  • Increased clock speed == increases power usage
  • Increased power usage == increased heat output
  • Harder to keep the chips cool…

To drive this point home, here is a picture of what I am going to call an “Egg McMotherboard” – and yes, someone has actually documented exactly how you too can fry an egg on your motherboard using a few pennies as a heat-sink…notice also from the picture below - that this is a water-cooled CPU!

EggMcMotherboard   

So, what’s the answer? –> Scale-Out by taking advantage of the now largely available Multi / Many Core processors along with the new Parallel Programming capabilities coming in Visual Studio 2010 and the .NET 4.0 Framework. 

VS2010Parallel_Managed  

As you can see in the diagram above, Visual Studio 2010 and the .NET 4.0 framework will provide (2) new programming libraries to help you take advantage of Parallel programming to dramatically speed-up your applications.

The Task Parallel Library – allows for (2) types of parallelism:

Task Parallelism - “fine grained”
Simultaneously perform multiple independent operations. Divide-and-conquer, tasks, threads, fork/join, futures, etc.

Imperative Data Parallelism
Apply the same operation to common collections/sets in parallel. Looping, data partitioning, reductions, scans, etc.

The Parallel LINQ (PLINQ) Library:

Declarative Data Parallelism
Define what computation needs to be done, without the how. Selections, filters, joins, aggregations, groupings, etc.

Why You Should Care:

What does all this mean to you? Consider the following code snippet - that represents a traditional (sequential) approach to processing a common task such as creating thumbnails for a series of images;  We will demonstrate how this simple loop can be expressed using each of the (3) new Parallel processing metaphors:

Traditional Sequential Approach:

Sequential

Parallel Tasks:

Below is the same processing loop – but slightly modified to take advantage of the new Tasks API in the .NET 4.0 framework:

Tasks

Imperative Data Parallelism:

The code below illustrates how you can “Parallelize” your FOR / FOREACH loops to express common imperative data-oriented operations.  Note how this is as easy as adding Parallel. in front of your ForEach statements:

ForLoop

PLINQ:

PLINQ is an implementation of LINQ-to-Objects that executes queries in parallel.  The concept is that you express what you want to accomplish, rather than how you want to accomplish it.  Note that this has Minimal impact to existing LINQ queries…the only difference is adding an AsParallel() statement in front of the Select statement…How cool is that?
PLINQ 

And the results:

I ran each of these on my dual-core Dell 820 laptop with Windows 7 Ultimate – here are the results:

Parallel_results Parallel_results_Chart

Note that each one of the (3) parallel methods reduced the processing time to LESS THAN HALF of the time it took to process sequentially – WITH MINIMAL CHANGES TO THE CODE!

QUAD Core Anyone?

I happen to have a Quad-Core workstation at home and wanted to take my parallel processing tests one step farther – to see how the relative performance gains stacked-up across dual and quad-core machines…

For this test, I chose a different problem example – measuring how much time it takes to calculate all the Prime numbers for sets of 5,10, and 15 million – across each type of processor. 

Here is the sequential FOR loop that was the baseline:  

ForLoop2

And here is the modified code to take advantage of Declarative Parallel processing – note how the loop also requires special processing to make sure that each iteration protected - the interlocked functions provide a simple mechanism for synchronizing access to a variable that is shared by multiple threads. This function is atomic with respect to calls to other interlocked functions.

ParallelFor

Here are the results:

QuadResults

And a chart that shows just how dramatic an effect Parallel processing in the .NET 4.0 framework really is:

QuadResultsChart

Note how the scalability is almost linear – using parallel processing techniques across Dual-Core machines takes roughly 1/2 the processing time of traditional programming methods.  And running the same code on a Quad-processor takes roughly 1/4 of the time!

I had the chance to present this topic recently at the Windows 7 / Windows Server 2008 R2 event in Ft. Lauderdale, Florida.  I am convinced that this will be a real game-changer for .NET Architects and Developers who are looking to Do More With Less in the new economy…You can download my slides and demos for this talk from my SkyDrive folder at:

http://cid-e80ea9288abd4452.skydrive.live.com/browse.aspx/Parallelism

Enjoy!

Silverlight 3 + Windows 7 = Browser-based Multi-Touch Game

CrazyCoins

Here is the first-ever on-line game that combines the power of Silverlight 3 with Windows 7 Multi-Touch to give you a browser experience like never before! 

If you have a Windows 7 Multi-Touch device – point your browser to http://www.playcrazycoins.com and get ready for some fun!  

Be sure to read Kevin D. Wolf’s blog posts on what he used to create the game and how to incorporate Windows 7 Multi-Touch into the application:

Introducing Crazy Coins – a Silverlight 3.0 Multi-Touch Application
http://new.efficientcoder.net/2009/08/introducing-crazy-coins-silverlight-30.html

Silverlight 3.0 and MultiTouch
http://new.efficientcoder.net/2009/07/silverlight-30-and-multitouch.html

Enjoy!

Posted by jbarnes | 0 Comments
More Posts Next page »
 
Page view tracker