Antipattern: จัดการทรัพยากร Edge โดยไม่ใช้การจัดการการควบคุมแหล่งที่มา

คุณกําลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X
info

Apigee Edge มีทรัพยากรหลายประเภทที่แต่ละประเภทมีวัตถุประสงค์แตกต่างกัน ทรัพยากรบางอย่างสามารถกําหนดค่าได้ (เช่น สร้าง อัปเดต และ/หรือลบ) ผ่าน UI ของ Edge, API การจัดการ หรือเครื่องมือที่ใช้ API การจัดการเท่านั้น และผู้ใช้ที่มีบทบาทและสิทธิ์ที่จําเป็น ตัวอย่างเช่น มีเพียงผู้ดูแลระบบองค์กรที่อยู่ในองค์กรหนึ่งๆ เท่านั้นที่กำหนดค่าทรัพยากรเหล่านี้ได้ ซึ่งหมายความว่าผู้ใช้ปลายทางไม่สามารถกำหนดค่าทรัพยากรเหล่านี้ผ่านพอร์ทัลนักพัฒนาแอปหรือวิธีอื่นๆ ได้ แหล่งข้อมูลเหล่านี้ได้แก่

  • พร็อกซี API
  • โฟลว์ที่แชร์
  • ผลิตภัณฑ์ API
  • แคช
  • KVM
  • คีย์สโตร์และทรัสต์สโตร์
  • โฮสต์เสมือน
  • เซิร์ฟเวอร์เป้าหมาย
  • ไฟล์ทรัพยากร

แม้ว่าทรัพยากรเหล่านี้จะมีการเข้าถึงแบบจํากัด แต่หากมีการแก้ไขทรัพยากรดังกล่าว แม้ว่าจะเป็นผู้ใช้ที่ได้รับอนุญาตก็ตาม ระบบจะเขียนทับข้อมูลเก่าด้วยข้อมูลใหม่ เนื่องจากทรัพยากรเหล่านี้จัดเก็บไว้ใน Apigee Edge ตามสถานะปัจจุบันเท่านั้น ข้อยกเว้นหลักของกฎนี้ ได้แก่ พร็อกซี API และโฟลว์ที่แชร์

พร็อกซี API และโฟลว์ที่แชร์ภายใต้การควบคุมการแก้ไข

ระบบจะจัดการพร็อกซี API และโฟลว์ที่แชร์ ซึ่งก็คือสร้าง อัปเดต และทำให้ใช้งานได้ผ่านการแก้ไข การแก้ไขจะได้รับการขึ้นหมายเลขตามลำดับ ซึ่งช่วยให้คุณเพิ่มการเปลี่ยนแปลงใหม่และบันทึกเป็นการแก้ไขใหม่ หรือเปลี่ยนกลับการเปลี่ยนแปลงได้โดยการติดตั้งใช้งานพร็อกซี API/โฟลว์ที่แชร์เวอร์ชันก่อนหน้า ในแต่ละช่วงเวลาจะมีพร็อกซี API/โฟลว์ที่แชร์เวอร์ชันเดียวที่ใช้งานได้ในสภาพแวดล้อม เว้นแต่ว่าเวอร์ชันดังกล่าวจะมีเส้นทางฐานอื่น

แม้ว่าพร็อกซี API และโฟลว์ที่แชร์จะจัดการผ่านการแก้ไข แต่หากมีการแก้ไขการแก้ไขที่มีอยู่ คุณจะย้อนกลับไม่ได้เนื่องจากระบบจะเขียนทับการเปลี่ยนแปลงเก่า

การตรวจสอบและประวัติ

Apigee Edge มีฟีเจอร์การตรวจสอบและประวัติ API, ผลิตภัณฑ์ และองค์กรที่เป็นประโยชน์ในการแก้ปัญหาต่างๆ ฟีเจอร์เหล่านี้ช่วยให้คุณดูข้อมูลต่างๆ ได้ เช่น ผู้ที่ดำเนินการบางอย่าง (สร้าง อ่าน อัปเดต ลบ ติดตั้งใช้งาน และยกเลิกการติดตั้งใช้งาน) และเวลาที่ดำเนินการกับทรัพยากร Edge อย่างไรก็ตาม หากมีการดำเนินการอัปเดตหรือการลบในทรัพยากร Edge การตรวจสอบจะไม่สามารถแสดงข้อมูลเก่าให้คุณได้

รูปแบบที่ไม่ถูกต้อง

การจัดการทรัพยากร Edge (ที่ระบุไว้ข้างต้น) โดยตรงผ่าน UI ของ Edge หรือ API การจัดการโดยไม่ต้องใช้ระบบควบคุมแหล่งที่มา

มีข้อเข้าใจผิดว่า Apigee Edge จะกู้คืนทรัพยากรกลับสู่สถานะก่อนหน้าได้หลังจากการแก้ไขหรือการลบ อย่างไรก็ตาม Edge Cloud จะไม่คืนค่าทรัพยากรกลับสู่สถานะก่อนหน้า ดังนั้น ผู้ใช้มีหน้าที่รับผิดชอบในการจัดการข้อมูลทั้งหมดที่เกี่ยวข้องกับทรัพยากร Edge ผ่านการจัดการระบบควบคุมแหล่งที่มา เพื่อให้กู้คืนข้อมูลเก่าได้อย่างรวดเร็วในกรณีที่มีการลบโดยไม่ตั้งใจหรือในกรณีที่ต้องเปลี่ยนกลับการเปลี่ยนแปลง ซึ่งสำคัญอย่างยิ่งสำหรับสภาพแวดล้อมเวอร์ชันที่ใช้งานจริงที่ต้องใช้ข้อมูลนี้สำหรับการเข้าชมรันไทม์

