SlideShare a Scribd company logo
1 of 22
Building Resilient Azure Solutions for Office 365
Josh Carlisle
B&R Business Solutions
@joshcarlisle
Developer | Level 200 | SharePoint Saturday Atlanta
#SPSATL #Office365 #Azure
Who Am I
• Raleigh North Carolina
• Senior Solution Developer | B&R Business Solutions x 12 years
• Developer x 20 years | SharePoint x 12 Years | Azure & Office 365 x 4 Years
• Involved with SharePoint Saturday since the first event back in 2009
• Twitter: @joshcarlisle
• Web: www.joshcarlisle.io
Overview
• Overview on the importance of resiliency in your
Azure based Office 365 solutions.
• How to architect your infrastructure for resiliency
• How to architect your application for resiliency.
Resiliency is all about your
application continuing to work
despite having problems.
When it rains…
Office 365 & Azure
• Azure is a powerful and one of the most popular solutions platforms for
Office 365.
• Many organizations today have custom SharePoint Add-ins that are
hosted on Azure.
• Many organizations employ custom services used throughout Office
365 that are hosted on Azure.
• Azure Functions are becoming increasingly popular solution for various
custom solutions throughout SharePoint & Office 365.
• Organizations often have expectations in regards to solutions hosted in
Azure (or any cloud platform)
Why you need to think about Resiliency?
• Organizations expect instant resiliency by virtue of being in the
cloud.
• Organizations expect auto-magic continuity during outages or
periods of reduced availability.
• Organizations expect any custom solution deployed to the
cloud will have instant resiliency.
• Addressing Resiliency is different for every application
depending on your solution.
• Careful analysis should be made to identify potential failure
points.
• Should be done early in project due to infrastructure,
application design, and cost considerations.
Common Azure Solution – Identifying Potential Infrastructure &
Edge Points of Failure
API Endpoint
External API
Endpoint
(third party)
Azure East US Region
Sql Database
Common Azure Solution – Adding Resiliency
API Endpoint
External API
Endpoint
(third party)
Azure East US Region
API Endpoint
Azure West US Region
SQL DB
SQL DB
Queue
Queue
Function
Function
Failover 
Local ReadsTraffic
Manager
Infrastructure Demo
What about ….
• Azure Storage w/replication
•Service Bus Queues w/namespaces
• Cosmos DB w/ global distribution
•Virtual Machines w/ VM Scale Sets
• Serverless Architectures
• Container Based Architectures
Software Resiliency
• Modern Applications are often simply orchestrating calls to other systems and
services
• Commonly experience transient failures – the “try that again” type failure
• Also experience more impactful events like service outages that can potentially
take longer to resolve.
• Commonly applications end with timeouts and other type of blocked
operations
• Non Transient failures can consumewaste resources and contribute to slower
recovery time for effected services.
• There are common software patterns that can address these including
 Retry Pattern (Transient)
 Circuit Breaker Pattern (Non-Transient)
 Queue Based Load Leveling
Transient Failures & Retry Pattern
• Cloud based solutions are often heavily dependent on network connections and external
services.
• Many issues caused by these types of failures are self healing and quickly fix themselves.
• Common issues like dropped databased connection, services under heavy load, external
services throttling connections, issues caused by load balancers, etc
• Many services on Azure have built in retry policies available that offer various degrees of
configuration
• Many common database frameworks such as Entity Framework also provide for retry policies
• Consider dedicated libraries such as Polly.
• Identify types of exceptions and faults that are candidates for retry. Idempotent functions are
good candidates (safe to be retried – same result whether execute 1x or 20x)
• WARNING!!! Aggressive retry policies could further degrade failing services!!
What does this look like?
source: https://docs.microsoft.com/en-us/azure/architecture/patterns/retry
Retry Demo w/ Azure Storage & Polly
Circuit Breaker Pattern
• At a certain point exceptions become non-transient. The Circuit
Breaker pattern is intended to keep an application from retrying a
request that is likely to fail.
• Can often be utilized in conjunction with the Retry Pattern.
• Ideal for external resources & services.
• Prevents the over consumption of resources on our own system
caused by failure of another system (think timeouts).
• User requests fail more quickly but just as importantly resources
won’t be blocked waiting on failure.
• Allows downstream services to potentially recover faster
Circuit Breaker – “State Machine”
source: https://github.com/App-vNext/Polly/wiki/Circuit-Breaker
Circuit Breaker Demos w/Polly
Parting Thoughts….
Plan & Design for
Resiliency
This is not just an IT problem to solve. This is not just a developer problem to solve.
Don’t expect someone else to solve this. Everyone needs to …
Additional Resources
• Resiliency Checklist - https://docs.microsoft.com/en-
us/azure/architecture/checklist/resiliency
• Azure Retry Policies by Technology -
https://docs.microsoft.com/en-us/azure/architecture/best-
practices/retry-service-specific
• Polly - https://github.com/App-vNext/Polly
PLEASE FILL OUT THE EVALUATION FORMS

