Top Banner
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 Sites http://www.amazon.com/Windows-Azure-Web-Sites-Building/dp/1491003545 / – Creator of Dynamic Deploy http://www.dynamicdeploy.com http://blog.dynamicdeploy.com on Windows Azure App Deployments
43

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

Dec 24, 2015

Download

Documents

Eileen Butler
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

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 Siteshttp://www.amazon.com/Windows-Azure-Web-Sites-Building/dp/1491003545/

– Creator of Dynamic Deploy – http://www.dynamicdeploy.com

– http://blog.dynamicdeploy.com on Windows Azure App Deployments

– Creator of StorageCopy http://www.dynamicdeploy.com/storcopy.aspx

Page 2: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

• Website Capability Model

• Migrating Music Store Web App

• Hybrid Music Store

Overview

Page 3: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Website Capability Model

Page 4: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

List of core technical capabilities required by a website

Website Capability Model

Page 5: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

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.

Page 6: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Load-balancing Specifies load-balancing requirements when running a website in a farmScale-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.

Page 7: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

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.

Page 8: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Music Store Web App

Page 9: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

An E-commerce SAMPLE websitehttp://mvcmusicstore.codeplex.com/

Page 10: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Architecture

Page 11: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Website Capability Model for Music Store

Page 12: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Website Capability Model for Music Store

Page 13: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Website Capability Model for Music Store

Page 14: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Website Capability Model for Music Store

Page 15: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Future State Architecture

Page 16: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Basic Search Concept

Page 17: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

ElasticSearch Concepts

• http://www.elasticsearchtutorial.com/

• http://www.elasticsearchtutorial.com/basic-elasticsearch-concepts.html

• http://joelabrahamsson.com/elasticsearch-101/

• http://www.elasticsearch.org

Page 18: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Music Store Search Conceptual Architecture

Page 20: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

2 Deployment Options

Free 1 VM

2-node cluster with membership

Page 22: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Album Ingestion//Add the assembly reference to NEST using Nest; //... //Define a ReIndex Actionpublic 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");}

Page 23: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Index

Page 24: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Browsepublic ActionResult Browse(string genre){ var result = ElasticClient.Search<Album>(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); }

Page 25: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Demo: Music Store Search & Browse using ElasticSearch

Head: http://elasticsearchvmsea.cloudapp.net:9200/_plugin/head/

Page 26: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Deploy Piwik VMhttp://www.dynamicdeploy.com/packagedetails.aspx?pkgid=99

Page 27: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Piwik Tracking Code Snippet<!-- Piwik --> <script type="text/javascript">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"));</script><script type="text/javascript">try {var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);piwikTracker.trackPageView();piwikTracker.enableLinkTracking();} catch( err ) {}</script><noscript><p><img src="http://piwikvm.cloudapp.net/piwik/piwik.php?idsite=1" style="border:0" alt="" /></p></noscript><!-- End Piwik Tracking Code -->

Page 28: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Demo: Custom Analytics

Page 29: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Hybrid Connectivity

Page 30: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Hybrid Connectivity

• 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

Page 31: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

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

Page 32: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Solution Architecture

Page 34: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Implementation Resources1).NET On-Premises/Cloud Hybrid Application Using Service Bus RelayThis 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 ServiceThis 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

Page 35: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Tools1)Service Bus ExplorerThis 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 BridgePort 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

Page 36: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

FIREWALL

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)

Page 37: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

PortBridge Setup1) 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:9200

9) Deploy Mvc Music Hybrid as another website (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

11)Reindex Music Albums http://mvcmusichybrid.azurewebsites.net/StoreManager/ReIndex

12)Test index data (http://piwikvm.cloudapp.net:9200/_plugin/head/ )

13)Test Browse and Search functionality

Page 38: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Demo: Hybrid Music Store

Page 39: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

WebMatrix + NodeJS

Page 40: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Source Code Available

• http://mynodeapps.azurewebsites.net/

• https://github.com/dynamicdeploy/appsforazure

Page 42: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

Follow Me on the Twitter!

@TejaswiRedkar

Page 43: Meet Tejaswi Redkar | @tejaswiredkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.

©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.