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 ก็คือ มีการแก้บัคเกิดขึ้น ก็จะมาอัพเดทที่ตัวเลขตัวนี้

ประโยชน์ของการเลือกการจัดการเวอร์ชั่นแบบนี้

ข้อดี

  1. การจัดการแบบ Static นั้น สามารถจัดการได้ง่ายกว่าแบบ Dynamic เนื่องจากไม่จำเป็นต้องตั้งคาใดๆ สามารถใส่เวอร์ชั่นลงไปใน tags ของ docker image ได้เลย
  2. ควบคุมเวอร์ชั่นได้ตามที่ทีมต้องการ เพราะทุกครั้งที่จะมีการปล่อยเวอร์ชั่นต่างๆ นั้น จะต้องผ่านการตรวจสอบจากทีมก่อนเสมอ

ข้อเสีย

  1. ทุกอย่างจำเป็นต้องทำอย่าง manual ทำให้เพิ่มงานในทีม
  2. อาจมีข้อผิดพลาด เช่น นับเลขผิด ใส่เวอร์ชั่นไม่ตรง เป็นต้น เกิดขึ้นได้

การปรับปรุงข้อเสียที่เกิดขึ้น

  1. แบ่งหน้าที่รับผิดชอบในทีมให้ดีทำให้งานไม่หนัก
  2. ก่อนจะทำการ build image และการ deploy ต้องมีการตรวจสอบเวอร์ชั่นทุกครั้ง และมีการปรึกษากันในทีมว่าสิ่งที่กำลังจะ update นั้นจะเป็นการปล่อยแบบไหน