SlideShare a Scribd company logo
Back to
architecture!
Adis Jugo
SPUnite17 Creating Scalable Cloud Solutions
Slide 3
Adis Jugo
Microsoft MVP Office Development
Microsoft MVP Office Servers and Services
In IT for way too long (first money earned with development in 91)
Still dreaming of a Ćevapi restaurant or a vineyard
Director of Product Technology at skybow AG
Born in Sarajevo, B&H, living in Bingen, Germany
Blogger, speaker, author. adisjugo.com
What is this session about?
• No-architecture mantra
• Applied architecture in cloud solutions
• Focus on Office 365 and SharePoint Online
Why this session
• skybow Solution Studio Online
• SaaS offering
• 35000 users at the moment
• Challenges:
• Performance
• Scalability
• Robustness
• Identity, Authentication and Authorization
• Maintainability and operations
 Performance
 Scalability
 Robustness and scalability
 Auth, Identity
 Maintainability and operations
SPUnite17 Creating Scalable Cloud Solutions
Not a new phenomenon
• Cobol
• …
• Windows Forms => Database
• PHP => MySQL
• “Classic” SharePoint development: Webparts talk to lists
• ...
• Modern web applications
• Model understood as DAL
• View understood as UI
• Controller understood as BL
SPUnite17 Creating Scalable Cloud Solutions
SharePoint Framework
Applying DDD to enterprise-oriented Microsoft
Cloud (Azure, Office 365…) solutions
1990es: Domain Driven Design
Danger of over-architecting
SP AnythingBACKEND
SP AnythingBACKEND
FRONTEND SPFx
What did we do
• MVC web part talks directly to datasource
• (SharePoint Online REST API)
• It works!
• No code reusability
•What are our options?
• Move the code for wine adding and calculation out
• Apply architecture
SP AnythingDATA SOURCES
FRONTEND SPFx Web Application Mobile …DaemonWindows
DATA ACCESS LAYER API Apps
BUSINESS LAYER
API Apps
Webhooks
Azure Functions
DAEMONS AND
HANDLERS
Azure Functions
Authentication Logging Caching Testing
SP AnythingDATA SOURCES
FRONTEND SPFx Web Application Mobile …DaemonWindows
DATA ACCESS LAYER API Apps
BUSINESS LAYER
API Apps
Webhooks
Azure Functions
DAEMONS AND
HANDLERS
Azure Functions
Authentication Logging Caching Testing
APP ONLYDELEGATED
(IMPERSONIFICATION)
DEMO 2 – MOVING BL and DAL out
Create AAD Application
App only vs. delegated permissions
Certificates for app only
Azure Functions
Integrating AF into SPFx webparts
Other clients
AAD Application Scenarios
Microsoft Application Architecture Guide
https://msdn.microsoft.com/e
n-us/library/ff650706.aspx
Get to know your toolchain
• Azure Active Directory – Authentication
• JavaScript and Node.JS – front end
• Azure Functions – Business Layer
• Azure API Apps – BL, DAL
• Azure Application Insights – logging, monitoring
When to use what – AAD
• Authentication
• Authorization
• Application Management
• Application Capabilities
• Delegated (impersonation) vs AppOnly (Daemons)
When to use what – JavaScript and Node.JS
• User Interface - RIA
• Modern WebParts (when in SharePoint)
• Azure Functions (Business Logic)
• AAD secured Applications
When to use what – C#, .NET
• AAD secured Web Applications
• Azure Functions (Business Logic)
• Azure API Apps (BL, DAL)
When to use what – Azure Functions
• Lightweight BL
• wrappers around API Apps
• Fast development, drawbacks in development and ALM Cycle
• Limited debugging and tracing
• Plumbing less mature than in API Apps
When to use what – Azure API Apps
• Business Layer, Data Access Layer
• Heavy-weight, reliable code
• Mature development cycle
• Use C#
• Good debugging and tracing
• Relatively easy plumbing
When to use what – Azure Application Insights
• Logging
• Monitoring
• Analysis
• Easy plumbing
Microsoft Cloud Design Patterns
• msdn.microsoft.com/en-us/library/dn568099.aspx
• Availability
• Data Management
• Design and Implementation
• Messaging
• Management and Monitoring
• Performance & Scalability
• Resiliency
• Security
Dino Esposito: Architecting Applications for
Enterprise
• One of the best architecture books ever
• Practical applications of
• Domain Driven Design
Plumbing is not easy (yet)
• Series of blog posts at
• http://adisjugo.com
• http://blog.sharedove.com/adisjugo/index.php/2017/10/15/timerjo
bs-in-sharepoint-online/
• @adisjugo
Thank you. Questions?

More Related Content

