F5 OneConnect
เพิ่มประสิทธิภาพให้กับ Web Application ด้วย F5 OneConnect
ในปัจจุบันหลายๆ หน่วยงาน เริ่มมีการใช้ Web Application มากขึ้นใน 1-2 ปีที่ผ่านมา เพราะเนื่องด้วยสถานการณ์ปัจจุบัน ที่หลายๆ หน่วยงานยินยอมให้พนักงานเข้าถึง Web Application ได้จากภายนอก หรือจากทางไกลมากขึ้น ทำให้ปริมาณการใช้งานของ Web Application ที่ให้บริการ มีสูงขึ้นกว่า 2-3 เท่าของการใช้งานที่เคยเกิดขึ้น
ปัญหาที่ตามมาคือ Web Application Server เริ่มจะไม่ไหว เพราะต้องรองรับการใช้งานที่สูงขึ้นตลอดเวลา และอาจไม่รองรับต่อปริมาณของผู้ใช้งานที่มากขึ้นไปอีก ทำให้เปิดปัญหาการใช้งานติดขัด, ระบบช้า, ไม่มีการตอบสนองจาก Web Application เลย หรือระบบล่มก็อาจจะเกิดขึ้นได้
ซึ่งปัญหาเหล่านี้อาจเกิดขึ้นได้จากหลายปัจจัย และก็สามารถแก้ไขได้หลากหลายวิธี ดังนั้นลูกค้าที่ใช้งาน F5 Networks อยู่ก็คงไม่เคยประสบปัญหาเหล่านี้ งั้นเรามาดูกันครับว่า F5 Load Traffic Manager หรือ F5 LTM ที่มีฟังก์ชันนึ่ง ที่ชื่อว่า F5 OneConnect นี้มีการทำงานอย่างไร และช่วยเหลืออะไรได้บ้าง เราจะพาผู้อ่านมาทำความเข้าใจกับการทำงานในส่วนนี้กัน
F5 OneConnect เป็นฟังก์ชันที่ช่วยเพิ่มประสิทธิภาพให้กับ Application ให้เพิ่มสูงขึ้น ด้วยการบริหารจัดการ Connection ที่เกิดขึ้นระหว่าง Client ถึง F5 และ F5 ถึง Back-end Server หรือ Pool members โดยความสามารถในการช่วยลดจำนวน Concurrent Connection ที่เกิดขึ้นบนฝั่ง Server-Side
ฟังก์ชัน OneConnect จะทำงานได้ดีกับ HTTP Keep-Alive เพื่อกำหนดจำนวน Minimize ของ TCP Connection ที่ฝั่ง Server-Side เพื่อให้พร้อมทำงานตลอดเวลา และเป็นการทำงานด้วยวิธี Reuse Connection สำหรับรองรับการใช้งานจาก Client อื่นๆ ด้วย
เราลองมาดู Flow การทำงานของ OneConnect กัน
จาก Flow ข้างบนอธิบายได้ว่า
1. Client 1 ทำการส่ง TCP 3-way handshake มาที่ F5 LTM
2. Client 1 ทำการส่ง HTTP Request ครั้งที่ 1 มาทำ F5 LTM
3. ในครั้งแรก F5 LTM จะรับการ Request จาก Client 1 แล้วเลือก Server Resource ในการส่ง TCP handshake ในกรณีนี้จะส่งไปยัง Server A และส่ง HTTP Request 1 ไปยัง Server A
4. Server A ทำการส่ง HTTP Response มาที่ F5 LTM
5. F5 LTM ทำการส่ง HTTP Response ไปที่ Client 1
6. ในช่วงเวลาใกล้เคียงกัน Client 2 ส่ง TCP Handshake มาที่ F5 LTM
7. Client 2 ส่ง HTTP Request มาที่ F5 LTM
8. F5 LTM จะนำส่ง Connection ของ Client 2 ด้วยการทำ Connection Reuse โดยการเลือกงาน idel connection ที่เคยส่งให้ Server A มาทำงาน จากรูปจะเห็นว่า F5 LTM ไม่ได้ทำการ TCP Handshake ใหม่ของ Connection ที่เกิดจาก Client 2
9. Server A ทำการส่ง HTTP Response ของ Client 2 มาที่ F5 LTM หลังจากนั้น F5 LTM ก็ทำการส่ง HTTP Response กลับไปยัง Client 2
10. เมื่อ Client 1 ทำการส่ง HTTP Request ครั้งที่ 2 มาอีก
11. F5 LTM ก็จะทำกระบวนการซ้ำตาม Step ในข้อที่ 8 ต่อไป
จากรูปข้างบนก็จะเห็นได้ชัดเลยว่าการทำงานของ F5 ไม่ได้ดูซับซ้อนเลย
เพื่อทำให้ท่านผู้อ่านเห็นเข้าใจง่ายมากขึ้น คือการลดจำนวน TCP Connection ที่จะเกิดขึ้นบน Application Server จากหลายๆ ผู้ใช้งานหรือ Client ที่เข้ามาในเวลาเดียวกัน เพราะหลังจากที่ Client พยายามจะเปิด New TCP Connection มาที่ F5 LTM และ F5 LTM จะมีการใช้งาน Existing Connection (idel TCP) ที่เคยเปิดใช้งานกับ Application Server มาทำการ Connection Reuse เพื่อใช้ในการเชื่อมต่ออีกครั้ง จึงทำให้เข้าใจได้เลยว่า ไม่ว่า Client จะพยายามเปิด New TCP Connection มาที่ F5 LTM เท่าไหร่ จำนวน TCP Connection ที่ Server จะไม่สูงขึ้นตามการใช้งานของ Client
เราลองมาดูการทดสอบ Session ที่เกิดขึ้นบน F5 OneConnect กัน
ใน LAB ทดสอบมีการใช้งาน Client กับ Server โดย F5 รองรับ 2g interface (LAG)
เรามาดูผลการทดสอบกัน
Test 1: ทดสอบค่าเริ่มต้นโดยการไม่ใช้งาน OneConnect
F5 LTM ทำการ Disable OneConnect Profile บน Virtual Server
จะเห็นว่าปริมาณของ Concurrent Connections ที่เกิดขึ้นของ Client ถึง F5 และจาก F5 ถึง Server มีปริมาณที่ใกล้เคียงหรือจะบอกว่าเท่ากันเลยก็ได้
Test 2: Apply OneConnet Profile บน Virtual Server
ในการทดสอบครั้งนี้ ผู้ทดสอบได้ทำการ Enable TCP profile เพิ่มเติมคือ tcp-wan-optimized (client) and tcp-lan-optimized (server) บน Virtual Server ไว้ด้วย
และกำหนดค่า high value สำหรับ OneConnect Maximum Size และ Maximum Reuse ไว้ที่ 10,000
ผลทดสอบจะเห็นได้ว่าปริมาณของ Concurrent Connections ที่เกิดขึ้นบน Client ถึง F5 และ F5 ถึง Server มีปริมาณที่ต่างกันอย่างชัดเจน
เราจะเห็นว่าการใช้งานของฟังก์ชัน F5 ConConnect คือการช่วยลดจำนวน Concurrent Connection ที่ต้องใช้งานในช่วงที่มีปริมาณ Connection เพิ่มสูงขึ้น ไม่ให้เกิดผลกระทบกับ Server Performance ตามไปด้วย อีกทั้งยังสามารถลด Load ที่อาจจะเกิดขึ้นบน Server-side ได้ดี จนอาจทำให้ Server มีการ Response ได้ดีขึ้นอีกด้วย ถือว่าเป็นฟังก์ชันที่น่าสนใจมากอีกฟังก์ชั่นนึงของ F5
ท่านลูกค้าที่ใช้ F5 LTM อยู่แต่ยังไม่เคยลองใช้งาน หรือลูกค้าที่สนใจการกำหนดตั้งค่า สามารถอ่านเพิ่มเติมได้ที่นี่ https://support.f5.com/csp/article/K7208
คำแนะนำเพิ่มเติมสำหรับการใช้งาน OneConnect
• ในการใช้งานสำหรับ Optimize HTTP Traffic, แนะนำให้ Enable HTTP Profile บน Virtual Server ด้วยนะครับ
• เมื่อ Virtual Server มีการตั้งค่า OneConnect แล้วจะต้องกำหนดค่า Layer 7 Profile ไว้ด้วย เพื่อหลีกเลี่ยงการประมลผลที่อาจจะผิดพลาดได้ครับ
• หลีกเลี่ยงการใช้โปรไฟล์ OneConnect สำหรับการรับส่งข้อมูลที่ไม่ใช่ HTTP เพราะอาจเกิดความซับซ้อนในการใช้งานและการแก้ปัญหาที่เกิดขึ้นได้ครับ
• หลีกเลี่ยงการใช้โปรไฟล์ OneConnect สำหรับการรับส่งข้อมูลที่เข้ารหัส (Encryption Traffic) ไปยัง Destination Resource ที่เข้ารหัสด้วย โดยที่ไม่ทำการ Terminate SSL บน F5 LTM