> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flexagon.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SaaS FlexDeploy Architecture

> Azure App Service FlexDeploy Architecture This document outlines the details of an Azure App Service v3 environment for the FlexDeploy SaaS offering.

## Azure App Service FlexDeploy Architecture

This document outlines the details of an Azure App Service v3 environment for the FlexDeploy SaaS offering.

* [SaaS - Data storage limits](https://flexagon.atlassian.net/wiki/spaces/SHAR/pages/12304678925/SaaS+-+Data+storage+limits)
* [Hybrid connections in Azure App Service](https://flexagon.atlassian.net/wiki/spaces/SHAR/pages/12305760257/Hybrid+connections+in+Azure+App+Service)
* [Flexagon SaaS Certifications](https://flexagon.atlassian.net/wiki/spaces/SHAR/pages/12590186559/Flexagon+SaaS+Certifications)
* [FlexDeploy SaaS Email Integration](https://flexagon.atlassian.net/wiki/spaces/SHAR/pages/12723519491/FlexDeploy+SaaS+Email+Integration)
* [Customer Data and Information in Flexagon platform](https://flexagon.atlassian.net/wiki/spaces/SHAR/pages/12814876702/Customer+Data+and+Information+in+Flexagon+platform)
* [Flexagon SaaS Single Tenant Model](https://flexagon.atlassian.net/wiki/spaces/SHAR/pages/12884312071/Flexagon+SaaS+Single+Tenant+Model)
* [Flexagon SaaS upgrade process](https://flexagon.atlassian.net/wiki/spaces/SHAR/pages/12892995586/Flexagon+SaaS+upgrade+process)

# Architecture Overview

![FD CSS SaaS Architecture\_HCM.jpg](https://mintcdn.com/flexagon-llc-ce77a95c/NkeZh5D-Nf8j_WaD/images/fd111/12303106109.jpg?fit=max\&auto=format\&n=NkeZh5D-Nf8j_WaD\&q=85\&s=d6671a90afaa50a4251dd64a264a6eed)

# Details of Architecture

* Each customer will have

* Global security settings like TLS and encryption settings

## NAT Gateway

* Simplifies outbound internet connectivity for virtual networks

* When configured for a subnet, all outbound connectivity uses the NAT gateway’s static public IP addresses

## Virtual Network

* Enables Azure resources to communicate with each other, the internet, and on-premises networks

* can leverage other components to enable VPN, routing, and network filters among others

## DDOS Protection

[https://learn.microsoft.com/en-us/azure/ddos-protection/ddos-protection-overview](https://learn.microsoft.com/en-us/azure/ddos-protection/ddos-protection-overview)

## WAF (Web Application Firewall)

[https://learn.microsoft.com/en-us/azure/web-application-firewall/ag/ag-overview](https://learn.microsoft.com/en-us/azure/web-application-firewall/ag/ag-overview)

## App Service Plan

* Operating system specified (Linux vs Windows)

* Hardware specifications including:

  * Number of virtual CPUs

  * Amount of memory

  * Number instances (number of VMs)

* Capability to scale up the size of an instance

* Capability to scale out the number of instances

## App Service / Web App for Containers

* Tied to an App Service plan to provide hardware footprint

* Slots to deployment a custom FlexDeploy docker container

* Up to 100 slots are available in a given App Service plan

* Configuration / Application settings

  * Allows definition of specific properties that are passed to the container

  * Includes PostgreSQL URL and database credentials

  * Includes InfluxDB properties

  * Determines what port is exposed for the application

  * Credentials can be stored in an Azure Key vault

* Configuration / General Settings

  * Allows for container specific HTTP and TLS settings

  * Allows for container specific SSL certificate handling settings

  * Allows for an optional startup command to run with the container startup

* Configuration / Path mappings

  * Allows for external Azure Storage Mounts to be added to the container

  * Azure Files storage will be mounted to provide for storage of artifacts, InfluxDB data, and other customer data to make it external to the actual FlexDeploy container

* Authentication

  * Provides capabilities to force application to authenticate with things like Google/Azure Active Directory/Twitter/Facebook among others.

  * Azure Active Directory would allow for limiting access to launching the URL to only users defined in AD for example.

* Application Insights provides application level monitoring and alerting capabilities

* Identity provides capabilities to define an Azure AD identity that would allow you to provide access to a specific secret in an Azure Key Vault for example.

* Custom Domains provides ability to customize the domain name of the application. Custom domains can be purchased and added here.

* Certificates allow for the adding and maintaining of SSL certificates

* Networking / Access restrictions allows for restricting access to the web site by things like IP address or HTTP header

## PostgreSQL Flexible Server

* A PostgreSQL flexible server instance is provisioned for each custom

* FlexDeploy database is created and the schema with related objects is created in that instance

* Configuration setting in the App Service are configured to point to the PostgreSQL instance

* Compute, memory, and storage definitions are defined at creation but can be changed after deployment

* Default networking configuration only allows connectivity to the database from within Azure

* Data is encrypted in the database

## Azure File Share

* Created within an Azure storage account that is provisioned with a maximum size

* Individual file share is created within that storage account’s maximum size with a defined quota

* File share is mounted to App Service container using the configuration path mapping feature
