Operasi, pengurusan dan kesinambungan
Perniagaan itu kekal milik anda. Jentera di bawahnya kami yang mengendalikan.
Systems membina tapak dan mengamankannya. Infrastructure mengambil alih kemudi: kami memasangnya, kami memastikannya berjalan hari demi hari, dan kami yang berjaga apabila sesuatu bergerak. Sebuah dewan dagangan, sebuah syarikat, atau seorang insan dengan gedung dalam talian — tangan yang sama dan pemantauan yang sama.
Enam perkara yang meninggalkan tangan anda pada hari pertama dan tidak kembali.
Di mana ia berjalan, sebesar mana, dan berapa sepatutnya kosnya. Kami memilihnya, kami memasangnya, dan kami mengubah saiznya apabila trafik anda berubah — sebelum ia menjadi masalah yang dapat anda lihat.
Domain, sertifikat, dan e-mel yang sampai ke tujuan dan bukan tersangkut dalam folder spam. Diperbaharui sebelum anda teringat ia wujud, kerana nama yang luput bermakna perniagaan yang tertutup.
Pembayaran keluar, kaedah pembayaran, negara demi negara, dan pesanan yang tidak sekali-kali boleh hilang. Dibina sekali, kemudian dijaga agar terus berfungsi — termasuk pada hari pembekal anda mengubah sesuatu.
Salinan simpanan yang tidak perlu anda fikirkan, dan pemulihan yang benar-benar pernah kami laksanakan. Salinan yang tidak pernah dipulihkan sesiapa bukanlah salinan — itu hanya harapan.
Halaman yang terbuka dengan pantas di mana jua pengunjung berada. Lambat bermakna wang berlalu keluar, jadi kelajuan adalah bahagian daripada mengendalikan rumah ini, bukan baris tambahan untuk dibeli.
Kemas kini, sertifikat yang hampir luput, komponen yang berlubang. Ditutup oleh kami, menurut kalendar kami — bukan atas kerisauan anda, dan bukan pada pukul tiga pagi waktu anda.
Apa yang sebenarnya berlaku antara saat sesuatu rosak dan saat ia berdiri kembali.
Setiap permintaan, setiap pintu dan setiap kunci direkodkan di edge sebaik ia berlaku. Tiada apa yang menunggu tugasan malam untuk menemuinya pada waktu pagi.
Bukan peti mel, bukan papan pemuka yang mungkin dibuka seseorang esok hari. Peringatan itu pergi ke tempat yang tidak boleh diabaikan secara senyap.
Apa yang berlaku, apa yang terjejas, dan apa yang telah pun dilakukan mengenainya. Anda tidak mengetahui bahawa rumah anda tergendala daripada pelanggan anda sendiri.
Tangan yang sama yang memasangnya masuk dan membaikinya. Tiada lapisan di atas kami untuk menyerahkannya, jadi tiada sesiapa yang perlu kami tunggu.
Apa yang gagal, mengapa, dan apa yang kami ubah supaya ia tidak boleh gagal dengan cara yang sama dua kali. Kegagalan yang tidak dicatatkan akan berulang.
Satu helaian. Boleh dibaca oleh seseorang yang bukan jurutera, kerana itulah sasarannya.
Apa yang kami serahkan kepada anda ialah bahagian yang berjalan di rumah anda: latihan yang menguji salinan anda sendiri setiap malam, dan satu panggilan yang meletakkan sebuah rumah di bawah pengurusan. Bilik operasi kami kekal tertutup — apa yang berjalan di pihak anda adalah milik anda untuk dibaca sebelum anda mempercayainya.
# put one house under management POST https://api.matchtopalgorithm.ai/v1/operate/houses Authorization: MT-••••-••••-•••• — one key, one house Content-Type: application/json { "house": "shop.yourcompany.com", "runs": ["web", "checkout", "mail", "database"], "watch": ["uptime", "certificates", "backups", "speed"], "drill": { "restore": "nightly", "prove": "orders" }, "wake": ["telegram", "phone"], — a mailbox is not a watch "window": "always", "clock": "Europe/Zurich", — the sheet arrives in your hour "sheet": "monthly" } 202 Accepted { "house_id": "h_4c81e07a", "under_watch": "live", "first_sheet": "2026-11-01", "keys_held": "yours — handed back on request" }
"""MatchTop · restore drill — the piece that proves a copy is a copy. Standard library only. It runs in your house, on your own copies, where you can watch it.""" import hashlib, hmac, json, os, subprocess, time from pathlib import Path from urllib.request import Request, urlopen KEY = bytes.fromhex(os.environ["MT_KEY"]) # one key per house, never on disk EDGE = os.environ["MT_EDGE"] # no address baked into the build SHADOW = Path(os.environ["MT_SHADOW"]) # a shadow copy. never the live house. def newest_copy(vault: Path) -> Path: """Drill the copy you would actually reach for, not a convenient one.""" copies = sorted(vault.glob("*.dump"), key=lambda p: p.stat().st_mtime) if not copies: raise FileNotFoundError("the vault is empty") # the loudest fault there is return copies[-1] def fingerprint(copy: Path) -> str: """So that tomorrow we can prove this was the file we brought back.""" h = hashlib.sha256() with copy.open("rb") as f: for block in iter(lambda: f.read(1 << 20), b""): h.update(block) return h.hexdigest() def bring_it_back(copy: Path) -> dict: """Restore into the shadow, then ask it a question only a live house can answer.""" SHADOW.mkdir(parents=True, exist_ok=True) started = time.monotonic() subprocess.run(["pg_restore", "--clean", "-d", "mt_shadow", str(copy)], check=True, timeout=1800) asked = subprocess.run(["psql", "-d", "mt_shadow", "-tAc", "select count(*) from orders"], capture_output=True, text=True, check=True) return {"seconds": round(time.monotonic() - started, 1), "orders": int(asked.stdout.strip())} # a restore nobody queried is not a restore def file_it(result: dict) -> str: """Signed and filed, pass or fail. The month's sheet is written from these.""" body = json.dumps(result, separators=(",", ":"), sort_keys=True).encode() call = Request(EDGE, body, { "Content-Type": "application/json", "X-MT-House": os.environ["MT_HOUSE"], "X-MT-Seal": hmac.new(KEY, body, hashlib.sha256).hexdigest(), }) with urlopen(call, timeout=8) as answer: # we dial out. nothing dials in. return json.load(answer)["filed"] def drill(vault: Path) -> None: copy = newest_copy(vault) result = {"copy": copy.name, "age_hours": round((time.time() - copy.stat().st_mtime) / 3600, 1), "fingerprint": fingerprint(copy)[:16]} try: result |= bring_it_back(copy) result["verdict"] = "came back" except Exception as fault: result["verdict"] = "did not come back" # the drill exists for this branch result["fault"] = str(fault)[:200] # and this is the night we are worth it file_it(result) if __name__ == "__main__": drill(Path(os.environ["MT_VAULT"])) # every night, watched or not
Tiada angka pelanggan pada halaman ini. Kami tidak menyebut apa-apa yang tidak kami ukur sendiri, jadi keempat-empat ini daripada rumah yang kami kendalikan dengan tangan kami sendiri.
Bukan perbandingan harga. Perbandingan bagaimana kedua-dua rumah itu dibina.
Tiada satu pun daripada itu merupakan senarai ciri, dan itulah sebabnya ia tidak boleh ditawar lebih rendah. Sebuah syarikat dengan senarai tugas tidak boleh memberikan anda orang yang membina sistem anda. Sebuah syarikat yang invoisnya mesti membesar setiap tahun tidak boleh mengeluarkan satu baris daripadanya. Sebuah syarikat yang hanya memantau tidak boleh membaiki. Mereka bukan di belakang kami — mereka dibina secara berbeza, dan mereka tidak dapat melangkah ke sebelah sini tanpa berhenti menjadi diri mereka sendiri.
Itu juga sebabnya tiada senarai harga pada halaman ini. Kami melihat apa yang tidak boleh berhenti, kami mengukur operasinya, dan kemudian kami menyebut harga bagi apa yang kami ukur. Setiap satu membayar menurut ukurannya sendiri — sebuah gedung yang dikendalikan seorang insan tidak dikenakan bayaran seolah-olah ia sebuah dewan dagangan.
Dua baris sudah memadai. Kami sendiri yang membacanya dan kami sendiri yang menjawab — tiada barisan menunggu di belakang tingkap ini.
Ia sudah berada pada sebuah skrin di Zürich — bukan dalam barisan, bukan dalam tiket. Jurutera yang akan mengendalikannya membacanya, dan membalas sendiri.
·