The Philosophy of DevOps: เมื่อเราพยายามสร้างระเบียบจากความโกลาหล

ในโลกของ Software Engineering เรามักวิ่งตามหาเครื่องมือวิเศษที่จะมาแก้ปัญหาทุกอย่าง แต่บทสนทนาระหว่าง Kief Morris และ Jim Brikman ในงาน GOTO 2025 กลับพาเราดำดิ่งลงไปเจอความจริงที่ลึกซึ้งกว่านั้น...

1. ความเจ็บปวดคือมารดาของการเปลี่ยนแปลง

นวัตกรรมที่แท้จริงไม่เคยเกิดจากความอยากเท่ แต่เกิดจากความเจ็บปวดที่ทนไม่ได้อีกต่อไป

Jim ย้อนความหลังไปถึงช่วงวิกฤตที่ LinkedIn ในปี 2011 ตอนนั้นบริษัทเติบโตแบบก้าวกระโดด แต่กระบวนการ Deploy กลับต้องใช้เวลาถึง 2 สัปดาห์ และพังแทบทุกครั้งจนทีมงานหมดไฟ สิ่งที่ LinkedIn ตัดสินใจทำไม่ใช่การหา Tool ใหม่ แต่เป็นการสั่งหยุดฟีเจอร์ทุกอย่างนานหลายเดือนเพื่อรื้อระบบหลังบ้านใหม่ทั้งหมด

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

2. วัฏจักรแห่งการห่อหุ้ม

ประโยคที่กระแทกใจที่สุดในคลิปคือ "Industry ของเราคือ Wrapper ที่ครอบอยู่บน Glue Code ที่ครอบอยู่บน Wrapper อีกที"

ลองมองดูเครื่องมือในมือเราสิครับ เรามี Terraform แต่เราก็ยังสร้าง Wrapper มาครอบมัน (เช่น Terragrunt) เรามี Kubernetes แต่เราก็ต้องใช้ Helm มาครอบมันอีกชั้น Jim ชี้ให้เห็นความจริงที่เจ็บปวดว่า บ่อยครั้งเราไม่ได้กำจัดความซับซ้อน เราแค่ย้ายที่มันไปซ่อนไว้ใน Layer ที่สูงขึ้นเท่านั้น

แต่ถึงอย่างนั้น Framework มาตรฐานก็ยังเป็นสิ่งจำเป็น เพราะถ้าเราไม่ใช้มัน เราก็จะลงเอยด้วยการสร้าง Custom Framework ที่ห่วยแตกขึ้นมาใช้เองอยู่ดี

3. กับดักของความเหมือน

เมื่อพูดถึงเครื่องมือยุคใหม่อย่าง Crossplane ที่พยายามให้เราเขียน Infrastructure (Server, DB) ด้วยภาษาเดียวกับ Application (YAML) สิ่งนี้อาจนำไปสู่กับดักที่เรียกว่า Impedance Mismatch

เราต้องไม่ลืมว่า App และ Infra มีธรรมชาติที่ต่างกัน

  • App: ต้องการความคล่องตัว แบบ Blue/Green หรือ Zero Downtime
  • Infra: Database มีแค่ อยู่ หรือ ไม่อยู่ การจะสั่งลบแล้วสร้างใหม่แบบ App อาจหมายถึงหายนะของข้อมูล

เครื่องมือที่ดีจึงควรเคารพธรรมชาติของสิ่งนั้นๆ ไม่ใช่พยายามฝืนจับทุกอย่างมายัดลงในกล่องใบเดียวกันเพียงเพราะมันสะดวกคนเขียน

4. ทางออกและการเติบโต

ความฝันสูงสุดของ Developer คือการหลุดพ้นจากภาระ Infrastructure ไม่ว่าจะเป็นแนวคิด Infrastructure from Code (ให้ Code บอกเองว่าต้องใช้อะไร) หรือการมองระบบเป็น Graph แทน Script สิ่งเหล่านี้คือความพยายามที่จะก้าวข้ามข้อจำกัดเดิมๆ

แต่สุดท้ายแล้ว Jim ฝากแง่คิดที่คมคายที่สุดสำหรับการเป็น Senior Engineer ไว้ว่า:

"วุฒิภาวะคือการตระหนักว่า เครื่องมือเก่าๆ ที่น่าเบื่อมันมีคุณค่าในตัวมันเอง"

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