More Related Content

What's hot

LOBS, BLOBS, CLOBS: Dealing with Attachments in APEX
LOBS, BLOBS, CLOBS: Dealing with Attachments in APEXLOBS, BLOBS, CLOBS: Dealing with Attachments in APEX
LOBS, BLOBS, CLOBS: Dealing with Attachments in APEXEnkitec
 
Oracle Entitlement Server - Managing Organisations
Oracle Entitlement Server  - Managing OrganisationsOracle Entitlement Server  - Managing Organisations
Oracle Entitlement Server - Managing OrganisationsPeter McLarty
 
Self service reporting on Hadoop using Actuate BIRT
Self service reporting on Hadoop using Actuate BIRTSelf service reporting on Hadoop using Actuate BIRT
Self service reporting on Hadoop using Actuate BIRTVaidehi Deshpande
 
205230 primavera installation walkthrough
205230 primavera installation walkthrough205230 primavera installation walkthrough
205230 primavera installation walkthroughp6academy
 
SpringPeople Introduction to Cloud Computing
SpringPeople Introduction to Cloud ComputingSpringPeople Introduction to Cloud Computing
SpringPeople Introduction to Cloud ComputingSpringPeople
 
Role of-analytics-in-db as-life
Role of-analytics-in-db as-lifeRole of-analytics-in-db as-life
Role of-analytics-in-db as-lifeNavneet Upneja
 
Sql developer - Powerful Free tool for Developers and DBA's
Sql developer - Powerful Free tool for Developers and DBA'sSql developer - Powerful Free tool for Developers and DBA's
Sql developer - Powerful Free tool for Developers and DBA'sNavneet Upneja
 
Schema less table & dynamic schema
Schema less table & dynamic schemaSchema less table & dynamic schema
Schema less table & dynamic schemaDavide Mauri
 
SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...
SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...
SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...Sencha
 
UWP apps development - Part 2
UWP apps development - Part 2UWP apps development - Part 2
UWP apps development - Part 2Jiri Danihelka
 
Oracle JET: Enterprise-Ready JavaScript Toolkit
Oracle JET: Enterprise-Ready JavaScript ToolkitOracle JET: Enterprise-Ready JavaScript Toolkit
Oracle JET: Enterprise-Ready JavaScript ToolkitGeertjan Wielenga
 
APEX Alpe Adria Mike Hichwa Keynote April 11th 2019- Zagreb
APEX Alpe Adria Mike Hichwa Keynote April 11th 2019- ZagrebAPEX Alpe Adria Mike Hichwa Keynote April 11th 2019- Zagreb
APEX Alpe Adria Mike Hichwa Keynote April 11th 2019- ZagrebMichael Hichwa
 
Open Source Projects: The Prospero Experience
Open Source Projects:The Prospero ExperienceOpen Source Projects:The Prospero Experience
Open Source Projects: The Prospero ExperienceEric Schnell
 
JaVers (Open Source) - Object auditing and diff framework
 JaVers (Open Source) - Object auditing and diff framework JaVers (Open Source) - Object auditing and diff framework
JaVers (Open Source) - Object auditing and diff frameworkElad Hirsch
 
IWMW 1998 Server Management (2) Promoting Access to Resources
IWMW 1998 Server Management (2) Promoting Access to ResourcesIWMW 1998 Server Management (2) Promoting Access to Resources
IWMW 1998 Server Management (2) Promoting Access to ResourcesIWMW
 
2 dirk vermeylen - modeling with neo4 j
2   dirk vermeylen - modeling with neo4 j2   dirk vermeylen - modeling with neo4 j
2 dirk vermeylen - modeling with neo4 jRik Van Bruggen
 
Lift web framework
Lift web frameworkLift web framework
Lift web frameworkPetr Hošek
 
Decoupling with Domain Events
Decoupling with Domain EventsDecoupling with Domain Events
Decoupling with Domain EventsSteven Smith
 
