Need for Speed: Why Applications With No Database and No Services are Fast ARC334 Nick Randolph – Built to Roam.

Slides:



Advertisements
Similar presentations
CONNECTING PHONE APPLICATIONS TO THE CLOUD Nick Randolph (Built to Roam) SESSION CODE: COS-WPH208 (c) 2011 Microsoft. All rights reserved.
Advertisements

Andrew Hennessy Automating Server Application migrations to the Cloud – Goodbye Server INF21 3.
Kevin Francis Developing on Windows Devices ARC33 2.
Chris Hewitt Adding magic to your business with Perceptual Intelligence ARC323 B.
Kevin Francis Azure Media Services Architecture Deep Dive CLD31 2.
Michael Niehaus Using the Windows Store for Business: New Capabilities for Managing Apps in the Enterprise WIN335.
Jessica Payne Microsoft Global Incident Response and Recovery
James Bannan Freddy vs JSON: Azure Resource Manager CLD44 3.
Mick Badran Using Microsoft Service Fabric to build your next Solution with zero downtime – Lvl 300 CLD32 5.
Nick Application Development for the Universal Windows Platform MOB225.
Alec Tucker An Introduction to Cross Platform Native App Development using Xamarin to Develop, Test and Monitor MOB227.
Orin Thomas 30 Bad Habits of Server Administrators INF32 3.
Fai Lai Global IoT Tech Specialist, C+E Specialist Sales Seamless communication between devices and Azure IoT Hub via Azure IoT Protocol Gateway MOB31.
Orin EDP, EFS, BitLocker, RMS, DAC, and IPsec: Protect your files at rest and in transit. WIN341 A.
Building a Microservices solution using Docker,
Basil Apostolou & Craig Pringle The why and how of hybrid cloud CLD22 3.
Kevin Francis Big Building Blocks – a tour of Dynamics ARC323 A.
James Bannan The Cloud That Chuck Norris Built: Resilient Architecture in Azure ARC44 3.
A deep dive into Azure AD B2C
Identity; What you need to know to be in the Microsoft Cloud
3 Ways to Integrate Business Systems to Partners
Azure ARM Templates CLD321 Aaron Saikovski
Serverless in Office 365 Build services with Azure Functions
Making of the Ignite Bot
What's New in System Center Configuration Manager, Current Branch and Intune INF324a Steven Hosking.
30 Tips and Tricks for Managing and Running Ubuntu/Bash/Windows Subsystem for Linux WIN321B Orin Thomas.
Introduction to ASP.NET Core
The Zen of Package Management
Power BI for the Enterprise
Conversation As a Platform - Part 1
Now, let’s implement/trial Windows Defender Advanced Threat Protection
Microsoft Connect /28/ :21 AM
Deploying Linux on Microsoft Public and Private cloud
Building Business Application with Office 365 and Other Line Business Systems
Power BI Architecture, Best Practices, and Performance Tuning
Using Azure Key Vault for Encrypting and Securing your Cloud Workloads
Microsoft Ignite /4/2018 8:46 AM
Techniques and Practices for Testing Angular
Why Is My SQL DW Query Slow?
Microsoft Ignite /19/2018 2:35 AM
Mastering Connectivity to O365
Building a Continuous Delivery Pipeline for ASP.NET Core Apps
Jenkins and Azure OPEN322 Michael Friedrich.
Microsoft Connect /26/2018 1:00 AM
Darren Neimke and Jonathan Ruckert
Ewan MacKellar & Mario Tevanian
Build vNext in VSO and TFS 2015
What’s new in Visual Studio in 2015?
Enriching your BI Semantic Models with Data Analysis Expressions (DAX)
Microsoft Edge for Developers
Microsoft Ignite /19/ :53 AM Applying DevOps principals in applications integrated with Office 365 Evergreen Ben Parker ARC231B © 2015 Microsoft.
Microsoft CSS ADPerf Core Team and Justin Turner
Rob Farley, LobsterPot Solutions
Application Insights:
Modern cloud PaaS for mobile apps, web sites, API's and business logic apps
Bare Metal Development for the Universal Windows Platform
Microsoft Ignite /2/2019 1:15 AM Power Up Your Cross Platform Mobile Code with Platform Specific Features using Xamarin Alec Tucker MOB331 © 2015.
The Power of a Great API Damian Brady
What is Visual Studio Code?
Deep Dive into Azure API Apps and Logic Apps
Jonathan Ruckert & Darren Neimke
UI test automation of MVC apps with Microsoft Edge WebDriver
Chris Henley & Ben DiQual
Empower your users with Azure Active Directory Premium
Service Template Creation from the Ground Up
5/30/2019 1:59 PM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION.
Securing ASP.NET in an Azure Environment
Microsoft Virtual Academy
Presentation transcript:

Need for Speed: Why Applications With No Database and No Services are Fast ARC334 Nick Randolph – Built to Roam

Cloud Fail Step 1: Agree the cloud is a good thing 6/25/2018 10:32 AM Cloud Fail Step 1: Agree the cloud is a good thing Step 2: Continue with traditional architecture Step 3: Disappointed that cloud isn’t any faster Step 4: Move to a different cloud provider Step 5: Opinion is cloud is slow and expensive Step 6: Go back to self-hosting solution © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Cloud Success Step 1: Stop what you’re currently doing Step 2: Choices Step 3: Architect, Build, Test, Deploy, Analyse Step 4: Rinse and repeat Faster solution, lower cost, higher volume – Winning!

2-Tier Architecture I have a database, I have an app BAM! I have a database app © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

3-Tier Architecture Add a service tier Security Separation of concerns Logging Caching …

N-Tier Architecture Designed for scale out of intermediary components Limited by Database – scale up!

Offline is a Golden Bullet Clients download data for offline access Solves connectivity issues Reduces load But… Increases complexity Requires change tracking Increases load during synchronisation

Enter the Cloud Many, many, many different components Many, many, many different ways to build solution

Two Scenarios Data retrieval Traditional: Service returns data from DB to client Cloud: Webjob constructs blob data that’s retrieved by client via the CDN Data processing Traditional: Service updates DB from client request Cloud: Client request goes on queue to be processed; Client notified when processing complete

6/25/2018 10:32 AM Data Retrieval © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Data Retrieval Traditional: Client app request data via a service Service retrieves data directly from database Service/DB throttles data to limit download size Client makes repetitive calls to retrieve all data

Data Retrieval - Traditional Connectivity Not online, no data Service not online, no data Database not available, no data Database load Queries based on app usage (peak loads) Performance Limited by query performance

Data Retrieval Cloud Webjob periodically queries data Prepares blob data (eg json) Blob accessible via CDN

Data Retrieval - Cloud Connectivity Microsoft Ignite 2016 6/25/2018 10:32 AM Data Retrieval - Cloud Connectivity Clients will cache blobs (immutable) Database load Queries are scheduled so load can be managed Performance Download from CDN Blobs are compressed Locally cached © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Demo Generating Blob Contents via a Webjob Microsoft Ignite 2016 6/25/2018 10:32 AM Demo Generating Blob Contents via a Webjob © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

6/25/2018 10:32 AM Data Processing © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Data Processing Traditional Client sends update request to service Service processes update Service sends update to database Service responds to client success/failure

Data Processing - Traditional Connectivity Same as for retrieval Except – unknown success/failure on update Performance Operation to complete before timeout End user experience User has to remain on page/app

Data Processing Cloud Client prepares update request Sends update request when service available Service queues update request Webjob picks up request and updates database Notification sent to device Client notifies user that update is complete

Data Processing - Client Connectivity Update queued for when online Updates are idempotent (for connectivity loss) Notification update on completion Performance / User experience No blocking experience

Demo Data Processing via a Queue and Webjob Microsoft Ignite 2016 6/25/2018 10:32 AM Demo Data Processing via a Queue and Webjob © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Cloud Fail v’s Cloud Success Define the problem you’re trying to solve! Architect for Best user experience Scale Beware the Bottlenecks Cost

Continue your Ignite learning path 6/25/2018 10:32 AM Continue your Ignite learning path Visit Channel 9 to access a wide range of Microsoft training and event recordings https://channel9.msdn.com/ Head to the TechNet Eval Centre to download trials of the latest Microsoft products http://Microsoft.com/en-us/evalcenter/ Visit Microsoft Virtual Academy for free online training visit https://www.microsoftvirtualacademy.com © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

6/25/2018 10:32 AM Thank you Chat with me in the Speaker Lounge Find me @thenickrandolph or nick@builttoroam.com © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.