1 điểm bởi GN⁺ 2024-01-23 | 1 bình luận | Chia sẻ qua WhatsApp
  • Diversion là một hệ thống quản lý phiên bản nhắm tới các kho lưu trữ quy mô lớn và cộng tác trong kỷ nguyên đám mây; những người dùng đầu tiên là các nhà phát triển game muốn sự đơn giản và khả năng mở rộng
  • Họ cho rằng Git được tạo ra trong bối cảnh năm 2005 với mạng chậm, dự án nhỏ và chưa có đám mây, nên ngày nay bộc lộ giới hạn về quy mô kho lưu trữ, kích thước tệp và số người dùng đồng thời
  • Việc Google và Meta xây dựng hệ thống quản lý phiên bản riêng, cùng với chuyện một số công ty trong lĩnh vực phát triển game, bán dẫn và dịch vụ tài chính vẫn dùng SVN hoặc Perforce, được xem là bằng chứng cho thấy Git không phù hợp với mọi tổ chức
  • Diversion xử lý các thao tác kho lưu trữ như commit, branch và merge dưới dạng lời gọi API trên nền lưu trữ phân tán, cơ sở dữ liệu, REST API và hạ tầng đám mây serverless
  • Hiện dịch vụ đang ở trạng thái open beta; các nhóm nhỏ có thể bắt đầu miễn phí, đồng thời hãng đang cải thiện tốc độ, tích hợp CI, plugin cho IDE và game engine, cũng như khả năng sử dụng

Những giới hạn của Git mà Diversion nhắm tới

  • Diversion là một hệ thống quản lý phiên bản cloud-native được cung cấp tại diversion.dev
    • Có bản demo nhanh qua video YouTube
    • Người dùng đầu tiên là các nhà phát triển game, những người đánh giá cao sự đơn giản và khả năng mở rộng
  • Git đã đóng vai trò lớn trong sự phát triển của phần mềm suốt 18 năm qua, nhưng vì được tạo ra cho môi trường năm 2005 nên không phải công cụ hoàn hảo cho mọi người dùng
  • Nhược điểm lớn nhất là khả năng mở rộng hạn chế, thể hiện ở kích thước kho lưu trữ, kích thước tệp và số lượng người dùng đồng thời
    • Vì lý do này, Google và Meta đã tự xây dựng hệ thống quản lý phiên bản riêng
    • Một số tập đoàn lớn trong các lĩnh vực phát triển game, bán dẫn và dịch vụ tài chính vẫn tiếp tục dùng các công cụ cũ như SVN và Perforce
  • Độ phức tạp của Git cũng có thể dẫn đến mất mát công việc thực tế
    • Ở một startup trước đây, từng có trường hợp một nhà khoa học dữ liệu dùng sai lệnh Git khiến đội mất một tháng làm việc
    • Vài giờ sau, họ đã có thể khôi phục từ một bản clone kho lưu trữ chưa được cập nhật
  • Tuy vậy, tính năng branch và merge của Git đã đóng góp lớn cho các phương thức phát triển hiện đại như feature branch và CI/CD, cũng như giúp tăng tốc độ làm việc của lập trình viên

Cách vận hành dựa trên đám mây

  • Diversion hướng tới một hệ thống quản lý phiên bản giữ lại tính năng branch của Git nhưng dễ hơn, nhanh hơn và có khả năng mở rộng tốt hơn
  • Dịch vụ áp dụng khái niệm cộng tác thời gian thực của các công cụ đám mây hiện đại vào quản lý phiên bản
    • Có thể chia sẻ trạng thái đang làm việc giống như Google Docs và Figma
    • Dĩ nhiên, không phải lúc nào lập trình viên cũng muốn công khai phần việc đang làm, nhưng điều này có thể hữu ích để nhận phản hồi trước khi commit, phát hiện và ngăn ngừa xung đột merge, hoặc xem người khác đang thay đổi phần nào của codebase
  • Cấu trúc nội bộ dựa trên lưu trữ phân tán, cơ sở dữ liệu, REST API và hạ tầng đám mây serverless
    • Mọi thao tác kho lưu trữ như commit, branch và merge đều được xử lý bằng lời gọi API
    • Ứng dụng desktop đồng bộ thời gian thực lên đám mây ngay cả trạng thái đang làm việc trước khi commit
    • Người dùng có thể truy cập qua CLI tương tác, Web UI và plugin IDE
    • Hiện plugin IDE hỗ trợ JetBrains và sẽ còn bổ sung thêm
    • Web UI cho phép thực hiện hầu hết tác vụ cơ bản mà không cần cài ứng dụng desktop
  • Tương thích với Git và có thể đồng bộ với các kho Git hiện có
    • Các commit mới trong Diversion sẽ đi vào Git, và các commit mới trong Git cũng sẽ đi vào Diversion

Kế hoạch công bố và điều kiện dùng beta

  • Họ có kế hoạch phát hành mã nguồn mở khi codebase đủ trưởng thành và website triển khai xong thư mục kho mã nguồn mở
    • Mã của Diversion cũng được quản lý bằng chính Diversion
  • Hiện có thể sử dụng qua open beta; chỉ cần nhấn Get Started là có thể tự bắt đầu
    • Có thể dùng ngay mà không cần nói chuyện với ai
    • Miễn phí cho các nhóm nhỏ, thông tin giá nằm tại pricing
  • Các hạng mục đang được cải thiện gồm tốc độ, tích hợp CI, plugin cho IDE và game engine, cùng các cải tiến khác về khả năng sử dụng