PPTX
SPS Gulf : SharePoint 2013 Cloud Business App
PPTX
Office 365 Truths Delve and Office Graph
PPTX
Azure logic app
PDF
Made for Mobile - Let Office 365 Power Your Mobile Apps
PPTX
An Introduction to the Office 365 Patterns and Practices Project
PPTX
Value of share point add ins
PPTX
Into the Cloud! Introducing the New Dynamics AX | David Linton and Joyce Lafleur
PDF
Forge - DevCon 2016: Developing & Deploying Secure, Scalable Applications on ...
SPS Gulf : SharePoint 2013 Cloud Business App
Office 365 Truths Delve and Office Graph
Azure logic app
Made for Mobile - Let Office 365 Power Your Mobile Apps
An Introduction to the Office 365 Patterns and Practices Project
Value of share point add ins
Into the Cloud! Introducing the New Dynamics AX | David Linton and Joyce Lafleur
Forge - DevCon 2016: Developing & Deploying Secure, Scalable Applications on ...

What's hot (20)

PDF
Rishabh Technology and Tools Overview (1)
PDF
O365Con19 - Customise the UI in Modern SharePoint Workspaces - Corinna Lins
PPT
Snowbound Software Company Overview
PPTX
NextGen Portal for Your Organization
PPTX
Benefits of developing single page web applications using angular js
PPTX
What is Azure development?-MS Azure development
PPTX
Tom van gaever-sp_serviceapplications_spsbe17
PPTX
Mobilizing Your SAP Data with Kendo UI Mobile
PPTX
Workflow Best Practices:Five (or More) "Do"s and "Don't"s
PDF
The Magic Behind Faster API Development, Testing and Delivery with API Virtua...
PDF
APIs and Beyond
PPTX
How do you build flexible platforms that focuses on business needs? by Fahim...
PPTX
Office 365 Jivko Petiov, JS Talks 2015
PPTX
Leveraging the new Application Model for structured and repeatable deployments
PPTX
Trendspot ANZ 2014 - Federated Experience Manager - Thomas Eldblom
PPTX
Machine Learning with ML.Net
PDF
Forge - DevCon 2016: Cloud PDM Demystified – The Future of File Management
PPTX
SPSBE18: New era of customizing site provisioning
PPTX
API Management and Hybrid Integration
PPTX
[Vochten/Harbar] SharePoint Server On Premises & Hybrid PowerClass
Rishabh Technology and Tools Overview (1)
O365Con19 - Customise the UI in Modern SharePoint Workspaces - Corinna Lins
Snowbound Software Company Overview
NextGen Portal for Your Organization
Benefits of developing single page web applications using angular js
What is Azure development?-MS Azure development
Tom van gaever-sp_serviceapplications_spsbe17
Mobilizing Your SAP Data with Kendo UI Mobile
Workflow Best Practices:Five (or More) "Do"s and "Don't"s
The Magic Behind Faster API Development, Testing and Delivery with API Virtua...
APIs and Beyond
How do you build flexible platforms that focuses on business needs? by Fahim...
Office 365 Jivko Petiov, JS Talks 2015
Leveraging the new Application Model for structured and repeatable deployments
Trendspot ANZ 2014 - Federated Experience Manager - Thomas Eldblom
Machine Learning with ML.Net
Forge - DevCon 2016: Cloud PDM Demystified – The Future of File Management
SPSBE18: New era of customizing site provisioning
API Management and Hybrid Integration
[Vochten/Harbar] SharePoint Server On Premises & Hybrid PowerClass
Ad

Similar to SPUnite17 Creating Scalable Cloud Solutions (20)

