Launch guidance

Chokchai Phatharamalai
odds.team
Published in
1 min readJan 30, 2023
Photo by Karsten Würth on Unsplash

ช่วงนี้ผมกำลังอ่านหนังสือ The DevOps Handbook หนังสือเล่มนี้เป็นภาคทฤษฎีที่อยู่เบื้องหลังนิยายในหนังสือ The Phoenix project อีกที

ในหนังสือพูดถึง Launch guidance ซึ่งเป็นเหมือน checklist ที่ควรมีเพื่อให้เวอร์ชั่นใหม่ของซอฟต์แวร์ถูก deploy อย่าราบรื่น หลาย ๆ องค์กรเรียกสิ่งนี้ว่า deployment checklist

บ่อยครั้ง ๆ deployment checklist ที่ผมเห็นจะให้ความสำคัญกับการผ่านคืน deploy ไปอย่างราบรื่น แต่ไม่ค่อยครอบคลุมถึงสถานการณ์หลังจากวันนั้น เป็นสาเหตุให้ผมประทับใจกับ Launch guidance ที่เห็นหนังสือและอยากจะเอามาแบ่งปันกับทุกคน ในหนังสือแนะนำว่า Launch guidance มักจะครอบคลุมหัวข้อดังต่อไปนี้เป็นอย่างน้อย

จำนวน defect และความรุนแรงของมัน

เพื่อให้มั่นใจว่าแอพพลิเคชันทำงานได้ตามที่ถูกออกแบบมา

จำนวนครั้งและความถี่ของ alert / alarm

เพื่อดูว่าแอพพลิเคชันมีส่ง alert ที่เราไม่สามารถ take action อะไรได้บ้างไหม สถานการณ์ในฝันคือเราอยากให้แอพพลิเคชันเตือนเราสักครั้งก่อนที่จะมีผู้ใช้งานสักคนรู้สึกถึงความผิดปรกติ มากกว่าโดนถล่มด้วย alert และ alarm ต่าง ๆ ที่คอยขัดจังหวะเราตอนแก้ปัญหาขณะที่ระบบเราล่มไปแล้ว

ความครอบคลุมของ Monitoring

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

โครงสร้างระบบ

Service ต่าง ๆ มันผูกกันหลวม ๆ เพียงพอที่จะรองรับการเปลี่ยนแปลงและการ deploy ถี่ ๆ บน production หรือยัง นี่น่าจะเป็นเหตุผลหนึ่งที่หลาย ๆ องค์กรให้ความสนใจกับ microservices architecture ทุกวันนี้

กระบวนการ deploy

เรามีกระบวนการอัตโนมัติที่คาดหวังผลลัพธ์ได้ในการ deploy โค้ดไปบน production ไหม

ความสะอาดของ Production Environment

มีหลักฐานของพฤติกรรมดี ๆ การจัดการกับ production (เช่น GitOps) ที่จะสนับสนุนให้เรา share ownership ในการจัดการ production environment ได้ไหม

สรุป

จากเรื่องราวในหนังสือ บริบทที่เค้าไม่แบ่งแยก Dev กับ Ops แล้ว หน้าที่ในการส่งมอบซอฟต์แวร์ให้ถึงมือ users เป็นความรับผิดชอบร่วมกันของทุกคน ในบริบทนี้ทั้ง developers และ product manager ก็ผลัดกันถือ pager (สมัยนี้คงเป็นโทรศัพท์ที่ระบบจะส่ง alert/ alarm มาเมื่อมีปัญหา) เพื่อให้ทุกคนได้ช่วยกันได้ feedback จากการตัดสินใจของตนบน production environment

developer จะได้ feedback จากวิธีแก้ปัญหาที่ตัวเองเลือก ขณะที่ product manager จะได้ feedback ของการจัดเรียงปัญหาที่ตัวเองเลือกให้ทีมแก้

บทความที่เกี่ยวข้อง

--

--