12 คะแนน โดย GN⁺ 2025-12-02 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • ปฏิทิน Advent สำหรับผู้ดูแลระบบ 2025 คือ ซีรีส์ความท้าทาย Linux และ DevOps ระยะเวลา 12 วัน ที่จัดขึ้นตั้งแต่วันที่ 1 ถึง 12 ธันวาคม
    • ในแต่ละวันจะมีการปล่อย โจทย์สถานการณ์จำลอง ใหม่ที่มีระดับความยากแตกต่างกัน
  • ผู้เข้าร่วมสามารถติดตามความคืบหน้าของตนเองได้ผ่าน การสมัครบัญชีฟรี (ต้องมีบัญชีเพื่อจัดการคะแนนและอันดับ)
  • มี สถานการณ์ที่ทดลองได้โดยไม่ต้องสมัครสมาชิก 1 รายการ จึงเริ่มลองได้ทันทีสำหรับทุกคน
  • มุ่งเน้นการ เสริมทักษะการแก้ปัญหาและการดูแลระบบ ในสภาพแวดล้อม DevOps ที่ใกล้เคียงงานจริง

ตัวอย่างสถานการณ์: “Auderghem: containers miscommunication”

  • ชื่อสถานการณ์: “Auderghem: containers miscommunication”
    • ความยาก: Easy
    • ประเภท: Fix
    • วิธีเข้าถึง: ต้องยืนยันอีเมล
    • เวลาจำกัด: 30 นาที
  • คำอธิบายปัญหา:
    • คอนเทนเนอร์ nginx Docker ควรรับทราฟฟิกที่พอร์ต 80 แล้วเปลี่ยนเส้นทางไปยังคอนเทนเนอร์อีกสองตัว (statichtml1, statichtml2) แต่ขณะนี้ไม่ทำงาน
    • ผู้เข้าร่วมต้องแก้ไขปัญหานี้
    • คอนเทนเนอร์ทั้งหมด รีสตาร์ตได้ แต่ห้ามหยุดหรือลบ
  • เงื่อนไขการทดสอบ:
    • curl http://localhost → “Welcome to nginx”
    • curl http://localhost/1 → “HelloWorld;1”
    • curl http://localhost/2 → “HelloWorld;2”
    • ปุ่ม “Check My Solution” จะรันสคริปต์ /home/admin/agent/check.sh เพื่อตรวจสอบผลลัพธ์

ข้อมูลแพลตฟอร์ม SadServers

  • SadServers ผู้ให้บริการแพลตฟอร์มนี้ นำเสนอ สถานการณ์สำหรับการฝึกปฏิบัติและสัมภาษณ์ด้านการแก้ปัญหา ในสภาพแวดล้อม Linux และ DevOps

2 ความคิดเห็น

 
roxie 2025-12-03

