FileMaker カンファレンス 2019 の様子を 全3回 全5回 に分けてお伝えするイベントレポートの第5回です。弊社がお届けしたセッション、コンテンツを、当日のTwitter実況も振り返りつつまとめきましたが、今回でいよいよ最終回です。第5回は11/8に行われたG-26のセッションの様子をお伝えしていきたいと思います。
G-26 そしてクラウドへ…..速度を落とさず移行するための実践テクニック
スピーカー
与座 さつき
速度低下に立ち向かう勇者 Splashで開発をしたりSplash Store の販売とサポートをしているひと。
を使ってない件。残念ながらElementalでは勇者っぽいアバターを作れなかったのです….。
勇者の旅立ちからGameOver…ではなく、GoodEndまでの工程をぜひお楽しみください⚔🛡
— 株式会社スプラッシュ (@splashjp) 2019年11月8日
スピーカーが適当につけたタイトルが一人歩きしてる感じを必死で繋げようとしてくれるTwitter担当。
このセッションでは、FileMakerのバージョンアップに伴いオンプレミスからクラウドサーバに移行したものの、スケジュールの都合で先にサーバを構築してからクラウド上での速度検証をした結果想定以上に遅くなってしまった事例を元ネタに、大規模な改修を避けつつポイントを押さえてスピードアップする方法についてをお話しました。
まずは移行先の環境とクライアントのバージョン。FileMaker Cloudではなく AWS の Windowsインスタンスです。ここには書いていませんがSuperContainerも同じサーバで稼働します。1台で様々なサービスが稼働してたオンプレミスのサーバから、FileMaker関連をAWSに移行してきました。FileMaker Serverの推奨環境はクリアしており、スペックとしては十分。利用するクライアントは約20人程度。
デロデロデロデロでデーン(呪いのSE)
このあと、以下のような部分で速度がめでたく低下😭
- リスト表示で上下スクロールが遅い、できない
- 検索条件によっては遅い、FileMakerが応答しなくなる
- CSVファイルのインポートが終わらない
- Excelファイルへのエクスポートが終わらない
速度低下の原因を調べていくと共通点が…
- 複雑すぎるリレーションシップの先のTOのデータを含んでいる
- 非保存の計算フィールドを含んでいる
一般的に遅くなるのでできるだけ避けるべきとされる作り方をしている部分に集中していました。しかし、わかっていてもそうせざるを得ない状況というのは実際よくあることです。遅いからこれはやめましょう、とはなかなか言えません。だって業務で必要だからその仕様になっているわけです。また、付け加えるとするとこのカスタムApp自体はFileMaker12で開発された為、サーバサイド処理を一切していません。([サーバのスクリプトを実行]ステップは FileMaker 13 から)
作戦1:データ大事に
速度改善のためにはリストに計算フィールドや関連先のフィールドを表示しないのがもっとも手っ取り早いのですが、リストに表示する項目を減らすとユーザビリティが低下するのでNG。また、既存の計算フィールドに変更を加えるのはいろんな意味で大変なのでこれもNG。
解決策は「データマート」でした。つまり、表示専用にNo計算フィールド、Noリレーションシップの超軽い「データマート」テーブルを作るのです。データマートにはオリジナルのテーブルからレコードをインポートするので、見た目上は全く変わりなく、特に問題はありません。更に新しいリストレイアウトを作るのではなく、既存のレイアウトのソースTOだけ置き換えることにしました。置き換える時は ClipManager を使うのであっという間。具体的な手順についてはセッションの録画でみてください。結果、計算フィールド、関連先のフィールドがないので非常に動作が軽くサクサクスとクロールできるようになりました。
作戦2: サーバサイドでガンガンいこうぜ
検索、Excel保存についてはリスト表示と同様に計算フィールドが絡んできますが、全てのテーブルにデータマートを作るのは現実的ではありません。また、インポートによるレコード作成では当然計算フィールド云々は関係しません。こういう時こそFileMaker Serverの出番!ということで、[サーバのスクリプト実行] で 負荷の高い処理を FileMaker Server にお任せすることに。
詳しく書くとかなり長くなってしまいますのでいきなり結果から。
検索、インポート、Excel保存と、それぞれどのように既存の処理を整理してサーバ処理化したのかは、録画で詳しくご覧いただければと思います。時間の都合もあって、スクリプトの中身まで具体的にお見せすることはできなかったのですが、セッション後に沢山の方から質問をいただいたり参考になったというコメントをいただきました。
クラウドのみならずオンプレミスも含めて、速度でお悩みの皆さまに少しでもヒントをお届けできていたら嬉しいです。
さて、5回にわたってお届けしてきたカンファレンスのレポートもこれでおしまいです。年に1度のFileMakerのお祭りはいかがでしたでしょうか?来年からはアメリカのDevConも「Claris Engage」とイベント名を新しくして開催されるようなので日本のカンファレンスもイベント名が変わるのかもしれません。どんなものが飛び出してくるか、筆者も楽しみに待つことといたします。それではまた!