SenchaCon 2016: Web Development at the Speed of Thought: Succeeding in the Ap...
SenchaCon 2016: Web Development at the Speed of Thought: Succeeding in the Ap...SenchaCon 2016: Web Development at the Speed of Thought: Succeeding in the Ap...
SenchaCon 2016: Web Development at the Speed of Thought: Succeeding in the Ap...Sencha
 
Java enterprise development framework
Java enterprise development frameworkJava enterprise development framework
Java enterprise development frameworkPavel Suvorov
 

What's hot (20)

LOBS, BLOBS, CLOBS: Dealing with Attachments in APEX
LOBS, BLOBS, CLOBS: Dealing with Attachments in APEXLOBS, BLOBS, CLOBS: Dealing with Attachments in APEX
LOBS, BLOBS, CLOBS: Dealing with Attachments in APEX
 
Oracle Entitlement Server - Managing Organisations
Oracle Entitlement Server  - Managing OrganisationsOracle Entitlement Server  - Managing Organisations
Oracle Entitlement Server - Managing Organisations
 
Self service reporting on Hadoop using Actuate BIRT
Self service reporting on Hadoop using Actuate BIRTSelf service reporting on Hadoop using Actuate BIRT
Self service reporting on Hadoop using Actuate BIRT
 
205230 primavera installation walkthrough
205230 primavera installation walkthrough205230 primavera installation walkthrough
205230 primavera installation walkthrough
 
SpringPeople Introduction to Cloud Computing
SpringPeople Introduction to Cloud ComputingSpringPeople Introduction to Cloud Computing
SpringPeople Introduction to Cloud Computing
 
Role of-analytics-in-db as-life
Role of-analytics-in-db as-lifeRole of-analytics-in-db as-life
Role of-analytics-in-db as-life
 
Sql developer - Powerful Free tool for Developers and DBA's
Sql developer - Powerful Free tool for Developers and DBA'sSql developer - Powerful Free tool for Developers and DBA's
Sql developer - Powerful Free tool for Developers and DBA's
 
Schema less table & dynamic schema
Schema less table & dynamic schemaSchema less table & dynamic schema
Schema less table & dynamic schema
 
SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...
SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...
SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...
 
UWP apps development - Part 2
UWP apps development - Part 2UWP apps development - Part 2
UWP apps development - Part 2
 
Oracle JET: Enterprise-Ready JavaScript Toolkit
Oracle JET: Enterprise-Ready JavaScript ToolkitOracle JET: Enterprise-Ready JavaScript Toolkit
Oracle JET: Enterprise-Ready JavaScript Toolkit
 
APEX Alpe Adria Mike Hichwa Keynote April 11th 2019- Zagreb
APEX Alpe Adria Mike Hichwa Keynote April 11th 2019- ZagrebAPEX Alpe Adria Mike Hichwa Keynote April 11th 2019- Zagreb
APEX Alpe Adria Mike Hichwa Keynote April 11th 2019- Zagreb
 
Open Source Projects: The Prospero Experience
Open Source Projects:The Prospero ExperienceOpen Source Projects:The Prospero Experience
Open Source Projects: The Prospero Experience
 
JaVers (Open Source) - Object auditing and diff framework
 JaVers (Open Source) - Object auditing and diff framework JaVers (Open Source) - Object auditing and diff framework
JaVers (Open Source) - Object auditing and diff framework
 
IWMW 1998 Server Management (2) Promoting Access to Resources
IWMW 1998 Server Management (2) Promoting Access to ResourcesIWMW 1998 Server Management (2) Promoting Access to Resources
IWMW 1998 Server Management (2) Promoting Access to Resources
 
2 dirk vermeylen - modeling with neo4 j
2   dirk vermeylen - modeling with neo4 j2   dirk vermeylen - modeling with neo4 j
2 dirk vermeylen - modeling with neo4 j
 
Lift web framework
Lift web frameworkLift web framework
Lift web framework
 
Decoupling with Domain Events
Decoupling with Domain EventsDecoupling with Domain Events
Decoupling with Domain Events
 
SenchaCon 2016: Web Development at the Speed of Thought: Succeeding in the Ap...
SenchaCon 2016: Web Development at the Speed of Thought: Succeeding in the Ap...SenchaCon 2016: Web Development at the Speed of Thought: Succeeding in the Ap...
SenchaCon 2016: Web Development at the Speed of Thought: Succeeding in the Ap...
 
Java enterprise development framework
Java enterprise development frameworkJava enterprise development framework
Java enterprise development framework
 

Similar to Building Resilient Azure Solutions for Office 365 - SharePoint Saturday Atlanta 2017

Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithMarkus Eisele
 
