Brewing Beer with Windows Azure - NDC2013

  • 713 views
Uploaded on

Inspired by one of the Windows Azure gods (Wade Wegner), Maarten and Panos decided to order a homebrewing starter kit. Being total cloud fanboys, they decided to hook their delicious creations to the …

Inspired by one of the Windows Azure gods (Wade Wegner), Maarten and Panos decided to order a homebrewing starter kit. Being total cloud fanboys, they decided to hook their delicious creations to the cloud. Join us and discover how you can connect a variety of devices (like *duino) and USB temperature sensors to Windows Azure to monitor brewing and fermentation temperatures. We'll show you how to do distributed brewing in this fun yet practical session on an interesting use case for the cloud: beer.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
713
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
1
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • Maarten
  • Don’t show everythingyet. Just log in, show themaround the recipes, brewsand public recipes. Feel free to show the monitoring but no needto display the linking of sensors.
  • Show Windows Azure Web SitesShow scaling / reservedinstances
  • Show peoplearound the ACS porta. Show identities, claims andrulegroups.
  • Link a sensor to a brew. Show the effect on ACS. Show the code.
  • A couple of years ago, having a web-based application was enough. Users would navigate to it using their computer’s browser, do their dance and log out again. Nowadays, a web-based application isn’t enough anymore. People have smartphones, tablets and maybe even a refrigerator with Internet access on which applications can run. Applications or “apps”. We’re moving from the web towards apps.
  • A great example of an API is Twitter. They have a massive data store containing tweets and data related to that. They have user profiles. And a web site. And an API. Are you using www.twitter.com to post tweets? I am using the website, maybe once a year. All other tweets come either from my Windows Phone 7’s Twitter application or through www.hootsuite.com, a third-party Twitter client which provides added value in the form of statistics and scheduling. Both the app on my phone as well as the third-party service are using the Twitter API. By exposing an API, Twitter has created a rich ecosystem which drives their real value: data.
  • If you want to expose your data and services to external third-parties, you may want to think about building an API. Having an API gives you a giant advantage on the Internet nowadays. Having an API will allow your web application to reach more users. App developers will jump onto your API and build their app around it. Other websites or apps will integrate with your services by consuming your API. The only thing you have to do is expose a valuable, managed and supported API and get people to know it. Apps will come. Integration will come.
  • The mainidea of API’s is tobroadenyourreach. Youcan’tcreateappsthatcanbeused on every fridge out there, it’s way toocostly. But ifyou have a valuable service which is supported, peoplewillbuildappsaround it. Andifitmakes sense toanyonetocreate a fridge app on top of your API, itwill happen.
  • Be detailed! Usegood status code responses. 201 CREATED is probablybetterthanjust 200 OK whencreating a new entity.+ demo Fiddleragainst HTCPCP deployment out there
  • Link a sensor to a brew. Show the effect on ACS. Show the code.
  • I want you to remember one sentence: “your API user isn’t really your user, but an application acting on behalf of a user”. It has implications. It means you are “delegating” access to an API to a consuming application.
  • As anexample, take lanyrd.com. They keep track of conferences you’llbespeaking at and conferences thepeopleyou follow on Twitter are speaking at. To get that data, theyneed access to the list of peopleyou follow on Twitter. Here’swhathappens:You want to log in on Lanyrd, theyredirectyoutoTwitter’s login page. Notice the token in the address bar: itidentifies the callingapplicationtoTwitter.You log in on Twitterandgive consent with a limited scope: Lanyrdwillbeabletoseeyourtimelineand get the list of peopleyou follow. The scope is limitedtothat: Lanyrdcan’ttweet on mybehalf. Theycan’tfavoritetweets. Or sendmessages. Or do anythingelse.Twitterredirects me back toLanyrd, posting back a “refresh” tokenWhatyoudon’tsee:Lanyrdusesthat token torequestan “access token” fromTwitter.Twitter checks the validity of the incoming token and checks the origin, to make sure no otherapplication but Lanyrdcomes in withthat token.Whenvalid, Twitter returns an access token toLanyrd, containing:An access keyA new refresh tokenThe allowed scopeValiditydurationA signature- When the token expires, Lanyrduses the new refresh token to go throughthisprocessagain.
  • Show peoplearound the ACS porta. Show identities, claims andrulegroups.

