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 the main Branch that has a different version number than the Deployment's. This means that if 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.

On Development Server

  1. Clone the main Branch File: Clones the latest Version that was released to main (the latest stable development version).

  2. Transfer: The cloned file is securely transferred to the target server.

On Target Server

  1. 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)

  2. Data Migration: Utilizes the FileMaker Data Migration CLI Tool to migrate data from the original file to the new version.

  3. 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