Migration of Real Product into Windows Azure Lessons Learned.

Slides:



Advertisements
Similar presentations
Database Architectures and the Web
Advertisements

My first computer: The Apple ][ It wanted to be programmed.
Page 1 Ricardo Villalobos Windows Azure Architect Evangelist Microsoft Corporation Designing, Building, and Deploying Windows Azure applications.
Mark Simms Principal Program Manager Windows Azure Customer Advisory Team.
“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.
Emmanuel Mesas Microsoft Western Europe Leverage Azure Services & Platform with Existing Application.
Azure Services Platform Piotr Zierhoffer. Agenda Cloud? What is Azure? Environment Basic glossary Architecture Element description Deployment.
Overview Of Microsoft New Technology ENTER. Processing....
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 7 Configuring File Services in Windows Server 2008.
Cloud Computing Systems Lin Gu Hong Kong University of Science and Technology Sept. 21, 2011 Windows Azure—Overview.
Enterprise Reporting with Reporting Services SQL Server 2005 Donald Farmer Group Program Manager Microsoft Corporation.
What is a “modern” application? Ulrich (Uli) Homann Chief Architect, Microsoft Services Microsoft Corporation.
How WebMD Maintains Operational Flexibility with NoSQL Rajeev Borborah, Sr. Director, Engineering Matt Wilson – Director, Production Engineering – Consumer.
Building Offline/Cache Mode Web Apps Using Sync Framework Mike Clark Group Manager Cloud Data Services Team
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
First Look Clinic: What’s New for IT Professionals in Microsoft® SharePoint® Server 2013 Sayed Ali (MCTS, MCITP, MCT, MCSA, MCSE )
Lecture 8 – Platform as a Service. Introduction We have discussed the SPI model of Cloud Computing – IaaS – PaaS – SaaS.
Components of Windows Azure - more detail. Windows Azure Components Windows Azure PaaS ApplicationsWindows Azure Service Model Runtimes.NET 3.5/4, ASP.NET,
Training Workshop Windows Azure Platform. Presentation Outline (hidden slide): Technical Level: 200 Intended Audience: Developers Objectives (what do.
Migrating Business Apps to Windows Azure Marc Müller Principal Consultant, 4tecture GmbH
Scalable Architecture for the Cloud. What????  Command Query Responsibility Segregation  What is it?  What kinds of apps is it for?  What are the.
Module 8 Configuring and Securing SharePoint Services and Service Applications.
Getting Started with Windows Azure Name Title Microsoft Corporation.
Monitoring Latency Sensitive Enterprise Applications on the Cloud Shankar Narayanan Ashiwan Sivakumar.
Computer Measurement Group, India Optimal Design Principles for better Performance of Next generation Systems Balachandar Gurusamy,
Tom Castiglia Hershey Technologies
Part 04 – Preparing to Deploy to the Cloud Entity Framework and MVC Series Tom Perkins NTPCUG.
Module 10: Monitoring ISA Server Overview Monitoring Overview Configuring Alerts Configuring Session Monitoring Configuring Logging Configuring.
Windows Azure Conference 2014 Deploy your Java workloads on Windows Azure.
Server to Server Communication Redis as an enabler Orion Free
Web Application Layer (UI) What is StockTrader?  N-tier application  Web tier: ASP.NET  Middle tier(s):.NET WCF Services  Data tier: SQL Server/SQL.
Windows Azure. Azure Application platform for the public cloud. Windows Azure is an operating system You can: – build a web application that runs.
Zvezdan Pavković. Storage Non-Persistent Storage Persistent Storage Easily add additional storage. Networking Internal and Input Endpoints configured.
Migrating an Enterprise Microsoft Product (TFS) on to Windows Azure Sriram Dhanasekaran SDE II, Microsoft.
 Mike Martin  Architect  MEET Member  Crew Member of Azug  Windows Azure Insider  Windows Azure MVP  
1 Copyright © 2005, Oracle. All rights reserved. Following a Tuning Methodology.
Scalability == Capacity * Density.
Inside Azure Diagnostics 17 COLUMBUS, OHOCTOBER 17, 2014CLOUDDEVELOP.ORG.
MGT305 - Application Management in Private and Public Clouds Sean Christensen Senior Product Marketing Manager Microsoft Corporation MGT305.
Microsoft Cloud Solution.  What is the cloud?  Windows Azure  What services does it offer?  How does it all work?  How to go about using it  Further.
Mick Badran Using Microsoft Service Fabric to build your next Solution with zero downtime – Lvl 300 CLD32 5.
Technology Drill Down: Windows Azure Platform Eric Nelson | ISV Application Architect | Microsoft UK |
Building Cloud Solutions Presenter Name Position or role Microsoft Azure.
(re)-Architecting cloud applications on the windows Azure platform CLAEYS Kurt Technology Solution Professional Microsoft EMEA.
MGT305 - Application Management in Private and Public Clouds Daniel Savage Microsoft Corporation MGT305 Kenan Owens Microsoft Corporation.
Building web applications with the Windows Azure Platform Ido Flatow | Senior Architect | Sela | This session.
Copyright © New Signature Who we are: Focused on consistently delivering great customer experiences. What we do: We help you transform your business.
Exploring Networked Data and Data Stores Lesson 3.
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
Scaling out and in with Azure SQL DB Elastic Scale DBA-203 Warner Chaves, MCM/MVP, SQLTurbo.com, Pythian.com.
WINDOWS AZURE AND THE HYBRID CLOUD. Hybrid Concepts and Cloud Services.
Amazon Web Services. Amazon Web Services (AWS) - robust, scalable and affordable infrastructure for cloud computing. This session is about:
Building Azure Mobile Apps
Database Architectures and the Web
Chris Menegay Sr. Consultant TECHSYS Business Solutions
Maximum Availability Architecture Enterprise Technology Centre.
Platform as a Service.
Microsoft Ignite /22/2018 3:27 PM BRK2121
Database Architectures and the Web
Arrested by the CAP Handling Data in Distributed Systems
Windows Azure 講師: 李智樺, Ruddy Lee
A Combination of Public and Private Cloud –
Cloud computing mechanisms
Saranya Sriram Developer Evangelist | Microsoft
Technical Capabilities
Building global and highly-available services using Windows Azure
TN19-TCI: Integration and API management using TIBCO Cloud™ Integration
ZORAN BARAC DATA ARCHITECT at CIN7
Building a Windows Azure Application
Presentation transcript:

Migration of Real Product into Windows Azure Lessons Learned

Agenda 1.Solution Architecture Concept 2.Think as Azure Developer 3.Minimize Latency 4.Master Windows Azure SQL Database 5.Entity Framework with Windows Azure SQL Database 6.Cloud Services - Tips and Tricks 7.Best approaches for Windows Azure Diagnostics, Logging and Monitoring 8.Summary

Solution Architecture Concept Customer N Customer 1 Compute Storage / SQL Azure Data Layer Application Layer Integration Layer Client Layer (on-premise) Desktop Clients Connect Caching Tables Traffic Manager Access Control Cloud Service 1 Data Sync Database Reporting Embedded Clients Desktop Clients Embedded Clients Messaging Cloud Service N

Needs in Technologies / Components

Think as Azure Developer! The three most important areas to master in order to design your application to run at the appropriate scale, performance, and for the best costs

Think as Azure Developer – Minimize Latency Response Time = 2 x (Internet Latency + DC Latency) + App Logic Exec Time + DB Query Exec Time Internet Latency Storage / SQL Azure Web/Worker Roles LB Data Center Latency

Think as Azure Developer – Minimize Latency Response Time = 2 x (Internet Latency + DC Latency) + App Logic Exec Time + DB Query Exec Time

Think as Azure Developer – Minimize Latency To Minimize Internet Latency  Select a data center closest to majority of your users  Use CDN  Combine round-trips from the client application to reduce any physical network overhead associated between tiers To Minimize Data Center Latency  Use Cache where applicable  Combine round-trips from services to Data Storage

Master Windows Azure SQL Database Scale it out  Use several separate Azure SQL Databases  Use Federations  Consider using NoSQL storage for plain data  Use multiple subscriptions Minimize number of round-trips  Use local or Azure Cache when possible  Replace Ad-hoc queries with Stored Procedures  Batch up queries  Use Bulk loading instead of individual inserts

Master Windows Azure SQL Database Expect some operations need to be retried (e.g. due to transient faults, throttling, etc.)  Avoid long-running queries / split operations into smaller chunks  Make your operations easily restartable Determine how much you can stress test your database before getting throttled  Reduce number of application level connections  Scale out data model adding more databases

Master Windows Azure SQL Database Follow traditional best-practices for Data Access Layer  Retrieve only data that you need  Keep transactions as short as possible  Open the connection late and close it ASAP Examine execution plan for each “slow” query, and search areas for improvement Examine Database object schemas and constraints

Entity Framework with Windows Azure SQL Database Eager Loading using (var context = new AdventureWorksDWEntities()) { var query = contect.Customers.Include(“InternetSales”).Where(c => c.InternetSales.Any()).Take(100); var customers = query.ToList(); EnumerateCustomers(); } Lazy Loading using (var context = new AdventureWorksDWEntities()) { var query = contect.Customers.Where(c => c.InternetSales.Any()).Take(100); var customers = query.ToList(); EnumerateCustomers(); }

Entity Framework with Windows Azure SQL Database Figure 1 Comparing Eager Loading to Lazy Loading from a Local Database Figure 2 Comparing Eager Loading to Lazy Loading from SQL Azure

Cloud Services – Best Practices Explicit design to scale-out, NOT scale-up Do not store state on individual instances (“make everything stateless”) Do not assume subsequent requests will hit the same instance Prefer asynchronous calls Design for availability Avoid single point of component failure (multiple web/worker instances, spread across multiple fault/upgrade domains) Fall back to multiple components to mitigate the impact of a specific service being offline / unavailable

Cloud Services – Best Practices Handle failure gracefully  For transient failures, provide appropriate retry mechanisms to reconnect or resubmit work  For other failure events, provide rich instrumentation on the failure event and a suitable error message back to the user.  Fall back to a different service or workflow where possible Isolate services and client APIs behind generic interfaces allow for replacement or side-by-side evaluation

Cloud Services – Optimize Communication Use REST-full services if possible Simpler code paths and easier expose data Use more efficient JSON or binary serialization frameworks Serialization/Deserialization hugely impactful on throughput and latency Use network friendly data transfer objects (DTOs) Do NOT mix data/state and logic in DTOs Avoid dependencies (if you cannot easily serialize a DTO class, you have a bad design) Use asynchronous communication Minimize blocking IIS dispatch pipeline

Classic 1:1 Migration into Azure What is wrong with this? SQL Azure Web Roles LB

“Smart” Migration into Azure Scale storage Decouple receiving work from executing work Scale work tasks via queues SQL Azure / Storage Web Roles LB Worker Roles

Windows Azure Telemetry & Diagnostics Collect  Tune infrastructure performance counters and system events  Instrument application logging Analyze  Grab real-time and historical event logs  Aggregate/Filter required data Consume  Make well-considered correction actions  Publish analytics in a consumable format

Windows Azure Diagnostics – Internal View

Windows Azure Diagnostic Tips Do not rely on Default Diagnostic Monitor configuration Remove unused and add required performance counters / logs Apply appropriate log level filters Set appropriate scheduled transfer periods (5 – 15 minutes) Use dedicated storage account for diagnostics data

Windows Azure Logging Tips Optimize custom application logging  Log all API calls with context, method, unique identifiers of operation, timestamps (latency) and result  Use common logging libraries (e.g. log4net, Nlog)  Use Custom Data Source in Diagnostic Monitor to copy files periodically to blob storage

Summary Be a pro Azure Developer:  Think about performance and latency!  Think about operational costs!  Think about proper logging and monitoring of your solution!

Questions Time Thank you for your time! Questions?

Заповни Анкету Виграй Приз

Migration of Real Product into Windows Azure Lessons Learned By Oleksii Syrotenko Development Team Leader, EPAM Systems Skype: oleksii.syrotenko