17 điểm bởi GN⁺ 2024-03-25 | 1 bình luận | Chia sẻ qua WhatsApp
  • Tự host đơn giản: Được thiết kế để việc cài đặt và bảo trì chỉ cần nỗ lực tối thiểu. Ứng dụng được xây dựng để hoạt động mà không cần xử lý các vấn đề nội bộ phức tạp.
  • Khả năng mở rộng theo chiều ngang: Với kiến trúc đơn giản nhưng mạnh mẽ, Lapdev có thể mở rộng từ một máy đơn lẻ đến cả một fleet máy chủ, cung cấp hệ thống quản lý môi trường phát triển có thể phát triển cùng đội ngũ lập trình viên khi nhóm lớn dần.
  • Môi trường phát triển được định nghĩa bằng code: Sử dụng đặc tả mở Devcontainer để định nghĩa môi trường phát triển bằng code, giúp tái tạo môi trường phát triển chuẩn hóa giữa các lập trình viên khác nhau, tránh các vấn đề liên quan đến môi trường và đảm bảo cấu hình nhất quán cho mọi người.
  • Tiết kiệm thời gian onboarding: Khi onboarding lập trình viên vào một dự án mới, không còn cần mất hàng giờ hoặc hàng ngày để chuẩn bị môi trường trên máy. Có thể bắt đầu code ngay lập tức.

Tính năng dự kiến

  • Hỗ trợ nhiều loại workspace: Hiện tại Lapdev chỉ hỗ trợ workspace dựa trên container, nhưng điều này có thể bị hạn chế, chẳng hạn khi muốn chạy cụm k8s trong luồng phát triển. Hỗ trợ VM và máy bare metal nằm trong roadmap, cùng với kế hoạch hỗ trợ nhiều hệ điều hành như Windows, Linux, macOS. Nhờ đó, lập trình viên có thể phát triển và debug trên cùng một máy cục bộ mà không cần chuyển đổi máy.

Ý kiến của GN⁺

  • Lapdev là công cụ giúp các lập trình viên dễ dàng thiết lập và quản lý môi trường phát triển từ xa trên máy chủ riêng hoặc cloud của họ, qua đó nâng cao hiệu quả nhờ chuẩn hóa môi trường phát triển và rút ngắn thời gian onboarding.
  • Các công cụ như vậy có thể đặc biệt hữu ích với các nhóm phát triển quy mô lớn hoặc các tổ chức triển khai đồng thời nhiều dự án khác nhau, vì chúng cung cấp khả năng mở rộng đồng thời vẫn duy trì tính nhất quán của môi trường phát triển.
  • Tuy nhiên, trước khi áp dụng công nghệ này, có thể cần cân nhắc các yếu tố liên quan đến bảo mật, khả năng tương thích và hỗ trợ, cũng như gánh nặng bảo trì bổ sung có thể phát sinh khi sử dụng giải pháp tự host.
  • Hiện trên thị trường cũng có những công cụ khác cung cấp chức năng tương tự, chẳng hạn như Remote Development Extensions của Visual Studio Code, và người dùng nên chọn công cụ phù hợp nhất với nhu cầu của mình.
  • Việc Lapdev đang lên kế hoạch hỗ trợ VM và máy bare metal có thể được xem là một phần trong nỗ lực đáp ứng các nhu cầu đa dạng của môi trường phát triển, qua đó mang đến cho lập trình viên nhiều lựa chọn hơn.

1 bình luận

 
GN⁺ 2024-03-25

Ý kiến trên Hacker News

  • Việc có thể dùng các dev container (devcontainers) trên phần cứng máy chủ cục bộ mà không phải trả phí hàng tháng có vẻ rất tuyệt. Đến nay tôi vẫn dùng Docker-compose và phát triển từ xa qua SSH của JetBrains, nhưng hy vọng cách mới này sẽ tốt hơn nhiều.

  • Tôi có quan tâm đến môi trường phát triển từ xa, nhưng không quá hào hứng với việc phải quản lý thêm phần mềm trên cloud. Tôi nghĩ đây là một ý tưởng hay vì có thể dùng Skypilot với plugin cho API cloud để khởi chạy máy phát triển mà không cần quản lý cụm k8s. Nó hoạt động tốt hơn để khởi chạy máy chủ Jupyter, nhưng một máy phát triển “đầy đủ” dường như cũng khả thi chỉ với một vài cấu hình SSH/VS Code.

  • Môi trường phát triển từ xa có thể bị giới hạn đối với một số kiểu phát triển nhất định. Ví dụ, phát triển ứng dụng iOS và Android có thể khá khó, hoặc trong phát triển game cần GPU thì việc tải xuống build artifact có thể chậm. Tôi tự hỏi liệu có hướng dẫn nào để giải quyết những vấn đề này không.

  • Tôi muốn tìm hiểu thêm về các công cụ kiểu này. Tôi thấy Coder có bao gồm hỗ trợ alpha cho .devcontainer, nhưng ngoài ra tôi không biết các lựa chọn OSS nào khác.

  • Nếu dùng thiết lập Proxmox thì bạn chỉ cần nhân bản VM/container hiện có rồi trỏ VSCode vào đó. Vậy cái này thực sự bổ sung điều gì? Không phải tự động hóa (trong Proxmox có thể tự động hóa vài cú nhấp chuột), cũng không phải quản lý tài nguyên (Proxmox đã xử lý storage, v.v.). Là danh tính nhà phát triển chăng? Nếu đó là thứ duy nhất cần thiết thì có lẽ nên viết một script (khá đơn giản) để triển khai khóa SSH vào các môi trường.

  • Từ trải nghiệm từng phải cài cả code-server và SSH, với VSCode được host trên máy từ xa, thì một trải nghiệm mà cả hai thứ đều được quản lý tốt hơn là rất đáng quan tâm.

  • Một triển khai khác trong lĩnh vực này là devpod.sh.

  • Xin góp ý về thiết kế: hãy căn giữa văn bản trên nút để nó trông giống một cái nút hơn. Nếu căn trái thì nó có thể trông giống nhãn hơn, nên đây là thay đổi nhỏ nhưng có thể cải thiện chuyển đổi tốt hơn.

  • Tôi hiểu là nó được cài trên máy chủ từ xa. Nhưng đây là thứ cung cấp môi trường từ xa hay môi trường cục bộ? Và trong ngữ cảnh này, “môi trường” nghĩa là gì? Là file Docker compose và .env sao? Là code hoặc cấu hình vim? Hay là một VM như Vagrant?

  • Vấn đề chính hiện nay của devcontainers là khi chạy ứng dụng GUI từ xa thì GUI chỉ mở trên chính máy chủ. Tôi muốn biết liệu giải pháp này có thể xuất GUI ra từ xa hay không.