
Kubernetes Service Mesh

Istio คือ Service Mesh แบบโอเพนซอร์สที่มอบเลเยอร์เครือข่ายที่ตั้งโปรแกรมได้และรับรู้ถึงแอปพลิเคชันสำหรับไมโครเซอร์วิส โดยจะแยกงานด้านเครือข่ายที่ซับซ้อน เช่น การกำหนดเส้นทางทราฟฟิก การทำ Load Balancing และการเข้ารหัส mTLS ออกจากโค้ดของแอปพลิเคชัน ต่างจาก Service Mesh แบบดั้งเดิมที่พึ่งพา Sidecar Proxy อย่างเคร่งครัด สถาปัตยกรรม 'Ambient Mesh' ที่เป็นเอกลักษณ์ของ Istio ช่วยให้สามารถปรับใช้แบบไร้ Sidecar ได้ ซึ่งช่วยลดภาระด้านทรัพยากรและความซับซ้อนในการดำเนินงานได้อย่างมาก โดยใช้ Envoy Proxy สำหรับการจัดการทราฟฟิก Layer 7 และ Zero-trust tunnel สำหรับความปลอดภัย Layer 4 ทำให้เป็นมาตรฐานอุตสาหกรรมสำหรับการรักษาความปลอดภัย การสังเกตการณ์ และการจัดการสภาพแวดล้อม Kubernetes แบบ Cloud-native ขนาดใหญ่
โหมด Ambient ของ Istio ช่วยลดความจำเป็นในการใช้ Sidecar proxy ในทุก Pod โดยใช้ Proxy ระดับโหนดร่วมกัน (ztunnel) สำหรับทราฟฟิก Layer 4 ซึ่งช่วยลดการใช้หน่วยความจำและ CPU ได้สูงสุดถึง 50% ในคลัสเตอร์ขนาดใหญ่ ขจัดความจำเป็นในการรีสตาร์ท Pod ของแอปพลิเคชันเมื่ออัปเดต Mesh และลดความซับซ้อนของวงจรการดำเนินงานของ Service Mesh ลงอย่างมาก
มอบการทำ Mutual TLS (mTLS) อัตโนมัติสำหรับการสื่อสารระหว่างเซอร์วิสทั้งหมด ทำให้มั่นใจได้ว่าทราฟฟิกจะถูกเข้ารหัสและตรวจสอบสิทธิ์โดยค่าเริ่มต้น โดยจะบังคับใช้นโยบายการควบคุมการเข้าถึงแบบละเอียดตามตัวตนของเซอร์วิสแทนที่ IP address ซึ่งช่วยลดความเสี่ยงจากการเคลื่อนที่ในแนวราบ (Lateral movement) ภายในคลัสเตอร์ได้อย่างมีประสิทธิภาพ และรับประกันการปฏิบัติตามมาตรฐานความปลอดภัยที่เข้มงวด เช่น PCI-DSS หรือ HIPAA
เปิดใช้งานรูปแบบการควบคุมทราฟฟิกที่ซับซ้อน รวมถึง Canary releases, A/B testing และ Blue-green deployments โดยการปรับน้ำหนักทราฟฟิกในระดับคำขอ นักพัฒนาสามารถเปลี่ยนทราฟฟิก 5% ไปยังเวอร์ชันใหม่เพื่อตรวจสอบความเสถียรก่อนการเปิดตัวเต็มรูปแบบ ในขณะที่ Circuit breakers ในตัวจะช่วยป้องกันความล้มเหลวแบบลูกโซ่โดยการแยกอินสแตนซ์ของเซอร์วิสที่ไม่สมบูรณ์ออกโดยอัตโนมัติ
สร้าง Telemetry โดยละเอียดโดยอัตโนมัติ รวมถึงสัญญาณหลัก (Latency, Traffic, Errors และ Saturation) สำหรับทุกเซอร์วิส พร้อมรองรับการทำ Distributed tracing ผ่าน Zipkin หรือ Jaeger ช่วยให้ SRE สามารถเห็นภาพการไหลของคำขอผ่านสถาปัตยกรรมไมโครเซอร์วิสที่ซับซ้อน และระบุจุดคอขวดหรือความล้มเหลวได้ในระดับมิลลิวินาทีโดยไม่ต้องแก้ไขซอร์สโค้ดของแอปพลิเคชัน
รวมศูนย์การจัดการนโยบายเครือข่ายทั่วทั้งคลัสเตอร์ แทนที่จะกำหนดค่าไฟร์วอลล์แยกส่วนหรือตรรกะระดับแอปพลิเคชัน ผู้ดูแลระบบสามารถกำหนดนโยบายส่วนกลางสำหรับการจำกัดอัตรา (Rate limiting), Request headers และการตรวจสอบสิทธิ์ เพื่อให้มั่นใจถึงความปลอดภัยและพฤติกรรมเครือข่ายที่สอดคล้องกันในสภาพแวดล้อมแบบ Polyglot ที่เซอร์วิสอาจเขียนด้วยภาษาที่แตกต่างกัน
ทีม DevOps ใช้ Istio เพื่อเปลี่ยนทราฟฟิกการผลิตจำนวนเล็กน้อยไปยังไมโครเซอร์วิสเวอร์ชันใหม่ โดยการตรวจสอบอัตราข้อผิดพลาดและ Latency แบบเรียลไทม์ พวกเขาสามารถย้อนกลับ (Roll back) โดยอัตโนมัติหากเกิดปัญหา เพื่อให้มั่นใจถึงความพร้อมใช้งานสูงระหว่างการอัปเดต
องค์กรขนาดใหญ่เชื่อมต่อเซอร์วิสข้ามคลัสเตอร์ Kubernetes หลายแห่งหรือผู้ให้บริการคลาวด์ Istio สร้างเครือข่าย Overlay ที่ปลอดภัยและเป็นหนึ่งเดียว ทำให้เซอร์วิสในคลัสเตอร์ A สามารถสื่อสารกับเซอร์วิสในคลัสเตอร์ B ได้เสมือนอยู่ในเครือข่ายท้องถิ่นเดียวกัน
องค์กรต่างๆ ห่อหุ้มเซอร์วิสเดิมด้วย Istio proxy เพื่อเพิ่มความปลอดภัยสมัยใหม่ (mTLS) และการสังเกตการณ์โดยไม่ต้องแก้ไขโค้ดเดิม ทำให้สามารถรวมส่วนประกอบแบบ Monolithic รุ่นเก่าเข้ากับสถาปัตยกรรมไมโครเซอร์วิสสมัยใหม่ได้อย่างปลอดภัย
ต้องการจัดหาพื้นฐานเครือข่ายที่เป็นมาตรฐาน ปลอดภัย และสังเกตการณ์ได้สำหรับนักพัฒนา Istio ช่วยให้พวกเขาสามารถบังคับใช้นโยบายความปลอดภัยและความน่าเชื่อถือได้ทั่วทั้งองค์กร
ต้องการการมองเห็นประสิทธิภาพของเซอร์วิสเชิงลึกและการจัดการทราฟฟิกอัตโนมัติเพื่อจัดการเหตุการณ์ ทำ Canary rollouts และรักษาความพร้อมใช้งานสูงในระบบกระจายตัวที่ซับซ้อน
มุ่งเน้นไปที่การใช้เครือข่ายแบบ Zero-trust โดย Istio มอบการเข้ารหัส การตรวจสอบสิทธิ์ และการควบคุมการอนุญาตที่จำเป็นเพื่อรักษาความปลอดภัยในการสื่อสารของเซอร์วิสในสภาพแวดล้อมที่มีการควบคุมสูง
โครงการโอเพนซอร์สภายใต้ใบอนุญาต Apache 2.0 ใช้งานและโฮสต์เองได้ฟรี มีเวอร์ชัน Managed ให้บริการผ่านผู้ให้บริการคลาวด์ เช่น Google, AWS และ Azure