2026年11月11日
自社製グループウェア「Ulala Hub」の開発ストーリー、4回目です。開発も運用も少人数。その体制で、お客様のデータを守り、サービスを止めないために決めていることを書きます。
ログインの失敗は「利用者ごと」に数える
パスワードを続けて間違えたら、一定時間ロックする。よくある仕組みですが、何を単位に数えるかで結果が変わります。
よく使われるのは「接続元(IPアドレス)ごと」です。ところが、アプリの手前に中継のサーバーを置く構成では、アプリから見ると全員が同じ接続元に見えることがあります。この状態で接続元ごとにロックすると、誰か1人が間違え続けただけで、全員がログインできなくなります。
Ulala Hub は「利用者の名前ごと」に数えています。設定を点検する道具は「接続元でのロックが無い」と警告を出しますが、これは理由があって選んだ形です。警告が出ているから直す、ではなく、なぜその警告が出るのかを確かめて決めることが大事だと学びました。
権限は3段階。強い権限ほど人数を絞る
| 役割 | できること |
|---|---|
| オーナー | すべて。利用者の削除、権限の設定、操作の記録の確認、契約と支払い |
| 管理者 | 社員・勤務状態・文書の分類の管理、利用者の追加と変更。利用者の削除はできない |
| 一般の社員 | 予定、掲示板、伝言、文書の利用 |
- 退職した人は「削除」ではなく「無効にする」のが基本です。過去の予定や投稿が、誰のものか分からなくならないようにするためです。完全な削除はオーナーだけができます。
- 電話の伝言メモは、送った人と受け取った人だけが見られます。管理者の画面からも見えません。「管理者なら何でも見られる」にはしていません。
- 運営側の管理画面は、パスワードに加えて、スマートフォンのアプリに出る確認コードを必須にしています。
変更の反映は2種類を使い分ける
サービスを直すとき、毎回システムを止めて入れ直していると、そのたびに利用中の人の操作が切れます。変更の中身で、反映のしかたを分けています。
- 画面の見た目や処理の中身だけの変更:動かしたまま読み込み直す。利用中の人の操作は切れません。
- データの形、設定、画面の行き先の変更:入れ直す。短い時間ですが切れるので、時間帯を選びます。
直すときの手順を固定する
変更は、決まった形の「配布パッケージ」にまとめて入れます。パッケージは次の順に動きます。
- 直す前のファイルを、日時を付けて保存する。
- 「この文字列を、この文字列に置き換える」を、完全に一致する場合だけ行う。一致が1か所でなければ、何も書き込まずに止まる。
- プログラムの文法と、システム全体の整合を検査する。
- 反映して、実際の画面で確かめる。
2番目がいちばん効きます。「たぶんこのあたり」で書き換えると、想定と違うファイルを壊します。動いている現物が想定どおりでなければ止まる、という作りにしておくと、事故の多くは書き込む前に防げます。
同じサーバーの別のシステムに触らない
1台のサーバーで複数のシステムを動かしている場合、いちばん怖いのは「別のシステムを間違えて止める」ことです。似た名前のものを自動で探して操作する、という書き方はせず、操作する相手の名前を毎回はっきり書く、と決めています。地味ですが、少人数の運用ではこうした決めごとが事故を減らします。
毎日・毎月やること
- データベースのバックアップは毎日。
- ウイルス対策の情報は毎日更新。
- 外から見た弱点の点検と、設定の点検は毎月。
- エラーの記録は、容量を決めて古いものから入れ替える。
AIと一緒に運用するということ
開発と運用にはAIを使っています。AIは速く正確に書きますが、動いている現物を見ずに書くと間違えます。上に書いた手順(現物を確認する、保存する、完全一致でなければ止まる、検査する、記録を残す)は、人にもAIにも同じように守らせています。手順が決まっているから、少人数でも続けられています。
次回は、グループウェアの中心である予定表を、どんなデータの形で持っているかを書きます。


