Deploying FME Server on Azure

Liz Sanderson
Liz Sanderson
  • Updated

FME Version

  • FME 2020.2

If your organization is moving to the cloud, or is already in the Azure domain, you may be interested to find out what options you have to host FME Server in Azure.

As FME Server evolves and develops we are continually improving our offering of deployments so that administrators can choose the most appropriate solution for their needs.

 

Virtual Machines

Most people choose the traditional option of setting up and managing virtual machines to install and run FME Server, as you traditionally would on-premises. This may be the recommended approach, especially if you only have one FME Server environment (not separate dev, test, prod environments) and you're not familiar or comfortable with Infrastructure as Code (IaC) templates.

If you're not sure which deployment type you need, it is recommended that you review our documentation on Choosing a Deployment Architecture or our article A Guide to Choosing your FME Server Deployment Architecture.

An Express installation can be done all on one virtual machine and will be easy to set up. A distributed environment may use Azure services, such as Azure Files, Azure managed database, Azure Load Balancer or Application Gateway.

 

Azure Marketplace

Azure Marketplace is a catalog of applications that are available to deploy with the intention of getting you up and running faster than managing the installation and configuration yourself.

There are currently two Azure Marketplace offerings of FME Server:

 

FME Platform

The FME Platform offering is a Virtual Machine that comes with an installation of FME Desktop and an express installation of FME Server. 

We recommend this solution if you want to quickly get FME Server into your Azure environment, possibly as a trial.
We don’t recommend this option for production workflows where you are running important workflows or fault tolerance and high availability is important. As the express installation of FME Server has all components on a single VM this creates one point of failure.

 

FME Server (Distributed Deployment)

The FME Server (Distributed Deployment, Windows) is a distributed installation of FME Server, making use of Azure services to optimize performance and reliability. You can read more about this deployment in our blog post. The services used include: Virtual Machine Scale Sets (VMSS), Azure Load Balancer, Azure Application Gateway, Azure Database for PostgreSQL, Azure File Storage.
At the final stage of deploying an Azure Marketplace offering you have the option to download the services and configuration as an Azure Resource Manager (ARM) Template. 

We recommend this solution for customers who want to create a fault tolerant FME Server where components are distributed and replicated across multiple VMs (such as the FME Server Core and Engines on VMSS) or components are running on Azure services designed to be highly available and/or fault tolerant (Azure File Storage, Azure Load Balancer, Azure Database for PostgreSQL). This deployment option is a standard deployment and only has FME installed on the virtual machines. If you need more customization (either different Azure services or other installed applications) we recommend that you adapt the ARM template to meet your needs, or install yourself as per our documentation.

If you're interested in customizing our marketplace ARM templates or would like more examples and details on other IaC templates, review this article: Infrastructure as Code (IaC) for Distributed FME Server Deployments in the Cloud.

 

Self-build

You also have the option to install FME Server from scratch across Azure services yourself. You may wish to review our Marketplace offerings, documentation or Community articles for examples and guidance on how you can install FME Server. 

This would be a solution for someone who is looking to install FME Server in a significantly different way to the marketplace offerings or ARM templates. This will also suit users who do not have experience in, or do not need IaC templates.

 

Containers

FME Server has been adapted to support containerized deployments for several years now, making it easy to use Docker or Kubernetes. Our FME Server components are built on Linux containers so if you rely on any formats that require Windows OS or 3rd party plugins you will need to reevaluate this solution.

 

Azure Containers

Azure Containers service allows you to host containers on the cloud. From docker.com  , “A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another”. With FME Server, each component is packaged into one container. There will be one container for the FME Server Core, one for each engine, etc. Docker-Compose is a way of running multi-container applications (which FME Server is).

Azure Containers supports Docker Compose, and you can visit their documentation for how to do this. FME Server Docker Compose files are available here.

Docker is a solution for someone who is looking to quickly start up a containerised version of FME Server using docker-compose. This would be a good starting place if you’re interested in a containerised FME Server deployment and are able to manage your own containers and don’t want to manage virtual machines. If you want to run containers in production and you need FME Server to be highly available you may want to consider using Kubernetes.

 

Azure Kubernetes Service

Kubernetes (or K8S) adds extra benefits over Docker for production environments by providing a single control plane to manage all of your containers. The control plane is used to orchestrate containers and can schedule and automate Kubernetes deployment, as well as managing networking, load-balancing, security and scaling. Kubernetes has self-healing capabilities, so if it notices that a container is unhealthy it will bring up a new one to replace it.
More information on AKS can be found here.
FME Server documentation for AKS can be found here.

We recommend Kubernetes for customers who have expertise in this area within their organisation and already have experience in setting up clusters and deploying applications into Kubernetes. Kubernetes has benefits over Docker that make it more suited to fault tolerant multi-container applications where demand may not be constant.

 

Hosted FME Server - FME Cloud

If your organisation is embracing the cloud and you don’t want to manage FME Server yourself, FME Cloud might still be a good solution for you. Whilst FME Cloud is hosted in AWS, if your Azure infrastructure and FME Cloud are both hosted in the same geographic region then network performance is still excellent. Find out more here.

This article might be a good reference material: Feature Comparison: FME Server and FME Cloud

Was this article helpful?

Comments

0 comments

Please sign in to leave a comment.