PDF
O365Engage17 - Architecting cloud only solutions with office 365, azure, and ...
PPTX
Architecting Applications the Microsoft Way
PDF
Web architecture pocket guide
PPTX
ESPC 2014 Barcelona: It is not your Father's SharePoint - DEV
PPTX
Azure for SharePoint Developers - Workshop - Part 1: Azure AD
PPT
Scalable And Usable Web Applications
PPTX
Introduction to the Microsoft Azure Cloud.pptx
PPT
ArcReady - Scalable And Usable Web Applications
PPT
Improving on How Architectures are Described
PPTX
Identity and o365 on Azure
PPTX
azure-250215.pptx
PPTX
IT architecture and architects
PPTX
PDF
SharePoint in the clouds, on earth, in the subway, and in a fruit salad (mang...
PDF
Learn these 10 core skills for Enterprise Mobility to future proof your enter...
PPT
Cloud presentation
PPTX
Azure Overview
PPT
Azure Services Platform_Partner_Briefing
PDF
Build apps
PPTX
Improving Application Security With Azure
O365Engage17 - Architecting cloud only solutions with office 365, azure, and ...
Architecting Applications the Microsoft Way
Web architecture pocket guide
ESPC 2014 Barcelona: It is not your Father's SharePoint - DEV
Azure for SharePoint Developers - Workshop - Part 1: Azure AD
Scalable And Usable Web Applications
Introduction to the Microsoft Azure Cloud.pptx
ArcReady - Scalable And Usable Web Applications
Improving on How Architectures are Described
Identity and o365 on Azure
azure-250215.pptx
IT architecture and architects
SharePoint in the clouds, on earth, in the subway, and in a fruit salad (mang...
Learn these 10 core skills for Enterprise Mobility to future proof your enter...
Cloud presentation
Azure Overview
Azure Services Platform_Partner_Briefing
Build apps
Improving Application Security With Azure
Ad

More from NCCOMMS (20)

PDF
O365Con19 - UI:UX 101 Learn How to Design Custom Experiences for SharePoint -...
PDF
O365Con19 - Model-driven Apps or Canvas Apps? - Rick Bakker
PDF
O365Con19 - Office 365 Groups Surviving the Real World - Jasper Oosterveld
PDF
O365Con19 - Developing Timerjob and Eventhandler Equivalents - Adis Jugo
PDF
O365Con19 - Sharepoint with (Artificial) Intelligence - Adis Jugo
PDF
O365Con19 - What Do You Mean 90 days Isn't Enough - Paul Hunt
PDF
O365Con19 - Tips and Tricks for Complex Migrations to SharePoint Online - And...
PDF
O365Con19 - Start Developing Teams Tabs and SharePoint Webparts with SPFX - O...
PDF
O365Con19 - Start Your Journey from Skype for Business to Teams - Sasja Beere...
PDF
O365Con19 - Lets Get Started with Azure Container Instances - Jussi Roine
PDF
O365Con19 - Azure Blackbelt - Jussi Roine
PDF
O365Con19 - Be The Protagonist of Your Modern Workplace - Corinna Lins
PDF
O365Con19 - How to Really Manage all your Tasks Across Microsoft 365 - Luise ...
PDF
O365Con19 - Sharing Code Efficiently in your Organisation - Elio Struyf
PDF
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
PDF
O365Con19 - Keep Control of Your Data with AIP and CA - Bram de Jager
PDF
O365Con19 - Kaizala a Dive Into the Unknown - Rick van Rousselt
PDF
O365Con19 - How to Inspire Users to Unstick from Email - Luise Freese
PDF
O365Con19 - O365 Identity Management and The Golden Config - Chris Goosen
PDF
O365Con19 - Exposing Multi-Geo Capabilities in Office 365 - Paul Hunt
O365Con19 - UI:UX 101 Learn How to Design Custom Experiences for SharePoint -...
O365Con19 - Model-driven Apps or Canvas Apps? - Rick Bakker
O365Con19 - Office 365 Groups Surviving the Real World - Jasper Oosterveld
O365Con19 - Developing Timerjob and Eventhandler Equivalents - Adis Jugo
O365Con19 - Sharepoint with (Artificial) Intelligence - Adis Jugo
O365Con19 - What Do You Mean 90 days Isn't Enough - Paul Hunt
O365Con19 - Tips and Tricks for Complex Migrations to SharePoint Online - And...
O365Con19 - Start Developing Teams Tabs and SharePoint Webparts with SPFX - O...
O365Con19 - Start Your Journey from Skype for Business to Teams - Sasja Beere...
O365Con19 - Lets Get Started with Azure Container Instances - Jussi Roine
O365Con19 - Azure Blackbelt - Jussi Roine
O365Con19 - Be The Protagonist of Your Modern Workplace - Corinna Lins
O365Con19 - How to Really Manage all your Tasks Across Microsoft 365 - Luise ...
O365Con19 - Sharing Code Efficiently in your Organisation - Elio Struyf
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
O365Con19 - Keep Control of Your Data with AIP and CA - Bram de Jager
O365Con19 - Kaizala a Dive Into the Unknown - Rick van Rousselt
O365Con19 - How to Inspire Users to Unstick from Email - Luise Freese
O365Con19 - O365 Identity Management and The Golden Config - Chris Goosen
O365Con19 - Exposing Multi-Geo Capabilities in Office 365 - Paul Hunt

Recently uploaded (20)

PDF
Empathic Computing: Creating Shared Understanding
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Big Data Technologies - Introduction.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Cloud computing and distributed systems.
PPTX
Machine Learning_overview_presentation.pptx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Electronic commerce courselecture one. Pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
cuic standard and advanced reporting.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Empathic Computing: Creating Shared Understanding
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Big Data Technologies - Introduction.pptx
Spectral efficient network and resource selection model in 5G networks
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
MIND Revenue Release Quarter 2 2025 Press Release
Cloud computing and distributed systems.
Machine Learning_overview_presentation.pptx
Building Integrated photovoltaic BIPV_UPV.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Electronic commerce courselecture one. Pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Mobile App Security Testing_ A Comprehensive Guide.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
cuic standard and advanced reporting.pdf
MYSQL Presentation for SQL database connectivity
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025

SPUnite17 Creating Scalable Cloud Solutions

  • 3. Slide 3 Adis Jugo Microsoft MVP Office Development Microsoft MVP Office Servers and Services In IT for way too long (first money earned with development in 91) Still dreaming of a Ćevapi restaurant or a vineyard Director of Product Technology at skybow AG Born in Sarajevo, B&H, living in Bingen, Germany Blogger, speaker, author. adisjugo.com
  • 4. What is this session about? • No-architecture mantra • Applied architecture in cloud solutions • Focus on Office 365 and SharePoint Online
  • 5. Why this session • skybow Solution Studio Online • SaaS offering • 35000 users at the moment • Challenges: • Performance • Scalability • Robustness • Identity, Authentication and Authorization • Maintainability and operations
  • 6.  Performance  Scalability  Robustness and scalability  Auth, Identity  Maintainability and operations
  • 8. Not a new phenomenon • Cobol • … • Windows Forms => Database • PHP => MySQL • “Classic” SharePoint development: Webparts talk to lists • ... • Modern web applications • Model understood as DAL • View understood as UI • Controller understood as BL
  • 11. Applying DDD to enterprise-oriented Microsoft Cloud (Azure, Office 365…) solutions
  • 12. 1990es: Domain Driven Design Danger of over-architecting
  • 15. What did we do • MVC web part talks directly to datasource • (SharePoint Online REST API) • It works! • No code reusability •What are our options? • Move the code for wine adding and calculation out • Apply architecture
  • 16. SP AnythingDATA SOURCES FRONTEND SPFx Web Application Mobile …DaemonWindows DATA ACCESS LAYER API Apps BUSINESS LAYER API Apps Webhooks Azure Functions DAEMONS AND HANDLERS Azure Functions Authentication Logging Caching Testing
  • 17. SP AnythingDATA SOURCES FRONTEND SPFx Web Application Mobile …DaemonWindows DATA ACCESS LAYER API Apps BUSINESS LAYER API Apps Webhooks Azure Functions DAEMONS AND HANDLERS Azure Functions Authentication Logging Caching Testing APP ONLYDELEGATED (IMPERSONIFICATION)
  • 18. DEMO 2 – MOVING BL and DAL out Create AAD Application App only vs. delegated permissions Certificates for app only Azure Functions Integrating AF into SPFx webparts Other clients
  • 20. Microsoft Application Architecture Guide https://msdn.microsoft.com/e n-us/library/ff650706.aspx
  • 21. Get to know your toolchain • Azure Active Directory – Authentication • JavaScript and Node.JS – front end • Azure Functions – Business Layer • Azure API Apps – BL, DAL • Azure Application Insights – logging, monitoring
  • 22. When to use what – AAD • Authentication • Authorization • Application Management • Application Capabilities • Delegated (impersonation) vs AppOnly (Daemons)
  • 23. When to use what – JavaScript and Node.JS • User Interface - RIA • Modern WebParts (when in SharePoint) • Azure Functions (Business Logic) • AAD secured Applications
  • 24. When to use what – C#, .NET • AAD secured Web Applications • Azure Functions (Business Logic) • Azure API Apps (BL, DAL)
  • 25. When to use what – Azure Functions • Lightweight BL • wrappers around API Apps • Fast development, drawbacks in development and ALM Cycle • Limited debugging and tracing • Plumbing less mature than in API Apps
  • 26. When to use what – Azure API Apps • Business Layer, Data Access Layer • Heavy-weight, reliable code • Mature development cycle • Use C# • Good debugging and tracing • Relatively easy plumbing
  • 27. When to use what – Azure Application Insights • Logging • Monitoring • Analysis • Easy plumbing
  • 28. Microsoft Cloud Design Patterns • msdn.microsoft.com/en-us/library/dn568099.aspx • Availability • Data Management • Design and Implementation • Messaging • Management and Monitoring • Performance & Scalability • Resiliency • Security
  • 29. Dino Esposito: Architecting Applications for Enterprise • One of the best architecture books ever • Practical applications of • Domain Driven Design
  • 30. Plumbing is not easy (yet) • Series of blog posts at • http://adisjugo.com • http://blog.sharedove.com/adisjugo/index.php/2017/10/15/timerjo bs-in-sharepoint-online/ • @adisjugo