Cloud Design Patterns - Hong Kong Codeaholics
Cloud Design Patterns - Hong Kong CodeaholicsCloud Design Patterns - Hong Kong Codeaholics
Cloud Design Patterns - Hong Kong CodeaholicsTaswar Bhatti
 
8 cloud design patterns you ought to know - Update Conference 2018
8 cloud design patterns you ought to know - Update Conference 20188 cloud design patterns you ought to know - Update Conference 2018
8 cloud design patterns you ought to know - Update Conference 2018Taswar Bhatti
 
Adf and ala design c sharp corner toronto chapter feb 2019 meetup nik shahriar
Adf and ala design c sharp corner toronto chapter feb 2019 meetup nik shahriarAdf and ala design c sharp corner toronto chapter feb 2019 meetup nik shahriar
Adf and ala design c sharp corner toronto chapter feb 2019 meetup nik shahriarNilesh Shah
 
Service Architectures at Scale
Service Architectures at ScaleService Architectures at Scale
Service Architectures at ScaleRandy Shoup
 
Microservices for java architects it-symposium-2015-09-15
Microservices for java architects it-symposium-2015-09-15Microservices for java architects it-symposium-2015-09-15
Microservices for java architects it-symposium-2015-09-15Derek Ashmore
 
Alex mang patterns for scalability in microsoft azure application
Alex mang   patterns for scalability in microsoft azure applicationAlex mang   patterns for scalability in microsoft azure application
Alex mang patterns for scalability in microsoft azure applicationCodecamp Romania
 
Scaling Systems: Architectures that grow
Scaling Systems: Architectures that growScaling Systems: Architectures that grow
Scaling Systems: Architectures that growGibraltar Software
 
Intern Project Showcase.pptx
Intern Project Showcase.pptxIntern Project Showcase.pptx
Intern Project Showcase.pptxritikgarg48
 
Geek Sync | Deployment and Management of Complex Azure Environments
Geek Sync | Deployment and Management of Complex Azure EnvironmentsGeek Sync | Deployment and Management of Complex Azure Environments
Geek Sync | Deployment and Management of Complex Azure EnvironmentsIDERA Software
 
Rainbows, Unicorns, and other Fairy Tales in the Land of Serverless Dreams
Rainbows, Unicorns, and other Fairy Tales in the Land of Serverless DreamsRainbows, Unicorns, and other Fairy Tales in the Land of Serverless Dreams
Rainbows, Unicorns, and other Fairy Tales in the Land of Serverless DreamsJosh Carlisle
 
Adf-fusion-architecture_manage-modular-approach_4581
Adf-fusion-architecture_manage-modular-approach_4581Adf-fusion-architecture_manage-modular-approach_4581
Adf-fusion-architecture_manage-modular-approach_4581Berry Clemens
 
Oracle ADF Architecture TV - Design - ADF Architectural Patterns
Oracle ADF Architecture TV - Design - ADF Architectural PatternsOracle ADF Architecture TV - Design - ADF Architectural Patterns
Oracle ADF Architecture TV - Design - ADF Architectural PatternsChris Muir
 
Cloud patterns at Carleton University
Cloud patterns at Carleton UniversityCloud patterns at Carleton University
Cloud patterns at Carleton UniversityTaswar Bhatti
 
Configuration Management in the Cloud | AWS Public Sector Summit 2017
Configuration Management in the Cloud | AWS Public Sector Summit 2017Configuration Management in the Cloud | AWS Public Sector Summit 2017
Configuration Management in the Cloud | AWS Public Sector Summit 2017Amazon Web Services
 
Ask The Architect: RightScale & AWS Dive Deep into Hybrid IT
Ask The Architect: RightScale & AWS Dive Deep into Hybrid ITAsk The Architect: RightScale & AWS Dive Deep into Hybrid IT
Ask The Architect: RightScale & AWS Dive Deep into Hybrid ITRightScale
 
Microsoft Azure Cost Optimization and improve efficiency
Microsoft Azure Cost Optimization and improve efficiencyMicrosoft Azure Cost Optimization and improve efficiency
Microsoft Azure Cost Optimization and improve efficiencyKushan Lahiru Perera
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitectureAshwini Kuntamukkala
 

Similar to Building Resilient Azure Solutions for Office 365 - SharePoint Saturday Atlanta 2017 (20)

Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolith
 
Cloud Design Patterns - Hong Kong Codeaholics
Cloud Design Patterns - Hong Kong CodeaholicsCloud Design Patterns - Hong Kong Codeaholics
Cloud Design Patterns - Hong Kong Codeaholics
 
