Wim Decorte, Senior Technical Solution Architect and Director of Claris practice at Soliant Consulting, delivered an insightful presentation at the 2023 EngageU FileMaker conference, focusing on optimizing FileMaker solutions through best practices and the integration of microservices. Below is a detailed summary of his key points and themes:
Introduction and Pain Points in Existing Solutions
Introduction: Wim Decorte opened by introducing himself and his role at Soliant Consulting, emphasizing the importance of discussing modern architectural strategies for FileMaker solutions. He highlighted the prevalence of organically grown solutions that often become cumbersome and inefficient.
Pain Points: He mentioned that many solutions brought to Soliant Consulting suffer from significant performance issues and stability problems due to poor architectural decisions. Clients often face high costs when trying to rectify these problems because they feel their solutions are already functionally complete, even though they lack the necessary performance and stability.
Importance of Best Practices
Best Practices: Decorte stressed the significance of adhering to best practices, which are derived from the collective experiences and pains of many developers. These practices serve as guidelines to ensure more stable and performant solutions. He clarified that best practices are not mandatory dogmas but should be considered and thoughtfully implemented.
Flexibility in Implementation: He acknowledged that while best practices are crucial, they are not rigid rules. Developers can deviate from them if necessary, but such decisions should be deliberate and well-considered to avoid future complications.
Industry Trends Impacting FileMaker Development
Identity as the New Perimeter: Decorte highlighted a major trend where the focus has shifted from defending a central network perimeter to verifying user identities as the primary security measure. With users accessing resources from various locations and devices, ensuring robust identity verification has become critical.
Increased IT Requirements: He observed that even smaller companies are outsourcing their IT needs to larger IT service providers, which now impose more complex requirements similar to those of big IT firms. This trend increases the complexity of integrating FileMaker solutions with external systems.
Breaking Down the Monolithic Approach
Monolithic Solutions: Decorte described monolithic FileMaker solutions as those where all functionality is crammed into a single file or where FileMaker handles every aspect of the application. This approach can lead to performance bottlenecks due to file locking issues, slow backups, and challenging deployments.
Benefits of Decomposition: He advocated for breaking down monolithic solutions into multiple files or integrating microservices to enhance performance and scalability. By isolating high-load tables or critical functionality into separate files, developers can mitigate performance issues and improve maintainability.
Integration of Microservices
Why Microservices?: Decorte explained that offloading specific tasks like PDF generation, JSON parsing, and complex computations to microservices can significantly improve the performance of FileMaker solutions. He highlighted several practical use cases where microservices offer substantial benefits.
Development Tools: For developing microservices, he recommended using Node.js with the Express framework due to its compatibility with JavaScript and ease of use. Tools like Visual Studio Code are ideal for writing and testing code locally.
Practical Steps for Development and Deployment
Local Development: Decorte detailed how developers can use Visual Studio Code to write and test microservices on their local machines. Tools like Ngrok can be used to create secure tunnels for testing from remote locations without modifying firewall settings.
Deployment Considerations: For deployment, he discussed using PM2, a process manager that provides robust management and scalability for Node.js applications. He emphasized the importance of choosing appropriate deployment environments, whether on dedicated Linux servers or within existing infrastructure.
Reverse Proxying: He explained the use of reverse proxying with web servers like Apache, Nginx, or IIS to manage traffic and ensure accessibility. This approach allows seamless integration and scalability of microservices.
Optimization and Scalability
Evaluating Needs: Decorte stressed the importance of evaluating whether to use FileMaker or microservices based on specific requirements such as load, performance, and client needs. He cautioned against premature optimization and recommended thorough discussions and documentation of architectural decisions.
Scalability with Containers: He advocated for using containerization technologies like Docker and Kubernetes to deploy microservices efficiently. These tools offer robust features like self-healing and horizontal scalability, making them ideal for maintaining high availability and performance.
Microservices to Functions: Looking ahead, Decorte suggested that the future might involve breaking down microservices into even smaller, single-purpose functions. Technologies like AWS Lambda and open-source alternatives like OpenFaaS enable deploying individual functions that can be called independently, enhancing modularity and scalability.
Monitoring and Disaster Recovery
Monitoring: Effective monitoring is crucial to detect issues before users do. Decorte highlighted the importance of setting up comprehensive monitoring systems to ensure quick detection and resolution of problems.
Disaster Recovery: He emphasized the need for robust disaster recovery plans, including failover mechanisms to ensure continuous availability. He discussed leveraging infrastructure as code and automation tools to quickly recover from failures, especially in cloud environments.
Final Thoughts: Decorte concluded by urging developers to consider different architectural approaches thoughtfully. By integrating microservices and leveraging best practices, developers can create more scalable, performant, and maintainable FileMaker solutions. He emphasized that while there are no rigid dogmas, the key is to make deliberate, well-informed decisions to avoid turning solutions into unwieldy, inefficient monoliths.
In summary, Wim Decorte’s presentation provided a comprehensive overview of modern architectural strategies for FileMaker solutions, highlighting the benefits of microservices integration, best practices, and thoughtful optimization to ensure high performance and scalability.