Một phân tích mới về phần mềm mã nguồn mở tiết lộ một thực tế đáng kinh ngạc: phần lớn cơ sở hạ tầng số của thế giới phụ thuộc vào các nhà phát triển cá nhân làm việc một mình. Mặc dù phần mềm mã nguồn mở có giá trị kinh tế ước tính 8,8 nghìn tỷ đô la Mỹ theo nghiên cứu của Harvard , phần lớn các dự án chỉ được duy trì bởi một người duy nhất.
Tác động kinh tế:
- Giá trị phần mềm mã nguồn mở được ước tính bởi Harvard : 8,8 nghìn tỷ USD
- Phần lớn giá trị được tạo ra bởi các nhà duy trì cá nhân
- Đa số các nhà duy trì nhận được rất ít hoặc không có bồi thường nào
Quy Mô Của Các Dự Án Một Người
Dữ liệu từ ecosyste.ms , theo dõi 11,8 triệu dự án mã nguồn mở, cho thấy khoảng 7 triệu dự án chỉ có một người duy trì. Con số này trở nên còn đáng kể hơn khi xem xét rằng 4 triệu dự án có số lượng người duy trì không rõ, nhiều trong số đó có thể cũng là những nỗ lực của một người. Mô hình này vẫn đúng ngay cả đối với những gói phần mềm phổ biến nhất mà hàng triệu nhà phát triển dựa vào hàng ngày.
Nhìn cụ thể vào hệ sinh thái NPM , cung cấp dữ liệu phong phú nhất để phân tích, những con số này thật đáng chú ý. Trong số 13.000 gói NPM được tải xuống nhiều nhất (những gói có hơn 1 triệu lượt tải xuống mỗi tháng), gần một nửa được duy trì bởi một người duy nhất. Tỷ lệ 50-50 này giữa các dự án có một và nhiều người duy trì vẫn tồn tại qua các ngưỡng tải xuống khác nhau, chỉ thay đổi khi xem xét các gói có hơn 1 tỷ lượt tải xuống.
Thống kê Dự án Mã nguồn Mở:
- Tổng số dự án được theo dõi: 11,8 triệu
- Dự án có một người duy trì: ~7 triệu (59%)
- Dự án không rõ số lượng người duy trì: 4 triệu
- Dự án NPM một người: 4+ triệu
- Người duy trì NPM duy nhất: ~900.000
- Gói phổ biến (1M+ lượt tải/tháng): 13.000
- Tỷ lệ một người duy trì so với nhiều người duy trì: ~50/50
Thực Tế Làm Việc Quá Sức Và Được Trả Lương Thấp
Cuộc thảo luận cộng đồng tiết lộ những lo ngại sâu sắc về tính bền vững của mô hình này. Nhiều nhà phát triển chỉ ra các ví dụ lịch sử như lỗ hổng Heartbleed , nơi một lỗ hổng bảo mật nghiêm trọng tồn tại trong OpenSSL - phần mềm được duy trì bởi một nhóm thiếu tài trợ nhưng cung cấp năng lượng cho phần lớn mã hóa internet. Mô hình này lặp lại khắp hệ sinh thái: cơ sở hạ tầng thiết yếu được xây dựng và duy trì bởi các tình nguyện viên nhận được rất ít hoặc không có bồi thường nào cho công việc của họ.
Mã nguồn mở, thứ thúc đẩy thế giới, thứ mà Harvard nói có giá trị kinh tế 8,8 nghìn tỷ đô la. Phần lớn nó là một người. Và tôi có thể hứa với bạn rằng không một dự án một người nào trong số đó có đủ lượng tài nguyên họ cần.
Dữ liệu cho thấy trong khi NPM có hơn 4 triệu dự án một người, những dự án này chỉ được duy trì bởi khoảng 900.000 cá nhân - có nghĩa là nhiều nhà phát triển đang xoay xở với nhiều dự án cùng lúc.
Rủi Ro Chuỗi Cung Ứng Và Mối Quan Tâm Địa Chính Trị
Các cuộc thảo luận gần đây tập trung vào quốc tịch của những người duy trì, đặc biệt sau các báo cáo về sự phụ thuộc của Department of Defense vào phần mềm được viết bởi các nhà phát triển từ nhiều quốc gia khác nhau. Tuy nhiên, cộng đồng cho rằng việc tập trung vào địa lý đã bỏ lỡ vấn đề thực sự. Rủi ro chính không phải là nơi một nhà phát triển sống, mà là lỗ hổng cố hữu khi có cơ sở hạ tầng quan trọng phụ thuộc vào những cá nhân làm việc quá sức, thiếu tài nguyên.
Hệ số xe buýt - điều gì xảy ra khi một người duy trì duy nhất trở nên không có sẵn - đưa ra một mối quan tâm trước mắt hơn so với các cân nhắc địa chính trị. Khi những người duy trì từ bỏ dự án, trở nên quá tải, hoặc đơn giản là chuyển sang những sở thích khác, phần mềm họ xây dựng có thể trở thành một trách nhiệm bảo mật hoặc đơn giản là ngừng hoạt động với các hệ thống mới hơn.
Điều Gì Xảy Ra Khi Những Người Duy Trì Biến Mất
Các thành viên cộng đồng chia sẻ nhiều kết quả khác nhau khi những người duy trì đơn lẻ rời khỏi dự án. Đôi khi một nhà phát triển khác fork dự án và tiếp quản việc duy trì. Lần khác, các dự án cạnh tranh xuất hiện để lấp đầy khoảng trống. Trong một số trường hợp, người duy trì ban đầu chuyển giao trách nhiệm cho người khác. Tuy nhiên, nhiều dự án đơn giản trở thành bị bỏ rơi, tạo ra các lỗ hổng bảo mật tiềm ẩn và vấn đề tương thích theo thời gian.
Thách thức mở rộng ra ngoài việc chỉ tìm những người duy trì thay thế. Ngay cả phần mềm hoàn thiện cũng yêu cầu sự chú ý liên tục khi các phụ thuộc thay đổi, lỗ hổng bảo mật xuất hiện, và các hệ thống cơ bản phát triển. Một gói hoạt động hoàn hảo trong nhiều năm có thể đột nhiên bị hỏng khi một phiên bản mới của Python hoặc Node.js được phát hành.
Các Chiến lược Giảm thiểu Rủi ro:
- Vendoring: Sao chép mã nguồn dependency trực tiếp vào các dự án
- Lock files: Sử dụng các file khóa dependency với mã băm mật mã học
- Mirroring: Duy trì các bản sao cục bộ của các dependency quan trọng
- Forking: Tạo các bản sao độc lập khi người bảo trì biến mất
- Code review: Triển khai quy trình đánh giá kỹ lưỡng cho các dependency
Con Đường Phía Trước
Mặc dù không có giải pháp dễ dàng cho thách thức cơ bản này, cộng đồng nhấn mạnh một số cách tiếp cận. Một số nhà phát triển ủng hộ việc vendoring các phụ thuộc - sao chép mã thực tế vào các dự án thay vì dựa vào các gói bên ngoài. Những người khác đề xuất quản lý phụ thuộc tốt hơn thông qua các tệp khóa và checksum địa chỉ nội dung để đảm bảo các bản build có thể tái tạo.
Cuộc thảo luận làm nổi bật một căng thẳng rộng lớn hơn trong phát triển phần mềm hiện đại. Sự tiện lợi của việc nhập hàng chục gói và thư viện đã tạo ra một mạng lưới phức tạp của các phụ thuộc mà ít nhà phát triển hiểu đầy đủ. Cách tiếp cận này, mặc dù cho phép phát triển nhanh chóng, tạo ra các rủi ro hệ thống khi các thành phần quan trọng được duy trì bởi các cá nhân đơn lẻ không có đủ tài nguyên hoặc hỗ trợ.
Cộng đồng mã nguồn mở tiếp tục vật lộn với cách cân bằng tinh thần hợp tác làm cho những dự án này có thể với nhu cầu về cơ sở hạ tầng phần mềm bền vững, an toàn cung cấp năng lượng cho thế giới hiện đại.
Tham khảo: Open Source is one person