SlideShare a Scribd company logo
1 of 28
DEVELOPING SAAS
APPLICATION IN AZURE
- PREPARED BY VINOD WILSON – ARCHITECT – CRESTRON ELECTRONICS
WHAT IS SAAS?
• SaaS is a Software licensing and delivery model in
which software is licensed on a subscription basis
and is centrally hosted.
• It is also referred as “on-demand software”.
HOW SAAS IS DIFFERENT FROM OTHER MODELS?
Networking
Storage
Servers
Virtualization
OS
Middleware
Runtime
Data
Application
IaaS
Infrastructure as a service
Networking
Storage
Servers
Virtualization
OS
Middleware
Runtime
Data
Application
PaaS
Platform as a service
Networking
Storage
Servers
Virtualization
OS
Middleware
Runtime
Data
Application
SaaS
Software as a service
Managed By
Vendor
Managed By Client
Legends :
WHY SAAS?
• Lower Cost of entry
• Reduced time to benefit & rapid prototyping
• Pay as you go
• The SaaS vendor is responsible for upgrades, uptime & security
• Higher adoption rates
• Integration and Scalability
• Work anywhere
IS THERE ANY DISADVANTAGES IN SAAS?
• Loss of Control.
• Security concerns, since your data is stored in the cloud.
• Compliance – Certain countries/industries have regulation relating
to where data is stored.
• Switching between SaaS vendors is difficult.
DATA PROTECTION AND PRIVACY
KEY CHARACTERISTICS OF SAAS
• Multi-Tenancy
• Provisioning
• Configurability
• Scalability
• Maintainability - Application delivery and upgrades
• Integration
• Metering and Billing
• Monitoring - Application availability
• Analytics – User Experience, Performance
• Disaster recovery – backup and restore
WHAT/WHO IS A TENANT?
Azure Storage Service
CORP A
CORP B
CORP C
CORP D
Companies - Tenants
STREET & CO
LLC
NOR COM INC.
TOUCHPOINT
LOGIC LLC.
ARROW AUDIO
INC.
Corporate customers - Tenants
Customer 1
Customer 2
Customer 3
Customer 4
Corp Customers - Tenants
HOW THE SYSTEM IDENTIFIES THE TENANT?
• HTTP URL approach
• Tenant_ID will be identified based on sub-domain parameter in the URL [HTTP host
headers].
• https://companyA.yourproduct.com
• https://companyB. yourproduct.com
• Some customers might ask custom domain than sub-domain.
• Sub domain will give better isolation on cookies and CORS (Cross Origin Resource
Sharing), it makes cross-tenant CSRF & XSS bit harder.
• Query parameters can be used to identify the tenant.
• https://yourproduct.com/companyA
• https://yourproduct.com/companyB
• Authentication approach
• Based on user identity, Tenant_ID will be identified.
WHAT IS KEY CHARACTERISTICS OF MULTI-TENANCY
• Resource sharing
• High degree of configurability
• Isolation [Security and privacy]
MULTI-TENANCY & RESOURCE SHARING
MULTI-TENANCY & CONFIGURABILITY
• Page appearance and branding customization
• Allow the tenant to upload their own log to do branding
• Allow the tenant to upload tenant specific CSS file to change the style in all the pages.
• Complete page customization example Login page specific to tenant.
• Expose API that can be consumed by custom page’s
• Allow the tenant to upload the custom page into the application.
• Ability to enable & disable functionalities specific to tenant at application level.
• Ability to customize the business process or application flow specific to tenant.
• This can be achieved by using workflow & rule engine.
• Allow the tenant specific identity provider integration
• To get SSO (Single-Sing On) experience across their applications.
• Ability to add custom fields in the schema specific to the tenant
• Location: Tenant would like to access the application near by location [Geo-aware SaaS deployment]
MULTI-TENANCY & IDENTITY PROVIDER INTEGRATION
• Tenants use their exiting identity provider
• Tenants want to use Third party identity provider like Google /
Windows Live account
• Application provides its own identity provider, tenants will just
use it.
Note: All approaches uses claims-based authentication, only difference is source of the original claims
INTEGRATION WITH TENANTS EXISTING IDENTITY
PROVIDER
INTEGRATION WITH THIRD PARTY IDENTITY PROVIDER
APPLICATION SPECIFIC IDENTITY PROVIDER
HOW TO IMPLEMENT THESE APPROACHES IN MVC
APPROACHES FOR DATA ISOLATION IN MULTI-TENANCY
1. Storing tenant data in separate databases.
2. Housing multiple tenants in the same database.
• Separate schema for each tenant [separate table]
3. Using same database and same set of tables to host multiple tenants.
• Each row will have tenant_id in the table.
Note: In Azure table, container level access policy can be implemented.
MULTI-TENANCY & PROVISIONING
Provisioning refers to the process of on-boarding new tenants to use the SaaS application.
• It includes allocation of system resources.
• Deployment of application components for this new tenant including new database if any
• Granting permissions required to various applications and application features.
• Other customization mentioned earlier.
• Example, Integrating their authentication provider, configuring logos
HOW TO IMPLEMENT PROVISIONING
• The tool to provision a new tenant should be independent of tenant
application itself. Since the same tenant and his configuration can be re-used
for future SaaS applications as well.
• The tool should have the capability to automate as much of the tasks to
provision new tenant.
• Example Windows Azure Pack (WAP) to automate the tenant provisioning.
SAMPLE APPROACH FOR PROVISIONING
Tenant Management
Application
Single Instance
Tenant facing SaaS
Application
Tenant facing SaaS
Application
Tenant facing SaaS
ApplicationSaaS Application2
Multi Instance
Tenant facing SaaS
Application
Tenant facing SaaS
Application
Tenant facing SaaS
ApplicationSaaS Application1
Multi Instance
IT/Support team access
Tenant Admins access
To do configuration/customization
on their own anytime, example theme
DISASTER RECOVERY
• Azure services provides the disaster recovery features by native.
• Such as Geo-redundant, multi instance, multiple data centre.
• Still, may be due to some technical issue (application bug or security issue)
the data go wrong/get deleted. In this case the same instance will spread
across the datacentres and geo-replications.
• To avoid this kind of scenarios, application should take care of taking regular
backup of individual tenant data and should have provision to restore the data
to specific point based on tenant request.
MONITORING
• Tenant specific applications should be monitored individually rather than entire SaaS application as
whole.
• Alerts should be raised in the form of Email/SMS based on application availability.
Monitoring
Tool
Example: Fusion Lite SaaS Application
Tenant1 App
Tenant2 App
Health Page
of tenant1
Health Page
of tenant2
Tenant1
Users
Tenant2
Users
Parse the content,
Response code: 200
MULTI-TENANCY & BILLING
“Pay as you go”
– simple to say hard to implement.
SOME OF THE TOP SAAS APPS
TOP SAAS VENDORS
IS SAAS MODEL IS GROWING?
By 2019, the cloud software model will account
for $1 of every $4.59 spent on software
– by IDC
Thank You.

