สมมติทีมพัฒนาผลิตภัณฑ์กำลังทดสอบฟีเจอร์ใหม่และต้องการฐานข้อมูลแยกจากระบบใช้งานจริง นักพัฒนารู้ว่าจะทดสอบอะไร แต่ยังต้องตามหาว่าใครเปิดฐานข้อมูลให้ ขอสิทธิจากไหน และเมื่อทดสอบเสร็จใครจะลบของที่ไม่ใช้แล้ว
ถ้าเราเริ่มออกแบบแพลตฟอร์มจากคำขอนี้ คำถามแรกของผมคือ บริการที่เรารับผิดชอบเริ่มและจบตรงไหน การมีปุ่มขอฐานข้อมูลช่วยได้เพียงบางส่วน ผู้ใช้ยังต้องรู้ว่ากำลังได้อะไร และเมื่อมีปัญหาจะไปหาใคร
ซีรีส์นี้ใช้ทีมซอฟต์แวร์สมมติและบริการฐานข้อมูลทดสอบหนึ่งบริการตลอดทั้งสามตอน เริ่มจากตกลงขอบเขต ทำให้ใช้ได้ตั้งแต่ขอจนเลิกใช้ แล้วค่อยพิจารณาว่าควรขยายต่อหรือไม่ หากต้องการภาพรวมเรื่องการเริ่มลงทุน อ่านประกอบได้จาก จากโค้ดที่ AI เขียน สู่ระบบที่ทีมรับผิดชอบ
อ่านภาพแพลตฟอร์มผ่านคนที่ต้องใช้งาน
CNCF Platforms White Paper ชวนมองแพลตฟอร์มจากความต้องการของผู้ใช้ภายใน โดยแยกประสบการณ์ที่ผู้ใช้ได้รับออกจากผู้ให้บริการเบื้องหลัง ทีมแพลตฟอร์มจึงอาจประกอบบริการที่มีอยู่ให้ใช้ร่วมกันได้ แทนการสร้างทุกอย่างเอง
เลื่อนภาพซ้ายขวาเพื่อดูรายละเอียด หรือเปิดภาพขนาดเต็ม
ผมอ่านภาพนี้จากงานของคนด้านบนลงมา ทีมผลิตภัณฑ์อยากทดสอบฟีเจอร์ จึงใช้เอกสาร แม่แบบ หรือคำสั่งที่เข้าใจได้เพื่อขอสิ่งที่ต้องการ ส่วนข้างล่างมีทั้งระบบข้อมูล สิทธิ และบริการพื้นฐานที่ต้องทำงานร่วมกัน ในภาพยังมีงานรับส่งข้อความ เก็บชุดซอฟต์แวร์ ตรวจความปลอดภัยและกติกา ทำ build ทดสอบและส่งมอบ ตลอดจนติดตามการทำงานของระบบ ภาพช่วยให้เราเห็นความสัมพันธ์ แต่ไม่ได้บอกว่าทีมสมมติต้องสร้างทุกกล่องในภาพก่อนเริ่มใช้บริการ
เมื่อกลับมาที่ฐานข้อมูลทดสอบ ผู้ใช้อาจต้องการเพียงชนิดฐานข้อมูลที่รองรับ วิธีเชื่อมต่อ และวิธีจบงาน ขณะที่เบื้องหลังต้องจัดการเรื่องที่ผู้ใช้ไม่ควรตามแก้ทีละจุดเอง เช่น คำขอที่ล้มเหลว สิทธิที่ออกให้ และทรัพยากรที่ยังคิดค่าใช้บริการอยู่
ให้คำว่าเจ้าของบริการมีความหมายตรงกัน
ในเรื่องสมมตินี้ ผมจะแยกความรับผิดชอบของทีมผลิตภัณฑ์ คนดูแลบริการแพลตฟอร์ม และผู้ให้บริการฐานข้อมูลออกจากกัน ชื่อเหล่านี้เป็นบทบาท ไม่ได้บังคับว่าต้องตั้งทีมใหม่ตามจำนวนช่อง คนกลุ่มเดียวอาจทำหลายหน้าที่ได้ แต่ยังต้องรู้ว่างานใดมีใครรับผิดชอบและตรวจอย่างไรตามความเสี่ยง
- ทีมผลิตภัณฑ์
- กำหนดสิ่งที่จะทดสอบ ดูแลข้อมูลและการใช้ฐานข้อมูลของงานตน
- ผู้ดูแลบริการแพลตฟอร์ม
- ดูแลวิธีขอใช้ สถานะ สิทธิ ข้อจำกัด และช่องทางช่วยเหลือที่ตกลงไว้
- ผู้ให้บริการเบื้องหลัง
- ทำงานตามขอบเขตบริการและการตั้งค่าที่เลือกไว้ ต้องตรวจสัญญาและข้อจำกัดจริง
ตัวอย่างเช่น ผู้ให้บริการอาจดูแลเครื่องและซอฟต์แวร์ฐานข้อมูลบางส่วนให้ แต่ไม่ได้แปลว่าจะเลือกข้อมูลทดสอบที่เหมาะสมให้เรา หรือรู้ว่าบัญชีผู้ใช้ใดควรเห็นข้อมูลใด ผมจึงอยากให้คำอธิบายบริการบอกทั้งสิ่งที่รับดูแลและสิ่งที่ผู้ขอยังต้องทำ
| งานที่ต้องตกลง | สิ่งที่ต้องมีคนรับผิดชอบ |
|---|---|
| ข้อมูลทดสอบ | ทีมผลิตภัณฑ์กำหนดชุดข้อมูลที่เหมาะกับงาน เริ่มจากข้อมูลสร้างขึ้นเพื่อทดสอบ ไม่คัดลอกข้อมูลลูกค้าจริงมาเป็นค่าเริ่มต้น |
| การเข้าถึง | ผู้ดูแลบริการกำหนดว่าใครขอได้ ขอบเขตเครือข่ายและสิทธิเป็นอย่างไร แล้วให้ระบบที่เกี่ยวข้องบังคับตามนั้น |
| เมื่อใช้ไม่ได้ | มีช่องทางแจ้งเหตุและคนรับเรื่องที่แยกได้ว่าติดที่คำขอ การเชื่อมต่อ หรือบริการเบื้องหลัง พร้อมส่งต่องานได้ |
| เมื่อเลิกใช้ | รู้ว่าใครยืนยันให้ยุติ ใครปิดสิทธิ และใครตรวจทรัพยากร ข้อมูลสำรองหรือบันทึกที่ยังต้องเก็บตามกติกา |
เขียนสิ่งที่ผู้ใช้คาดหวังได้ ก่อนเลือกหน้าจอ
ผมจะให้ทีมลองเขียนคำอธิบายบริการที่อ่านจบแล้วลงมือได้ เช่น ฐานข้อมูลนี้มีไว้สำหรับทดสอบแบบใด รองรับการเชื่อมต่อจากส่วนไหน ใครมีสิทธิ์เข้าถึงข้อมูลลับสำหรับเชื่อมต่อ และการลบมีผลกับอะไรบ้าง ถ้ายังตอบไม่ได้ การเลือกทำ portal หรือ API ก็ยังไม่ช่วยให้ความคาดหวังชัดขึ้น
ส่วนเวลาที่จะได้ใช้ การแจ้งสถานะ และวิธีขอความช่วยเหลือควรสอดคล้องกับสิ่งที่ทีมดูแลได้จริง จะเริ่มจากขั้นตอนที่มีคนช่วยบางช่วงก็ได้ แต่ต้องบอกตรง ๆ ว่าส่วนใดยังรอคนทำ ไม่เรียกแบบฟอร์มที่ส่งต่อเป็นคิวงานว่าเสร็จแบบอัตโนมัติแล้ว
คำอธิบายนี้ยังช่วยคุยเรื่องข้อยกเว้นได้ ถ้าบางงานต้องใช้ฐานข้อมูลหรือข้อกำหนดต่างจากที่รองรับ ผู้ใช้ควรรู้ว่าจะหารือกับใครและต้องดูแลอะไรเพิ่ม การมีบริการมาตรฐานไม่จำเป็นต้องทำให้ทุกงานมีรูปแบบเหมือนกัน
ก่อนทำปุ่มขอฐานข้อมูล
ตอนนี้ทีมสมมติยังไม่ได้ตัดสินใจซื้อระบบใหม่ สิ่งที่ได้ก่อนคือบริการทดสอบที่มีผู้ใช้ชัด มีสิ่งที่รับดูแล และมีงานที่ต้องประสานกับผู้ให้บริการเบื้องหลัง การตกลงขอบเขตนี้ช่วยให้เลือกได้ว่าควรเชื่อมเครื่องมือที่มีอยู่ตรงไหน และส่วนใดต้องทดลองเพิ่ม
ถ้าคำขอฐานข้อมูลหนึ่งครั้งยังจบด้วยการที่แต่ละคนเข้าใจคำว่าเจ้าของไม่ตรงกัน ผมจะเริ่มแก้ตรงนั้นก่อน แล้วในตอนถัดไปจึงลองทำให้บริการเดียวกันใช้ได้ตั้งแต่ขอจนเลิกใช้
ที่มาและขอบเขต
ภาพและแนวคิดตั้งต้นมาจาก CNCF Platforms White Paper ส่วนทีมผลิตภัณฑ์ บริการฐานข้อมูลทดสอบ การแบ่งงาน และข้อเสนอในบทความเป็นกรณีสมมติที่สร้างขึ้นเพื่อคิดต่อ ไม่ใช่ผลใช้งานหรือกรณีศึกษาขององค์กรจริง
