อะไรคือข้อดีและข้อเสียของเซิร์ฟเวอร์เกล็ดหิมะเซิร์ฟเวอร์ฟินิกซ์และเซิร์ฟเวอร์ที่ไม่เปลี่ยนรูป?


15

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

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

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

คำตอบ:


16

คำ Phoenix Server ถูกประกาศเกียรติคุณโดยเพื่อนของ Martin Fowler และทั้งสามคำอธิบายไว้ในบทความสั้น ๆ เกี่ยวกับ bliki ของ Martin

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

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

มีหลายวิธีในการเปลี่ยนเซิร์ฟเวอร์ที่มีอยู่:

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

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


9

เนื่องจากฉันคิดถึงรายการของข้อดีและข้อเสียของแต่ละประเภทมากขึ้นนี่คือมุมมองของฉัน (ไม่ละเอียดถี่ถ้วนมันเป็นสิ่งสำคัญในการดำเนินงานในความคิดของฉัน):

  1. เซิร์ฟเวอร์เกล็ดหิมะ

    • คือ : ระบบที่มีการกำหนดค่าเฉพาะไม่มีเซิร์ฟเวอร์อื่นในศูนย์ข้อมูลที่มีพารามิเตอร์เดียวกันทั้งหมด พวกเขามักจะจัดการด้วยตนเอง

    • ข้อดี :

      • พอดีกับความต้องการของสิ่งที่กำลังทำงานอยู่
      • การอัพเดทที่ยาวนานมักเป็นกางเกงขาสั้น
      • ปรับให้เหมาะกับกรณีพิเศษที่ปรับแต่งเอกสารที่โฮสต์ไว้เป็นอย่างดี
    • ข้อเสีย :

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

    • พวกเขาคืออะไร : กำหนดค่าโดยอัตโนมัติด้วยรหัสบางอย่าง
    • ข้อดี :

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

    • บางครั้งการอัพเดตจะปล่อยไฟล์ที่ไม่ได้ใช้การล้างข้อมูลอาจมีความซับซ้อน
    • ไม่ใช่ทุกอย่างที่อยู่ภายใต้การจัดการรหัสบางอย่างอาจถูกปรับโดยมนุษย์หากไม่รวมอยู่ในระบบอัตโนมัติ
  3. เซิร์ฟเวอร์ที่ไม่เปลี่ยนรูป

    • พวกเขาคืออะไร :
      • ทำการจัดสรรเพียงครั้งเดียวโดยอัตโนมัติจากภาพต้นแบบที่ไม่มีการเข้าถึงโดยทั่วไป
    • ข้อดี :

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

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

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


2

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

เซิร์ฟเวอร์เกล็ดหิมะ

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

ฉันมีจำนวนมากทำงานกับเซิร์ฟเวอร์ประเภทนี้ในการผลิตพวกเขาค่อนข้างง่ายต่อการสังเกตเพราะมักจะมีการเปลี่ยนแปลงล้มเหลวจำนวนมากและความคิดเห็นเช่น "มัน [การเปลี่ยนแปลง] ทำงานในการพัฒนา / ทดสอบ / UAT / การแสดงละคร "

ฟีนิกซ์เซอร์เวียร์

ฟินิกซ์เซิร์ฟเวอร์เป็นมากกว่าเงินต้นกว่ารูปแบบเป็นทำให้มาร์ตินฟาวเลอร์มันเป็น:

เซิร์ฟเวอร์ควรเป็นเหมือนนกฟีนิกซ์ซึ่งเพิ่มขึ้นจากเถ้าถ่านเป็นประจำ [เป็น]

หากคุณต้องใช้การจัดการบริการไอที (ITSM) หรือภาษา ITIL กับสถานการณ์เดียวกันคุณอาจเรียกว่าแผนบริการความต่อเนื่องของ IT Serviceหรือแผนการกู้คืน:

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

เซิร์ฟเวอร์ที่ไม่เปลี่ยนรูป

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


หมายเหตุ

  • ตอบ: Kornelis Sietsmaเพื่อนร่วมงานของ Martin ได้ใช้คำว่า "Phoenix Server" ในรายการสนทนาภายใน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.