More Related Content

What's hot

Architecting SaaS: Doing It Right the First Time
Architecting SaaS: Doing It Right the First TimeArchitecting SaaS: Doing It Right the First Time
Architecting SaaS: Doing It Right the First TimeSerhiy (Serge) Haziyev
 
Testting application with a presentation downloaded from the internet
Testting application with a presentation downloaded from the internetTestting application with a presentation downloaded from the internet
Testting application with a presentation downloaded from the internetindradipg
 
SaaS Architecture Past and Present
SaaS Architecture Past and PresentSaaS Architecture Past and Present
SaaS Architecture Past and PresentTechcello
 
Techcello at a glance
Techcello at a glanceTechcello at a glance
Techcello at a glanceTechcello
 
Advanced Concepts in Software as a Service / Service Oriented Architecture
Advanced Concepts in Software as a Service / Service Oriented ArchitectureAdvanced Concepts in Software as a Service / Service Oriented Architecture
Advanced Concepts in Software as a Service / Service Oriented ArchitectureDamon Carr
 
Benchmark Maturity of your SaaS Solution
Benchmark Maturity of your SaaS SolutionBenchmark Maturity of your SaaS Solution
Benchmark Maturity of your SaaS SolutionTechcello
 
Digital reference architecture in hybrid cloud
Digital reference architecture in hybrid cloudDigital reference architecture in hybrid cloud
Digital reference architecture in hybrid cloudDavide Veronese
 
Redefining End-to-End Monitoring: Service Model Integration
Redefining End-to-End Monitoring: Service Model IntegrationRedefining End-to-End Monitoring: Service Model Integration
Redefining End-to-End Monitoring: Service Model IntegrationSL Corporation
 
