วันนี้ได้รับ email เรื่องเกี่ยวกับ Architecture จาก InfoQ
ทำการสรุปสถาปัตยกรรมที่เปลี่ยนไปของ Istio 1.5
ซึ่งเปลี่ยนจากแนวคิดที่แบ่งเป็น component ย่อย ๆ
ใน control plane ตามแนวทาง Microservices
มาเป็น component เดียว หรือ Monolithic นั่นเอง
สิ่งที่น่าสนใจคือ เหตุผลของการเปลี่ยนแปลง
มาดูว่าเป็นอย่างไรกันบ้าง
จาก Istio 1.4 นั้น ในส่วนของ Control plane จะแยกการพัฒนาออกเป็น component ย่อย ๆ ดังนี้
แต่ใน Istio 1.5 นั้น รวมเข้าด้วยกันเป็น Istiod ดังรูป
เหตุผลของการเปลี่ยนแปลงคืออะไร ?
ทั้ง ๆ ที่ Istio นั้น ถูกสร้างขึ้นมาเพื่อ
ใช้จัดการการติดต่อสื่อสารระหว่าง service หรือ Microservices นั่นเอง
ทำให้การออกแบบช่วงเริ่มต้นแยกเป็น service หรือ component ย่อย ๆ
เพื่อจัดการในแต่ละเรื่อง
นั่นคือมีหน้าที่รับผิดชอบเรื่องเดียวไปเลย
แต่ทำไมถึงต้องเปลี่ยน ?
ด้วยการนำมารวมกันเป็น component เดียวคือ Istiod ด้วยละ
มันดูย้อนแย้งไหม
นี่คือ คำถามที่ถูกถามอย่างมาก
เหตุผลของการเปลี่ยนแปลง กลับไปที่เป้าหมายของ Istio
เป้าหมายเพื่อช่วยจัดการงานที่ยาก ๆ ให้ง่ายขึ้น
คือการติดต่อสื่อสารระหว่าง service
แต่การสร้างตัวจัดการให้ง่ายนั้นกลับไปง่าย
แถมยังมีความซับซ้อนเป็นอย่างมาก
เนื่องจาก Istio นั้นมีหลาย component ที่แยกกัน
ทำให้มี Working group ที่เยอะ แค่เห็นนี่ก็เหนื่อยเลย
แต่ข้อดีคือ แยกกันพัฒนาไปเลย
แสดงดังรูป
แต่สุดท้ายแล้วจะใช้งานต้องติดตั้ง component ต่าง ๆ ที่ต้องการใช้งานไปด้วยเสมอ
มันไม่เป็นมิตรต่อการใช้งาน
รวมทั้งการ release ต่าง ๆ ของ Istio ทำได้ยาก
เพราะว่า ต้องรอกันในหลาย ๆ component
(แสดงว่าแต่ละ component มีความสัมพันธ์กัน แล้วแยกกันไปทำไมนะ)
การจะ install และ upgrade ก็ไม่ง่ายเลย
เพราะว่าต้องทำให้ครบทุก component
หรือเมื่อเกิดปัญหา ก็ทำการ debug หรือหายากอีก
การติดต่อสื่อสารระหว่าง component ก็มี overhead อีก
จึงเกิดคำถามว่า แยกไปทำไม ?
ติดตั้งที่เดียวได้ครบเลยดีไหม
น่าจะส่งผลดีต่อ Istio มากกว่าหรือไม่
นั่นคือ ที่มาของการเปลี่ยนแปลงนั่นเอง
สิ่งที่เห็นได้ชัดจากการเปลี่ยนแปลงนี้คือ
การรู้ตัวที่รวดเร็ว และเข้าใจว่าต้องการอะไรนั่นคือ เป้าหมายหลัก
ไม่ใช่บอกว่า Microservices หรือ Monolithic นั้นผิด
มันอยู่ที่คนนำมาใช้งานมากกว่า
ว่านำมาใช้แล้วสร้างประโยชน์หรือโทษกันแน่ ( Value to Complexity )
อีกเรื่องที่น่าสนใจคือ
ถ้ารู้ว่าผลจากการตัดสินใจ
มันทำให้เรามีปัญหาแล้วก็น่าจะต้องกลับมาคิด และ ปรับปรุง
ดีกว่าทน ๆ ทำไปเหมือนเดิมนะ จริงไหม ?
แล้วคุณละ ทำไมถึงเปลี่ยน หรือ ไม่เปลี่ยน ?
Reference Websites