Launch HN: Diversion (YC S22) ทางเลือก Git แบบคลาวด์เนทีฟ
(news.ycombinator.com)- Diversion คือระบบควบคุมเวอร์ชันที่มุ่งเป้าไปยังรีโพซิทอรีขนาดใหญ่และการทำงานร่วมกันในยุคคลาวด์ โดยผู้ใช้กลุ่มแรกคือผู้พัฒนาเกมที่ต้องการความเรียบง่ายและความสามารถในการขยายระบบ
- Git ถูกสร้างขึ้นในปี 2005 ภายใต้สภาพแวดล้อมที่เครือข่ายช้า โปรเจ็กต์มีขนาดเล็ก และยังไม่มีคลาวด์ จึงมองว่ามีข้อจำกัดเมื่อเทียบกับ ขนาดของรีโพซิทอรี ไฟล์ และจำนวนผู้ใช้พร้อมกัน ในปัจจุบัน
- ระบบควบคุมเวอร์ชันภายในของ Google และ Meta รวมถึงการที่บริษัทบางแห่งในอุตสาหกรรมพัฒนาเกม เซมิคอนดักเตอร์ และบริการการเงินยังใช้ SVN และ Perforce ถูกยกเป็นหลักฐานว่า Git ไม่ได้เหมาะกับทุกองค์กร
- Diversion ทำงานบนสตอเรจแบบกระจาย ฐานข้อมูล, REST API และโครงสร้างพื้นฐานคลาวด์แบบ serverless โดยจัดการงานของรีโพซิทอรี เช่น commit, branch, merge ผ่านการเรียก API
- ขณะนี้ให้บริการแบบ โอเพนเบต้า ทีมขนาดเล็กสามารถเริ่มใช้งานได้ฟรี และกำลังปรับปรุงด้านความเร็ว การผสานกับ CI ปลั๊กอินสำหรับ IDE และเกมเอนจิน รวมถึงการใช้งานให้ดีขึ้น
ข้อจำกัดของ Git ที่ Diversion มุ่งแก้
- Diversion คือ ระบบควบคุมเวอร์ชันแบบคลาวด์เนทีฟ ที่ให้บริการบน diversion.dev
- เดโมแบบรวดเร็วมีให้ดูใน วิดีโอ YouTube
- ผู้ใช้กลุ่มแรกคือผู้พัฒนาเกม และมองว่าจุดแข็งคือความเรียบง่ายและความสามารถในการขยายระบบ
- Git มีบทบาทสำคัญต่อวิวัฒนาการของการพัฒนาซอฟต์แวร์ตลอด 18 ปีที่ผ่านมา แต่ถูกสร้างขึ้นให้เหมาะกับสภาพแวดล้อมในปี 2005 จึงไม่ใช่เครื่องมือที่สมบูรณ์แบบสำหรับผู้ใช้ทุกคน
- ข้อเสียใหญ่ที่สุดปรากฏในรูปของ ความสามารถในการขยายที่จำกัด ในด้านขนาดรีโพซิทอรี ขนาดไฟล์ และจำนวนผู้ใช้พร้อมกัน
- Google และ Meta จึงสร้างระบบควบคุมเวอร์ชันของตนเอง
- บริษัทขนาดใหญ่บางแห่งในวงการพัฒนาเกม เซมิคอนดักเตอร์ และบริการการเงินยังคงใช้เครื่องมือรุ่นเก่าอย่าง SVN และ Perforce
- ความซับซ้อนของ Git ยังอาจนำไปสู่การสูญเสียงานจริงได้
- มีกรณีในสตาร์ทอัพก่อนหน้า ที่นักวิทยาศาสตร์ข้อมูลใช้คำสั่ง Git ผิด ทำให้งานของทีมตลอดหนึ่งเดือนหายไป
- หลังจากนั้นไม่กี่ชั่วโมงจึงกู้คืนได้จากโคลนของรีโพซิทอรีที่ยังไม่ได้อัปเดต
- อย่างไรก็ตาม ฟีเจอร์ branch และ merge ของ Git มีส่วนอย่างมากต่อแนวทางการพัฒนาสมัยใหม่ เช่น feature branch และ CI/CD รวมถึงการเพิ่มความเร็วของนักพัฒนา
วิธีทำงานบนคลาวด์
- Diversion มุ่งเป็นระบบควบคุมเวอร์ชันที่ยังคงฟีเจอร์ branch ของ Git ไว้ แต่ใช้งานง่ายกว่า เร็วกว่า และขยายได้มากกว่า
- นำแนวคิด การทำงานร่วมกันแบบเรียลไทม์ ของเครื่องมือคลาวด์สมัยใหม่มาปรับใช้กับการควบคุมเวอร์ชัน
- สามารถแชร์สถานะระหว่างทำงานได้เหมือน Google Docs และ Figma
- แม้นักพัฒนาไม่ได้อยากเปิดเผยสิ่งที่กำลังทำอยู่เสมอไป แต่ก็อาจมีประโยชน์ในการรับฟีดแบ็กก่อน commit ตรวจจับและป้องกัน merge conflict หรือดูว่าคนอื่นกำลังแก้ส่วนใดของโค้ดเบส
- โครงสร้างภายในอิงกับสตอเรจแบบกระจาย ฐานข้อมูล, REST API และโครงสร้างพื้นฐานคลาวด์แบบ serverless
- งานทั้งหมดของรีโพซิทอรี เช่น commit, branch, merge ถูกจัดการผ่าน การเรียก API
- เดสก์ท็อปไคลเอนต์ซิงก์สถานะระหว่างทำงานก่อน commit ขึ้นคลาวด์แบบเรียลไทม์ด้วย
- ผู้ใช้เข้าถึงได้ผ่าน CLI แบบโต้ตอบ, Web UI และปลั๊กอิน IDE
- ปลั๊กอิน IDE ปัจจุบันรองรับ JetBrains และจะมีการเพิ่มเพิ่มเติมในอนาคต
- Web UI สามารถทำงานพื้นฐานส่วนใหญ่ได้โดยไม่ต้องติดตั้งเดสก์ท็อปไคลเอนต์
- เข้ากันได้กับ Git และสามารถซิงก์กับรีโพซิทอรี Git ที่มีอยู่ได้
- commit ใหม่ของ Diversion จะเข้าไปใน Git และ commit ใหม่ของ Git ก็จะเข้าไปใน Diversion ด้วย
แผนการเปิดเผยและเงื่อนไขการใช้เบต้า
- มีแผนจะเปิดเป็นโอเพนซอร์สเมื่อโค้ดเบสมีความสมบูรณ์มากขึ้น และมีการสร้างไดเรกทอรีรีโพซิทอรีโอเพนซอร์สบนเว็บไซต์แล้ว
- โค้ดของ Diversion เองก็จัดการอยู่บน Diversion
- ขณะนี้สามารถใช้งานได้ในรูปแบบ โอเพนเบต้า และเริ่มใช้งานแบบ self-service ได้โดยกด Get Started
- ใช้งานได้โดยไม่ต้องคุยกับใคร
- ฟรีสำหรับทีมขนาดเล็ก และมีข้อมูลราคาอยู่ที่ pricing
- รายการปรับปรุงที่กำลังดำเนินอยู่คือ ความเร็ว, การผสานกับ CI, ปลั๊กอินสำหรับ IDE และเกมเอนจิน รวมถึงการปรับปรุงการใช้งานอื่น ๆ
1 ความคิดเห็น
ความคิดเห็นบน Hacker News