ป้ายกำกับ: Uncategorized

Tarball: เป็น version control ?Tarball: เป็น version control ?

“Tarball ไม่ใช่ Version Control” ครับ แม้ว่าเราจะสามารถใช้มันเพื่อเก็บสำรองข้อมูลในแต่ละช่วงเวลาได้ก็ตามเพื่อให้เห็นภาพชัดเจน เรามาดูความแตกต่างระหว่าง Tarball ( Backup/Archive ) กับ Version Control Systems ( VCS ) อย่าง Git กันครับ


หน้าที่หลัก ( Primary Function )

  • Tarball: คือการ “ถ่ายรูปนิ่ง” ( Snapshot ) ของไฟล์ ณ เวลานั้น ๆ แล้วแพ็ครวมกันเป็นก้อนเดียวเพื่อความสะดวกในการเก็บหรือเคลื่อนย้าย
  • Version Control ( เช่น Git ): คือการ “บันทึกประวัติการเปลี่ยนแปลง” ( Timeline ) ของไฟล์แต่ละบรรทัด ใครแก้ แก้เมื่อไหร่ และแก้ทำไม

การเปรียบเทียบคุณสมบัติ

คุณสมบัติTarball ( Backup )Version Control ( Git )
การเก็บข้อมูลเก็บไฟล์ทั้งหมดซ้ำ ๆ ใหม่ทุกครั้งเก็บเฉพาะส่วนที่เปลี่ยนแปลง ( Delta )
ประวัติการแก้ไขดูลำดับการแก้ลำบาก ( ต้องไล่เปิดดูทีละไฟล์ )ดู Log ได้ละเอียดว่าบรรทัดไหนเปลี่ยน
การย้อนกลับ ( Rollback )ต้องลบของเก่าแล้วแตกไฟล์ Tarball ทับสั่ง checkout หรือ revert ได้ทันที
การทำงานร่วมกันแก้พร้อมกันไม่ได้ ( ไฟล์จะทับกัน )มีระบบ Branch และ Merge เพื่อรวมงาน
ขนาดพื้นที่เปลืองพื้นที่มากถ้าทำบ่อย ๆประหยัดพื้นที่กว่าเพราะเก็บส่วนต่าง

แล้วทำไมเรายังใช้ Tarball อยู่ ?

ถึงแม้ Tarball จะไม่ใช่ Version Control แต่ในสายงาน System Admin หรือ Developer มันมีหน้าที่ที่ Git ทำไม่ได้ดีเท่า เช่น

  • การ Deployment: เรามักจะ Build Code ที่เสร็จแล้วจาก Git ให้กลายเป็น Tarball เพื่อนำไปแตกไฟล์ ( Extract ) ลงบน Production Server เพราะมันรวมไฟล์ที่จำเป็นไว้ครบในก้อนเดียว
  • Configuration Backup: ก่อนจะแก้ไขไฟล์สำคัญใน /etc/ หรือลง Software ใหม่ ( เช่น Nginx ) การทำ Tarball เก็บไว้เป็น “จุดเซฟ” ที่เร็วที่สุดและปลอดภัยที่สุด เพราะไม่ต้องตั้งค่า Repository ใด ๆ
  • Portability: การส่ง Tarball ให้คนอื่นเหมือนการส่งไฟล์ Zip ที่รักษา Permissions ของไฟล์ระบบไว้ได้ครบถ้วน

สรุป

Tarball คือ “กล่องเก็บของ” ส่วน Version Control คือ “กล้องวงจรปิด” ครับ

ถ้าคุณทำงานคนเดียวและแค่อยากเก็บสำรองไฟล์ Config ก่อนลงมือแก้ การใช้ Tarball ก็เพียงพอและเร็วดีครับ แต่ถ้าเป็นการเขียนโปรแกรมหรือโปรเจกต์ที่มีการแก้ไขต่อเนื่อง การใช้ Git จะมีประสิทธิภาพและปลอดภัยกว่ามาก