Offline Batch Processing เป็นเรื่องปกติที่พบในระบบขององค์กร ซึ่งแนวคิดในการออกแบบที่ดีนั้นแตกต่างกันมากจาก Online Request/Response Processing และ Streaming โดยที่งานแบบนี้จะมีการใช้กันอย่างหนักมากในระบบทางการเงิน-การบัญชี การบริหารองค์กร และการวิเคราะห์ข้อมูลออกรายงานต่างๆ ดังนั้นการทำงานแบบ Offline Batch Processing จึงเป็นรูปแบบที่พบได้ทั่วไปในระบบไอทีขององค์กร บทความนี้จึงมุ่งที่จะสรุปหลักการเบื่องต้นในการออกแบบและตรวจสอบ Offline Batch Processing

Note: รูปแบบสถาปัตยกรรมที่ใช้สำหรับหลักการเบื้องต้นเหล่านี้ เป็นรูปแบบที่ตัว Batch Process ทำงานใน Active-Standby Clustered Servers

  1. Users ที่ใช้ run ตัว batch jobs จะต้องแยกจาก users ปกติที่ใช้กับ OS และ System
  2. Users rights/priviledges จะต้องปรับให้ถูกต้องและได้เท่าที่ต้องใช้งานเท่านั้น
  3. ตรวจสอบให้แน่ใจว่า user ที่ใช้ run ตัว batch job นั้นๆ มีสิทธิ์ใน resource และ file ต่างๆ อย่างถูกต้อง
  4. Users และ configurations/settings ต่างๆ จะต้องถูกต้องตรงกันระหว่าง active node กับ failed-over/standby node จะต้องไม่มีการ lock ตัว resource ค้างระหว่างกัน
  5. เมื่อทำการ fail-over จากเครื่องหนึ่งไปยังอีกเครื่องหนึ่ง Working states/data จะต้องมีการถ่ายโอนกันอย่างถูกต้อง ภายในกรอบเวลาของข้อมูลที่ตกลงกัน
  6. ถ้าเครื่องที่ทำงาน batch ต้องทำงาน online ด้วย ให้ตรวจสอบให้แน่ใจว่า load balancer รู้และสามารถจัดการย้าย incoming requests/connections จาก clients ไปยังเครื่องที่ทำงานขึ้นมาได้ถูกต้อง
  7. ถ้ามีการใช้ heartbeat กันระหว่างเครื่อง ควรแยกวง network ของ heartbeat ออกจาก service vlan, data replication vlan, และ management vlan
  8. ถ้ามีการใช้ heartbeat กันระหว่างเครื่อง ควรมีวง network สำรองให้กับ heartbeat vlan ด้วย
  9. ระวังการที่ batch jobs ใช้ resource ใดๆของเครื่องสูงจนให้บริการงานอื่นๆไม่ได้หรือผิดพลาด
  10. ระวังการทำงานของเจ้าหน้าที่้/ระบบ supports/operations อาจขัดขวาง/รบกวนการทำงานของ batch job
  11. Batch jobs ต้องการระบบการ validate, monitoring, logging, health-checking ที่ให้ข้อมูลที่มีความหมายชัดเจนและมากพอที่จะปะติดปะต่อสถานการณ์การทำงานของระบบในแต่ละขณะได้จนสามารถจำลองทำงานซ้ำได้เสมอทุกครั้งที่ต้องการได้
  12. หน้าจอ dashboard ที่แสดงสถานะของแต่ละห่วงโซ่ในสายงานของ batch jobs เป็นสิ่งที่จำเป็นมาก
  13. สิ่งที่ใช้ติดต่อกันระหว่าง batch ทั้งหมดเป็นสิ่งชั่วคราว จะต้องตกลงและออกแบบให้ส่งและรับในช่องทาง, ไดเร็กทอรี่, ช่วงเวลา, users, port ที่ถูกต้องสอดคล้องตรงกัน ถูกที่ ถูกuser ถูกเวลา
  14. ตัวจัดการและทำการสั่งงาน batch ควรเป็น component ที่แยกจากตัวที่ run batch
  15. Fault management process ควรแยกต่างหากจากตัว batch

.