Discussion: FileMaker Server on Docker

Hi, Discussion:

A Friend asked me to install a FileMaker Server on a linux.

which sense makes Installing FileMaker Server on a docker container?

Thougts

  • FileMaker Server (FMS) requires 6 GB Ram.
  • renting a linux with double ram space costs more or less double price
  • renting a second linux machine is easy
  • Docker is making sense if you want to run multiple instances on the same machine, but if you want to run 2 instances of FMS: does this mean that the linux needs double ram-space? if so, why not renting a second linux?

Are there experiences with running multiple FMS instances on a server with less ram-space?
By example: running 2 FMS on a server with 6 GB Ram, or, with less than 12 GB Ram?

If that is not a good idea, Docker Container seems to be no advantage.

Why Docker Container for FMS?

thanks,
Christian

1 Like

@FabriceN and @airmoi gave a great presentation to the Kentuckiana FileMaker Developers Group on this topic.

I'll let them (or anyone else) answer as they see fit.

The group usually record the meetings and posts them to their Youtube channel.

That said, I do not see this presentation on their Youtube channel. Perhaps you can ask @jfletch who is hosting those events if he can update you on this.

2 Likes

The benefit of Docker is that you have ease of configuration and control of the environment. With a config file that is only a few dozen lines long, and editable in a text editor, you can control and configure the environment for your FMS. It's amazing but its not magic. You still need machine resources to run a container.

FMS has not previously required a lot of RAM but that may change, it always loves to be on fast media, it may or may not benefit from fast CPU (depends on your needs).

The information from Claris will provide you with a suitable base environment. They need to provide information that is suitable for everyone. Skimping on resources at the outset is not suitable for most people. You may know that (a) your data sets are very small (b) your backup sets are minimal (c) your scripts are not performed on server (d) your user load is low, etc, etc. In that case you may be able to run FMS in a skimpy environment, but it's your personal experiment.

And we'd love to hear how it goes. Let us know what works and what doesn't.

3 Likes

Thanks, Malcolm for the detailled answer!

However, having better control on environment i would not see as a sufficient reason for docker. I have multiple linux and multiple different web services on each: environment was never a problem. Otherwise, if you distribute a system over multiple servers that are administrated by others, then you have to be sure to have your own, isolated environment. Example is Mailcow-Dockerized. There Docker really makes sense.

Ports FileMaker comes with its own webserver. So, would it be possible to run a second FMS instance or any additional, different webservice by docker on the same server? Theoretically possible, but a lot of configurations then....

Discussed that question with a colleague, now, for me, its clear:

Running multiple FMS instances on multiple Dockers on the same Server would surley run, but, like suspected: a lot of configurations necessary.

But: FileMaker together with Docker would bring a disadvantage:

Sense of Docker is to fix all your used library versions in Dockerfile. So, if you update your server you can be sure that the application inside the container (FMS) ist not broken by a newer library version. But, that is a lot of work in configuration, which have to be done by the person which creates the package.

From all Linux Distributions, Ubuntu is that with the most updates and the most up-to-date Libraries, in contrast to CentOs or Debian (my Favorite), by example.

That Claris moved from CentOs to Ubuntu could, possible, have two reasons: a) Ubuntu became very popular in last years b) FileMaker wants to have more actual libraries.

Additionaly, Claris constrains us to regularly update our systems. That would mean that on every FMS update you have to care about updating configurations in Dockerfile.

From my View, Docker would make sense if you make a Docker-FMS-bundle and then distribute that to many servers.

Configuring one FMS inside one Docker for one Server may bring more effort in time than benefit.