How to benchmark the maturity of your saas solution
How to benchmark the maturity of your saas solutionHow to benchmark the maturity of your saas solution
How to benchmark the maturity of your saas solutionkanimozhin
 
Implementing dev ops to face a two speed it architecture
Implementing dev ops to face a two speed it architectureImplementing dev ops to face a two speed it architecture
Implementing dev ops to face a two speed it architectureDavide Veronese
 
La Cics Tools Overview April 2009
La   Cics Tools Overview   April 2009La   Cics Tools Overview   April 2009
La Cics Tools Overview April 2009CICS ROADSHOW
 
SOA in banking issues and remedies
SOA in banking   issues and remediesSOA in banking   issues and remedies
SOA in banking issues and remediesDebajani Mohanty
 
Presentación webMethods BPMS por Simbius S.A.
Presentación webMethods BPMS por Simbius S.A.Presentación webMethods BPMS por Simbius S.A.
Presentación webMethods BPMS por Simbius S.A.Simbius SGP
 
System Center Datacenter Cloud Management Vision & Roadmap
System Center Datacenter Cloud Management Vision & RoadmapSystem Center Datacenter Cloud Management Vision & Roadmap
System Center Datacenter Cloud Management Vision & RoadmapAmit Gatenyo
 
DataPower Operations Dashboard
DataPower Operations DashboardDataPower Operations Dashboard
DataPower Operations DashboardIBM Integration
 
Data power use cases
Data power use casesData power use cases
Data power use casessflynn073
 
Saas by shashwat and shivendra
Saas by shashwat and shivendraSaas by shashwat and shivendra
Saas by shashwat and shivendraShashwat Shriparv
 

What's hot (20)

SaaS.pptx
SaaS.pptxSaaS.pptx
SaaS.pptx
 
Architecting SaaS: Doing It Right the First Time
Architecting SaaS: Doing It Right the First TimeArchitecting SaaS: Doing It Right the First Time
Architecting SaaS: Doing It Right the First Time
 
Software as a Service
Software as a ServiceSoftware as a Service
Software as a Service
 
Testting application with a presentation downloaded from the internet
Testting application with a presentation downloaded from the internetTestting application with a presentation downloaded from the internet
Testting application with a presentation downloaded from the internet
 
SaaS Architecture Past and Present
SaaS Architecture Past and PresentSaaS Architecture Past and Present
SaaS Architecture Past and Present
 
Techcello at a glance
Techcello at a glanceTechcello at a glance
Techcello at a glance
 
Service as-a-software
Service as-a-softwareService as-a-software
Service as-a-software
 
Advanced Concepts in Software as a Service / Service Oriented Architecture
Advanced Concepts in Software as a Service / Service Oriented ArchitectureAdvanced Concepts in Software as a Service / Service Oriented Architecture
Advanced Concepts in Software as a Service / Service Oriented Architecture
 
Benchmark Maturity of your SaaS Solution
Benchmark Maturity of your SaaS SolutionBenchmark Maturity of your SaaS Solution
Benchmark Maturity of your SaaS Solution
 
Digital reference architecture in hybrid cloud
Digital reference architecture in hybrid cloudDigital reference architecture in hybrid cloud
Digital reference architecture in hybrid cloud
 
Redefining End-to-End Monitoring: Service Model Integration
Redefining End-to-End Monitoring: Service Model IntegrationRedefining End-to-End Monitoring: Service Model Integration
Redefining End-to-End Monitoring: Service Model Integration
 
How to benchmark the maturity of your saas solution
How to benchmark the maturity of your saas solutionHow to benchmark the maturity of your saas solution
How to benchmark the maturity of your saas solution
 
Implementing dev ops to face a two speed it architecture
Implementing dev ops to face a two speed it architectureImplementing dev ops to face a two speed it architecture
Implementing dev ops to face a two speed it architecture
 
La Cics Tools Overview April 2009
La   Cics Tools Overview   April 2009La   Cics Tools Overview   April 2009
La Cics Tools Overview April 2009
 
SOA in banking issues and remedies
SOA in banking   issues and remediesSOA in banking   issues and remedies
SOA in banking issues and remedies
 
Presentación webMethods BPMS por Simbius S.A.
Presentación webMethods BPMS por Simbius S.A.Presentación webMethods BPMS por Simbius S.A.
Presentación webMethods BPMS por Simbius S.A.
 
