จากงาน Code Mania 1010 :: All about passion
ผมเข้าไปฟังบาง session โดยที่ session ที่ 2 ที่เข้าไปฟัง
คือ DevOps 101 - what the heck DevOps is ?
ว่าด้วยเรื่องของ DevOps คืออะไร
ประกอบไปด้วยแนวคิดอะไรบ้าง
รวมไปถึงเรื่องของ DevOps topologies ที่ถูกนำมาใช้งาน
ทั้งในแนวทางที่ดีและแนวทางที่แย่ แต่ก็ขึ้นอยู่กับองค์กรนั้น ๆ ด้วยว่าเป็นอย่างไร
มาเริ่มกันเลย
DevOps คืออะไร ?
ไม่แน่ใจเหมือนกันว่าคืออะไร
ตรงนี้ทำให้ผมคิดถึงเรื่อง ตาบอดคลำช้าง
ตามรูปนี้จาก Channel 9 ของ Microsoft เลย
แต่ที่แน่ ๆ
มันไม่ใช่เรื่องของ automation
มันไม่ใช่เรื่องของ tool หรือเครื่องมือ
หนักกว่านั้น มันไม่ใช่ role หรือตำแหน่งใหม่ ๆ ในองค์กร
แต่มันคือ culture ขององค์กรมากกว่า
เพื่อทำให้ไปถึงเป้าหมายที่ตั้งไว้อย่างไร้ปัญหา
และช่วยทำให้คนที่เกี่ยวข้องมีความสุขกับมัน (Happy)
จะดีเพียงใดที่สิ่งที่คิดจาก business
สามารถพัฒนาและส่งมอบไปถึงมือผู้ใช้งาน ได้อย่างรวดเร็วและมีคุณภาพ
เพื่อช่วยทำให้ business, development และ operation
ได้รับ feedback จากผู้ใช้งาน เพื่อนำมาปรับปรุงแก้ไขต่อไป
โดยอาจจะมี DevOps team ขึ้นมาเพื่อเป็นทีมสนับสนุน (Support team)
เพื่อช่วยให้แนวคิด DevOps มาเกิดเป็นรูปธรรมขึ้นมา
แสดงดังรูป
ในแนวคิด DevOps นั้น ให้เน้นเรื่องของ
- Respect in production นั้นคือ production เป็นสิ่งที่สำคัญ ควรให้ความเคารพ คนจริงต้องทดสอบบน production จริง ๆ ไหม ต้องมีกระบวนการที่ดี มีคุณภาพ กระชับและรวดเร็ว
- Break team silo การแยกทีมรับผิดชอบแต่ละเรื่องเป็นสิ่งที่ดี แต่ทำงานจริง ๆ มันคือการโยนขี้ไปมาหรือไม่ ? แทนที่จะช่วยกันว่า จะทำงานร่วมกันอย่างไร เพื่อให้ขั้นตอนการพัฒนาและส่งมอบระบบงานมันไหลลื่น
- ลดสิ่งต่าง ๆ ที่ทำให้ทีมตั้งแต่ business, development และ operation มีปัญหาหรือปวดหัวลงไป หรือไม่ให้เกิดขึ้นเลย
โดยแนวคิด DevOps จะมีกรอบ หรือ framework ของมันด้วย
ใน session นี้ผู้พูดแบ่งออกเป็น 5 เรื่องคือ
- Culture เรื่องของวัฒนธรรมของคนในองค์กร ที่ต้อง share หรือแบ่งปันสิ่งต่าง ๆ ทั้งหน้าที่รับผิดชอบ ปัญหาต่าง ๆ รวมทั้งความเชื่อใจต่อกัน เช่นลดการ approve สิ่งต่าง ๆ ลงไป แต่ก็ใช่ว่าจะเปิดให้ทำทุกอย่างก็ต้องมีกรอบเช่นกัน แต่มีเท่าที่จำเป็นเท่านั้น
- Risk reduction เรื่องของการลดหรือการจัดการความเสี่ยง เนื่องจากส่วนต่าง ๆ มันพร้อมพังแน่นอน ดังนั้นควรต้องเตรียมพร้อมรับมือหรือคิดวิธีจัดการไว้ได้เลย ที่สำคัญต้องซ้อมด้วยนะ
- Automation งานอะไรที่มันต้องทำซ้ำ ๆ แนะนำให้ทำงานแบบอัตโนมัติ เนื่องจากมันเป็นแนวทางที่ช่วยให้ DevOps ประสบความสำเร็จและจับต้องได้ง่ายที่สุด
- Lean ลด waste ต่าง ๆ ลงไปให้มากที่สุด เช่นการรอ ดังนั้นต้องหาจุดที่เป็นปัญหาและแก้ไขมันซะ ถ้า deploy ระบบงานยาก เพราะว่ามันใหญ่เกินไป ก็ลดขนาดลงซะ ไม่ใช่มาสร้างขั้นตอนที่ซับซ้อนมาตรวจสอบ แบบนี้ก็ไม่น่าจะ Lean นะ รวมทั้งลดการพูดคุยหรือการติดต่อสื่อสารให้มากที่สุด ทำให้มากคุยให้น้อยแต่มีคุณภาพ
- Measure ทุกสิ่งทุกอย่างที่ทำลงไป ควรต้องวัดค่าได้เสมอ นั่นคือจำเป็นต้องเก็บข้อมูลต่าง ๆ ที่จำเป็น ทั้งฝั่ง business, application และ infrastructure เน้นที่เก็บเท่าที่จำเป็นและต้องการเท่านั้น
การนำแนวคิด DevOps ไปใช้งานในองค์กรต่าง ๆ
ก็มีรูปแบบมากมายที่น่าสนใจ
ซึ่งทำการสรุปไว้ที่ DevOps team topologies
ทั้งแบบที่ดีและแบบ anti-pattern
ยกตัวอย่างเช่น DevOps Team Silo
เกิดเป็นอีก silo หรือ ทีม หรือ แผนกใหม่
คำถามคือ มันคือการแก้ไขปัญหาที่มีอยู่ หรือ เป็นการสร้างปัญหาใหม่ขึ้นมากันแน่
ลองไปอ่านเพิ่มเติมกันดูครับ สนุกมาก ๆ