8 cloud design patterns you ought to know - Update Conference 2018
8 cloud design patterns you ought to know - Update Conference 20188 cloud design patterns you ought to know - Update Conference 2018
8 cloud design patterns you ought to know - Update Conference 2018
 
Adf and ala design c sharp corner toronto chapter feb 2019 meetup nik shahriar
Adf and ala design c sharp corner toronto chapter feb 2019 meetup nik shahriarAdf and ala design c sharp corner toronto chapter feb 2019 meetup nik shahriar
Adf and ala design c sharp corner toronto chapter feb 2019 meetup nik shahriar
 
Service Architectures at Scale
Service Architectures at ScaleService Architectures at Scale
Service Architectures at Scale
 
Microservices for java architects it-symposium-2015-09-15
Microservices for java architects it-symposium-2015-09-15Microservices for java architects it-symposium-2015-09-15
Microservices for java architects it-symposium-2015-09-15
 
Alex mang patterns for scalability in microsoft azure application
Alex mang   patterns for scalability in microsoft azure applicationAlex mang   patterns for scalability in microsoft azure application
Alex mang patterns for scalability in microsoft azure application
 
Scaling Systems: Architectures that grow
Scaling Systems: Architectures that growScaling Systems: Architectures that grow
Scaling Systems: Architectures that grow
 
Intern Project Showcase.pptx
Intern Project Showcase.pptxIntern Project Showcase.pptx
Intern Project Showcase.pptx
 
Geek Sync | Deployment and Management of Complex Azure Environments
Geek Sync | Deployment and Management of Complex Azure EnvironmentsGeek Sync | Deployment and Management of Complex Azure Environments
Geek Sync | Deployment and Management of Complex Azure Environments
 
Rainbows, Unicorns, and other Fairy Tales in the Land of Serverless Dreams
Rainbows, Unicorns, and other Fairy Tales in the Land of Serverless DreamsRainbows, Unicorns, and other Fairy Tales in the Land of Serverless Dreams
Rainbows, Unicorns, and other Fairy Tales in the Land of Serverless Dreams
 
Adf-fusion-architecture_manage-modular-approach_4581
Adf-fusion-architecture_manage-modular-approach_4581Adf-fusion-architecture_manage-modular-approach_4581
Adf-fusion-architecture_manage-modular-approach_4581
 
Oracle ADF Architecture TV - Design - ADF Architectural Patterns
Oracle ADF Architecture TV - Design - ADF Architectural PatternsOracle ADF Architecture TV - Design - ADF Architectural Patterns
Oracle ADF Architecture TV - Design - ADF Architectural Patterns
 
Cloud patterns at Carleton University
Cloud patterns at Carleton UniversityCloud patterns at Carleton University
Cloud patterns at Carleton University
 
Configuration Management in the Cloud | AWS Public Sector Summit 2017
Configuration Management in the Cloud | AWS Public Sector Summit 2017Configuration Management in the Cloud | AWS Public Sector Summit 2017
Configuration Management in the Cloud | AWS Public Sector Summit 2017
 
PASS Summit 2020
PASS Summit 2020PASS Summit 2020
PASS Summit 2020
 
Cloud Computing Essentials in Alibaba Cloud
Cloud Computing Essentials in Alibaba CloudCloud Computing Essentials in Alibaba Cloud
Cloud Computing Essentials in Alibaba Cloud
 
Ask The Architect: RightScale & AWS Dive Deep into Hybrid IT
Ask The Architect: RightScale & AWS Dive Deep into Hybrid ITAsk The Architect: RightScale & AWS Dive Deep into Hybrid IT
Ask The Architect: RightScale & AWS Dive Deep into Hybrid IT
 
Microsoft Azure Cost Optimization and improve efficiency
Microsoft Azure Cost Optimization and improve efficiencyMicrosoft Azure Cost Optimization and improve efficiency
Microsoft Azure Cost Optimization and improve efficiency
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices Architecture
 

Recently uploaded

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 

