06 | Case Studies James Chambers | Author, Microsoft ASP.NET/IIS MVP

Slides:



Advertisements
Similar presentations
System Center 2012 R2 Overview
Advertisements

Thread blocks Waiting… Thread Context Hosted Compute Blob Storage Blob Storage Hosted Compute.
Page 1 Ricardo Villalobos Windows Azure Architect Evangelist Microsoft Corporation Designing, Building, and Deploying Windows Azure applications.
“It’s going to take a month to get a proof of concept going.” “I know VMM, but don’t know how it works with SPF and the Portal” “I know Azure, but.
IT:Network:Applications VIRTUAL DESKTOP INFRASTRUCTURE.
Internet Information Server (IIS)
Meet Tejaswi Redkar Director of Business Programs, Microsoft –Solutions Architect focused on everything cloud –Dirty hands from 100+ solutions.
Partner Practice Enablement - Overview This session will focus on integration strategies for applications deployed using Microsoft Azure Websites and Microsoft.
A Close Look Inside the SharePoint Engine Randy Williams, MVP MOSS Synergy Corporate Technologies
Introduction To Windows Azure Cloud
1 NETE4631 Using Google Web Services and Using Microsoft Cloud Services Lecture Notes #7.
What’s New? – BCS 2013 Brett Lonsdale.  Co-founder of Lightning Tools  One of the hosts on the SharePoint Pod Show  Co-organizer of SharePoint Saturday.
Windows Azure Conference 2014 Deploy your Java workloads on Windows Azure.
Partner Practice Enablement - Overview This session will focus on integration strategies for applications deployed using Microsoft Azure Websites and Microsoft.
Microsoft SharePoint Server 2010 for the Microsoft ASP.NET Developer Yaroslav Pentsarskyy
Microsoft Azure SoftUni Team Technical Trainers Software University
Website s Azure Websites is an enterprise class cloud solution for developing, testing and running web apps. Azure Websites allows you to focus on what.
Lugano Microsoft Azure Overview Ken Casada Technical Evangelist Microsoft Switzerland
Module 7: Creating a Microsoft ASP.NET Web Application.
Windows Azure Conference 2014 LAMP on Windows Azure.
Building and Diagnosing Applications using Visual Studio and Azure SDK Paul Yuknewicz Principal PM Manager.
(ITI310) By Eng. BASSEM ALSAID SESSIONS 10: Internet Information Services (IIS)
Building Cloud Solutions Presenter Name Position or role Microsoft Azure.
ALL INFORMATION PRESENTED AS WELL AS ALL SESSIONS ARE MICROSOFT CONFIDENTIAL AND UNDER YOUR NON-DISCLOSURE AGREEMENT (NDA) AND\OR TECHNOLOGY PREVIEW.
Building web applications with the Windows Azure Platform Ido Flatow | Senior Architect | Sela | This session.
Inspirirani ljudima. Ugasite mobitele. Hvala.. Paolo Pialorsi Senior Consultant PiaSys ( Publishing apps for SharePoint 2013 on Microsoft.
The best of WF 4.0 and AppFabric Damir Dobric MVP-Connected System Developer Microsoft Connected System Division Advisor Visual Studio Inner Circle member.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
DreamFactory for Microsoft Azure Is an Open Source REST API Platform That Enables Mobilization of Data in Minutes across Frameworks and Storage Methods.
Mobile Application Solution
Architecture Review 10/11/2004
Deploying Web Application
Scalable Web Apps Target this solution to brand leaders responsible for customer engagement and roll-out of global marketing campaigns. Implement scenarios.
DotNetNuke® Web Application Framework
Why API?.
Logo here Module 3 Microsoft Azure Web App. Logo here Module Overview Introduction to App Service Overview of Web Apps Hosting Web Applications in Azure.
Wonderware Online Cost-Effective SaaS Solution Powered by the Microsoft Azure Cloud Platform Delivers Industrial Insights to Users and OEMs MICROSOFT AZURE.
Jon Galloway | Tech Evangelist Christopher Harrison | Head Geek
Mobile Application Solution
Scalable Web Apps Target this solution to brand leaders responsible for customer engagement and roll-out of global marketing campaigns. Implement scenarios.
Dumps PDF Architecting Microsoft Azure Solutions Are You Worried About Your Exam…
Acutelearn Azure Administration Training in Hyderabad Classroom Training Instructor led trainings at Acutelearn premises Corporate Training Custom tailored.
Excel Services Deployment and Administration
02 | Design and implement database
2017 Real Questions
Running on the Powerful Microsoft Azure Platform,
PaaS - Development Stefan Geiger Gerry
Designed for Big Data Visual Analytics, Zoomdata Allows Business Users to Quickly Connect, Stream, and Visualize Data in the Microsoft Azure Platform MICROSOFT.
02 | Hosting Services in Windows Azure
Utilizing the Capabilities of Microsoft Azure, Skipper Offers a Results-Based Platform That Helps Digital Advertisers with the Marketing of Their Mobile.
20409A 7: Installing and Configuring System Center 2012 R2 Virtual Machine Manager Module 7 Installing and Configuring System Center 2012 R2 Virtual.
03 | Continuous Deployment
Module 1–Windows AppFabric Cache
Data Security for Microsoft Azure
Introducing Qwory, a Business-to-Business Search Engine That’s Powered by Microsoft Azure and Detects Vital Contact Information for Businesses MICROSOFT.
Outline Virtualization Cloud Computing Microsoft Azure Platform
Managing Services with VMM and App Controller
Quasardb Is a Fast, Reliable, and Highly Scalable Application Database, Built on Microsoft Azure and Designed Not to Buckle Under Demand MICROSOFT AZURE.
The Welcome App Germany Supports Migrants with Their Integration Process While All Data and the Exclusive CMS are Stored in Microsoft Azure MICROSOFT AZURE.
Saranya Sriram Developer Evangelist | Microsoft
Technical Capabilities
Developing for Windows Azure
Windows Azure Overview
07 | Lightning Round James Chambers | Author, Microsoft ASP.NET/IIS MVP Tejaswi Redkar | Author, Director of Business Programs (AppPlat)
05 | Go Live Checklist James Chambers | Microsoft MVP in Asp.Net/IIS
Boston Code Camp – April 2019 Jason Haley
Erik Porter Program Manager ASP.NET Microsoft Corporation
Mark Quirk Head of Technology Developer & Platform Group
06 | SQL Server and the Cloud
Windows Azure SDK 1.7 and New Features
Presentation transcript:

06 | Case Studies James Chambers | Author, Microsoft ASP.NET/IIS MVP Tejaswi Redkar | Author, Director of Business Programs (AppPlat)

Module Overview Website Capability Model Migrating Music Store Web App

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

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.

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.

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.

Case Study: Music Store Website

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

Architecture

How do we take this live on WAWS?

POP QUIZ: What is the first step?

Website Capability Model for Music Store

Website Capability Model for Music Store

Website Capability Model for Music Store

Website Capability Model for Music Store

Future State Architecture

Migration Activities Migrating Databases (the 800 pound Gorilla) Application Database Membership Database Enable Session Management Adding ElasticSearch support Adding Custom Analytics with PIWIK

Migrating Application Database to Azure SQL 1) MvcMusicStore.sdf 2) ExportSQLCE Tool (exportsqlce40.3.5.2.33.zip ) http://exportsqlce.codeplex.com/ >ExportSqlCe40.exe "DataSource=C:\musics\App_Data\MvcMusicStore.sdf;" mvcmusic.sql

