Difference between revisions of "360Deploy"

From 360Works Product Documentation Wiki
Jump to navigation Jump to search
Line 23: Line 23:
 
## Copying and pasting of a script folder and generate scripts to the production layout
 
## Copying and pasting of a script folder and generate scripts to the production layout
 
## (Optional) Store server log-in credentials for an easier process
 
## (Optional) Store server log-in credentials for an easier process
 +
  
 
'''Required database changes'''
 
'''Required database changes'''
Line 31: Line 32:
  
 
[[File:CodeSnippet.png|160px]]
 
[[File:CodeSnippet.png|160px]]
 +
  
 
'''Recommended steps'''
 
'''Recommended steps'''

Revision as of 15:36, 21 July 2017

Overview

360Deploy is a product aiming to simplify the tedious process of deploying a development database onto an existing production database. Developers working on a file can deploy changes made to their database structure at the click of a button while avoiding the downtime and labor traditionally associated with the process. All that is required is the use of our plug-in, some simple configuration, and click Deploy!

For a better understanding, consider the typical FileMaker file development scenario of a production and development server. The production server is that which continuously hosts solutions for clients, whether through FileMaker clients or via WebDirect. The development/staging file is the one to which alterations are being made by developers to enhance utility and better serve client's needs. Overhauling the old file to reflect the new one typically involves a process during which production is shut down and administrators sift through tables, scripts, and fields to reflect updates. We seek to bypass this arduous task by automating the entire series of events.

The entire process takes only as long as it takes to import data based on your database size, during which the databases are paused. This allows files to be updated without worrying about how often or when the changes occur. The set up consists of installing our plug-in in the FileMaker client running the deploy file, and some simple script copy/pasting.


Why use 360Deploy?

Altering live databases has traditionally been a tedious, intrusive task. It consists of server downtime and technical labor at the expense of company resources. 360 Deploy is capable of doing that in minutes by seamlessly automating the process. What our software does is create a clone of the development database, transfers it to the production server, and then imports data from production into the clone to absorb the new architecture. As a safeguard, a back-up of the production file is also created on the machine before the imports occur should clients wish to revert back to the old structure.

Setup

Setup involves a handful of steps to get 360Deploy ready.

  1. Run the installation file on the servers which host the production and deployment databases.
  2. Install the plug-in in the FileMaker client from which the deployment will be triggered.
  3. Run the 360Deploy file and go through the configuration. This consists of:
    1. Populating IP addresses and account credentials for both servers.
    2. Copying and pasting of a script folder and generate scripts to the production layout
    3. (Optional) Store server log-in credentials for an easier process


Required database changes

  • Enable fmapp and fmurlscript for databases in Extended Privileges
  • Databases should be password protected (required by default in FileMaker Server)
  • Have administrative credentials for both FileMaker servers
  • Comment out script steps in triggers that automatically make any write operations in startup scripts (set fields, new records). E.g.,

CodeSnippet.png


Recommended steps

  • If account/password credentials for the Deploy file and both FileMaker Servers match, process will proceed without prompts and pauses.

Random Notes to help write this wiki

3 Choices to deploy DB changes: 1- Make a log of all changes made to development server, then reflect changes onto production server while it's down. 2- Separation model - creates compromises, involves workarounds, has trade-offs, requires technical know-how 3- Import all data from old data into empty clone of new file, make sure serial numbers are manually adjusted, tedious process

MirrorSync is an elegant synchronization product that can sync between any combination of FileMaker Pro, FileMaker Go, FileMaker Server, SQL database (MySQL, Oracle, SQL Server, or any database that supports JDBC), Salesforce, and Amazon RedShift. For mobile devices, users can sync the hosted file with their FMGo or Pro clients, go off network to make changes, and sync again when a connection is available. For servers, MirrorSync allows a database to run in multiple locations, or to integrate different databases and make sure that changes to each server are reflected in the other server.

MirrorSync is only installed on the server computer. It is not a plug-in, and does not require any software installation on client devices.

MirrorSync is extremely easy to set up. The only required database changes are:

  1. Enabling the FMXML and FMXDBC extended privileges in your security configuration
  2. Making sure that every table you want to sync has a primary key, modification timestamp, and creation timestamp.
  3. Creating a layout for each table.
  4. Four copy and paste operations.
@360Works on Twitter

Why use MirrorSync?

  1. For mobile users who access the database with FileMaker Go on their iOS device, MirrorSync allows these users to work efficiently with limited or no connectivity to the server network. Each user can take a local copy on their iPad or iPhone, input the information from the field, and then sync when they regain a network connection. Depending on their workflow, they could even specify a one-way sync where their information is pushed to the server, but no data is pulled down, or vice versa for users who need fast read-only information.
  2. For remote users who work on laptops, MirrorSync solves the problem of how to work productively on a hosted FileMaker database, regardless of network speed. If, for example, you have multiple users connecting to FileMaker Server over a wide area network (WAN) you could notice a substantial slowdown, as every change is immediately written back to FileMaker Server. MirrorSync allows each user to take a local copy of the database which would run on the user's machine and not be affected by the WAN performance. The user could sync when they first came into the office, work on their local copy throughout the day, and sync at specified times (or on demand) to push and pull the latest data to the server.
  3. For groups of users at multiple locations, MirrorSync should be used in server-to-server mode, where an identical copy of the database is installed on FileMaker Server in each location. Each workgroup works at full LAN speed on their own FileMaker Server, and MirrorSync takes care of keeping the servers in sync with each other, so that each workgroup can see and edit changes made by the other group. In this configuration, MirrorSync should be set to sync very often, such as every 30-60 seconds.
  4. To maximize performance and reliability, MirrorSync can be used in a clustering configuration, where two or more servers are running at the same data center and synchronized so that they all contain the same set of data. This means that each server only needs to work with 1/2 or less of the total users, and if one server goes down, the other server can take over the entire workload seamlessly. For a video demo of this, see https://www.youtube.com/watch?v=bQlGHrNtHCg
  5. For integration with non-FileMaker databases, MirrorSync is the simplest and most efficient way to accomplish this. For instance, if you have an online storefront running with MySQL or Oracle at a remote data center, but you need to have instant access to all of the orders in a database running on FileMaker Server, MirrorSync can selectively sync certain SQL tables to FileMaker, even if the table and field names do not match. In this configuration, MirrorSync should be set to sync fairly often, such as every 5-10 minutes.

== Require