SlideShare a Scribd company logo
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 APEX
Enkitec
 
Oracle Entitlement Server - Managing Organisations
Oracle Entitlement Server  - Managing OrganisationsOracle Entitlement Server  - Managing Organisations
Oracle Entitlement Server - Managing Organisations
Peter 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 BIRT
Vaidehi Deshpande
 
205230 primavera installation walkthrough
205230 primavera installation walkthrough205230 primavera installation walkthrough
205230 primavera installation walkthrough
p6academy
 
SpringPeople Introduction to Cloud Computing
SpringPeople Introduction to Cloud ComputingSpringPeople Introduction to Cloud Computing
SpringPeople Introduction to Cloud Computing
SpringPeople
 
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
Navneet 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's
Navneet Upneja
 
Schema less table & dynamic schema
Schema less table & dynamic schemaSchema less table & dynamic schema
Schema less table & dynamic schema
Davide 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 2
Jiri Danihelka
 
Oracle JET: Enterprise-Ready JavaScript Toolkit
Oracle JET: Enterprise-Ready JavaScript ToolkitOracle JET: Enterprise-Ready JavaScript Toolkit
Oracle JET: Enterprise-Ready JavaScript Toolkit
Geertjan 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- Zagreb
Michael Hichwa
 
Open Source Projects: The Prospero Experience
Open Source Projects:The Prospero ExperienceOpen Source Projects:The Prospero Experience
Open Source Projects: The Prospero Experience
Eric 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 framework
Elad 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 Resources
IWMW
 
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
Rik Van Bruggen
 
Lift web framework
Lift web frameworkLift web framework
Lift web framework
Petr Hošek
 
Decoupling with Domain Events
Decoupling with Domain EventsDecoupling with Domain Events
Decoupling with Domain Events
Steven 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 framework
Pavel 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_monolith
Markus Eisele
 
Cloud Design Patterns - Hong Kong Codeaholics
Cloud Design Patterns - Hong Kong CodeaholicsCloud Design Patterns - Hong Kong Codeaholics
Cloud Design Patterns - Hong Kong Codeaholics
Taswar 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 2018
Taswar 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 shahriar
Nilesh Shah
 
Service Architectures at Scale
Service Architectures at ScaleService Architectures at Scale
Service Architectures at Scale
Randy 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-15
Derek 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 application
Codecamp Romania
 
Scaling Systems: Architectures that grow
Scaling Systems: Architectures that growScaling Systems: Architectures that grow
Scaling Systems: Architectures that grow
Gibraltar Software
 
Intern Project Showcase.pptx
Intern Project Showcase.pptxIntern Project Showcase.pptx
Intern Project Showcase.pptx
ritikgarg48
 
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
IDERA 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 Dreams
Josh 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_4581
Berry 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 Patterns
Chris Muir
 
Cloud patterns at Carleton University
Cloud patterns at Carleton UniversityCloud patterns at Carleton University
Cloud patterns at Carleton University
Taswar 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 2017
Amazon Web Services
 
PASS Summit 2020
PASS Summit 2020PASS Summit 2020
PASS Summit 2020
Kellyn Pot'Vin-Gorman
 
Cloud Computing Essentials in Alibaba Cloud
Cloud Computing Essentials in Alibaba CloudCloud Computing Essentials in Alibaba Cloud
Cloud Computing Essentials in Alibaba Cloud
Ferdin Joe John Joseph PhD
 
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
RightScale
 
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
Kushan Lahiru Perera
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices Architecture
Ashwini 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

GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Zilliz
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
Pixlogix Infotech
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 

Recently uploaded (20)

GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 

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