System Center Datacenter Cloud Management Vision & Roadmap
System Center Datacenter Cloud Management Vision & RoadmapSystem Center Datacenter Cloud Management Vision & Roadmap
System Center Datacenter Cloud Management Vision & Roadmap
 
DataPower Operations Dashboard
DataPower Operations DashboardDataPower Operations Dashboard
DataPower Operations Dashboard
 
Data power use cases
Data power use casesData power use cases
Data power use cases
 
Saas by shashwat and shivendra
Saas by shashwat and shivendraSaas by shashwat and shivendra
Saas by shashwat and shivendra
 

Similar to Developing saas application in azure

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
 
Multi Tenancy In The Cloud
Multi Tenancy In The CloudMulti Tenancy In The Cloud
Multi Tenancy In The Cloudrohit_ainapure
 
Building a SaaS using WSO2 Stratos
Building a SaaS using WSO2 StratosBuilding a SaaS using WSO2 Stratos
Building a SaaS using WSO2 StratosWSO2
 
Open Source Middleware for the Cloud: WSO2 Stratos
Open Source Middleware for the Cloud: WSO2 StratosOpen Source Middleware for the Cloud: WSO2 Stratos
Open Source Middleware for the Cloud: WSO2 StratosWSO2
 
Cloud computing
Cloud computing Cloud computing
Cloud computing ananyaakk
 
Cloud Migration and Portability Best Practices
Cloud Migration and Portability Best PracticesCloud Migration and Portability Best Practices
Cloud Migration and Portability Best PracticesRightScale
 
Cloud Computing & Business Intelligence
Cloud Computing & Business IntelligenceCloud Computing & Business Intelligence
Cloud Computing & Business IntelligenceSudip Chatterjee
 
Building Multi-tenant SaaS Applications using WSO2 Private PaaS
Building Multi-tenant SaaS Applications using WSO2 Private PaaSBuilding Multi-tenant SaaS Applications using WSO2 Private PaaS
Building Multi-tenant SaaS Applications using WSO2 Private PaaSSameera Jayasoma
 
Expanding Your Data Center with Hybrid Cloud Infrastructure
Expanding Your Data Center with Hybrid Cloud InfrastructureExpanding Your Data Center with Hybrid Cloud Infrastructure
Expanding Your Data Center with Hybrid Cloud InfrastructureAmazon Web Services
 
Enterprise Use Case Webinar - PaaS Metering and Monitoring
Enterprise Use Case Webinar - PaaS Metering and Monitoring Enterprise Use Case Webinar - PaaS Metering and Monitoring
Enterprise Use Case Webinar - PaaS Metering and Monitoring WSO2
 
Cloud computing(ppt)
Cloud computing(ppt)Cloud computing(ppt)
Cloud computing(ppt)priyas211420
 
Architecting-for-the-cloud-Best-Practices
Architecting-for-the-cloud-Best-PracticesArchitecting-for-the-cloud-Best-Practices
Architecting-for-the-cloud-Best-PracticesAmazon Web Services
 
Cloud architecture
Cloud architectureCloud architecture
Cloud architectureAdeel Javaid
 
Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps ...
Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps ...Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps ...
Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps ...Chris Haddad
 
Cloud Computing.pptx
Cloud Computing.pptxCloud Computing.pptx
Cloud Computing.pptxNikitaOG
 
Automating Cloud Operations: Tips from Managed Services
Automating Cloud Operations: Tips from Managed ServicesAutomating Cloud Operations: Tips from Managed Services
Automating Cloud Operations: Tips from Managed ServicesRightScale
 
Automating Cloud Operations: Tips from Managed Services
Automating Cloud Operations: Tips from Managed ServicesAutomating Cloud Operations: Tips from Managed Services
Automating Cloud Operations: Tips from Managed ServicesAngela_Tripp
 
Cloud Storage and Cloud Computing.pptx
Cloud Storage and  Cloud Computing.pptxCloud Storage and  Cloud Computing.pptx
Cloud Storage and Cloud Computing.pptxANALEESUAREZ2
 

Similar to Developing saas application in azure (20)

Cloud presentation NELA
Cloud presentation NELACloud presentation NELA
Cloud presentation NELA
 
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
 
Multi Tenancy In The Cloud
Multi Tenancy In The CloudMulti Tenancy In The Cloud
Multi Tenancy In The Cloud
 
