Skip to content

Staging #29

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 29 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
df95bec
update openssh-server
mwshriya Jul 8, 2024
8c4aff7
template changes
mwshriya Jul 9, 2024
5f6812c
Updates for R2024b (#27)
EUdler Sep 3, 2024
12a9497
Merge branch 'staging' of github.com:mathworks-ref-arch/matlab-produc…
mwshriya Sep 4, 2024
9a6af1d
Updated 24b template
mwshriya Sep 4, 2024
8f8a8f8
Use 24b NLM
mwshriya Sep 12, 2024
f75a7e5
Delete releases/R2024b/templates/azuredeploy24a.json
mwshriya Sep 12, 2024
f9a2e37
Use scripts from master instead of staging
mwshriya Sep 12, 2024
cfdc32f
Updates for R2025a
EUdler Feb 6, 2025
363183d
Merge branch 'master' into staging
EUdler Feb 6, 2025
a8b8cdc
Added info about private endpoint
EUdler Feb 12, 2025
833abca
Add support for multiple IP Addresses
EUdler Feb 24, 2025
462b31d
Updates for 25a
EUdler Feb 28, 2025
3fdf54f
Changed url from staging to master in 24b template
EUdler Feb 28, 2025
30acdaa
Aligned wording with Web App Server readme
EUdler Mar 28, 2025
571c02f
Updated
EUdler Mar 28, 2025
92f63a9
Updates to wording in "Allow Connections From"
EUdler Mar 28, 2025
7325008
Update README.md
EUdler Mar 28, 2025
5e62915
Create release-notes.md
EUdler Mar 31, 2025
5d9bc19
Update README.md
EUdler Apr 16, 2025
42c3f4e
Update README.md
EUdler Apr 16, 2025
8f635ec
Fixes to readme
EUdler Apr 17, 2025
765deb0
Update README.md
EUdler Apr 18, 2025
c6f087d
Update README.md
EUdler Apr 18, 2025
cf994b1
Update readme
EUdler Apr 18, 2025
1c100aa
Update README.md
EUdler Apr 18, 2025
450723e
Update release-notes.md
EUdler Apr 25, 2025
4fe6a8e
Update release-notes.md
EUdler Apr 28, 2025
39eed3e
Add R2025a templates
mahimab1 May 5, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 51 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,12 @@ For information about the architecture of this solution, see [Architecture and R
To deploy the reference architecture, select your MATLAB Production Server release from the table and follow the instructions to deploy the server using the provided template. A deployment of MATLAB Production Server supports MATLAB Runtime versions up to six releases back.
| Release | Supported MATLAB Runtime Versions |
| ------- | --------------------------------- |
| [R2025a](releases/R2025a/README.md) | R2025a, R2024b, R2024a, R2023b, R2023a, R2022b |
| [R2024b](releases/R2024b/README.md) | R2024b, R2024a, R2023b, R2023a, R2022b, R2022a |
| [R2024a](releases/R2024a/README.md) | R2024a, R2023b, R2023a, R2022b, R2022a, R2021b |
| [R2023b](releases/R2023b/README.md) | R2023b, R2023a, R2022b, R2022a, R2021b, R2021a |
| [R2023a](releases/R2023a/README.md) | R2023a, R2022b, R2022a, R2021b, R2021a, R2020b |
| [R2022b](releases/R2022b/README.md) | R2022b, R2022a, R2021b, R2021a, R2020b, R2020a |
| [R2022a](releases/R2022a/README.md) | R2022a, R2021b, R2021a, R2020b, R2020a, R2019b |

> **Note**: MathWorks provides templates for only the six most recent releases of MATLAB Production Server. Earlier templates are removed and are no longer supported.
# Architecture and Resources
Expand All @@ -52,7 +52,7 @@ resource group.
### Matlab Production Server Resources
| Resource Name | Resource Name in Azure | Number of Resources | Description |
|----------------------------------------------------------------------------|-------------------------|---------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|Virtual network | `mps-network` | 1 | Provide support and security to the operation of MATLAB Production Server. |
|Virtual network | `mps-network` | 1 | Provides support and security to the operation of MATLAB Production Server. |
| Storage account | `serverlog<uniqueID>` | 1 | Storage account where the deployable archives (CTF files) created by MATLAB® Compiler SDK™ will be stored. The deployable archives (CTF files) will be stored in a file share. |
| Application Insights | `logs-apmservice` | 1 | Enables storing and viewing of all logs associated with deployment. |
| Log analytics workspace | `logs-workspace` | 1 | Workspace that contains data collected from various sources. |
Expand All @@ -63,16 +63,16 @@ resource group.
| Virtual machine scale set | `vmss<uniqueID>` | 1 | Manages the number of identical VMs to be deployed. Each VM runs an instance of MATLAB Production Server which in turn runs multiple MATLAB workers. |
| Application gateway | `vmss<uniqueID>-agw` | 1 | Provides routing and load balancing service to MATLAB Production Server instances. The MATLAB Production Server dashboard retrieves the HTTP/HTTPS endpoint for making requests to the server from the application gateway resource.<p>**NOTE**: Provides HTTPS endpoint to the server for making requests.</p> |
| Virtual network | `vmss<uniqueID>-vnet` | 1 | Enables resources to communicate with each other. |
|Network security group | `vmss<uniqueID>-rdp-nsg` | 1 | Filter network traffic to and from virtual machine scale set in an Azure virtual network. |
|Public IP address | `Vmss<uniqueID>-pip` | 1 | Provide public IP address to virtual machine scale set. |
|Network security group | `vmss<uniqueID>-rdp-nsg` | 1 | Filters network traffic to and from virtual machine scale set in an Azure virtual network. |
|Public IP address | `Vmss<uniqueID>-pip` | 1 | Provides public IP address to virtual machine scale set. |

### Admin Dashboard Resources
| Resource Name | Resource Name in Azure | Number of Resources | Description |
|----------------------------------------------------------------------------|-------------------------|---------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| MATLAB Production Server dashboard virtual machine | `admindashboard` | 1 | Virtual machine (VM) that hosts the MATLAB Production Server dashboard. Use the dashboard to: <ul><li>Get HTTP/HTTPS endpoint to make requests</li><li> Upload applications (CTF files) to the server</li><li> Manage server configurations</li></ul><p>For more information, see [Manage MATLAB Production Server Using the Dashboard](https://www.mathworks.com/help/mps/server/use-matlab-production-server-cloud-dashboard-on-azure-reference-architecture.html). |
| MATLAB Production Server dashboard public IP | `admindashboard-public-ip` | 1 | Public IP address to connect to MATLAB Production Server dashboard.<p>**NOTE**: Provides HTTPS endpoint to the dashboard for managing server instances.</p> |
| Disk | `admindashboard_OsDisk_<uniqueID>` | 1 | Operating system disk attached to admin dashboard. |
| Network interface | `admindashboard-nic` | 1 | Provide network interface for admin dashboard. |
| Network interface | `admindashboard-nic` | 1 | Provides network interface for admin dashboard. |

### Redis Resources
| Resource Name | Resource Name in Azure | Number of Resources | Description |
Expand All @@ -86,6 +86,52 @@ resource group.

# FAQ

## How do I deploy to an existing virtual network?
>**Note:** Your existing virtual network must have at least two available subnets for deployment.

### Ports to Open in Existing Virtual Network
If you are deploying to an existing virtual network, open these ports in your network:
| Port | Description |
| ------------------|---------------------------------------------------------------------------------------------------------------- |
| `443` | Required for communicating with the dashboard |
| `8000`, `8004`, `8080`, `9090`, `9910` | Required for communication between the dashboard, MATLAB Production Server workers, and various microservices within the virtual network. These ports do not need to be open to the Internet. |
| `27000` | Required for communication between the Network License Manager and the workers. |
| `65200`, `65535` | Required for the Azure application gateway health check to work. These ports need to be accessible over the Internet. For more information, see [MSDN Community](https://social.msdn.microsoft.com/Forums/azure/en-US/96a77f18-3b71-45d2-a213-c4ba63fd4e63/internal-application-gateway-backend-health-is-unkown?forum=WAVirtualMachinesVirtualNetwork). |
| `22`, `3389` | (Optional) Enables Remote Desktop functionality, which can be used for troubleshooting and debugging. |
<br>

You can close ports 22 and 3389 after deployment.

### Create Service Endpoint in Virtual Network (Since R2025a)
Starting in R2025a, if you are using an existing virtual network and assign a public IP address to the VM hosting MATLAB Production Server, you must manually add a service endpoint to the virtual network *before* deploying MATLAB Production Server in order to create and access the storage account. For more information, see [Grant access from a virtual network](https://learn.microsoft.com/en-us/azure/storage/common/storage-network-security?tabs=azure-portal#grant-access-from-a-virtual-network).

You can check if such an endpoint already exists by navigating to the Azure Portal, selecting your virtual network, and clicking **Service endpoints**. If no such endpoint is present, follow these steps:
1. In the Azure Portal, click **Resource groups** and select the virtual network for this deployment.
1. In the left navigation menu, expand the **Settings** category and click **Service endpoints**.
1. Click **Add** to add the new endpoint. It must have the following parameters:

<table>
<tr><td><b>Service</b></td><td>Microsoft.Storage</td></tr>
<tr><td><b>Subnet</b></td><td>Name of subnet in which the storage account will be deployed</td></tr>
</table>

For more information on creating endpoints, see [Create and associate service endpoint policies](https://learn.microsoft.com/en-us/azure/virtual-network/virtual-network-service-endpoint-policies).

### Deploy to Existing Virtual Network
To deploy MATLAB Production Server to an existing virtual network, in the deployment template, set the **New or Existing Virtual Network** parameter to `existing`.

Set the following parameter values in the template based on your existing virtual network.

| Parameter Name | Value |
|-------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **Virtual Network Name** | Specify the name of your existing virtual network or use the default value. |
| **Virtual Network CIDR Range** | Specify the IP address range of the virtual network in CIDR notation or use the default value. |
| **Subnet 1 CIDR Range** | Specify the IP address range of the first subnet in CIDR notation or use the default value. The first subnet hosts the dashboard and other resources. |
| **Subnet 2 CIDR Range** | Specify the IP address range of the second subnet in CIDR notation or use the default value. The second subnet hosts the application gateway. |
| **Available Subnet 2 IP Address** | Specify an unused IP address from Subnet 2 or use the default value. This IP address serves as the private IP of the application gateway. |
| **Resource Group Name Of Virtual Network** | Specify the resource group name of the virtual network or use the default value. |


## Why do requests to the server fail with errors such as “untrusted certificate” or “security exception”?

These errors occur either when CORS is not enabled on the server or when the server endpoint uses a self-signed certificate.
Expand Down
Loading