Versioning - trabnm1313/SDTP GitHub Wiki
ฝั่ง Docker image
การใส่เวอร์ชั่นจะใส่ผ่าน tags ของ Docker image โดยจะเป็นแบบ Static ที่ทางทีมจะเป็นคนกำหนดและอยู่ในรูปแบบ X.X.X
เช่น 1.3.4
Frontend
ความหมายคือ
- จุดตัวแรก (
1
ในตัวอย่าง) หมายถึงหากมีการปล่อย Major Update ก็คือ มีการเพิ่มหน้าใหม่สำหรับ features ตัวใหม่ ก็จะมาอัพเดทที่ตัวเลขตัวนี้ - จุดตัวที่สอง (
3
ในตัวอย่าง) หมายถึงหากมีการปล่อย Minor Update ก็คือ มีการเพิ่มเติม component ใหม่ในหน้าเดิม ปรับแต่งสี เปลี่ยนรูปแบบ เป็นต้น ก็จะมาอัพเดทที่ตัวเลขตัวนี้ - จุดตัวที่สาม (
4
ในตัวอย่าง) หมายถึงหากมีการปล่อย Patch ก็คือ มีการแก้บัคเกิดขึ้น ก็จะมาอัพเดทที่ตัวเลขตัวนี้
Backend
ความหมายคือ
- จุดตัวแรก (
1
ในตัวอย่าง) หมายถึงหากมีการปล่อย Major Update ก็คือ มีการเพิ่ม API สำหรับ features ตัวใหม่ ก็จะมาอัพเดทที่ตัวเลขตัวนี้ - จุดตัวที่สอง (
3
ในตัวอย่าง) หมายถึงหากมีการปล่อย Minor Update ก็คือ มีการเพิ่มเติมหรือปรับปรุง API ให้ดีขึ้นโดยแก้ไขจาก API ตัวเก่า ก็จะมาอัพเดทที่ตัวเลขตัวนี้ - จุดตัวที่สาม (
4
ในตวอยาง) หมายถึงหากมีการปล่อย Patch ก็คือ มีการแก้บัคเกิดขึ้น ก็จะมาอัพเดทที่ตัวเลขตัวนี้
ประโยชน์ของการเลือกการจัดการเวอร์ชั่นแบบนี้
ข้อดี
- การจัดการแบบ Static นั้น สามารถจัดการได้ง่ายกว่าแบบ Dynamic เนื่องจากไม่จำเป็นต้องตั้งคาใดๆ สามารถใส่เวอร์ชั่นลงไปใน tags ของ docker image ได้เลย
- ควบคุมเวอร์ชั่นได้ตามที่ทีมต้องการ เพราะทุกครั้งที่จะมีการปล่อยเวอร์ชั่นต่างๆ นั้น จะต้องผ่านการตรวจสอบจากทีมก่อนเสมอ
ข้อเสีย
- ทุกอย่างจำเป็นต้องทำอย่าง manual ทำให้เพิ่มงานในทีม
- อาจมีข้อผิดพลาด เช่น นับเลขผิด ใส่เวอร์ชั่นไม่ตรง เป็นต้น เกิดขึ้นได้
การปรับปรุงข้อเสียที่เกิดขึ้น
- แบ่งหน้าที่รับผิดชอบในทีมให้ดีทำให้งานไม่หนัก
- ก่อนจะทำการ build image และการ deploy ต้องมีการตรวจสอบเวอร์ชั่นทุกครั้ง และมีการปรึกษากันในทีมว่าสิ่งที่กำลังจะ update นั้นจะเป็นการปล่อยแบบไหน