Building a SaaS using WSO2 Stratos
Building a SaaS using WSO2 StratosBuilding a SaaS using WSO2 Stratos
Building a SaaS using WSO2 Stratos
 
Open Source Middleware for the Cloud: WSO2 Stratos
Open Source Middleware for the Cloud: WSO2 StratosOpen Source Middleware for the Cloud: WSO2 Stratos
Open Source Middleware for the Cloud: WSO2 Stratos
 
Cloud computing
Cloud computing Cloud computing
Cloud computing
 
Cloud Migration and Portability Best Practices
Cloud Migration and Portability Best PracticesCloud Migration and Portability Best Practices
Cloud Migration and Portability Best Practices
 
Cloud Computing & Business Intelligence
Cloud Computing & Business IntelligenceCloud Computing & Business Intelligence
Cloud Computing & Business Intelligence
 
Software-as-a-Service
Software-as-a-ServiceSoftware-as-a-Service
Software-as-a-Service
 
Building Multi-tenant SaaS Applications using WSO2 Private PaaS
Building Multi-tenant SaaS Applications using WSO2 Private PaaSBuilding Multi-tenant SaaS Applications using WSO2 Private PaaS
Building Multi-tenant SaaS Applications using WSO2 Private PaaS
 
Expanding Your Data Center with Hybrid Cloud Infrastructure
Expanding Your Data Center with Hybrid Cloud InfrastructureExpanding Your Data Center with Hybrid Cloud Infrastructure
Expanding Your Data Center with Hybrid Cloud Infrastructure
 
Enterprise Use Case Webinar - PaaS Metering and Monitoring
Enterprise Use Case Webinar - PaaS Metering and Monitoring Enterprise Use Case Webinar - PaaS Metering and Monitoring
Enterprise Use Case Webinar - PaaS Metering and Monitoring
 
Cloud computing(ppt)
Cloud computing(ppt)Cloud computing(ppt)
Cloud computing(ppt)
 
Architecting-for-the-cloud-Best-Practices
Architecting-for-the-cloud-Best-PracticesArchitecting-for-the-cloud-Best-Practices
Architecting-for-the-cloud-Best-Practices
 
Cloud architecture
Cloud architectureCloud architecture
Cloud architecture
 
Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps ...
Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps ...Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps ...
Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps ...
 
Cloud Computing.pptx
Cloud Computing.pptxCloud Computing.pptx
Cloud Computing.pptx
 
Automating Cloud Operations: Tips from Managed Services
Automating Cloud Operations: Tips from Managed ServicesAutomating Cloud Operations: Tips from Managed Services
Automating Cloud Operations: Tips from Managed Services
 
Automating Cloud Operations: Tips from Managed Services
Automating Cloud Operations: Tips from Managed ServicesAutomating Cloud Operations: Tips from Managed Services
Automating Cloud Operations: Tips from Managed Services
 
Cloud Storage and Cloud Computing.pptx
Cloud Storage and  Cloud Computing.pptxCloud Storage and  Cloud Computing.pptx
Cloud Storage and Cloud Computing.pptx
 

More from Vinod Wilson

Representational state transfer (rest) architectural style1.1
Representational state transfer (rest) architectural style1.1Representational state transfer (rest) architectural style1.1
Representational state transfer (rest) architectural style1.1Vinod Wilson
 
UI Design - Organizing the page
UI Design - Organizing the pageUI Design - Organizing the page
UI Design - Organizing the pageVinod Wilson
 
Service oriented architecture introduction
Service oriented architecture   introductionService oriented architecture   introduction
Service oriented architecture introductionVinod Wilson
 
Togaf – models for phase A
Togaf – models for phase ATogaf – models for phase A
Togaf – models for phase AVinod Wilson
 
The components of togaf architecture
The components of togaf architectureThe components of togaf architecture
The components of togaf architectureVinod Wilson
 
Togaf – architecture development method (adm)
Togaf – architecture development method (adm)Togaf – architecture development method (adm)
Togaf – architecture development method (adm)Vinod Wilson
 
Togaf 9 introduction
Togaf 9 introductionTogaf 9 introduction
Togaf 9 introductionVinod Wilson
 
D3 data visualization
D3 data visualizationD3 data visualization
D3 data visualizationVinod Wilson
 
Event driven architecture
Event driven architectureEvent driven architecture
Event driven architectureVinod Wilson
 
