Under the Hood
Deploying and migrating updates across different environments, such as moving a new version from the development server to staging, is a complex process and involves many steps on both the development and the target server. With just a single click in the Devin App, these steps are all automated by the Devin APIs on the respective servers.
The current version of Devin implements a default process for rolling out releases across STAGING
and PRODUCTION
environments. Soon, this will be extended (see Looking Ahead: Enhacing Deployment Flexibility).
Default Deployment Pipeline
The Default Deployment Pipeline listens for new Releases to an Environment's Release Branch that has a different version number than the Deployment's. This means that if your production environment uses your main branch as release branch and a higher or lower Version is released to main
, this pipeline lets you roll out the release using a standardised and automated deployment and data migration process.
For a guide on how to trigger this pipeline for a deployment, see Deploy a Release.
What happens on the Development Server
Cloning the respective Branch File: Clones the latest Version that was released to the respective release branch.
Transfer: The cloned file is securely transferred to the target server.
What happens on the Target Server
Close Live File: Temporarily closes the original live file (if no users are connected to it). (we are currently investigating approaches for supporting zero-downtime data migration processes)
Data Migration: Utilizes the FileMaker Data Migration CLI Tool to migrate data from the original file to the new version.
File Replacement: Moves and opens the new file, replacing the old version.
Safety and Recovery Mechanisms
Devin’s APIs incorporate robust safety features that handle communication and process execution between servers, designed to handle the complexities and potential risks involved in updating and migrating data across environments. These mechanisms ensure that the system remains stable and secure throughout the deployment process, safeguarding against disruptions that could impact business operations.
Error Handling and Rollback Capabilities
Proactive Monitoring
Devin continuously monitors servers and processes for any signs of issues. This includes checking that FileMaker Server runs as expected, that servers has enough resources available to perform actions and that update processes are not initiated if there are users connected to the respective file(s).
Automatic Rollbacks
In case of an error during the deployment or migration phase, Devin is engineered to automatically revert to the previous state of the application. This rollback is triggered if specific error conditions are met, ensuring that the live environment remains unaffected by the failed update attempt.
Security and Integrity Checks
Access Controls and Authentication
All communication between Devin APIs, including server status checks, file transfers and data migration logs, utilizes the SSL certificate installed on FileMaker Server. This ensures that every interaction is securely encrypted and authenticated, safeguarding against unauthorized access and protecting data integrity.
Data Verification (not yet implemented)
Devin does not verify the integrity of the data being migrated during the data migration process. If the FileMaker Data Migration Tool completes sucesfully, Devin will interpret the migration step as succeeded and continue. The data migration logs can be viewed in the Devin App's Project Workspace -> Migrations -> Details.
Execution Safety
Process Queuing and Isolation
This means that processes may enter a queue and wait to be triggered. For example, if multiple developers simultaneously initiate operations on a Development server, some processes might experience a delay before starting.
Looking Ahead: Enhacing Deployment Flexibility
Devin currently adheres to a structured process for deployment updates to maintain system stability. However, we are excited about the upcoming releases of features that we call Cycles and custom Pipelines. These will not only offer more advanced and customizable deployment workflows but also the ability to integrate automated Regression Testing within these workflows. Stay tuned 🚀
Last updated