เราขออธิบายเรื่องนี้ด้วยตัวอย่าง 2-3 ตัวอย่างและผลกระทบที่อาจเกิดขึ้นหากข้อมูลไม่ได้รับการจัดการผ่านระบบควบคุมแหล่งที่มา และมีการแก้ไข/ลบโดยเจตนาหรือไม่เจตนา

ตัวอย่างที่ 1: การลบหรือแก้ไขพร็อกซี API

เมื่อลบพร็อกซี API หรือมีการทําการเปลี่ยนแปลงในเวอร์ชันที่มีอยู่ คุณจะกู้คืนโค้ดก่อนหน้าไม่ได้ หากพร็อกซี API มีโค้ด Java, JavaScript, Node.js หรือ Python ที่ไม่ได้จัดการในระบบการจัดการระบบควบคุมแหล่งที่มา (SCM) ภายนอก Apigee คุณอาจสูญเสียงานพัฒนาและแรงพยายามไปเป็นจำนวนมาก

ตัวอย่างที่ 2: การกําหนดพร็อกซี API โดยใช้โฮสต์เสมือนที่เฉพาะเจาะจง

ใบรับรองในโฮสต์เสมือนกำลังจะหมดอายุและโฮสต์เสมือนนั้นต้องได้รับการอัปเดต การระบุพร็อกซี API ที่ใช้โฮสต์เสมือนนั้นเพื่อการทดสอบอาจทำได้ยากหากมีพร็อกซี API จำนวนมาก หากจัดการพร็อกซี API ในระบบ SCM ภายนอก Apigee การค้นหาที่เก็บก็เป็นเรื่องง่าย

ตัวอย่างที่ 3: การลบคีย์สโตร์/ทรัสต์สโตร์

หากมีการลบคีย์สโตร์/คีย์ทรัสต์ที่ใช้โดยการกำหนดค่าโฮสต์เสมือนหรือเซิร์ฟเวอร์เป้าหมาย คุณจะกู้คืนข้อมูลดังกล่าวไม่ได้ เว้นแต่จะมีการจัดเก็บรายละเอียดการกำหนดค่าของคีย์สโตร์/คีย์ทรัสต์ รวมถึงใบรับรองและ/หรือคีย์ส่วนตัวไว้ในระบบควบคุมแหล่งที่มา

ผลกระทบ

  • หากมีการลบทรัพยากร Edge ใดก็ตาม คุณจะกู้คืนทรัพยากรและเนื้อหาจาก Apigee Edge ไม่ได้
  • คำขอ API อาจไม่สำเร็จเนื่องจากข้อผิดพลาดที่ไม่คาดคิด ซึ่งส่งผลให้เกิดข้อขัดข้องจนกว่าระบบจะกู้คืนทรัพยากรกลับสู่สถานะก่อนหน้า
  • การค้นหาความสัมพันธ์ระหว่างพร็อกซี API กับทรัพยากรอื่นๆ ใน Apigee Edge เป็นเรื่องยาก

แนวทางปฏิบัติแนะนำ

  • ใช้ SCM มาตรฐานร่วมกับไปป์ไลน์การรวมอย่างต่อเนื่องและการติดตั้งใช้งานอย่างต่อเนื่อง (CICD) เพื่อจัดการพร็อกซี API และโฟลว์ที่แชร์
  • ใช้ SCM มาตรฐานเพื่อจัดการทรัพยากรอื่นๆ ของ Edge ซึ่งรวมถึงผลิตภัณฑ์ API, แคช, KVM, เซิร์ฟเวอร์เป้าหมาย, โฮสต์เสมือน และที่เก็บคีย์
    • หากมีทรัพยากร Edge อยู่แล้ว ให้ใช้ Management API เพื่อรับรายละเอียดการกําหนดค่าเป็นเพย์โหลด JSON/XML และจัดเก็บไว้ในการจัดการระบบควบคุมแหล่งที่มา
    • จัดการการอัปเดตใหม่ของทรัพยากรเหล่านี้ในการจัดการระบบควบคุมแหล่งที่มา
    • หากจำเป็นต้องสร้างทรัพยากร Edge ใหม่หรืออัปเดตทรัพยากร Edge ที่มีอยู่ ให้ใช้เพย์โหลด JSON/XML ที่เหมาะสมซึ่งจัดเก็บไว้ในการจัดการระบบควบคุมแหล่งที่มา แล้วอัปเดตการกำหนดค่าใน Edge โดยใช้ Management API

* คุณไม่สามารถส่งออก KVM ที่เข้ารหัสเป็นข้อความธรรมดาจาก API ผู้ใช้มีหน้าที่รับผิดชอบในการบันทึกค่าที่ใส่ไว้ใน KVM ที่เข้ารหัส

อ่านเพิ่มเติม