Domain driven design simplified
Domain driven design simplifiedDomain driven design simplified
Domain driven design simplifiedVinod Wilson
 
Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0Vinod Wilson
 
IoT mobile app device cloud identity and security architecture
IoT mobile app device cloud identity and security architectureIoT mobile app device cloud identity and security architecture
IoT mobile app device cloud identity and security architectureVinod Wilson
 

More from Vinod Wilson (15)

Representational state transfer (rest) architectural style1.1
Representational state transfer (rest) architectural style1.1Representational state transfer (rest) architectural style1.1
Representational state transfer (rest) architectural style1.1
 
UI Design - Organizing the page
UI Design - Organizing the pageUI Design - Organizing the page
UI Design - Organizing the page
 
Service oriented architecture introduction
Service oriented architecture   introductionService oriented architecture   introduction
Service oriented architecture introduction
 
Togaf – models for phase A
Togaf – models for phase ATogaf – models for phase A
Togaf – models for phase A
 
The components of togaf architecture
The components of togaf architectureThe components of togaf architecture
The components of togaf architecture
 
Togaf – architecture development method (adm)
Togaf – architecture development method (adm)Togaf – architecture development method (adm)
Togaf – architecture development method (adm)
 
Togaf 9 introduction
Togaf 9 introductionTogaf 9 introduction
Togaf 9 introduction
 
Ssas mdx language
Ssas mdx languageSsas mdx language
Ssas mdx language
 
D3 data visualization
D3 data visualizationD3 data visualization
D3 data visualization
 
Unit testing
Unit testingUnit testing
Unit testing
 
Event driven architecture
Event driven architectureEvent driven architecture
Event driven architecture
 
Domain driven design simplified
Domain driven design simplifiedDomain driven design simplified
Domain driven design simplified
 
Data partitioning
Data partitioningData partitioning
Data partitioning
 
Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0
 
IoT mobile app device cloud identity and security architecture
IoT mobile app device cloud identity and security architectureIoT mobile app device cloud identity and security architecture
IoT mobile app device cloud identity and security architecture
 

Recently uploaded

Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
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
 
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
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
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
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 

Recently uploaded (20)

Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
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
 
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
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
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?
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 

