1 2 Previous Next 26 Replies Latest reply on Nov 24, 2016 9:59 AM by user16545

    Filemaker SaaS Multi-Tenant

    xfiring

      Is there a way to develop and deploy a Filemaker solution so that one code base can be 'spun up' for multiple customers?  This is pretty standard in the SaaS custom application world and I think it is not possible but figured I'd ask the question.

       

      The idea here is that there would be one code base and as update/functionality gets rolled out I would only need to support 'application base' and all customers would be upgraded at that time, instead of an old school model of one app per customer.  The benefits are self explanatory but just checking for I head down a custom .NET ASP kind of route.

        • 1. Re: Filemaker SaaS Multi-Tenant
          mikebeargie

          Yes, data-separation model is the way to go, so you just update the interface file. Also, the ability to clone files in filemaker makes it easy to have a single-source template that can be copied on-demand for new customers.

           

          However if you're investing heavily up front for a SaaS specific model, other options may be a better business decision long-term. I'm not sure why you chose .NET as an alternative, as the obvious reason to platform jump is usually licensing fees and not functionality. .NET apps sometimes come at a high price for SQL licensing as well, so be careful to do your research. Newer platforms like Node.JS, and the myriad of PHP platforms like Laravel, Zend, CodeIgnitor, Symfony and CakePHP, are open source and production-ready in thousands of easy to spin up configurations. There is a training/learning and development overhead though, expect to spend a lot more time developing your app if you do the work yourself. Better yet, get a mentor or a consultant to share the workload.

           

          Some easy questions to drive the choice are:

          1) How much customization is each user going to want? (If zero, then why use FM?)

          2) What does my average customer look like (1 user? 10? 100?)

          3) Are there important selling points of my app that can't be done outside of FileMaker?

          4) How is FileMaker licensing going to play into the distribution and deployment of my app?

           

          FileMaker may be a good proof of concept platform for you, even production ready. When (hopefully) your app gets enough revenue generating, you may want to rebuild on license-agnostic open-source platforms for the long term.

          1 of 1 people found this helpful
          • 2. Re: Filemaker SaaS Multi-Tenant
            xfiring

            Thanks Mike.

             

            With a separation model I need each client to be able to setup their own automated emails and keep the data separate from other clients. Is this possible?

             

            The idea is that each client would have pretty much no customization (everyone gets the same system) and each client would have maybe 1 - 5 users. 

             

            Costs to keep in mind are I want to manage the least possible amount of servers, technically if I could get 10 - 20 - 30 clients on 1 server (or cloud instance) that would be great but each customer would need their own separate login (think a standard system like acme.mysolution.com and widgetsusa.mysolutioncom, or something like that).

             

            Hope this makes sense. I like filemaker because it is easier to maintain by myself and add enhancements without outsourcing everything that needs done but i don't want to be caught in a maintenance nightmare where each client is forever a one off solution. (think updating 30 clients 1 at a time vs just making changes 1 time and all clients get updates)

            • 3. Re: Filemaker SaaS Multi-Tenant
              mikebeargie

              Yes, you would need to setup a server schedule for each client to perform the automated tasks in the separate files, but it’s all possible. FileMaker can host over a hundred files at a time still, and you can place each client in their own folder for ease of your tracking. You’d want to calculate your hosting costs and roll that into your SaaS fee.

               

              Server capacity will also be determined by how your users access the system, and what exactly it does. Performance generally decreases with more users if you’re doing things like WebDirect access, heavy “perform script on server” processing or data actions.

              • 4. Re: Filemaker SaaS Multi-Tenant
                xfiring

                What about updates and maintaining in this model?

                • 5. Re: Filemaker SaaS Multi-Tenant
                  mikebeargie

                  If you use data separation, then you just replace each client's UI file with the new UI.

                   

                  However if each client has custom updates to their UI file (rather than a settings table that loads logos and tags and such). Hardcoded changes. You will have to copy the UI changes into their UI file, or their customizations into the new UI file, whichever you prefer. There is no "diff" function that can auto-copy schema, script and layout changes.

                   

                  A (probably mandatory) tool for you to get will be a copy of FMPerception, that can perform a diff on two filemaker files to tell you what's been changed from the oldest to newest DDR report.

                  FMPerception - Fast FileMaker Analysis Tool - Geist Interactive

                  • 6. Re: Filemaker SaaS Multi-Tenant
                    wimdecorte

                    I may be missing something in this discussion, but the crux of multi-tenant is that all data lives in just one data file, right?  That means that you'd have to go to great lengths to make sure each tenant only sees its own data.  Which is not a trivial undertaking regardless of whether you use a separate UI file for each customer.

                    • 7. Re: Filemaker SaaS Multi-Tenant
                      xfiring

                      In reference to Filemaker or custom built SaaS Platform?

                       

                      In custom SaaS you'd have maybe 1 database with separate instances within that for each customer that would be automatically created when someone signed up for the platform.

                       

                      In Filemaker, I am trying to understand how this translates over.

                      • 8. Re: Filemaker SaaS Multi-Tenant
                        mikebeargie

                        That sentence does not explain how changes to your database get deployed from whatever model that is from.

                         

                        In most other systems there’s something in place for rolling out the schema changes (EG Laravel Migrations) that can be executed on any installation to “upgrade” it.

                         

                        In FileMaker, once you clone/copy a file, they are two separate files that must be updated separately.

                         

                        Data separation allows you to “separate” the UI from the database, so that if you are making only functional front-end changes, without any field changes, you can re-clone and re-deploy those updates without “migrating” data.

                         

                        For changing the backend database, you still need a “migration” plan for each database. This is where things like FMPerception and good internal documentation would come in handy.

                         

                        Some people are actually placing .fmp12 clones directly into a GIT repository and tracking changes that way (sic: subversioning). That would help document the path of changes to the base “template” file so they could be copied out to the cloned separate client files.

                         

                        Another option would be to build “migration” scripts that imported data from the old data file to the new one, this is actually (IMHO) the best way to go, as long as you keep the import scripts up to date from version to version so nothing gets lost in transit.

                        • 9. Re: Filemaker SaaS Multi-Tenant
                          jfletch

                          Isn't that true of ANY SaaS, though?

                          • 10. Re: Filemaker SaaS Multi-Tenant
                            mikebeargie

                            Yes and no.

                             

                            Wim said:

                            I may be missing something in this discussion, but the crux of multi-tenant is that all data lives in just one data file, right?  That means that you'd have to go to great lengths to make sure each tenant only sees its own data.  Which is not a trivial undertaking regardless of whether you use a separate UI file for each customer.

                             

                            Yes, if the data lives in ONE location. However a few SaaS platforms I know of have the ability to spin up separate databases for each "client", making it very isolated.

                             

                            This is also why i asked what the estimated count of clients are. FileMaker could easily support 50 clients assuming 1 data file and 1 UI file per client.

                             

                            The advantage of using a single file for data would overwhelmingly be to save time on changes, not having to copy a field to 50 other files anytime one is added or changed. This is where the import script I mentioned makes things easier at least.

                             

                            Single files with multiple client accounts are obtainable, but almost universally NOT recommended in FileMaker.

                            • 11. Re: Filemaker SaaS Multi-Tenant
                              miler24

                              We have 20 - 60 clients per server since we have two data files for each client.  We use data separation.  Each client has their own data files for obvious security reasons.  In any event, in order to practice multi-tenancy in FileMaker 15 a solution has to be SBA approved (Solution Bundle Agreement) and the firm has to be a FileMaker Business Alliance firm.  There are key limits to be aware of.  Only 125 files per server.  Only 100 concurrent WebDirect or Go connections per server.

                               

                              Updates are done per client and handled automatically.  I'd answer your question about a single application by saying that while we develop in a version that will be deployed to everyone, the actual deployment of that update occurs per client when they want to receive it.

                               

                              If done correctly, FileMaker can be an excellent platform for a SaaS based product.  However, you need to weigh the pros and cons.  FileMaker's most important strength is the ease with which we can deploy extensive and complex enhancements in mere hours.

                               

                              Eric

                              DocuWrx

                              • 12. Re: Filemaker SaaS Multi-Tenant
                                wimdecorte

                                Mike Beargie wrote:

                                 

                                FileMaker could easily support 50 clients assuming 1 data file and 1 UI file per client.

                                 

                                I think that's the part that was getting lost in translation.

                                I was reading like it like: one UI file per customer and just one overall data file.

                                • 13. Re: Filemaker SaaS Multi-Tenant
                                  mikebeargie

                                  I don’t think you were lost. It’s certainly ideal that you would be able to do everything in a single file, but not practical without the dangers that you’ve warned.

                                  • 14. Re: Filemaker SaaS Multi-Tenant
                                    srzuch

                                    I may be converting some systems from Microsoft Access (in which I also separate the GUI file from the data file) to Filemaker.  One system is used by six clients.

                                     

                                    I plan to start my development using a single file for both data and GUI.  The reasons for me starting off this way are:

                                     

                                    1) A lot of business rules are stored with the fields, tables and relationships.  If I want to add a total to a report, this is a table change.  If I want to change a validation rule, there is good chance that I will change the field definitions.  I am a firm believer of putting the business rules as close to the data as possible, and Filemaker facilitates this.

                                     

                                    2) Unlike Microsoft Access, I do not believe that field, table, and relationships can be modified programmatically in Filemaker.  In Access, I am able to determine if the data definitions need to be modified from my updated GUI file, and make such changes.  So, at least at the beginning, I would need to be importing data for many changes.

                                     

                                    3) I am new to this environment, and I want to avoid additional complexity to start off with.  Many of the above responders are extremely experienced in Filemaker, and very experienced in the separation model. 

                                     

                                    4) I don't believe that performance will be significantly impeded if I keep to a single file.  It appears that Filemaker does an excellent job in caching GUI and data on the local computer.  This was not true with Microsoft Access, whereby separation helped performance in a network environment.

                                     

                                    5) Once the system is designed, and future modifications are primarily GUI related, I do not think it is that difficult to separate the GUI from the data. 

                                     

                                    Steve

                                    1 2 Previous Next