Presentation is loading. Please wait.

Presentation is loading. Please wait.

Meet Tejaswi Redkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Similar presentations


Presentation on theme: "Meet Tejaswi Redkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions."— Presentation transcript:

1 Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions on Windows Azure –Worked on Windows Azure since its inception –WW App Plat Community Director Author, Developer, Community Lead –Author of several books – latest Windows Azure Web SitesWindows Azure Web Sites http://www.amazon.com/Windows-Azure-Web-Sites-Building/dp/1491003545/ –Creator of Dynamic Deploy – http://www.dynamicdeploy.com http://www.dynamicdeploy.com –http://blog.dynamicdeploy.com on Windows Azure App Deploymentshttp://blog.dynamicdeploy.com –Creator of StorageCopy http://www.dynamicdeploy.com/storcopy.aspx http://www.dynamicdeploy.com/storcopy.aspx

2 Website Capability Model Migrating Music Store Web App Hybrid Music Store Overview

3 Website Capability Model

4 List of core technical capabilities required by a website Website Capability Model

5 Identity The authentication and authorization mechanism required by the website. Session Management The mechanism used for storing and sharing session information in a web-farm. Caching Specifies caching requirements of a website. Data Storage Specifies the relational and non-relational data storage requirements of a website. UX User Experience requirements of a website. Runtime Any specific application runtime requirements such as.NET 4.5 or PHP 5.4. Data Security at rest Specifies requirements for securely storing data in relational and non-relational data storage. Data Security in transit Specifies requirements for securely transferring data over the network.

6 Load-balancing Specifies load-balancing requirements when running a website in a farm Scale-up Specifies the scale-up requirements when scaling a website to meet capacity demand. Scale-out Specifies the scale-out requirements when scaling a website to meet capacity demand. Monitoring Specifies the monitoring requirements for operating a website Geo- deployment Specifies the requirement for deploying a website in multiple data centers around the world. CDN Specifies the requirement for caching static content in a CDN. Message Bus Specifies whether a website requires to communicate with a message bus. Integration Specifies any integration and external API dependencies of a website.

7 Configuration Management Specifies how and where the configuration of a website is managed. Search Specifies the search functionality requirement of a website. Analytics Specifies if a website needs to track usage analytics. E-commerce Specifies the E-commerce requirements for a website.

8 Music Store Web App

9 An E-commerce SAMPLE website http://mvcmusicstore.codeplex.com/ http://mvcmusicstore.codeplex.com/

10 Architecture

11 Website Capability Model for Music Store

12

13

14

15 Future State Architecture

16 Basic Search Concept

17 ElasticSearch Concepts http://www.elasticsearchtutorial.com/ http://www.elasticsearchtutorial.com/basic- elasticsearch-concepts.htmlhttp://www.elasticsearchtutorial.com/basic- elasticsearch-concepts.html http://joelabrahamsson.com/elasticsearch-101/ http://www.elasticsearch.org

18 Music Store Search Conceptual Architecture

19 Deploying ElasticSearch Virtual Machine using dynamicdeploy.com http://www.dynamicdeploy.com/packagedetails.aspx?pkgid=89 http://t.co/wguojva0Mi Step-by-step procedure Deploy page

20 2 Deployment Options Free 1 VM 2-node cluster with membership

21 Step-by-step procedure for adding search to Music Store is addressed in Ch. 7 of my book. http://t.co/wguojva0Mi

22 Album Ingestion //Add the assembly reference to NEST using Nest; //... //Define a ReIndex Action public ActionResult ReIndex() { //Retrieve the elasticsearch Uri from //configuration string elasticSearchUri = ConfigurationManager.AppSettings ["elasticsearchUri"]; //Create a connection settings object with the //Uri var setting = new ConnectionSettings(new Uri(elasticSearchUri)); //Create a new ElasticClient object with the //connection settings var client = new ElasticClient(setting); //Retrieve theindex name from configuration string elasticsearchindexname = ConfigurationManager.AppSettings ["elasticsearchindexname"]; //For each album call the Index() function foreach (var album in db.Albums) { client.Index(album, elasticsearchindexname, "albums", album.AlbumId); } //Redirect back to the Index() action return RedirectToAction("Index"); }

23 Index

24 Browse public ActionResult Browse(string genre) { var result = ElasticClient.Search (body => body.Query(query => query.ConstantScore( csq => csq.Filter(filter => filter.Term(x => x.Genre.Name, genre.ToLower())))).Take(1000)); var genreModel = new Genre() { Name = genre, Albums = result.Documents.ToList() }; return View(genreModel); }

25 Demo: Music Store Search & Browse using ElasticSearch Head: http://elasticsearchvmsea.cloudapp.net:9200/_plugin/head/http://elasticsearchvmsea.cloudapp.net:9200/_plugin/head/

26 Deploy Piwik VM http://www.dynamicdeploy.com/packagedetails.aspx?pkgid=99

