T4 - Build Resilient Microsoft 365 Apps With Microsoft Graph

Download as pdf or txt
Download as pdf or txt
You are on page 1of 21

We did a rename…

Microsoft 365 Developer Proxy


Dev Proxy
So, you’ve built an app

Deployed and ready in production


Launch day comes
Everyone logs on
A cloud API fails
Users lose work
Business loses money
It’s a disaster
Could you have
avoided this?
Build Resilient Microsoft 365
Apps with Microsoft Graph

Garry Trinder & Waldek Mastykarz


Cloud Developer Advocates, Microsoft
What we will cover today

• Audience: Developer, Tester, Administrator


• What are ‘resilient’ apps?
• Why building resilient apps is hard
• How Dev Proxy makes life easier
• Learn how to get started
What are ‘resilient’ apps?

• An app is resilient if it
continues to carry out its mission in the face of adversity
• As in the old Timex commercial
"can take a licking and keep on ticking.”

System Resilience: What Exactly is it? (cmu.edu) – Donald Firesmith


What is ‘resilience’ ?

• Resilience assumes that adverse conditions will occur


• Resilience is not a tick box
• Resilience is a combination of
• Availability, capacity, interoperability, performance, reliability,
robustness, safety, security and usability
• Availability and reliability by themselves are insufficient
Cloud APIs fail

• It’s not a matter of if, it’s when


• How do you know what is going to happen?
• How will your app recover? Will it recover?
• How do you test for failures?
Testing cloud APIs is hard

• You don’t own the APIs


• You can’t turn just turn behaviours on and off
• Hard to get started
• Nobody pays for testing
• Each API is different
• Some return 429s, others 403s, some return several 429s
Dev Proxy

• Helps you build resilient apps on Microsoft 365


• Improve robustness, performance and security
• Test the untestable
• Run against any app
• Any platform and any tech stack
• Supports any HTTP API
• Presets for Microsoft Graph and SharePoint Online
• Low investment (effort and time)
No code changes, no tedious setup
Improve robustness

“the ability to withstand or overcome adverse conditions”


“reveal issues to you before they affect your users”

• Random errors
• What happens when APIs fail?
• Latency
• What happens when APIs are slow?
• Throttling and Rate Limiting
• What happens when APIs throttle?
Improve performance

“the ability to respond efficiently to user requests,


whilst using minimum resources”

• $select guidance
• Are you only returning the data that you need?
• Caching guidance
• Are you sending the same requests in a short period?
Improve security

“ensure the principle of least privilege”

• Detect minimum required permissions


• Are you using the right scopes?
• Detect over consented applications
• Is your app obtaining more permissions than it needs?
Much more…
• Mocking
• Mock API responses
• Mock API error responses
• Mock Microsoft Graph batch responses
• Generate mocks from requests
• Developer guidance
• OData paging guidance
• Microsoft Graph SDK guidance
• client-request-id header guidance
• non-production beta endpoint guidance for Microsoft Graph
• Simulate traffic delays
Dev Proxy v0.12.1

• Checkout out the docs and Getting Started tutorial


• aka.ms/devproxy/
• Download
• aka.ms/devproxy/download
Any questions?
Thank you for listening

aka.ms/devproxy

You might also like