Developing saas application in azure

  • 1. DEVELOPING SAAS APPLICATION IN AZURE - PREPARED BY VINOD WILSON – ARCHITECT – CRESTRON ELECTRONICS
  • 2. WHAT IS SAAS? • SaaS is a Software licensing and delivery model in which software is licensed on a subscription basis and is centrally hosted. • It is also referred as “on-demand software”.
  • 3. HOW SAAS IS DIFFERENT FROM OTHER MODELS? Networking Storage Servers Virtualization OS Middleware Runtime Data Application IaaS Infrastructure as a service Networking Storage Servers Virtualization OS Middleware Runtime Data Application PaaS Platform as a service Networking Storage Servers Virtualization OS Middleware Runtime Data Application SaaS Software as a service Managed By Vendor Managed By Client Legends :
  • 4. WHY SAAS? • Lower Cost of entry • Reduced time to benefit & rapid prototyping • Pay as you go • The SaaS vendor is responsible for upgrades, uptime & security • Higher adoption rates • Integration and Scalability • Work anywhere
  • 5. IS THERE ANY DISADVANTAGES IN SAAS? • Loss of Control. • Security concerns, since your data is stored in the cloud. • Compliance – Certain countries/industries have regulation relating to where data is stored. • Switching between SaaS vendors is difficult.
  • 7. KEY CHARACTERISTICS OF SAAS • Multi-Tenancy • Provisioning • Configurability • Scalability • Maintainability - Application delivery and upgrades • Integration • Metering and Billing • Monitoring - Application availability • Analytics – User Experience, Performance • Disaster recovery – backup and restore
  • 8. WHAT/WHO IS A TENANT? Azure Storage Service CORP A CORP B CORP C CORP D Companies - Tenants STREET & CO LLC NOR COM INC. TOUCHPOINT LOGIC LLC. ARROW AUDIO INC. Corporate customers - Tenants Customer 1 Customer 2 Customer 3 Customer 4 Corp Customers - Tenants
  • 9. HOW THE SYSTEM IDENTIFIES THE TENANT? • HTTP URL approach • Tenant_ID will be identified based on sub-domain parameter in the URL [HTTP host headers]. • https://companyA.yourproduct.com • https://companyB. yourproduct.com • Some customers might ask custom domain than sub-domain. • Sub domain will give better isolation on cookies and CORS (Cross Origin Resource Sharing), it makes cross-tenant CSRF & XSS bit harder. • Query parameters can be used to identify the tenant. • https://yourproduct.com/companyA • https://yourproduct.com/companyB • Authentication approach • Based on user identity, Tenant_ID will be identified.
  • 10. WHAT IS KEY CHARACTERISTICS OF MULTI-TENANCY • Resource sharing • High degree of configurability • Isolation [Security and privacy]
  • 12. MULTI-TENANCY & CONFIGURABILITY • Page appearance and branding customization • Allow the tenant to upload their own log to do branding • Allow the tenant to upload tenant specific CSS file to change the style in all the pages. • Complete page customization example Login page specific to tenant. • Expose API that can be consumed by custom page’s • Allow the tenant to upload the custom page into the application. • Ability to enable & disable functionalities specific to tenant at application level. • Ability to customize the business process or application flow specific to tenant. • This can be achieved by using workflow & rule engine. • Allow the tenant specific identity provider integration • To get SSO (Single-Sing On) experience across their applications. • Ability to add custom fields in the schema specific to the tenant • Location: Tenant would like to access the application near by location [Geo-aware SaaS deployment]
  • 13. MULTI-TENANCY & IDENTITY PROVIDER INTEGRATION • Tenants use their exiting identity provider • Tenants want to use Third party identity provider like Google / Windows Live account • Application provides its own identity provider, tenants will just use it. Note: All approaches uses claims-based authentication, only difference is source of the original claims
  • 14. INTEGRATION WITH TENANTS EXISTING IDENTITY PROVIDER
  • 15. INTEGRATION WITH THIRD PARTY IDENTITY PROVIDER
  • 17. HOW TO IMPLEMENT THESE APPROACHES IN MVC
  • 18. APPROACHES FOR DATA ISOLATION IN MULTI-TENANCY 1. Storing tenant data in separate databases. 2. Housing multiple tenants in the same database. • Separate schema for each tenant [separate table] 3. Using same database and same set of tables to host multiple tenants. • Each row will have tenant_id in the table. Note: In Azure table, container level access policy can be implemented.
  • 19. MULTI-TENANCY & PROVISIONING Provisioning refers to the process of on-boarding new tenants to use the SaaS application. • It includes allocation of system resources. • Deployment of application components for this new tenant including new database if any • Granting permissions required to various applications and application features. • Other customization mentioned earlier. • Example, Integrating their authentication provider, configuring logos
  • 20. HOW TO IMPLEMENT PROVISIONING • The tool to provision a new tenant should be independent of tenant application itself. Since the same tenant and his configuration can be re-used for future SaaS applications as well. • The tool should have the capability to automate as much of the tasks to provision new tenant. • Example Windows Azure Pack (WAP) to automate the tenant provisioning.
  • 21. SAMPLE APPROACH FOR PROVISIONING Tenant Management Application Single Instance Tenant facing SaaS Application Tenant facing SaaS Application Tenant facing SaaS ApplicationSaaS Application2 Multi Instance Tenant facing SaaS Application Tenant facing SaaS Application Tenant facing SaaS ApplicationSaaS Application1 Multi Instance IT/Support team access Tenant Admins access To do configuration/customization on their own anytime, example theme
  • 22. DISASTER RECOVERY • Azure services provides the disaster recovery features by native. • Such as Geo-redundant, multi instance, multiple data centre. • Still, may be due to some technical issue (application bug or security issue) the data go wrong/get deleted. In this case the same instance will spread across the datacentres and geo-replications. • To avoid this kind of scenarios, application should take care of taking regular backup of individual tenant data and should have provision to restore the data to specific point based on tenant request.
  • 23. MONITORING • Tenant specific applications should be monitored individually rather than entire SaaS application as whole. • Alerts should be raised in the form of Email/SMS based on application availability. Monitoring Tool Example: Fusion Lite SaaS Application Tenant1 App Tenant2 App Health Page of tenant1 Health Page of tenant2 Tenant1 Users Tenant2 Users Parse the content, Response code: 200
  • 24. MULTI-TENANCY & BILLING “Pay as you go” – simple to say hard to implement.
  • 25. SOME OF THE TOP SAAS APPS
  • 27. IS SAAS MODEL IS GROWING? By 2019, the cloud software model will account for $1 of every $4.59 spent on software – by IDC