27 Piwik Tracking Code Snippet var pkBaseURL = (("https:" == document.location.protocol) ? "https://piwikvm.cloudapp.net/piwik/" : "http://piwikvm.cloudapp.net/piwik/"); document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E")); try { var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1); piwikTracker.trackPageView(); piwikTracker.enableLinkTracking(); } catch( err ) {}

28 Demo: Custom Analytics

29 Hybrid Connectivity

30 Connecting your cloud applications with applications residing in your own datacenter, typically behind a firewall WAWS does not support network-level connectivity with Virtual Network WAWS does support application-level connectivity using Service Bus

31 Common Scenarios You want your website to retrieve customer data from a Line of Business (LOB) system such as a purchase order or a Customer Relationship Management (CRM) application residing in your datacenter behind a firewall (e.g. Healthcare or Insurance user registration portal that sends data to CRM in your datacenter) You want to retrieve data from a data repository such as a database or a search engine that cannot be migrated to the cloud due to compliance and regulatory reasons

32 Solution Architecture

33 Windows Azure IP Address Ranges http://msdn.microsoft.com/en-us/library/windowsazure/dn175718.aspx

34 Implementation Resources 1).NET On-Premises/Cloud Hybrid Application Using Service Bus Relay This reference article from Microsoft is a step-by-step procedure in building a simple hybrid connectivity between applications. http://www.windowsazure.com/en-us/develop/net/tutorials/hybrid-solution/ 2)How to Use the Service Bus Relay Service This is another basic tutorial on getting started with Service Bus http://www.windowsazure.com/en-us/develop/net/how-to-guides/service-bus-relay/ 3)How to integrate a Windows Azure Web Site with a LOB app via a Service Bus Relay Service This is an advanced article on integrating WAWS with an LOB app using Service Bus Relay and the author also adds Windows Azure Notification Hubs for sending back notifications to mobile devices when the product catalog changes. I recommend reading this article after finishing 1) & 2) http://blogs.msdn.com/b/paolos/archive/2013/10/24/how-to-integrate-a-windows-azure-web-site-with-a-lob-app-via-a-service- bus-relay-service.aspx

35 Tools 1)Service Bus Explorer This is client tool for monitoring and managing Service Bus namespaces. You can download the code from the following location. http://code.msdn.microsoft.com/windowsazure/Service-Bus-Explorer-f2abca5a 2)Port Bridge Port Bridge is a proxy server that abstracts TCP connection bindings between the client and the server in a Service Bus interaction. Means, with Port Bridge, you no longer have to build WCF interfaces for the service, but instead add a Port Bridge indirection layer between the client and the service. Port Bridge will then forward web service calls to the appropriate on- premises LOB application or service. Port Bridge was originally built by Clemens Vasters and it is not updated or supported by Microsoft. You can learn more information about Port Bridge at the following locations. Port Bridge Concepts http://blogs.msdn.com/b/clemensv/archive/2009/11/18/port-bridge.aspx Integrating On-Premises Web Services with Windows Azure Service Bus and Port Bridge http://msdn.microsoft.com/en-us/library/windowsazure/hh697517.aspx

36 PortBridge Service Service Bus Relay PortBridge Agent (VM) Music Store Hybrid Music Store Search using PortBridge ElasticSearch http://mvcmusichybrid.azurewebsites.net http://piwikvmsea.cloudapp.net:9200 My local machine (private datacenter)

37 PortBridge Setup 1)Create ServiceBus Namespace named portbridge 2)Run ElasticSearch on local machine (private datacenter) 3)Configure PortBridge Service on local machine 4)Run PortBridge Service on local machine 5)Configure PortBridge Agent on a VM 6)Run PortBridge Agent on a VM 7)Open VM endpoints for ElasticSearch (9200,9300) 8)Test basic connectivity http://piwikvm.cloudapp.net:9200http://piwikvm.cloudapp.net:9200 9)Deploy Mvc Music Hybrid as another website (http://mvcmusichybrid.azurewebsites.net )http://mvcmusichybrid.azurewebsites.net 10)Configure Music Store to point to the new search endpoint (using Web Sites Configuration in portal) http://mvcmusichybrid.azurewebsites.net http://mvcmusichybrid.azurewebsites.net 11)Reindex Music Albums http://mvcmusichybrid.azurewebsites.net/StoreManager/ReIndexhttp://mvcmusichybrid.azurewebsites.net/StoreManager/ReIndex 12)Test index data (http://piwikvm.cloudapp.net:9200/_plugin/head/ )http://piwikvm.cloudapp.net:9200/_plugin/head/ 13)Test Browse and Search functionality

38 Demo: Hybrid Music Store

39 WebMatrix + NodeJS

40 Source Code Available http://mynodeapps.azurewebsites.net/ https://github.com/dynamicdeploy/appsforazure

41 Newly Released Features Web Jobs –How ToHow To –Capture Hang DumpsCapture Hang Dumps Staging Support –How ToHow To –Continuous DeploymentContinuous Deployment

42 Follow Me on the Twitter! @TejaswiRedkar

43 ©2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Office, Azure, System Center, Dynamics and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.


Download ppt "Meet Tejaswi Redkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions."

Similar presentations


Ads by Google