Migrating Application Database 3) Create a new local SQL Server database (mvcmusic) and load the data in the tables

POP QUIZ: Why not load directly into Azure SQL? Msg 40054, Level 16, State 1, Line 1 Tables without a clustered index are not supported in this version of SQL Server. Please create a clustered index and try again.

Migrating Application Database 4) Deploy database to Azure SQL database

Migrating Application Database

Migrating Application Database

Modify web.config

This was just one database 

Migrating Membership Database to Azure SQL 1) ASPNETDB.MDF 2) Microsoft ASP.NET Universal Providers

Migrating Membership Database to Azure SQL Modify web.config

Migrating Membership Database to Azure SQL Run the website to create Membership and session tables

Publish the website to WAWS

Congratulations! We just moved the data-tier out of the website.

Migration Activities Migrating Databases (the 800 pound Gorilla) Application Database Membership Database Enable Session Management Adding ElasticSearch support Adding Custom Analytics with PIWIK

Basic Search Concept

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

Music Store Search Conceptual Architecture

Run ElasticSearch locally and with dynamicdeploy Run ElasticSearch locally and with dynamicdeploy.com Live: http://elasticsearchvm.cloudapp.net:9200/ Head: http://elasticsearchvm.cloudapp.net:9200/_plugin/head/

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

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

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

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 = ["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");

Index

Browse public 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); }

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

Migration Activities Migrating Databases (the 800 pound Gorilla) Application Database Membership Database Enable Session Management Adding ElasticSearch support Adding Custom Analytics with PIWIK

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

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

Custom Analytics http://piwikvm.cloudapp.net

Migration Activities Migrating Databases (the 800 pound Gorilla) Application Database Membership Database Enable Session Management Adding ElasticSearch support Adding Custom Analytics with PIWIK

Congratulations! We completely modernized the Music Store website.

Case Study: dynamicdeploy.com

A deployment service for Windows Azure apps & VMs http://www

Product Features

Architecture

Only Web Roles can be migrated

POP QUIZ: What will you do next?

Website Capability Model

Website Capability Model

Website Capability Model

Website Capability Model

Migration Activities Migrating the Session Management to Windows Azure SQL Database or Windows Azure Shared Cache Migrating Caching to In-Memory cache or Windows Azure Shared Cache

Session Management using Shared Cache http://www.windowsazure.com/en-us/pricing/details/cache/

Create Cache Endpoint

Install Windows Azure Caching Nuget package

Modify web.config

Modify the dataCacheClient section

Using ASP.NET Session Object //Add an object to session string sessionKey = "packageId"; string sessionValue = "XXXXXXXXXXXX"; Session.Add(sessionKey, sessionValue); //Retrieve object from Session string sessionValue = Session[sessionKey] as string;

Caching using Shared Cache Current In-Role Cache Configuration Identifier is the name of the Web Role

Caching using Shared Cache Cache Configuration for Shared Cache Identifier is the name of the shared cache endpoint

Using Data Cache objects in code // default Cache client initialized from configuration settings. DataCacheFactoryConfiguration config = new DataCacheFactoryConfiguration("default");   DataCacheFactory cacheFactory = new DataCacheFactory(config); DataCache defaultCache = cacheFactory.GetDefaultCache(); // Store and retrieve an object from the default //cache. defaultCache.Put("packageId", "XXXXXXXX"); string packageId = (string) defaultCache.Get("packageId"); // Initialize cache client directly (without //factory) DataCache ddCache = new DataCache("ddcache"); // Put and retrieve a test object from the default cache. ddCache.Put("packageConfig", "YYYYYYYYYYYY"); string packageConfig = (string) ddCache.Get("packageConfig");

Estimated Operating Cost Comparison

Website Capability Model Migrating Music Store to WAWS Summary Website Capability Model Migrating Music Store to WAWS Migrating databases Adding ElasticSearch support Adding custom analytics with Piwik Migrating dynamicdeploy.com to WAWS Migrating session management to shared cache Migrating cache management to shared cache