ตาข่ายบริการคืออะไร
ตาข่ายบริการเป็นเลเยอร์ซอฟต์แวร์ที่จัดการการสื่อสารทั้งหมดระหว่างบริการในแอปพลิเคชัน เลเยอร์นี้ประกอบด้วยไมโครเซอร์วิสที่เป็นคอนเทนเนอร์ เมื่อแอปพลิเคชันปรับขนาดและจำนวนไมโครเซอร์วิสเพิ่มขึ้น การติดตามประสิทธิภาพของบริการจึงเป็นเรื่องท้าทาย ในการจัดการการเชื่อมต่อระหว่างบริการ ตาข่ายบริการจะมอบคุณสมบัติใหม่ เช่น การตรวจสอบ การบันทึก การติดตาม และการควบคุมปริมาณข้อมูล เป็นอิสระจากรหัสของแต่ละบริการ ซึ่งช่วยให้สามารถทำงานข้ามขอบเขตของเครือข่ายและกับระบบการจัดการบริการที่หลากหลาย
ทำไมคุณต้องมีตาข่ายบริการ
ในสถาปัตยกรรมแอปพลิเคชันสมัยใหม่ คุณสามารถสร้างแอปพลิเคชันเป็นชุดของไมโครเซอร์วิสขนาดเล็กที่ปรับใช้ได้อย่างอิสระ แต่ละทีมอาจสร้างไมโครเซอร์วิสแต่ละรายการและเลือกภาษาและเครื่องมือในการเขียนโค้ด อย่างไรก็ตาม ไมโครเซอร์วิสต้องสื่อสารเพื่อให้รหัสแอปพลิเคชันทำงานได้อย่างถูกต้อง
ประสิทธิภาพของแอปพลิเคชันขึ้นอยู่กับความเร็วและความยืดหยุ่นของการสื่อสารระหว่างบริการต่างๆ นักพัฒนาซอฟต์แวร์ต้องตรวจสอบและเพิ่มประสิทธิภาพแอปพลิเคชันในบริการต่างๆ แต่เป็นเรื่องยากที่จะมองเห็นได้เนื่องจากลักษณะการกระจายของระบบ เมื่อแอปพลิเคชันปรับขนาด ก็ยิ่งซับซ้อนมากขึ้นในการจัดการการสื่อสาร
มีตัวขับเคลื่อนหลัก 2 ตัวในการให้บริการการนำเมชไปใช้ ซึ่งเราจะให้รายละเอียดต่อไป
อ่านบทความเกี่ยวกับไมโครเซอร์วิส »
ข้อมูลการสังเกตระดับบริการ
เมื่อมีการปรับใช้เวิร์กโหลดและบริการมากขึ้น นักพัฒนาพบว่าเป็นเรื่องยากที่จะเข้าใจว่าทุกอย่างทำงานร่วมกันอย่างไร ตัวอย่างเช่น ทีมบริการต้องการทราบว่าการอ้างอิงดาวน์สตรีมและอัปสตรีมเป็นอย่างไร พวกเขาต้องการการมองเห็นที่มากขึ้นว่าบริการและเวิร์กโหลดสื่อสารกันอย่างไรที่ชั้นแอปพลิเคชัน
การควบคุมระดับการบริการ
ผู้ดูแลระบบต้องการควบคุมบริการที่คุยกันและการกระทำที่ทำ พวกเขาต้องการการควบคุมและการกำกับดูแลอย่างละเอียดเกี่ยวกับพฤติกรรม นโยบาย และการโต้ตอบของบริการภายในสถาปัตยกรรมไมโครเซอร์วิส การบังคับใช้นโยบายความปลอดภัยเป็นสิ่งจำเป็นสำหรับการปฏิบัติตามกฎระเบียบ
ประโยชน์ของตาข่ายบริการมีอะไรบ้าง
ตาข่ายบริการให้เลเยอร์โครงสร้างพื้นฐานที่เป็นส่วนกลางและเฉพาะสำหรับจัดการความซับซ้อนของการสื่อสารบริการต่อบริการภายในแอปพลิเคชันแบบกระจาย ต่อไปเราจะกล่าวถึงประโยชน์หลายอย่างของตาข่ายบริการ
การค้นหาบริการ
ตาข่ายบริการช่วยให้สำรวจบริการได้โดยอัตโนมัติ ซึ่งจะช่วยลดภาระการดำเนินงานของการจัดการตำแหน่งข้อมูลบริการ โดยใช้การลงทะเบียนบริการที่ค้นพบและติดตามบริการทั้งหมดภายในตาข่ายแบบไดนามิก บริการสามารถค้นหาและสื่อสารกต่อกันได้อย่างราบรื่น โดยไม่คำนึงถึงสถานที่ตั้งหรือโครงสร้างพื้นฐาน คุณสามารถปรับขนาดได้อย่างรวดเร็วโดยการปรับใช้บริการใหม่ตามที่ต้องการ
การปรับสมดุลโหลด
ตาข่ายบริการใช้อัลกอริทึมที่หลากหลาย เช่น ราวน์โรบิน การเชื่อมต่อน้อยที่สุด หรือโหลดบาลานซ์แบบถ่วงน้ำหนัก เพื่อกระจายคำขอผ่านอินสแตนซ์บริการหลายๆ อย่างชาญฉลาด โหลดบาลานซ์ช่วยเพิ่มการใช้ทรัพยากรและช่วยให้มั่นใจได้ถึงความพร้อมใช้งานและความสามารถในการปรับขนาดที่สูง คุณสามารถเพิ่มประสิทธิภาพการทำงานและป้องกันปัญหาคอขวดในเครือข่ายการสื่อสาร
การจัดการทราฟิก
ตาข่ายบริการมีคุณสมบัติการจัดการทราฟิกขั้นสูง ซึ่งให้การควบคุมอย่างละเอียดมากกว่าการกำหนดเส้นทางคำขอและพฤติกรรมทราฟิก นี่คือตัวอย่างบางส่วน
การแยกทราฟิก
คุณสามารถแบ่งการรับส่งข้อมูลขาเข้าระหว่างเวอร์ชันบริการหรือการกำหนดค่าที่แตกต่างกัน ตาข่ายชี้นำทราฟิกบางส่วนไปยังเวอร์ชันที่ปรับปรุงแล้ว ซึ่งจะช่วยให้มีการควบคุมและเปิดตัวการแก้ไข ซึ่งจะให้การเปลี่ยนแปลงที่ราบรื่นและลดผลกระทบของการเปลี่ยนแปลง
การทำซ้ำคำร้องขอ
คุณสามารถทำซ้ำการรับส่งข้อมูลไปยังบริการทดสอบหรือการตรวจสอบเพื่อวิเคราะห์โดยไม่ส่งผลกระทบต่อขั้นตอนการร้องขอหลักได้ เมื่อคุณทำซ้ำคำร้องขอ คุณจะได้รับข้อมูลเชิงลึกเกี่ยวกับวิธีการบริการจัดการคำขอโดยเฉพาะอย่างยิ่งโดยไม่มีผลต่อทราฟิกของผลลัพธ์
การนำ Canary ไปใช้จริง
คุณสามารถนำเซตย่อยของผู้ใช้หรือการเข้าชมไปยังเวอร์ชันบริการใหม่ได้ในขณะที่ผู้ใช้ส่วนใหญ่ยังคงใช้เวอร์ชันเสถียรที่มีอยู่เดิม ด้วยการเข้าถึงที่จำกัด คุณสามารถทดลองกับพฤติกรรมและประสิทธิภาพของเวอร์ชันใหม่ในสภาพแวดล้อมจริงได้
การรักษาความปลอดภัย
ตาข่ายบริการมีคุณสมบัติการสื่อสารที่ปลอดภัย เช่น การเข้ารหัส TLS (MTL) ที่ตรงกัน การตรวจสอบสิทธิ์ และการให้อนุญาต TLS ที่ตรงกันช่วยตรวจสอบข้อมูลประจำตัวในการสื่อสารแบบบริการต่อบริการ ช่วยให้มั่นใจในความลับและความสมบูรณ์ของข้อมูลโดยการเข้ารหัสทราฟิก คุณยังสามารถบใช้นโยบายการให้สิทธิ์เพื่อควบคุมว่าบริการใดเข้าถึงตำแหน่งข้อมูลเฉพาะหรือดำเนินการเฉพาะได้
การตรวจสอบ
ตาข่ายบริการมีคุณสมบัติการตรวจสอบและการสังเกตการณ์ที่ครอบคลุมเพื่อรับข้อมูลเชิงลึกเกี่ยวกับสุขภาพ ประสิทธิภาพ และพฤติกรรมของบริการของคุณ การตรวจสอบยังรองรับการแก้ไขปัญหาและเพิ่มประสิทธิภาพการทำงาน นี่คือตัวอย่างของคุณสมบัติการตรวจสอบที่คุณสามารถใช้ได้:
- รวบรวมเมตริก เช่น เวลาแฝง อัตราความผิดพลาด และการใช้ทรัพยากรเพื่อวิเคราะห์ประสิทธิภาพโดยรวมของระบบ
- ดำเนินการสืบค้นกลับแบบกระจายเพื่อดูเส้นทางที่สมบูรณ์ของคำขอและการกำหนดเวลาในหลายบริการ
- บันทึกเหตุการณ์บริการในบันทึกสำหรับการตรวจสอบ การดีบัก และการปฏิบัติตามข้อกำหนด
ตาข่ายบริการทำงานอย่างไร
ตาข่ายบริการจะลบตรรกะที่ควบคุมการสื่อสารระหว่างบริการกับบริการออกจากบริการแต่ละรายการและการสื่อสารเชิงนามธรรมไปยังชั้นโครงสร้างพื้นฐานของตัวเอง ใช้พรอกซีเครือข่ายหลายตัวเพื่อกำหนดเส้นทางและติดตามการสื่อสารระหว่างบริการต่างๆ
พร็อกซีทำหน้าที่เป็นเกตเวย์ตัวกลางระหว่างเครือข่ายขององค์กรและไมโครเซอร์วิส ทราฟิกทั้งหมดไปและกลับจากบริการจะถูกส่งผ่านพร็อกซีเซิร์ฟเวอร์ บางครั้งพร็อกซี่แต่ส่วนจะถูกเรียกว่าไซด์คาร์ เนื่องจากทำงานแยกกันแต่อยู่ถัดจากแต่ละบริการ เมื่อนำมารวมกัน พร็อกซีจะก่อตัวเป็นชั้นตาข่ายบริการ
มีสององค์ประกอบหลักในสถาปัตยกรรมตาข่ายบริการ ได้แก่ส่วนการควบคุมและส่วนข้อมูล
ส่วนข้อมูล
ส่วนข้อมูลคือองค์ประกอบการจัดการข้อมูลของตาข่ายบริการ ประกอบด้วยพร็อกซีไซด์คาร์ทั้งหมดและฟังก์ชันต่างๆ เมื่อบริการต้องการสื่อสารกับบริการอื่น พร็อกซีไซด์คาร์จะดำเนินการต่อไปนี้:
- ไซด์คาร์จะส่งคำขอ
- สรุปคำขอในการเชื่อมต่อเครือข่ายแยกต่างหาก
- สร้างช่องสัญญาณที่ปลอดภัยและเข้ารหัสระหว่างผู้รับพร็อกซี่ต้นทางและปลายทาง
พร็อกซีตัวช่วยจัดการข้อความระดับต่ำระหว่างบริการต่างๆ และยังใช้คุณสมบัติต่างๆ เช่น การตัดวงจรและการลองส่งคำขอใหม่ เพื่อเพิ่มความยืดหยุ่นและป้องกันการลดประสิทธิภาพการบริการ ฟังก์ชันการทำงานของเครือข่ายบริการ เช่น การทำโหลดบาลานซ์ การค้นหาบริการ และการกำหนดเส้นทางการรับส่งข้อมูล ถูกนำมาใช้ในส่วนข้อมูล
ส่วนการควบคุม
ส่วนการควบคุมทำหน้าที่เป็นการจัดการส่วนกลางและชั้นการกำหนดค่าของตาข่ายบริการ
ด้วยส่วนการควบคุม ผู้ดูแลระบบสามารถกำหนดและกำหนดค่าบริการภายในตาข่ายได้ ตัวอย่างเช่น สามารถระบุพารามิเตอร์ เช่น ตำแหน่งข้อมูล กฎการกำหนดเส้นทาง นโยบายการจัดสรรภาระงาน และการตั้งค่าความปลอดภัย เมื่อกำหนดค่าแล้ว ส่วนการควบคุมจะกระจายข้อมูลที่จำเป็นไปยังส่วนข้อมูลของตาข่ายบริการ
พร็อกซีใช้ข้อมูลการกำหนดค่าเพื่อตัดสินใจว่าจะจัดการกับคำขอที่เข้ามาอย่างไร นอกจากนี้ยังสามารถรับการเปลี่ยนแปลงการกำหนดค่าและปรับพฤติกรรมได้แบบไดนามิก คุณสามารถทำการเปลี่ยนแปลงแบบเรียลไทม์กับการกำหนดค่าตาข่ายบริการโดยไม่ต้องรีสตาร์ทหรือหยุดบริการ
การใช้งานตาข่ายบริการโดยทั่วไปจะมีความสามารถต่อไปนี้ในส่วนการควบคุม:
- การลงทะเบียนบริการที่ติดตามบริการทั้งหมดภายในตาข่าย
- การค้นหาบริการใหม่โดยอัตโนมัติและการลบบริการที่ไม่ได้ใช้งาน
- การรวบรวมและการรวมข้อมูลการวัดและส่งข้อมูลทางไกล เช่น เมตริก บันทึก และข้อมูลการติดตามแบบกระจาย
Istio คืออะไร
Istio เป็นโครงการตาข่ายบริการโอเพนซอร์สที่ออกแบบมาเพื่อทำงานกับ Kubernetes เป็นหลัก ตอบ: Kubernetes คือระบบการจัดประสานคอนเทนเนอร์แบบโอเพนซอร์สที่ใช้เพื่อปรับใช้และควบคุมระบบแอปพลิเคชันที่มีคอนเทนเนอร์ในวงกว้าง
ส่วนการควบคุมของ Istio ทำงานเป็นเวิร์กโหลดของ Kubernetes เอง โดยจะใช้พ็อด Kubernetes หรือชุดคอนเทนเนอร์แบบคู่แน่นที่ใช้ที่อยู่ IP หนึ่งซึ่งเป็นพื้นฐานสำหรับการออกแบบพร็อกซีไซด์คาร์
ชั้นพร็อกซีทั้ง 7 ของ Istioทำงานเป็นคอนเทนเนอร์อื่นในบริบทเครือข่ายเดียวกันเป็นบริการหลัก จากตำแหน่งนั้น มันสามารถสกัดกั้น ตรวจสอบ และจัดทราฟิกของเครือข่ายทั้งหมดที่มุ่งหน้าผ่านพ็อดได้ แต่คอนเทนเนอร์หลักไม่จำเป็นต้องเปลี่ยนแปลงหรือแม้กระทั่งรู้ว่าเกิดสิ่งนี้ขึ้น
อะไรคือความท้าทายของการใช้งานตาข่ายบริการโอเพนซอรส์
นี่คือปัญหาทั่วไปของตาข่ายบริการที่เกี่ยวข้องกับแพลตฟอร์มโอเพนซอร์ส เช่น Istio, Linkerd และ Consul
ความซับซ้อน
ตาข่ายบริการจะให้ส่วนประกอบโครงสร้างพื้นฐาน ข้อกำหนดการกำหนดค่า และข้อควรพิจารณาในการนำไปใช้จริง โดยมันจะมีเส้นโค้งการเรียนรู้ที่สูงชัน ซึ่งจะต้องมีนักพัฒนาและผู้ประกอบการที่มีความเชี่ยวชาญในการใช้การดำเนินงานตาข่ายบริการที่เฉพาะเจาะจง ต้องใช้เวลาและทรัพยากรในการฝึกอบรมทีม องค์กรต้องให้แน่ใจว่าทีมงานมีความรู้ที่จำเป็นที่จะเข้าใจความซับซ้อนของสถาปัตยกรรมตาข่ายบริการและกำหนดค่าได้อย่างมีประสิทธิภาพ
ค่าใช้จ่ายในการดำเนินงาน
ตาข่ายบริการมีค่าใช้จ่ายเพิ่มเติมในการปรับใช้ จัดการ และตรวจสอบพร็อกซี่ส่วนข้อมูลและองค์ประกอบส่วนการควบคุม ตัวอย่างเช่น คุณต้องดำเนินการต่อไปนี้:
- ตรวจสอบให้มั่นใจได้ถึงความพร้อมใช้งานและความสามารถในการปรับขนาดของโครงสร้างพื้นฐานตาข่ายบริการ
- ตรวจสอบสภาพและประสิทธิภาพพร็อกซี่ของคุณ
- จัดการการอัปเกรดและปัญหาความเข้ากันได้
จำเป็นต้องออกแบบและกำหนดค่าตาข่ายบริการอย่างพิถีพิถันเพื่อลดผลกระทบต่อประสิทธิภาพการทำงานของระบบโดยรวม
ความท้าทายในการผสานการทำงาน
ตาข่ายบริการต้องบูรณาการอย่างลงตัวกับโครงสร้างพื้นฐานที่มีอยู่เพื่อดำเนินการฟังก์ชั่นที่จำเป็น ซึ่งรวมถึง แพลตฟอร์มการควบคุมระบบคอนเทนเนอร์ โซลูชันระบบเครือข่าย และเครื่องมืออื่นๆ ในสแต็คเทคโนโลยี
การรับประกันความเข้ากันได้และการผสานการทำงานเข้ากับส่วนประกอบอื่นๆ ในสภาพแวดล้อมที่ซับซ้อนและหลากหลายอาจเป็นเรื่องที่ท้าทายมาก การวางแผนอย่างต่อเนื่องและการทดสอบจะต้องเปลี่ยน API รูปแบบการกำหนดค่า และการอ้างอิง และเช่นเดียวกันหากคุณจำเป็นต้องอัปเกรดเป็นเวอร์ชันใหม่ทุกที่ในสแต็ค
AWS สามารถรองรับความต้องการตาข่ายบริการของคุณได้อย่างไร
AWS App Mesh เป็นบริการที่มีการจัดการอย่างเต็มที่และให้ตาข่ายบริการจาก Amazon Web Service (AWS) App Mesh ทำให้การตรวจสอบการควบคุมและการแก้ปัญหาการสื่อสารระหว่างบริการเป็นไปได้โดยง่าย
App Mesh ใช้ Envoy ซึ่งเป็นพร็อกซีตาข่ายบริการโอเพนซอร์สที่ปรับใช้ควบคู่ไปกับคอนเทนเนอร์ไมโครเซอร์วิสของคุณ คุณสามารถใช้กับคอนเทนเนอร์ไมโครเซอร์วิสที่จัดการโดย Amazon Elastic Container Service (Amazon ECS), Amazon Elastic Kubernetes Service (Amazon EKS), AWS Fargate และ Kubernetes on AWS ได้ นอกจากนี้คุณยังสามารถใช้กับบริการใน Amazon Elastic Compute Cloud (Amazon EC2) ได้ด้วย
เริ่มต้นใช้งานตาข่ายความปลอดภัยบน AWS ด้วยการสร้างบัญชีวันนี้