「運用」の記事
26 件
-
仕上げは、レプリ設定で収まる — 一度きりの手順を、何度でも回せる一本にした
二台を組んだ「あと」の仕上げ ― 保管先を分ける、最初のバックアップ、預かり、監視を映す ― が、いくつものボタンと手作業に散らばっていた。それを一本にまとめた。肝は機能の多さではなく「何度でもやり直せる」ことのほうだった。今日はそこに二つ足した。複製が運んでくる大きすぎるメモリの取り分を直す「最適化」と、預かりの一日二回化。
-
バックアップは「取った」ではなく「戻せる」 — 監視の緑が隠していた三つの穴
監視画面が一列に緑を並べていても、それが答えているのは「取れた」だけで、「戻せる」ではない。対象に書いてあるのに一度も取れていなかった DB、「取った」と言い張る画面、静かに何もしなかった「完全初期化」。この夏の運用でまとめて踏んだ、取得と復元のあいだの三つの穴。
-
バージョン表記に β を付けた — ベータ版の決め手は、機能が揃ったことではなかった
8月21日、メールを「収受転送」で添付ごと収受文書にできるメール連携が完成した。併せて道具が揃い、残るのは現地でしかできない試験だけになった。だからログイン画面の版数に β が付いた。夜3時の67秒、52時間の誤警報、複製した機体で死んだメール、そして再試験でのログ増分0行。
-
わしらは怪しいコピー隊 ― 138個だけが、どうしても写らないのだ
移行試験でファイル一式を写すことになった。408GB、73万個。Finderはぐんにゃり止まり、rsyncに乗り換えたら今度は138個だけが写らない。犯人はファイル名の切られ方であった。
-
取りに来るのか、送るのか — 仕様が決まらないまま、サイネージの「今日の会議」を無人化した
新しい庁舎の入口にデジタルサイネージが付く。そこへ「今日の会議」を出す。誰も更新しない仕組みにした。渡し方が決まっていないので、送る形と取りに来られる形の両方を用意した。作っている途中で、予約の時刻と会議の時刻は違うという当たり前に気づいた。
-
行ったり来たりで、よく忘れる — 構築の手順そのものをアプリにしたら、五つのバグが出てきた話
サーバ二台を建てるのに、三つのアプリを行ったり来たりしていた。順番は手順書の中にしかなく、覚えているのは私だけだった。それを工程順に案内するアプリにまとめたら、今まで見えていなかった不具合が五つ出てきた。どれも「動いているように見えて中身が違う」型で、人が目で見て気づけるものではなかった。
-
記憶なんて当てにならない — どこまで配ったか、どこまで配るべきかで悩んだ話
PDF共通関数は、外部ライブラリ用のディレクトリの下に置いてあった。それだけの理由で配布から落ち、呼び出す側だけが現場に届いた。関数が無いまま「対応済み」になるところだった。どこまで配ったのか、どこまで配るべきなのか。チェックひとつ付け忘れれば同じことが起きる仕組みを、憶えていなくても済む形に作り替えた一日。
-
リターンキーを、また「バーン」と叩くようになった — 体験用サーバ二台と、三十年前の手つき
二日かけて体験用のサーバを二台建てた。コマンドは覚えられないので、やることは全部ボタンにしてある。その途中で「画面にはオンと出ているのに誰も入れない Mac」に半日を溶かし、犯人は自分の設定ファイルの一行だった。そして夕方、自分がリターンキーを「バーン」と叩いていることに気づいた。昔やっていたように。
-
52時間、止まっていたのは見張りのほうだった — バックアップではなく、その周りを作り直した一日
朝、2台の画面が正反対のことを言っていた。片方は正常、片方は「52時間バックアップが止まっている」。追ってゆくと、バックアップは一度も止まっていなかった。止まっていたのは、それを見に行く先だった。その日、世代の預かりから監視アプリまで作って、最後にこう言われた。「十年後も正常に稼働しているためのバックアップシステムだと思う」。
-
「今日はここまでにしましょう」とAIに言われた — 完璧なバックアップは、たぶん無い
手順書をなぞって確認するだけの半日、のはずだった。終わったのは夜7時半で、コミットは20本を超えていた。5分ごとに静かに失敗していた同期、macOSが毎晩出す消せない警告、デモ機がCLONEを上書きしかけた事故。ついでにUSBケーブルが1本ポンコツだったせいで、新機能まで一つできた。そして最後に、疲れを知らないはずの相手から「今日はここまでにしましょう」と言われたのである。
-
毎晩3時に、ひとりでに立ち直る — 無人運用でつまずいた5つの落とし穴
現地に技術者はいない。Mac mini の上で動く Linux を、毎晩決まった時刻に止めて、立ち上げ直す。仕組みは半日で書けた。そのあとが長かった。ポートの奪い合い、SSHホスト鍵の食い違い、macOSの許可。どれも動いているように見えて、ある日静かに止まる種類だった。5つ潰した。実測ダウンタイムは67秒。
-
全部は運ばないほうが、きれいに移る — データ移行を保守コンソールのワンクリックにするまで
現行の Mac+MySQL 5.7 から、新しい Linux+MySQL 8.4 へデータを移す。全部を書き出して全部を読み込む。それで詰まった。新しい土台は古い書き方を受けつけない。答えは、運ぶものを減らすこと。そして「エラーが出なかった」ではなく「全部移った」を件数で確かめること。その一連を保守コンソールのワンクリックに畳んだ。
-
影武者は、本番の邪魔をしてはいけない — そっくりな予備機を、母艦を止めずに最新へ保つ
機器が壊れた日にすぐ入れ替えられるよう、本番そっくりの予備機を1台立てた。難所は動かすことではなく、本番に指一本触れずに最新へ保つことだった。派手なレプリケーションではなく、既にあるバックアップに相乗りする地味な同期に落ち着くまでの記録。
-
バックアップは、あるだけでは足りない — 静かに止まり、小さすぎて不安になった一日
前回建てたLinuxの土台に保守コンソールを載せた。ダッシュボードの数字が実機とずれていた。追うと、再構築のときにバックアップが静かに止まっていた。復旧させたら今度は6.5GBのデータが480MBに縮んで不安になる。バックアップは「ある」だけでは足りない。開いて、末尾まで揃っていると確かめて、初めてバックアップになる。
-
74件のうち、配るのは6件だった — 「更新日で選ぶ」が壊れた話
NGWの更新を配る仕組みは、とうに完成している。壊れたのは「何を配るか決める」ところだった。20年動いてきた「ファイルの更新日で選ぶ」が、AIと働き始めた途端に無関係なファイルを拾い出す。犯人はAIではなくgitだった。診断から、UPDATE MAKER を内容差分へ、さらに「案件を選ぶ」へ作り替えるまでの一日。
-
決裁箱を携帯する時代を、NGWで考える — 閉じた壁の、外から押す
弟分のCGWは最初からスマホが決裁箱だった。だが本丸のNGWは、外部から遮断された閉域網の中で動いている。出張の多い首長が、出先から決裁を押すにはどうすればいいのか。画面転送という現実解と、最新のサービス、そして保守にも同じ道が使えるという話を、正直に書く。
-
一部の端末だけが固まった — 大更新に潜む罠
最新へ大きく上げたダイアログライブラリが、一部の端末でだけログイン画面を覆って固まった。手元では再現しない不具合の核心を、現場のDOMが指し示す。原因特定より「依存の排除」で直した後日談。
-
文書管理は、捨てるためにある — 引継と廃棄が、本当の仕事だ
文書管理と聞くと、大切にためて取り出せるようにすること、と思うかもしれない。だが本当の目的は逆で、要らなくなった文書を、期日どおりに適切に捨てることにある。ためるのは簡単、正しく捨てるのは難しい。引継・廃棄という文書管理の本題。文書管理シリーズ第7回。
-
今ある棚と簿冊を、登録するだけ — 現状から始める文書管理
文書管理システムというと「まず全部を理想の形に整理してから」と身構える。NGWは逆で、今まさに使っている棚と簿冊を、そのまま登録すれば動き出す。理想のライフサイクルは、導入してから育てればいい。低い入口こそが、続く文書管理の条件だ。文書管理シリーズ第4回。
-
文書管理規程は、どこも似ている — なのに、誰も読んでいない
どの自治体にも文書管理規程があり、その中身は驚くほど似ている。だが正直に言えば、日々それを読んでいる職員はほとんどいない。読まれない規程を、どうやって現実の動きに変えるか。受発番号の「一連番号」を10,20,30と読み替えた話を例に、NGWは規程を「動く仕組み」に翻訳する。文書管理シリーズ第3回。
-
派生フォークを「構成一致」でなく「振る舞い一致」で同期する
本体から勤怠だけを切り出した派生フォークを同期する話。構成の一致を捨て、振る舞いの同等性を実体で判定するという設計判断の記録。
-
壊さずに直す — 件数アサート付きの冪等な一括置換
ファイルを丸ごと差し替えられない環境へ同じ修正を手で当てる。件数アサートと冪等性チェックで置換を検証つきの適用に変える型を紹介する。
-
「?v=」で一度だけキャッシュを捨てる — 静的アセットのバージョン付け
JS/CSSを大きく差し替えたのに更新が効かない。原因はブラウザや中間キャッシュが掴む古いファイル。固定のバージョン文字列で一度だけキャッシュを無効化する運用を追う。
-
動いているものを止めずに次を作る — 本番と次期版の二本立て開発
稼働中の本番版と大きく作り替え中の次期版を並行開発する。同じ論理修正を食い違う2つのコードベースへ確実に当てる運用の設計判断。
-
操作マニュアルをMarkdownで書く — Marpでスライド/PDF化する
操作マニュアルをWordでなくMarkdownで書き、MarpでPDF化する。ドキュメントもソース管理する運用の記録。
-
定数をコードでなくデータベースに置く — 団体差を吸収する仕組み
団体ごとに変わる設定値を定数としてDBに持ち、起動時にdefineする設計。その利点と、型・存在をコード側で守る契約について。