Managing DevOps with Filemaker

As mentioned in other posts, the Claris FileMaker Platform has given developers incredible freedom and ease to create wonderful solutions for clients. As the platform has developed, some of this functionality, if used without due consideration, can turn out to be a burden, or sometimes even quite catastrophic.

One such consideration is that as developers, there is noting stopping us from performing the almost complete suite of development work on a solution, whilst it is both hosted on a server, AND in use by our customers. Conventional software development wisdom dictates that this should not be done - the risks of corruption are too high, and unintended development changes may have an immediate impact on client systems. The Filemaker platform however, does allow us to do this. As is found elsewhere in the platform, we find that just because we can, does not necessarily mean we should.

So - what are our options?

Until fairly recently, we were mostly stuck with developing in a backup copy of a file, and then manually migrating the changes over to a live file during a scheduled outage, which mean manually copying and pasting any changes we’d made, be they Tables, Fields, Scripts, Custom Functions, Layouts, etc. This process was error prone to say the least, and cumbersome because it’s critical that you do things in certain order so that references don’t break, and even when done perfectly, you still sometimes have to apply fixes as you go. Not ideal!

A few years ago, however, Filemaker Inc (now Claris) delivered the Data Migration Tool, or DMT, which is a command line tool that allows for rapid copying of DATA from one Filemaker to a CLONE of the same file, even if development changes have been done. This is NOT the same as patching the functionality, in fact it’s kind of back to front - we’re copying the data from a live file into the development file, and then replacing the file with the resulting file. This is a vast improvement, both in terms of performance (DMT is wicked fast), but also in terms of reliability. DMT does lovely stuff like intelligently working out which fields have been changed to other fields, auto increments serial numbers, provides us with options as to how to manage user account and static value lists, and will report this back as it progresses so that you can see any errors.

However, using DMT in it’s command line form is still a manual process, requiring you to schedule downtime, grab backup copies of live files, create Clones of development files, run the command line operations, verify the files and then re-upload as required. This is again, is not ideal, and so we lead on to the next stage in Filemaker development management…

Proof+Geist are hosting providers and developers, so they know the challenges faced, and have delivered a product which goes a long way to alleviating these pains. Otto is a development cycle management toolset which allows us to perform DMT migrations without having to go through the cumbersome, and manual processes outlined above.

There are a few components to this:

  1. OttoFMS is an application which is installed on the Filemaker server, and is accessible via a web interface which defaults to port 3030, and will try to use the same SSL cert as used by Filemaker Server. The OttoFMS application receives commands from a Filemaker file called Migrator, which is free to download as part of your Otto license
  2. Migrator is a Filemaker file which you can host on any compatible Filemaker server, or run locally, and allows you to configure the migrations. Migrator is where you setup source and destinations servers and files, and where you can specify how and when migrations occur
  3. OttoFMS leverages the DMT (running on the server) to perform the migrations, and uses the results to inform it’s reports back to you on progress and errors.

There are some other ways to interact with the OttoFMS application, as it has it’s own DeveloperAPI, and you can login via the web interface to view migrations and other config settings.

In Summary

As Filemaker developer, you get a tool which reduces your workload, and allows you to develop in a safe, sandboxed manner, deploying changes as required. As an end user, you get a more stable Filemaker solution - you can continue to use your live solutions until you’ve approved development changes, and then se house changes appear in a controlled manner. Otto is a licensed product, but it’s bundled into the Ottomatic hosting platform provided by Proof+Geist, which is my opinion is the main selling point of that hosting option.