Hành trình 20 năm với hơn 200 tỷ lượt tải của JavaScript



  • 20 năm, 200 tỉ lượt tải

    Laurie Voss, COO và co-founder tại NPM (@seldo), đã tweet vào hôm qua rằng các JavaScript package được tải về từ repository của họ lên tới 4 tỷ lượt vào tuần trước. Nếu tính theo năm, thì nó sẽ đặt khoảng 200 tỷ lượt.

    Giống như việc phần mềm open source này vừa tròn tuổi 20 tuổi vào tuần này, những con số trên là một minh chứng cho việc phép màu luôn xảy ra khi cộng đồng các nhà phát triển sẵn sàng công khai chia sẻ với nhau.

    Laurie ước tính rằng có tới 12 triệu nhà phát triển đã click vào và tải xuống. Điều này có nghĩa là hàng năm, mỗi nhà phát triển JavaScript sẽ tải về gần 17,000 component. Hãy tưởng tượng lượng thời gian được tiết kiệm khi không phải code từ con số không mà chỉ việc tải chúng về từ trên mạng.

    Chuỗi cung cấp phần mềm

    Những gì chúng ta đang chứng kiến ở đây là một chuỗi cung ứng phần mềm có hiệu quả. Các open source project đóng góp code cho cộng đồng, đặt nó vào các repository công cộng và sau đó sẽ được các nhóm phát triển tải về trên khắp thế giới để tạo ứng dụng về front-end, back-end hoặc mobile mới.

    Trong một bài tweet thứ hai vào ngày hôm qua, Laurie đã viết: “Vì chúng ta có 12 triệu người dùng nên điều đó có nghĩa là cứ 7 ngày thì có 1000 package được user cài đặt. Trong thực tế, hầu hết các cá nhân cài đặt rất ít, trong khi đó các hộp CI xây dựng cài đặt từ 10 tới cả trăm ngàn package”

    Về cơ bản, có một đội quân robot (các công cụ CI tự động) tải hàng tỷ component từ website. Tuy chúng rất hiệu quả nhưng các team vẫn chưa thật sự sử dụng chúng một cách triệt để.

    Các Repository để “cứu nạn”

    Bởi vì các developer trong một nhóm thường muốn tải các phiên bản giống nhau để bảo đảm tính tương thích, do đó, nhóm phát triển đã quyết định tạo ra Nexus repository manager, bao gồm các tính năng như:

       Caching. Nexus đóng vai trò là nhà kho phụ tùng local cho các nhóm phát triển. Các component mới được tải về một lần duy nhất và lưu trữ tại local. Điều này loại bỏ sự cần thiết phải tải về cùng một package nhiều lần.

       Chia sẻ. Các thành phần chia sẻ trong nội bộ có thể được chia sẻ vô hạn. Nhà phát triển không cần phải đi ra ngoài Internet để tải package của họ.

       Riêng tư hóa. Không phải tất cả các package có thể được chia sẻ ra trên internet. Các đội thường xây dựng các package riêng của họ dù được chia sẻ local nhưng vẫn giữ quyền độc quyền.

    Các công ty tìm kiếm repository manager có thể hướng tới các giải pháp như e-npm – công nghệ tại chỗ được công ty của Laurie bán, chỉ dành riêng cho các package JavaScript. Đối với các công ty có nhóm phát triển đa ngôn ngữ,những repository manager như Nexus Repository OSS cung cấp hỗ trợ đầy đủ miễn phí cho các thành phần của npm và 12 loại khác – bao gồm các thùng chứa Docker. Artifactory của JFrog là một trình repository manager, nhưng người dùng cần phải trả tiền cho hỗ trợ npm cũng như tất cả các định dạng package khác, ngoại trừ các thành phần Java.

    Không phải tất cả các component đều được tải như nhau

    Nghiên cứu tôi đã thực hiện trong những năm trước tại Sonatype đã chứng minh rằng 5.5% (1 trong 18) các component được tải bởi các repository manager luôn có những lỗ hổng bảo mật. Mặc dù phần trăm không phải là rất lớn, hãy nhớ rằng repository manager sẽ chỉ tải xuống một component một lần. Một khi được lưu trữ, việc tải xuống trong tương lai của component đó sẽ là không cần thiết nữa.

    Một phân tích của Sonatype từ hơn 40.000 repository của Nexus cho thấy rằng trung bình một repository nắm giữ trên 1.600 component. Một phân tích sâu hơn về 1600 component đã tìm thấy 192 lỗ hổng bảo mật trong chúng.

    Hiểu được tầm quan trọng của bảo mật, Nexus của Sonatype đã thực hiện việc lưu trữ cục bộ các bộ phận trong năm 2012 bằng cách xác định những lỗ hổng bảo mật đã biết trong kho lưu trữ bộ nhớ cache của nó. Các nhóm phát triển sử dụng chức năng Repository Health Check có thể xác định các component xấu và sau đó chọn sử dụng các phiên bản an toàn hơn. Vào cuối năm 2015, chúng tôi đã tiến thêm một bước nữa với chính sách tự động trong Nexus Firewall – một chủ đề được đề cập nhiều trong các bài viết khác của tôi.

    Sử dụng dữ liệu từ hơn 133.000 trang web, các nhà nghiên cứu từ Đại học Northeastern đã chỉ ra rằng, “37% bao gồm ít nhất một thư viện JavaScript có lỗ hổng bảo mật”. Từ góc độ thư viện, ít nhất 36,7% của jQuery, 40,1% Angular, 86,6% Handlebars , và 87,3% YUI vẫn đang sử dụng các phiên bản dễ bị hacker xâm nhập.

    Có gì sai với 200 tỷ lượt tải xuống?

    Không có gì sai cả. Thật tuyệt vời và tất cả chúng ta đều có thể mừng thành công này với Laurie.

    Đồng thời, nó khiến chúng ta phải suy nghĩ lại những mối quan tâm khác của thời đại chúng ta, bao gồm các mối đe dọa về an ninh mạng, kỹ thuật cũng như là lãng phí tài nguyên.

    Nếu bạn quan tâm đến việc tìm hiểu thêm về repository manager, tôi mời bạn tải xuống Nexus Repository OSS ngay hôm nay. Nó hoàn toàn miễn phí, đầy đủ chức năng và được sử dụng bởi hơn 150.000 đội phát triển trên toàn thế giới.

    LaptrinhX thông qua dzone


Hãy đăng nhập để trả lời
 

Có vẻ như bạn đã mất kết nối tới LaptrinhX, vui lòng đợi một lúc để chúng tôi thử kết nối lại.