1 bình luận

 
GN⁺ 2024-01-23
Ý kiến Hacker News
  • Cloud-Native Git Alternative

    • Cloud-native là chi tiết triển khai, và không quan trọng trừ khi bạn định bán một hệ thống quản lý phiên bản (VCS) mới dưới dạng phần mềm đóng gói thay vì dịch vụ.
    • Chưa rõ cloud-native giải quyết các vấn đề hằng ngày của người dùng Git như thế nào.
  • The biggest drawback of Git is its limited scalability

    • Thắc mắc về tỷ lệ người dùng thực sự gặp vấn đề mở rộng của Git.
    • Đã từng làm việc ở các công ty có từ hàng trăm đến hàng chục nghìn kỹ sư, nhưng cá nhân chưa bao giờ gặp vấn đề về khả năng mở rộng của Git.
    • Việc dùng monorepo có thể gây ra vấn đề mở rộng, nhưng bản thân monorepo cũng còn gây tranh cãi.
  • Diversion is built on top of distributed storage and databases, accessible via REST API, and runs on serverless cloud infrastructure. Every repository operation is an API call (commit, branch, merge etc.).

    • Từ góc nhìn người dùng, ít ai quan tâm đến giao thức nội bộ.
    • Khi dùng CLI hay UI, giao thức bên dưới không quan trọng.
    • Tò mò về một VCS dựa trên cây cú pháp trừu tượng (AST).
  • most notably in games development, semiconductors and financial services are still using legacy tools like SVN and Perforce

    • Nên tập trung vào việc Git không phù hợp để xử lý tài sản nhị phân quy mô lớn hơn là sự phức tạp của Git.
    • Trích dẫn của Linus Torvalds về việc Git không xử lý tốt các tệp lớn.
  • it was built for a very different world in 2005 (slow networks, much smaller projects, no cloud)

    • Git được thiết kế trong bối cảnh năm 2005, khi mạng chậm, dự án nhỏ hơn nhiều và chưa có cloud.
    • Vì Git là hệ thống phân tán nên lẽ ra nó vẫn phải hoạt động tốt trong môi trường cloud.
    • Việc một data scientist phá hỏng một tháng làm việc bằng lệnh Git sai có vẻ là vấn đề cấu hình.
  • In our previous startup, a data scientist accidentally destroyed a month’s work of his team by using the wrong Git command

    • Nên tập trung vào sản phẩm của mình thay vì chỉ trích Git.
    • Git là VCS phân tán, và vấn đề nằm ở nỗ lực dùng nó theo kiểu tập trung mà không có backup.
  • git is bad we're better

    • Với tư cách là game developer, không thấy hứng thú với đề xuất được đưa ra.
    • Workflow hiện đại với Git LFS đang vận hành trơn tru.
    • Cloud-native được nêu như một tính năng, nhưng lại thiếu chi tiết về hỗ trợ on-premise và private cloud tự host.
    • Artist thích tính năng khóa tệp, còn việc dùng khóa với P4 streams và branch thì khá khó khăn.
  • File locking across branches - coming soon!

    • Tính năng khóa tệp giữa các branch sẽ sớm ra mắt, nhưng đề xuất này vẫn cần cải thiện thêm.
  • Git cli UX made be not great, but the git datastructure of representing commits, branches, trees and blobs as immutable pointers and merkle trees is a phenomenal invention.

    • Cấu trúc dữ liệu của Git là một phát minh đáng kinh ngạc, nhưng không đồng tình với việc mọi lệnh đều phải đi qua REST API.
    • Điểm mạnh của Git là có thể làm việc offline với partial clone, rồi đồng bộ commit khi trực tuyến trở lại.
  • In our previous startup, a data scientist accidentally destroyed a month’s work of his team by using the wrong Git command.

    • Thừa nhận Git cần cải thiện về tính dễ dùng, nhưng sự cố này có vẻ là thất bại trong vận hành phát triển.
    • Cần một đường cong học tập dễ hơn để giới thiệu lợi ích của source control cho người không biết code, trong khi vẫn giữ được các tính năng nâng cao.
  • The world needs a git alternative.

    • Thế giới cần một giải pháp thay thế Git.
    • Git có giới hạn khi nhiều người cùng commit vào một repository mỗi ngày.
    • Nếu Git xử lý rebase tốt hơn, tốc độ làm việc của các nhóm phát triển phần mềm có thể tăng 20%.
  • I get that enterprises will buy anything with "Cloud" or "AI" in the name, but VCS doesn't have anything to do with the cloud.

    • Có quan điểm rằng doanh nghiệp sẽ mua bất cứ thứ gì có chữ "Cloud" hoặc "AI" trong tên.
    • Quan trọng là tập trung vào giải quyết vấn đề thay vì công nghệ.
    • Nếu trải nghiệm người dùng không tốt thì chi tiết kỹ thuật cũng vô nghĩa.
    • Cần chiến lược bán hàng cho một sản phẩm mang lại trải nghiệm giúp rút ngắn thời gian phát triển, giảm lỗi và cải thiện cộng tác.