เป็นเรื่องราวของ sad server สินะ! เป็นแพลตฟอร์มที่ดีมากจริง ๆ

 
GN⁺ 2025-12-02
ความเห็นจาก Hacker News
  • ได้สรุป ความท้าทายจริง 12 ข้อของ Sysadmin/DevOps ที่เจอในที่ทำงานไว้
    1. ทำให้ผู้ใช้ เลิกล็อกอินเป็น root
    2. ทำให้ทุกคน เลิกใช้บัญชีและรหัสผ่านชุดเดียวกันร่วมกันบนทุกเซิร์ฟเวอร์
    3. ทำให้ใครสักคน อัปเดต dependency ของแอปพลิเคชันเป็นเวอร์ชันหลังปี 2010
    4. ทำให้หันมาใช้เครื่องมือจัดการคอนฟิก แทนการ โยนไฟล์คอนฟิกจากโน้ตบุ๊กขึ้นเซิร์ฟเวอร์ด้วย scp
    5. ทำให้เลิกใช้ configuration management แล้วหันมาสร้าง immutable image ที่ฝังคอนฟิกไว้
    6. ทำให้ เลิกใช้ Jenkins แล้วเปลี่ยนไปใช้ GitHub Actions
    7. ยุติสถานการณ์ที่ คีย์ลับโปรดักชันถูกรวมไว้ในไฟล์เดียวบน S3 แล้วหันมาใช้ระบบจัดการความลับ
    8. โน้มน้าวผู้บริหารและผู้ใช้ที่พูดว่า “หลายปีแล้วก็ไม่เห็นมีปัญหา ทำไมต้องซื้อเซิร์ฟเวอร์ใหม่” ให้เข้าใจว่าอุปกรณ์ทั้งหมดทั้งพาวเวอร์ ดิสก์ NIC และ RAM กำลังจะพังหมด และไม่มีอะไหล่แล้ว จน อนุมัติการซื้อเซิร์ฟเวอร์ใหม่
    9. ขออำนาจจากผู้บริหารเพื่อ บังคับ rotate AWS access key ที่ไม่เคยเปลี่ยนมา นานถึง 8 ปี
    10. ทำให้หยุดสถานการณ์สุดเพี้ยนที่แอปพลิเคชัน ใช้ access key ของ AWS root account
    11. ทำให้ผู้ใช้ สร้างแอปพลิเคชันเป็นคอนเทนเนอร์
    12. ทำให้ผู้ใช้ deploy ได้เองโดยไม่ต้องพึ่งคุณ
    ดื่มสกอตช์หนึ่งแก้วทุกครั้งที่ทำแต่ละข้อสำเร็จ สุขสันต์วันหยุด!

    • สำหรับข้อ 6 เรื่อง GitHub Actions เคยมีปัญหาที่ worker ที่ยืนยันตัวตนแล้วจะหลุดออกจาก pool ถ้าไม่ได้ใช้งานราว 5 วัน
      พอจัดเวิร์กโฟลว์ PR ที่ซับซ้อนไว้ ถ้าหลายวันไม่มี PR อยู่ดี ๆ มันก็พัง
      และ GitHub ก็ไม่มี คำแนะนำหรือทางเลือก สำหรับเรื่องนี้ คิดว่าถ้าเป็น CI โซลูชันอื่นดีกว่าเยอะ
    • ก้าวแรกของปัญหาเหล่านี้คืออธิบายให้ชัดเจนแบบ เจาะจงและมีเอกสารรองรับ ว่าทำไมมันถึงสำคัญ
      ส่วนใหญ่จะชัดอยู่แล้ว แต่ไม่ได้แปลว่าทุกคนจะมองออกเอง
    • จะให้เปลี่ยนจาก Jenkins ไป GitHub Actions... ไม่เข้าใจจริง ๆ ว่าทำไมต้องทำแบบนั้น
    • มีคนแซวว่าประโยค “Sysadmin/DevOps เดี๋ยวนี้เป็นคำพ้องความหมายกันแล้ว” นั้นแรงจน ต้องแจ้งเจ้าหน้าที่
    • ข้อ 5 กับ 6 เป็นเรื่องของความชอบและ trade-off แต่ที่เหลือเห็นด้วยเต็ม ๆ
  • บริษัทเรากำลังใช้ Sad Servers เพื่อประเมินผู้สมัครสาย DevOps/SRE
    ระหว่างสัมภาษณ์มีฟีดแบ็กว่าค่อนข้างกดดันนิดหน่อย แต่พอจบแล้วทุกคนบอกว่าเป็นประสบการณ์ที่ดี
    แค่ส่งลิงก์ในแชต Zoom แล้วแชร์หน้าจอ ก็ใช้งานได้ทันที ทำให้ ประสิทธิภาพในการสัมภาษณ์ สูงมาก

    • ดีใจที่ได้ยินแบบนี้ และฉันเองก็จะเริ่มทำ daily challenge ของ Sad Servers ตั้งแต่วันนี้
      แม้จะมีประสบการณ์จาก homelab และการเป็น tech lead ในบริษัทเล็ก ๆ แต่ยังไม่เคยทำในสเกลใหญ่
      ตอนนี้กำลังโฟกัสที่ อุดช่องว่างความรู้ และเตรียมสอบใบรับรองอยู่
  • เวลาเศร้า ๆ แล้วไม่รู้จะทำอะไร การแก้โจทย์ Sad Server แบบแฮ็ก ๆ ก็น่าจะสนุกดี

  • ลองนึกภาพว่าคุณจะลบคำในเทอร์มินัลด้วย Ctrl+w แต่จริง ๆ อยู่ในหน้าต่างเบราว์เซอร์ เลยปิดหน้าต่างไปทั้งบาน... เศร้าสุด ๆ

    • เมื่อก่อนเคยใช้ gotty เปิดเทอร์มินัลในเบราว์เซอร์ แล้วทั้งทีมก็ remap Ctrl+w เป็น Ctrl+`
      พอพัฒนาในสภาพแวดล้อมนี้อยู่ปีครึ่ง ทุกวันนี้กด Ctrl+w ทีไรก็ยัง กลัวว่าเทอร์มินัลจริงจะปิด
    • เลยยิ่งรู้สึกขอบคุณที่ macOS แยกปุ่ม Command ออกมาต่างหาก
    • แต่ก็ยังเปิดแท็บล่าสุดที่ปิดไปแล้วกลับมาได้ด้วย Ctrl+Shift+T
    • (ผู้สร้าง) ขอโทษด้วย แค่คลิกปุ่ม “Open the Server Terminal in a New Window” อีกครั้งก็ได้
    • เข้าใจความรู้สึกเลย ฉันก็โดนแบบนี้บ่อยเวลาใช้ KVM
  • ช่วงนี้ดูเหมือนคนจะเรียกสิ่งนี้ว่า SRE
    ไม่ชอบการเปลี่ยนชื่อไปมาเพื่อสร้าง buzzword แบบนี้เลย

    • นิยามที่ฉันชอบคือ “SRE คือการ ปฏิบัติต่อ operations ให้เป็นปัญหาซอฟต์แวร์
    • ฉันก็ไม่ชอบ buzzword เหมือนกัน แต่ SRE เป็นบทบาทที่ต่างออกไปชัดเจน
    • SRE มีหน้าที่ทำให้แอปพลิเคชันรันอยู่บนแพลตฟอร์มได้อย่างต่อเนื่อง
      ต้องดูแลเครื่องมือหลากหลาย เช่น การเก็บ metrics และการทำ deploy อัตโนมัติ
      ในบริษัทเล็ก Sysadmin อาจทำหน้าที่ SRE ไปด้วย แต่พอบริษัทใหญ่ขึ้นก็มักแยกกันชัดเจน
  • ดูเหมือนว่าความคืบหน้าจะไม่ถูกบันทึก

    • (ผู้สร้าง) ช่วยลองดูที่แดชบอร์ดก่อน และถ้ายังไม่ได้ ให้ติดต่อมาทางอีเมลหรือฟอร์มบนเว็บไซต์
  • ชอบ Sad Servers มากจริง ๆ และกำลังรอเวอร์ชัน Windows อยู่

    • (ผู้สร้าง) ขอบคุณมาก และบอกว่ากำลังพิจารณาเวอร์ชัน Windows อยู่ในอนาคต
  • คิดว่าน่าจะดีถ้ามีแพลตฟอร์มแบบนี้สำหรับ ecosystem คอนเทนเนอร์อย่าง k8s หรือ Docker ด้วย

    • (ผู้สร้าง SadServers) ตอนนี้มีสถานการณ์แบบ k8s อยู่แล้ว
      มีทั้งเวอร์ชันที่รันบน VM เดียว และกำลังทดลองแบบรันระดับ pod บน k8s cluster สำหรับ PoC
      ต่อไปก็มีแผนจะเพิ่มสถานการณ์ของ podman ด้วย
  • ไม่อยากสปอยล์ แต่แก้ปัญหาได้แล้ว แต่สคริปต์ตรวจสอบไม่ผ่าน
    curl ทำงานได้ปกติ แต่สคริปต์บังคับให้ตั้งค่าด้วยวิธีเฉพาะ
    คิดว่าเรื่องแบบนี้ควรตรวจแค่ผลลัพธ์เหมือน CTF จะดีกว่า

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

    • มีการพูดถึงว่า Advent of Code ก็ต้องมีบัญชีเหมือนกัน
    • (ผู้สร้าง) บอกว่าในแพลตฟอร์มนี้แค่ Home → คลิก “give me a server” สองครั้ง ก็ได้ VM ทันที
      คิดว่าแทบไม่มี SaaS ไหนที่ให้ VM โดยไม่ต้องสมัคร
      ขอบคุณสำหรับฟีดแบ็ก และได้เพิ่ม ปุ่มที่ชัดเจน ไว้ในหน้า /advent แล้ว
    • ยังมีคนแซวกลับว่า “แล้วอยากให้มันทำงานยังไงกันแน่ เป็น sysadmin จริงไหมเนี่ย?”