ดูแลแอป
เวอร์ชันใหม่มีปัญหา ถอยกลับตัวเดิมได้ในไม่กี่วินาที
เพิ่งเอาเวอร์ชันใหม่ขึ้นไป แล้วหน้าเว็บขาว ปุ่มกดไม่ได้ หรือลูกค้าทักมาว่าเข้าไม่ได้ ก่อนจะนั่งไล่หาสาเหตุ ถอยกลับไปตัวที่เคยใช้ได้ก่อน แล้วค่อยแก้
บอกเอไอให้ถอยกลับ
พิมพ์บอกเอไอที่ต่อกับ Erawan ไว้ แอปจะกลับไปเป็นเวอร์ชันก่อนหน้าภายในไม่กี่วินาที ลิงก์ก็ยังเป็นลิงก์เดิม ไม่ต้องส่งให้ใครใหม่
ถ้ารันเองในเทอร์มินัล ใช้คำสั่งนี้
ทำไมถึงเร็ว
Erawan เก็บเวอร์ชันที่ build เสร็จแล้วไว้แอปละสองตัว คือตัวที่รันอยู่กับตัวก่อนหน้า การถอยกลับจึงไม่ต้อง build ใหม่ แค่สลับไปใช้ตัวที่เก็บไว้ ถ้าเวอร์ชันใหม่มีปัญหาก็ถอยก่อนได้เลย ไม่ต้องรอหาสาเหตุให้เจอ
ถอยได้แค่หนึ่งก้าว
เพราะเก็บไว้แค่สองตัว คำสั่งนี้จึงพากลับได้แค่เวอร์ชันก่อนหน้า ถ้าตัวที่อยากได้เก่ากว่านั้นก็ยังกลับไปได้ เพราะโค้ดของทุกเวอร์ชันเก็บไว้ครบ ให้เอไอดึงโค้ดเวอร์ชันนั้นลงมาแล้วเอาขึ้นใหม่ เลขเวอร์ชันดูได้จาก erawan status my-app
เว็บไซต์ที่เป็นไฟล์ล้วน ๆ ไม่มีโปรแกรมรันอยู่เบื้องหลัง ใช้คำสั่ง rollback ไม่ได้ ระบบจะบอกให้เอาโค้ดเวอร์ชันก่อนขึ้นไปใหม่แทน ซึ่งก็ทำแบบเดียวกับข้างบน
ถ้าแอปพังตั้งแต่ครั้งแรกที่ขึ้น ข้างหลังก็ไม่มีอะไรให้ถอย ระบบจะตอบว่า No previous version to roll back to. ทางเดียวคือแก้แล้วเอาขึ้นใหม่
ข้อมูลไม่ถอยตาม
คำสั่งนี้เปลี่ยนแค่โค้ดที่แอปรัน ฐานข้อมูลกับไฟล์บนดิสก์ยังอยู่เหมือนเดิมทุกอย่าง ส่วนใหญ่ก็ตรงกับที่ต้องการ แต่มีสองกรณีที่ต้องระวัง
- เวอร์ชันใหม่เขียนข้อมูลผิดลงไปแล้ว ถอยโค้ดกลับไป ข้อมูลผิดพวกนั้นก็ยังอยู่ที่เดิม ต้องแก้อีกทาง อ่านต่อในบทย้อนฐานข้อมูล
- เวอร์ชันใหม่เปลี่ยนหน้าตาตาราง เช่น เพิ่มคอลัมน์หรือรัน migration ไปแล้ว โค้ดตัวเก่าอาจเปิดไม่ขึ้นกับตารางแบบใหม่ ถ้าถอยแล้วแอปยังพัง ให้บอกเอไอด้วยว่าเวอร์ชันที่เพิ่งถอยออกมาแก้ฐานข้อมูลไว้
ถอยแล้วค่อยแก้
การถอยกลับช่วยให้คนยังใช้แอปได้ระหว่างที่แก้ไม่เสร็จ แต่ปัญหายังอยู่ในโค้ด พอเอไอแก้เสร็จก็เอาขึ้นใหม่ด้วยชื่อแอปเดิม แอปจะเดินหน้าไปเป็นเวอร์ชันถัดไปบนลิงก์เดิม ส่วนเวอร์ชันที่ถอยออกมาก็ยังอยู่ในประวัติ เผื่ออยากกลับไปดู
ติดตามบทเรียนใหม่และข่าวจากเอราวัณ