I am looking to move my Octopus Deploy instance from an on-premise data center to Azure. What are some recommendations to best accomplish that?
To start with, backup your master key and store it in Azure Key Vault or some other password/secret manager.
Next is the database server. Leverage Azure SQL if your company allows it. You can setup a SQL Server Cluster on VMs in Azure, but that is one more thing to maintain. You can use the single database or elastic pool option.
Store the Log Directory, Artifact Directory, and Packages Directory in Azure File Storage. Unlike blog storage, Azure File Storage uses the SMB protocol. This means you can create a share, and it can be mounted as an mapped drive. If the VM were ever destroyed or lost, you could be back up and running quickly. Create a new VM, point it at the existing database, and you’re back to the races. You will need to configure Octopus Deploy to point to the new mapped drive.
Octopus.Server.exe path --artifacts X:\OctopusData\Artifacts
Octopus.Server.exe path --taskLogs X:\OctopusData\TaskLogs
Octopus.Server.exe path --nugetRepository X:\OctopusData\Packages
Deploying to on-premise VMs can be a challenge. Especially if you are using listening tentacles. You have a few options:
- Create a VPN connection between your data center and Azure. Allow traffic over port 10933.
- Open port 10933 in your firewall.
- Leverage a proxy server sitting in your DMZ with connections to your on-premise VMs.
- You could convert them to polling.
Finally, I’d have the Octopus Deploy server sit behind a load balancer or a Web Application Firewall (or WAF). Only allow inbound connections to ports 443 (UI/API calls) and 10943 (polling tentacles). Please refer to this documentation for more information.
In terms of VM size, we typically start with B2s in our tests. The B series of VMs are burstable, meaning you earn credits when the instance is below a certain CPU threshold. When you need some additional horsepower, you will use up the credits. Burstable VMs offer a nice price to performance ratio. You will want at least 2 vCPUs and 4 GB of RAM. Start small and scale up from there.