ดูแลทุกบริการให้ทำงานต่อเนื่อง
CKN Engine คือตัวดูแลการรันของทุกบริการในระบบ ตั้งแต่ start, health check, deploy ไปจนถึง rollback และ log โดยทำงานตามสถานะที่คุณประกาศไว้ ไม่ต้องสั่งทีละบริการด้วยมือ ผลคือการปล่อยเวอร์ชันใหม่มีขั้นตอนที่ตรวจสอบได้ และเห็นปัญหาก่อนลูกค้าเห็น
ทุกบริการพร้อมใช้งานหรือไม่
จำนวนที่พร้อม ที่ทำงานอยู่ ที่เบี่ยงจากที่ประกาศ และ alert ที่ยังไม่รับทราบ
ใครใช้ทรัพยากรเท่าไร
CPU และ memory ของแต่ละบริการ เลือกดูย้อนหลังได้ตั้งแต่ 15 นาทีถึง 24 ชั่วโมง


สิ่งที่ CKN Engine ทำได้
ประกาศสถานะที่ต้องการ
คุณบอกว่าอยากให้อะไรรันอยู่ แล้ว Engine ทำให้เป็นจริงและรักษาไว้ ไม่ต้องเขียน script ต่อบริการ
- environment, node, application, release และ deployment พร้อมประวัติ revision
- ค้นหาบริการจากโฟลเดอร์อัตโนมัติ แล้วประกาศให้ครั้งเดียว
- ดู plan ล่วงหน้าก่อนลงมือจริง
- ประกาศ dependency ระหว่างบริการ
ดูแลให้ทำงานต่อเนื่อง
Engine เทียบสถานะจริงกับสถานะที่ประกาศอยู่เสมอ แล้วแก้ส่วนที่ต่างกัน บริการจะถือว่าพร้อมใช้งานก็ต่อเมื่อผ่าน health check แล้วเท่านั้น
- reconciliation loop ทำงานเป็นรอบอย่างต่อเนื่อง
- readiness gating และเริ่มบริการตามลำดับ dependency
- restart แบบมี backoff และตรวจจับ crash loop
- บริการยังรันต่อเมื่อ Engine restart แล้วถูกรับกลับมาดูแลต่อ
ปล่อยเวอร์ชันอย่างปลอดภัย
ก่อน deploy Engine ตรวจสิ่งที่อาจพัง และเมื่อมีปัญหาก็ย้อนกลับได้ในคำสั่งเดียว
- rollout พร้อม drain ให้งานที่ค้างอยู่จบก่อนหยุด process
- fleet rollout เป็นชุดตามลำดับ dependency และ rollback
- contract gate เทียบ API ของเวอร์ชันเก่ากับใหม่ และชี้ว่าการเปลี่ยนแปลงใดทำให้ผู้เรียกเดิมพัง
- รัน database migration ก่อน deploy ได้ในขั้นเดียวกัน และกัน release ที่ขาด environment variable ที่จำเป็น
มองเห็นทุกอย่างที่เกิดขึ้น
สถานะ, log, metrics และ alert อยู่ที่เดียว ค้นหาย้อนหลังได้ และดูแบบสดผ่านหน้า Console
- สถานะ, replica, dependency graph และ drift
- เก็บและค้นหา log รวมถึงตาม correlation id ข้ามทุกบริการ โดยปิดบัง secret
- metrics รายฟีเจอร์ (error rate, latency แบบช่วง) ย้อนหลังได้สูงสุด 90 วัน
- alert, restart incident และ live event ผ่าน SSE
ควบคุมโดยไม่ต้อง restart
ปิดบางฟีเจอร์หรือเปิดโหมด maintenance ได้ทันทีในขณะที่บริการยังรันอยู่ เหมาะกับช่วงปิดงวดหรือแก้ปัญหาเฉพาะจุด
- runtime control ระดับ Feature และ module (off, drain, read-only)
- maintenance window และช่วง freeze
- drain และ resume ทั้ง node
- autoscale policy ต่อบริการ
สิทธิ์ ร่องรอย และการกู้คืน
Engine มีระบบผู้ควบคุมของตัวเอง จึงเริ่มทำงานได้ก่อนบริการอื่น และทุกคำสั่งมีผู้กระทำที่บันทึกไว้
- สิทธิ์ 4 ระดับ และ sign-in ผ่าน CKN Identity ได้ ส่วนการใช้ credential ฉุกเฉินถูกบันทึกไว้
- Idempotency-Key กันคำสั่งซ้ำ และ audit evidence ทุกคำสั่ง
- retention policy, backup export และ restore ของข้อมูลที่ประกาศไว้
- ให้ AI agent ควบคุมผ่าน MCP endpoint โดยใช้สิทธิ์ของผู้เรียกเอง
สร้างและทดสอบมาในระดับนี้
ตัวเลขด้านล่างนับจากโค้ด เอกสาร และชุดทดสอบของ Engine โดยตรง ไม่ใช่ผล benchmark ความเร็ว
ตัวเลขจากชุดทดสอบและ benchmark ภายในของ CKN ผลจริงขึ้นกับเครื่องและปริมาณข้อมูลของแต่ละระบบ
ธุรกิจของคุณได้อะไร
ลดความเสี่ยงตอนปล่อยเวอร์ชัน
Engine เตือนก่อนว่าการเปลี่ยนแปลงใดจะทำให้ผู้เรียกเดิมพัง ตรวจ environment variable ที่จำเป็น และย้อนกลับได้ทันที การปล่อยจึงเป็นขั้นตอนที่ทีมเห็นและตรวจสอบได้ ไม่ใช่การลุ้น
ตอบสนองเร็ว ใช้คนน้อยลง
บริการที่ล้มจะถูก restart อย่างมีลำดับ ปัญหาถูกแจ้งเป็น alert และ log ค้นได้ตาม correlation id ข้ามทุกบริการ ทีมดูแลระบบไม่ต้องเปิดเครื่องไล่ดูทีละตัว
คุมได้และตรวจสอบได้
ทุกคำสั่งมีผู้สั่ง เวลา และหลักฐานบันทึกไว้ สิทธิ์แยกเป็นอ่าน ประกาศ สั่งงาน และผู้ดูแล และ Engine รันได้แม้ Identity หรือ Integration ยังไม่พร้อม จึงไม่ติดวงจรพึ่งพากันเอง
ตัวอย่าง: ปิดบางฟีเจอร์ชั่วคราวโดยไม่ restart
ใครใช้บริการนี้
- CKN Console ใช้เป็นหน้าจอของ Engine
- บริการ business ทั้งหมดที่ Engine รัน deploy และเฝ้าดู
- CKN Identity ใช้ยืนยันตัวผู้ควบคุมเมื่อเปิด sign-in ผ่าน SSO
- CKN Integration ที่รับ event และบอกว่าการเปลี่ยน API กระทบ process ใด
POST https://engine.example.com/api/deployment/shop/control
Authorization: Bearer <operator-token>
Idempotency-Key: freeze-month-end
Content-Type: application/json
{"features": {"SHOP.ORDER.LIST": "drain"},
"modules": {"reports": "read-only"},
"reason": "month-end freeze"}
HTTP/1.1 200 OK
{"success": true, "data": {"revision": 1, "changed": true,
"changes": [{"kind": "module", "name": "reports", "from": "normal", "to": "read-only"},
{"kind": "feature", "name": "SHOP.ORDER.LIST", "from": "on", "to": "drain"}]}}