Malcolm you're absolutely right: performance wise, Docker is not magic per se. It is 'magic' if you compare performance relatively to cost.
On our fmcloud.fm service the monthly price was divided by 2 while the actual performance was multiplied by 3 (according to @nicklightbody's study).
But I agree, even if you don't run multiple containers on the same host, the benefit of docker is real only because it's host independent. Let's mention the move from a development server to a production server as an example.

4 Likes

Here is the piece I published recently on the performance of FileMaker Server running on Linux. This covers Docker performance. The testing was all undertaken on @FabriceN 1-more-thing service.

2 Likes

Wow!

1 Like

@nicklightbody:
Could you provide the Dockerfile, that was used in the mentioned test?
What was the reason for the so significanty increased performance (Linux without Docker vs Docker)

dsBenchmark is a free open source FMServer testing App I released about five years ago, in about 7 languages.

The App has been widely used for benchmarking FMServer by developers and tech support over that period. Apparently Claris use a very similar method for load testing FMServer.

You can download dsBenchmark from https://deskspace.com

This version is dsBenchmark 2021 updated to work with FileMaker Server 19 on Linux and with Filemaker Cloud 2.

Cheers, Nick

4 Likes

@FabriceN & @airmoi can explain fully but my simplistic understanding is that Docker gives each account access to the unused resources of the hardware compared with any normal virtual machine which is limited to its prescribed resources. Most virtual machines run well below their maximum load capacity most of the time hence the hardware on which they run is typically greatly underused. The great step forward provided by Docker, originally a French project, was delivering a secure method for different accounts to share the same hardware resources more efficiently than existing methods.

Hence Docker is, in my view, a more sustainable technology because it enables resources to be used more efficiently.

Cheers, Nick

4 Likes

There are several factors:

  • what you said: you have access to hardware resources that would cost thousands if you were renting them alone
  • as there is no guest OS, the amount of resources dedicated to FileMaker is much greater, and completely optimized for FileMaker (this is one of the reasons why we have a Pro plan for Web Direct, which requires different optimizations than FileMaker Pro/Go)
  • we are able to do some 'load balancing' (avoid having too many customers that use a lot of resources on the same host, although we have a huge margin on each host)

Another great thing is that we can update FMS or the OS in the blink of an eye. The transition to Ubuntu for instance will be completely transparent.

4 Likes

Note to the test, provided by nicklightbody:

There is compared the virtualized Server (Option-1) with Docker on a physical Server (Option-3).

Virtualisation costs a lot in performance, example:
"In the best case, ignoring CPU clocks speeds and IPC improvements, for database workloads a VM will have 3/4 of performance of a bare metal servers with a CPU of a generation 3 years older, if the number of CPU cores is kept the same. Adjusting for clock speeds, virtualization performance overheads remove for more than a third of performance of bare metal, clock-for-clock."

If you would compare option1 and option3 on a bare metal server, then the server with docker would be a little bit slower. The Advantage is, what FabriceN says.

And: Apple, but much more Windows costs performance versus Linux in general: A friend of mine changed to a linux notebook and now he can work double time with the same battery.

1 Like

Great info, I've just skimmed it but, am thinking it woudl be great if someone could do some of these tests on a M1 mac (either using VMs, Docker, or "bare metal" Rosetta...)

I'm currently running several Mac Mini (Intel) servers and am very interested in the options going forward.

I was really impressed when I tested @nicklightbody's app running on your servers. I'm in Wellington, New Zealand, which is about as far as you can get from your servers. At the time I was on a connection that offered about 60Mbps. The app was completely functional at those speeds and at a distance.

I can see @xochi asking about running on an M1. Can you tell us more about the setup, or point us to more information?

1 Like

Thank you for your feed-back.
Indeed, that is far! although we also have a data center in Sidney, but @nicklightbody's app wasn't there. -Yes, I know, Sidney is already far, but you're far from everything :wink:

I honestly have no idea of the specificities of deploying docker on M1, if any.
@airmoi maybe?

1 Like

there seems to be a docker release for M1 that could be worth a try

1 Like

Both of the videos that include Fabrice are up now, including the excellent one on FMS in Docker: Kentuckiana FileMaker Developers Group - YouTube

Sorry for the delay.

4 Likes

thanks jfletch! is there a other source to the video as youtube?
i hate it having to accept the google terms&conditions.
Or, can you upload it here in the soup?

@jfletch that is not a bad suggestion, unless it is very long and warrants YouTube kind of storage space, you could put it in the Resources Channels, in subchannel "Tips and techniques". In which case I would remove the post FM on Dockers in the subchannel "Links".