Recently uploaded (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 

Building Resilient Azure Solutions for Office 365 - SharePoint Saturday Atlanta 2017

  • 1. Building Resilient Azure Solutions for Office 365 Josh Carlisle B&R Business Solutions @joshcarlisle Developer | Level 200 | SharePoint Saturday Atlanta #SPSATL #Office365 #Azure
  • 2. Who Am I • Raleigh North Carolina • Senior Solution Developer | B&R Business Solutions x 12 years • Developer x 20 years | SharePoint x 12 Years | Azure & Office 365 x 4 Years • Involved with SharePoint Saturday since the first event back in 2009 • Twitter: @joshcarlisle • Web: www.joshcarlisle.io
  • 3.
  • 4.
  • 5. Overview • Overview on the importance of resiliency in your Azure based Office 365 solutions. • How to architect your infrastructure for resiliency • How to architect your application for resiliency.
  • 6. Resiliency is all about your application continuing to work despite having problems.
  • 8. Office 365 & Azure • Azure is a powerful and one of the most popular solutions platforms for Office 365. • Many organizations today have custom SharePoint Add-ins that are hosted on Azure. • Many organizations employ custom services used throughout Office 365 that are hosted on Azure. • Azure Functions are becoming increasingly popular solution for various custom solutions throughout SharePoint & Office 365. • Organizations often have expectations in regards to solutions hosted in Azure (or any cloud platform)
  • 9. Why you need to think about Resiliency? • Organizations expect instant resiliency by virtue of being in the cloud. • Organizations expect auto-magic continuity during outages or periods of reduced availability. • Organizations expect any custom solution deployed to the cloud will have instant resiliency. • Addressing Resiliency is different for every application depending on your solution. • Careful analysis should be made to identify potential failure points. • Should be done early in project due to infrastructure, application design, and cost considerations.
  • 10. Common Azure Solution – Identifying Potential Infrastructure & Edge Points of Failure API Endpoint External API Endpoint (third party) Azure East US Region Sql Database
  • 11. Common Azure Solution – Adding Resiliency API Endpoint External API Endpoint (third party) Azure East US Region API Endpoint Azure West US Region SQL DB SQL DB Queue Queue Function Function Failover Local ReadsTraffic Manager
  • 13. What about …. • Azure Storage w/replication •Service Bus Queues w/namespaces • Cosmos DB w/ global distribution •Virtual Machines w/ VM Scale Sets • Serverless Architectures • Container Based Architectures
  • 14. Software Resiliency • Modern Applications are often simply orchestrating calls to other systems and services • Commonly experience transient failures – the “try that again” type failure • Also experience more impactful events like service outages that can potentially take longer to resolve. • Commonly applications end with timeouts and other type of blocked operations • Non Transient failures can consumewaste resources and contribute to slower recovery time for effected services. • There are common software patterns that can address these including  Retry Pattern (Transient)  Circuit Breaker Pattern (Non-Transient)  Queue Based Load Leveling
  • 15. Transient Failures & Retry Pattern • Cloud based solutions are often heavily dependent on network connections and external services. • Many issues caused by these types of failures are self healing and quickly fix themselves. • Common issues like dropped databased connection, services under heavy load, external services throttling connections, issues caused by load balancers, etc • Many services on Azure have built in retry policies available that offer various degrees of configuration • Many common database frameworks such as Entity Framework also provide for retry policies • Consider dedicated libraries such as Polly. • Identify types of exceptions and faults that are candidates for retry. Idempotent functions are good candidates (safe to be retried – same result whether execute 1x or 20x) • WARNING!!! Aggressive retry policies could further degrade failing services!!
  • 16. What does this look like? source: https://docs.microsoft.com/en-us/azure/architecture/patterns/retry
  • 17. Retry Demo w/ Azure Storage & Polly
  • 18. Circuit Breaker Pattern • At a certain point exceptions become non-transient. The Circuit Breaker pattern is intended to keep an application from retrying a request that is likely to fail. • Can often be utilized in conjunction with the Retry Pattern. • Ideal for external resources & services. • Prevents the over consumption of resources on our own system caused by failure of another system (think timeouts). • User requests fail more quickly but just as importantly resources won’t be blocked waiting on failure. • Allows downstream services to potentially recover faster
  • 19. Circuit Breaker – “State Machine” source: https://github.com/App-vNext/Polly/wiki/Circuit-Breaker
  • 21. Parting Thoughts…. Plan & Design for Resiliency This is not just an IT problem to solve. This is not just a developer problem to solve. Don’t expect someone else to solve this. Everyone needs to …
  • 22. Additional Resources • Resiliency Checklist - https://docs.microsoft.com/en- us/azure/architecture/checklist/resiliency • Azure Retry Policies by Technology - https://docs.microsoft.com/en-us/azure/architecture/best- practices/retry-service-specific • Polly - https://github.com/App-vNext/Polly PLEASE FILL OUT THE EVALUATION FORMS