Transcript

  • 1. Brewing Beerwith Windows AzureMaarten Balliauw@maartenballiauw
  • 2. Who am I?Maarten BalliauwTechnical Evangelist, JetBrainsAZUGFocus on webASP.NET MVC, Windows Azure, SignalR, ...MVP Windows Azure & ASPInsiderhttp://blog.maartenballiauw.be@maartenballiauwShameless self promotion: Pro NuGet -http://amzn.to/pronugethttp://www.myget.org
  • 3. Setting expectations
  • 4. AgendaBrewing beerBrewBuddyWindows Azure WebsitesService Bus & Access Control Service (ACS)We need an APIQ&A
  • 5. Brewing BeerTurn water into beer
  • 6. How it started…
  • 7. How it started…MVP Summit 2011Wade Wegner talks about his homebrewing hobbyMVP Summit 2012Wade Wegner talks about his homebrewing hobbyLet’s do it!
  • 8. The processGet your kettle cleanAdd & boil ingredientsPour in kettleAdd yeastRinse
  • 9. Brewing = cleaning!
  • 10. The processWait for fermentation to complete
  • 11. The processPour into another kettleRinseWait another weekBottling time!
  • 12. Difficult part…Wait at least 6 weeksfor it to age
  • 13. Maarten…What does this haveto do with Windows Azure?
  • 14. BrewBuddy.netSocial brewing!
  • 15. BrewBuddyView public recipesManage your own recipesManage your own brewsMonitor brew fermentation
  • 16. demoBrewBuddySocial brewing at a glance
  • 17. ArchitecturePublic websiteWindows Azure Web SitesDatabaseSQL Azure databaseSensor data processingWindows Azure Worker RoleSensor dataService Bus topicSensorWhatever…
  • 18. Windows AzureWeb SitesScale fast, fail fast
  • 19. Windows Azure Web Sites Build with ASP.NET, Node.js or PHP Deploy in seconds with FTP, Git or TFS Start for free, scale up as your trafficgrows
  • 20. 1SHARED INSTANCESsharedWindows Azure Web Sites
  • 21. 2SHARED INSTANCESsharedWindows Azure Web Sites
  • 22. SHARED INSTANCES1RESERVED INSTANCE0reservedWindows Azure Web Sites
  • 23. 2RESERVED INSTANCERESERVED INSTANCEreservedWindows Azure Web Sites
  • 24. 2RESERVED INSTANCE RESERVED INSTANCEreservedWindows Azure Web Sites
  • 25. A perfect ramp-up!Start smallWeb Sites are cheapStart freeScale from 1 shared instance……up to 10 reserved instances!Grow big!Hosted Service – PaaSScale at will
  • 26. demoWindows AzureWeb SitesCreating a new web site in seconds
  • 27. Service Bus &Access Control ServiceConnecting sensors
  • 28. Windows Azure Service Bus2 featuresRelayQueues, Topics, Subscriptions
  • 29. Windows Azure Service Bus RelayClientrelay
  • 30. Topics and subscriptionsSensor
  • 31. CharacteristicsWorkers can scale independentlyWorkers can fail independentlySensors connect to service bus directlyNo layer in betweenCheaper
  • 32. What about authN / authZ?Access Control Service to the rescue!SB authenticates clients over ACSACS provides “Send” claim to sensorClaims can be granted/revoked easily
  • 33. demoAccess ControlServiceClaims for authZ on Service Bus
  • 34. Public websiteWindows Azure Web SitesDatabaseSQL Azure databaseSensor data processingWindows Azure Worker RoleSensor managementAccess Control ServiceSensor dataService Bus topicSensorWhatever…Architecture
  • 35. How do you link a sensor?Every sensor has its sensor IDAdd it as an identity to ACSGrant a “Send” claim
  • 36. demoLinking a sensorto a brewRegistering a sensor with Access Control Service
  • 37. We need an API
  • 38. Consuming the web2000-2008: Desktop browser2008-2012: Mobile browser2008-2012: iPhone and Android apps2010-2014: Tablets, tablets, tablets2014-2016: Your fridge (Internet of Things)
  • 39. Twitter & FacebookBy show of hands
  • 40. Make everyone API(as the French say)
  • 41. What is an API?Software-to-Software interfaceContract between software and developersFunctionalities, constraints (technical / legal) Programming instructions andstandardsOpen services to other software developers (public or private)
  • 42. Expose services to 3rd partiesValuableFlexibleManagedSupportedHave a plan
  • 43. Reach More Clients
  • 44. ASP.NET Web APIPart of ASP.NET MVC 4Framework to build HTTP Services (REST)Solid featuresModern HTTP programming modelContent negotiation (e.g. Xml, json, ...)Query composition (OData query support)Model binding and validation (conversion to .NET objects)RoutesFilters (e.g. Validation, exception handling, ...)And more!
  • 45. demoBe detailed!Think about RFC 2324 (HTCPCP)
  • 46. demoASP.NET Web APILet’s craft a quick API
  • 47. A lot of public API’s…“your API consumer isn’t really your user,but an application acting on behalf of a user”(or: API consumer != user)
  • 48. So they do this!
  • 49. In our own API, authN / authZAPI access using OAuth2Access Control Service to the rescue!Client authorized in BrewBuddy.netAccess/refresh tokens through ACS
  • 50. What about authN / authZ?Access Control ServiceAccess/Refresh TokenAPI Consumerclient_id and client_secretBrewBuddy.netInitial authorization (yes/no)API implementationauthorizeregister delegationaccess/refresh tokenaccess API
  • 51. demoAccess ControlService for API’sOAuth2 delegationInstall-Package WindowsAzure.Acs.Oauth2 -IncludePrerelease
  • 52. Takeaways
  • 53. Keep in mind…Web Sites start cheap / scale fastCombine/grow at will (IaaS, PaaS, SaaS)Service bus for asynchrony and scaleAccess Control for devicesWeb API & Access Control
  • 54. Thank you!http://blog.maartenballiauw.be@maartenballiauwhttp://amzn.to/pronuget