คู่มือการกำหนดค่า Drift และวิธีป้องกัน

การเลื่อนการกำหนดค่าเป็นปัญหาสำคัญสำหรับนักพัฒนา IAAC ทุกคน โพสต์นี้จะเรียนรู้เกี่ยวกับการจัดการการตั้งค่าคอนฟิก ความสำคัญ สาเหตุ และแนวทางแก้ไขที่เป็นไปได้

สารบัญ

Configuration Drift คืออะไร?

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

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

การกำหนดค่า Drift ทำงานอย่างไร

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

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

สาเหตุทั่วไปของการกำหนดค่า Drift

ขาดการสื่อสาร

บางครั้งทีมต้นน้ำล้มเหลวในการสื่อสารกับพันธมิตรปลายน้ำเกี่ยวกับการเปลี่ยนแปลงที่พวกเขาทำ ซึ่งส่งผลให้ระบบดาวน์สตรีมทั้งหมดล่ม

โปรแกรมแก้ไขด่วน

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

  ตั้งเป้าหมายคำศัพท์ขั้นต่ำเมื่อคุณเขียนเรื่องสั้นหรือนวนิยาย

การอัปเดตแพ็คเกจที่สำคัญ

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

ขาดการทำงานอัตโนมัติ

การทำงานอัตโนมัติจะไม่ลบโอกาสของการตั้งค่าแบบเลื่อนลอยออกไปโดยสิ้นเชิง มันจะลดโอกาสของมันลง

เปลี่ยนความสะดวก

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

เหตุใดการจัดการการกำหนดค่าจึงมีความสำคัญ

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

เมื่อพบการเลื่อนการตั้งค่าคอนฟิก การค้นหาสาเหตุที่แท้จริงของการเลื่อนการตั้งค่าคอนฟิกที่ทำให้ทุกอย่างเกิดขึ้นต้องใช้เวลา ซึ่งเป็นทรัพยากรที่มีค่าในกรณีฉุกเฉิน

ในการพัฒนาซอฟต์แวร์ การดริฟท์เป็นสาเหตุสำคัญของวงจรการวางจำหน่ายที่ช้า อาจทำให้งานหนักโดยไม่จำเป็นและขัดขวางประสิทธิภาพการทำงานของนักพัฒนา

ลดต้นทุน

คุณสามารถลดจำนวนโดยรวมที่ต้องการได้โดยการระบุความซ้ำซ้อนหรือการจัดสรรเกินเมื่อคุณมีภาพโดยละเอียดของโครงสร้างพื้นฐานด้านไอทีของคุณ

ผลผลิตที่สูงขึ้น

คลัสเตอร์ที่มีการกำหนดค่าที่เสถียรและเป็นที่รู้จักกันดีช่วยให้สามารถจัดการแบทช์และการสร้างโครงสร้างพื้นฐานได้ นอกจากนี้ ความต้องการในการจัดการการตั้งค่าแต่ละรายการด้วยตนเองจะลดลงโดยการจำกัดเซิร์ฟเวอร์ที่ไม่ซ้ำกัน (หรือเกล็ดหิมะ)

แก้จุดบกพร่องได้เร็วขึ้น

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

ปัญหาที่เกิดจากการกำหนดค่า Drift

ปัญหาด้านความปลอดภัย

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

เวลาหยุดทำงาน

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

หลุดจากการปฏิบัติตาม

การควบคุมความปลอดภัยที่เข้มงวดเป็นสิ่งจำเป็นสำหรับการปฏิบัติตามกฎระเบียบ เช่น ISO 27001, PCI-DSS และ HIPAA การเลื่อนการกำหนดค่าอาจทำให้คุณละเมิดข้อกำหนดหากยังไม่หยุด

ประสิทธิภาพลดลง

การกำหนดค่ามักจะอยู่ในสภาพที่เหมาะสมที่สุดเมื่ออยู่ในสถานะที่ต้องการ การปรับเปลี่ยนเฉพาะกิจสามารถขัดขวางความพยายามในการเพิ่มประสิทธิภาพเครือข่ายโดยทำให้เกิดปัญหาคอขวดและข้อขัดแย้ง

เสียเวลา

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

ข้อผิดพลาดทั่วไปที่ต้องระวังเมื่อตรวจสอบการตั้งค่า Drift

ในโลกที่สมบูรณ์แบบ เซิร์ฟเวอร์สภาพแวดล้อมทั้งหมดสำหรับนักพัฒนา (Dev/QA/Staging/Prod) จะมีการกำหนดค่าเหมือนกัน น่าเสียดายที่สิ่งต่าง ๆ ไม่ทำงานในโลก “ของจริง” ในการตั้งค่าเชิงพาณิชย์ เจ้าของแอปพลิเคชันมักจะปรับเปลี่ยนโครงสร้างพื้นฐานเมื่อมีการแนะนำความสามารถใหม่ๆ ให้กับซอฟต์แวร์

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

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

  วิธีค้นหา Google Drive อย่างรวดเร็ว

ข้อผิดพลาดทั่วไปมีการระบุไว้ด้านล่าง:

ไม่ดูแล CMDB

การรักษาฐานข้อมูลการจัดการการกำหนดค่า (CMDB) ให้เป็นปัจจุบันอยู่เสมอเป็นองค์ประกอบที่สำคัญของการจัดการการกำหนดค่า ข้อมูลเกี่ยวกับการติดตั้งฮาร์ดแวร์และซอฟต์แวร์ของเครือข่ายสามารถตรวจสอบได้ในที่เดียว จัดทำโดยฐานข้อมูลการจัดการการกำหนดค่า ข้อมูลจะถูกเก็บรวบรวมสำหรับสินทรัพย์แต่ละรายการหรือรายการการกำหนดค่า ให้การมองเห็นและความโปร่งใสในที่ทำงาน

ความล้มเหลวในการรักษา CMDB ทำให้ธุรกิจตกอยู่ในอันตรายจากการไม่เข้าใจอย่างถ่องแท้ว่าการกำหนดค่าของรายการหนึ่งส่งผลต่อรายการอื่นอย่างไร องค์กรเสี่ยงที่จะทำลายโครงสร้างพื้นฐานและความปลอดภัยโดยไม่เข้าใจผลที่ตามมา

CMDB สามารถจัดการได้ยาก โดยเฉพาะอย่างยิ่งเมื่อจำนวนสินทรัพย์เพิ่มขึ้น แต่การจัดระเบียบฐานข้อมูลและการจัดการที่มีประสิทธิภาพเป็นสิ่งสำคัญสำหรับการติดตามการเลื่อนการตั้งค่าคอนฟิกและโครงสร้างพื้นฐานที่เข้าใจได้สำเร็จ

ไม่มีแผนการตรวจสอบการตั้งค่า Drift

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

องค์กรต้องระบุว่าสินทรัพย์ใดที่จำเป็นสำหรับการตรวจสอบของบริษัทและหน่วยธุรกิจเฉพาะ จะมีการจับตาดูระบบที่สำคัญที่สุด ซึ่งจะแตกต่างกันไปในแต่ละหน่วยและแต่ละอุตสาหกรรม

ไม่ตรวจสอบโดยอัตโนมัติ

องค์กรสามารถตรวจสอบการตั้งค่าคอนฟิกได้หลายวิธี อย่างไรก็ตาม แนวทางบางวิธีได้รับการขัดเกลาและประสบความสำเร็จมากกว่าวิธีอื่นๆ

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

การตรวจสอบอัตโนมัติเป็นวิธีที่ได้รับการพัฒนาและมีประสิทธิภาพมากที่สุดในการรักษาการกำหนดค่าในสถานะที่ต้องการ ระบบตรวจสอบการกำหนดค่าเฉพาะสามารถตรวจจับการเบี่ยงเบนได้ทันทีและนำเสนอโซลูชันบ่อยครั้ง รวมถึงการแก้ไขอย่างรวดเร็ว สิ่งนี้รับประกันได้ว่าโครงสร้างพื้นฐานของธุรกิจจะกลับสู่สถานะที่ต้องการโดยเร็วที่สุดและมีผลกระทบน้อยที่สุด

วิธีตรวจสอบการตั้งค่า Drift:

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

รู้ว่าคุณกำลังมองหาอะไร

คุณอาจพิจารณาองค์กรของคุณโดยระบุองค์ประกอบที่สำคัญต่อองค์กรโดยรวมและองค์ประกอบที่สำคัญต่อแต่ละหน่วยธุรกิจ

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

กำหนดเส้นฐาน

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

ขั้นตอนการทดสอบเบื้องต้นอาจเหมาะสมกว่าสำหรับค่าเผื่อการเบี่ยงเบนที่สูงกว่าการตั้งค่าการทดสอบการยอมรับของผู้ใช้หรือขั้นตอนการผลิตดริฟท์เป็นศูนย์

ตรวจสอบระบบของคุณ

ระดับของการตรวจสอบที่จำเป็นจะแตกต่างกันไปขึ้นอยู่กับวุฒิภาวะขององค์กร ระบบปัจจุบัน เครื่องมือ จำนวนการกำหนดค่าทั้งหมดที่ต้องตรวจสอบ และระดับการตรวจสอบที่ต้องการ การตรวจสอบอาจแตกต่างกันไปในแต่ละหน่วยงานภายในองค์กรทั้งนี้ขึ้นอยู่กับข้อกำหนดและการปฏิบัติตาม

วิธีป้องกันการตั้งค่า Drift

การตรวจสอบต้องตรวจสอบให้แน่ใจว่าโครงสร้างพื้นฐานถูกเก็บไว้ในการกำหนดค่าที่เหมาะสมหลังจากที่มีการกำหนดเส้นฐานของการกำหนดค่าและช่องว่างที่อนุญาต หากไม่มีกลยุทธ์การตรวจสอบ การสร้างแผนการกำหนดค่าและเอกสารจะทำให้เสียเวลา

สามารถใช้วิธีการต่างๆ เพื่อตรวจสอบการเบี่ยงเบนของการกำหนดค่า และธุรกิจจำนวนมากจะรวมวิธีการและเครื่องมือตามข้อกำหนดด้านวุฒิภาวะและการปฏิบัติตามข้อกำหนด

การตรวจสอบด้วยตนเองอย่างต่อเนื่อง

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

การตรวจสอบ

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

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

การตรวจสอบรับประกันการกำหนดค่าเซิร์ฟเวอร์ที่สม่ำเสมอและทำซ้ำได้ตามกำหนดเวลาที่กำหนดไว้ล่วงหน้า

อย่างไรก็ตาม จนกว่าจะถึงการตรวจสอบครั้งต่อไป การตั้งค่าจะเลื่อนลอยและคงอยู่มากขึ้นเรื่อยๆ

  Google Camera Lands บน Google Play พร้อมโหมด Lens Blur ใหม่

การตรวจสอบอัตโนมัติแบบเรียลไทม์

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

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

กระบวนการอัตโนมัตินี้จะเตือนทันทีเกี่ยวกับการดริฟท์ และโดยทั่วไปจะมีตัวเลือกมากมายในการแก้ไขการเลื่อนเซิร์ฟเวอร์

คำพูดสุดท้าย:

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

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

เรื่องล่าสุด

x