JavaRush /Blog Java /Random-VI /Việc phát hành thường xuyên các phiên bản mới của JDK sẽ ...

Việc phát hành thường xuyên các phiên bản mới của JDK sẽ dẫn đến điều gì?

Xuất bản trong nhóm
Đó là một kỷ nguyên thay đổi đối với Java. Các phiên bản JDK giờ đây sẽ được phát hành theo lịch thay vì khi có chức năng mới. Cách tiếp cận này có những ưu và nhược điểm, nhưng những thay đổi đó sẽ ảnh hưởng đến JDK 8 như thế nào? Simon Ritter, nhà truyền giáo Java nổi tiếng, Nhà vô địch Java và Phó CTO tại Azul Systems, giải thích lý do tại sao "Java mới đúng tiến độ" là sự đánh đổi giữa tính ổn định, bảo mật và chi phí.
Việc phát hành thường xuyên các phiên bản JDK mới sẽ dẫn đến điều gì - 1
Năm 2018, những thay đổi đáng kể đang chờ đợi thế giới Java. Như đã thông báo năm ngoái, chúng tôi đang chuyển sang phát hành các phiên bản JDK theo lịch trình, thay vì phát hành các phiên bản khi có chức năng mới. Đây là một tin tuyệt vời vì giờ đây các tính năng mới sẽ được đưa vào các bản phát hành khi chúng đã sẵn sàng và các nhà phát triển sẽ có quyền truy cập vào chúng nhanh hơn nhiều. JDK 10 dự kiến ​​phát hành vào tháng 3 và chúng tôi đã bước vào giai đoạn hai của quá trình sửa lỗi, vì vậy mọi thứ đang diễn ra theo đúng kế hoạch. Yêu cầu Đặc tả Java (JSR) hiện đang được phát triển tích cực và có sẵn để nhận xét công khai. Thậm chí còn có các đề xuất nâng cao JDK (JEP) đã nhắm mục tiêu JDK 11 . Có vẻ như Java đang hoạt động rất tốt.

Thời thế thay đổi

Tuy nhiên, có nhiều thay đổi khác liên quan đến lịch phát hành này sẽ xuất hiện trong năm nay và có thể không dễ chịu bằng. Hơn 22 năm rưỡi, chúng tôi đã quen với thực tế là Java, với tư cách là một nền tảng, có ba thuộc tính cơ bản liên quan trực tiếp đến cách nó được hỗ trợ.
  1. Sự ổn định . Trước đây, các tính năng được thêm vào trong bản phát hành JDK mới, mặc dù đã được kiểm tra kỹ lưỡng nhưng vẫn yêu cầu thử nghiệm trong sản xuất. Điều này đã giúp phát hiện những khuyết điểm cần khắc phục. Để đảm bảo rằng người dùng có thể tiếp tục làm việc với các bản dựng ổn định trong khi thử nghiệm bản dựng mới, các bản cập nhật luôn bị trùng lặp một phần về thời gian.

    Nếu nhìn vào một số bản phát hành gần đây nhất bắt đầu với JDK 6, chúng ta sẽ thấy rằng các bản cập nhật cho JDK 5 tiếp tục được phát hành trong gần 3 năm nữa (chính xác là 2 năm 11 tháng). Với sự ra đời của JDK 7, các bản cập nhật công khai cho JDK 6 đã được phát hành trong một năm 9 tháng. Và các bản cập nhật cho JDK 7 đã được phát hành trong vòng 13 tháng kể từ khi phát hành JDK 8.


  2. Sự an toàn . Các nhóm hỗ trợ và phát triển OpenJDK, Oracle và trước họ là Sun Microsystems (công ty tạo ra Java, ghi chú của biên tập viên) luôn đặt bảo mật nền tảng lên hàng đầu. Như bạn còn nhớ, Java ban đầu được thiết kế cho các thiết bị di động (cụ thể là PDA Star7).



    Một trong những mục tiêu phát triển quan trọng là đảm bảo rằng mã có thể được truyền qua mạng và được thực thi một cách an toàn. Các bản cập nhật được xuất bản thường xuyên cho JDK, bao gồm các bản vá cho các vấn đề bảo mật được phát hiện. Nếu cài đặt những bản cập nhật này ngay sau khi chúng được phát hành, bạn sẽ hoàn toàn an toàn.


  3. Chi phí bằng không . Một trong những điều tuyệt vời về Java là nó luôn là một nền tảng miễn phí, ngay cả trước khi nó được phát hành dưới dạng phần mềm nguồn mở vào năm 2006. Có một số hạn chế nhất định về nơi Java có thể được sử dụng miễn phí bản quyền, nhưng điều này luôn được áp dụng cho các ứng dụng di động và nhúng; đối với máy khách để bàn và máy chủ doanh nghiệp, phiên bản Java hiện tại luôn miễn phí. Một trong những thay đổi đang được tiến hành đối với JDK là việc phát hành các tệp thực thi OpenJDK theo giấy phép GPLv2 với ngoại lệ "Classpath". Giấy phép này không áp đặt bất kỳ hạn chế nào về cách bạn có thể triển khai Môi trường chạy thi hành Java.

Tuy nhiên, những thay đổi trong cách phát triển và phát hành JDK đòi hỏi phải xem xét cẩn thận các kế hoạch di chuyển ứng dụng sang các phiên bản Java mới. Với lịch phát hành mới này, những nỗ lực đảm bảo có sẵn bản cập nhật cho nhiều bản phát hành trước đó có thể không khả thi. Để đáp ứng nhu cầu của hai nhóm người dùng khác nhau (những người yêu cầu tính năng mới nhanh chóng và những người coi trọng sự ổn định lâu dài), Oracle quyết định chuyển sang mô hình hỗ trợ dài hạn (LTS). Các phiên bản cụ thể của JDK sẽ được coi là bản phát hành LTS, nghĩa là chúng sẽ nhận được bản cập nhật trong ba năm. Tất cả các bản phát hành trung gian khác được gọi là Bản phát hành tính năng và chỉ nhận được bản cập nhật trong 6 tháng. Để đồng bộ với hệ thống mới này, JDK 8 được phân loại là bản phát hành LTS. Bản phát hành tiếp theo sẽ là JDK 11, dự kiến ​​ra mắt vào tháng 9 năm 2018. Thay đổi lớn nhất mà mô hình mới này mang lại là các bản cập nhật giữa các bản phát hành sẽ không còn trùng lặp về thời gian nữa . Tôi đặc biệt viết nó bằng chữ in nghiêng đậm vì điều này hoàn toàn rõ ràng. Dưới đây là đồ họa cho thấy tính khả dụng của các bản cập nhật dành cho các bản phát hành JDK lên đến JDK 19.
Việc phát hành thường xuyên các phiên bản mới của JDK - 2 sẽ dẫn đến điều gì?
Trong hình: Vòng đời Java SE – Thời gian biểu trên 5 năm Các bản cập nhật công khai không chồng chéo ("hỗ trợ Cliff") Hỗ trợ thương mại của Oracle Hỗ trợ thương mại mở rộng của Oracle
Vòng đời Java SE - Lịch trình cập nhật công khai trên 5 năm Các bản thực thi công khai chồng chéo không thời gian từ Oracle (Không hỗ trợ) Hỗ trợ thương mại của Oracle Hỗ trợ thương mại mở rộng của Oracle
Là hệ quả trực tiếp của những thay đổi này, nền tảng Java vẫn ổn định, an toàn và miễn phí, nhưng giờ đây bạn phải chọn hai trong ba tính năng này. Trong các lần triển khai Java trong tương lai, cả ba thuộc tính này sẽ không khả dụng cùng lúc.

Hãy để tôi giải thích thêm một chút

Giả sử bạn lo ngại về vấn đề bảo mật (đúng ra bạn phải như vậy), nhưng bạn không muốn tiêu tiền. Trong trường hợp này, bạn cần chuyển sang các phiên bản JDK mới ngay khi chúng được phát hành. Trong trường hợp hỗ trợ không trùng lặp về thời gian (Bản phát hành tính năng và LTS), bạn sẽ phải thực hiện việc này để nhận được các bản sửa lỗi bảo mật mới. Thật không may, nếu không có sự trùng lặp về thời gian, bạn sẽ phải chuyển ngay sang các bản phát hành JDK chưa được thử nghiệm trong quá trình sản xuất, do đó bạn sẽ mất đi sự ổn định trước đó. Một lựa chọn khác là chọn sự ổn định với chi phí bằng 0. Một lần nữa, điều này có thể xảy ra: tất cả những gì bạn phải làm là tiếp tục sử dụng phiên bản LTS trước đó sau khi phiên bản mới được phát hành. Bạn có được sự ổn định tương tự, bạn không phải trả bất kỳ khoản nào nhưng bạn sẽ không nhận được bất kỳ bản vá bảo mật nào vì chúng không còn có sẵn cho bản phát hành này nữa. Cuối cùng, nếu muốn sự ổn định và bảo mật, bạn phải trả phí. Bạn có thể tiếp tục sử dụng bản phát hành LTS trước đó nhưng quyền truy cập vào bảo mật và sửa lỗi sẽ chỉ khả dụng thông qua hợp đồng hỗ trợ thương mại.

Và một khối quảng cáo nhỏ từ tác giả :)

Azul (công ty của tôi) đã tạo một tập hợp các tệp thực thi OpenJDK dưới thương hiệu Zulu Enterprise, được xây dựng từ nguồn, thử nghiệm bằng các thử nghiệm TCK/JCK và thậm chí được phân tích bằng các tiện ích mà chúng tôi đã phát triển để đảm bảo rằng không có lỗi mã nguồn mở do tiêu đề xấu các tập tin. Chúng tôi cung cấp cơ hội tải xuống phiên bản hiện tại miễn phí cũng như hỗ trợ thương mại cho những ai quan tâm. Gần đây chúng tôi đã bắt đầu cung cấp một bộ tùy chọn hỗ trợ mới cho Zulu, nhằm mục đích mang đến cho khách hàng sự linh hoạt tối đa. Chúng tôi muốn cung cấp cho người dùng khả năng di chuyển sang phiên bản JDK mới phù hợp với nhu cầu kinh doanh và khách hàng của họ. Đối với điều này, chúng tôi cung cấp ba tùy chọn hỗ trợ:
  1. Hỗ trợ ngắn hạn (STS). STS cung cấp cho người dùng quyền truy cập nhanh nhất vào các tính năng Java mới, với sự hỗ trợ đầy đủ để chuyển đổi suôn sẻ sang các bản phát hành JDK mới hơn. Zulu Enterprise cung cấp cho các bản phát hành STS quyền truy cập vào các bản sửa lỗi, cập nhật bảo mật và các bản sửa lỗi khác khi cần (“hỗ trợ sản xuất”) trong 12 tháng, cộng thêm 6 tháng hỗ trợ bổ sung tập trung vào hỗ trợ tư vấn và giúp người dùng chuyển sang phiên bản JDK mới hơn ("Hỗ trợ mở rộng"). Điều này tương đương với vòng đời 18 tháng.

  2. Hỗ trợ trung hạn (MTS). Bản phát hành MTS cho phép bạn sử dụng các tính năng mới có sẵn trong các bản phát hành tính năng đang được sản xuất mà không cần phải đợi bản phát hành LTS mới. Azul lên kế hoạch phát hành một MTS mỗi năm giữa các bản phát hành LTS và cung cấp hỗ trợ sản xuất trong 18 tháng sau ngày phát hành LTS có sẵn rộng rãi tiếp theo. Điều này đảm bảo sự chồng chéo về thời gian và quá trình chuyển đổi "suôn sẻ" trong quá trình triển khai sản xuất. Sau khi hỗ trợ sản xuất kết thúc, hỗ trợ mở rộng sẽ được cung cấp thêm 12 tháng.

  3. Hỗ trợ dài hạn (LTS). Nó được cộng đồng OpenJDK cung cấp cho các bản phát hành được coi là LTS và cung cấp 8 năm hỗ trợ sản xuất cộng thêm hai năm hỗ trợ mở rộng.
Đây là một bản vẽ khác để làm cho nó rõ ràng hơn.
Việc phát hành thường xuyên các phiên bản mới của JDK - 3 sẽ dẫn đến điều gì?
Trong hình: Vòng đời Java SE – Thời gian biểu trên 5 năm Oracle Các nhị phân có sẵn công khai (không được hỗ trợ) Hỗ trợ thương mại của Oracle Hỗ trợ thương mại mở rộng Hỗ trợ thương mại mở rộng của Oracle Hỗ trợ thương mại sản xuất Azul Zulu Hỗ trợ thương mại mở rộng Azul Zulu (Thụ động)
Vòng đời Java SE - Lịch trình hơn 5 năm Các bản thực thi công khai từ Oracle (không hỗ trợ) Hỗ trợ thương mại của Oracle Hỗ trợ thương mại mở rộng Hỗ trợ sản xuất thương mại từ Azul Zulu Hỗ trợ thương mại mở rộng (thụ động) từ Azul Zulu
Nếu bạn hiện đang sử dụng JDK 8 mà không có hợp đồng hỗ trợ thương mại và đang giữ cho hệ thống của mình ổn định và bảo mật thông qua các bản cập nhật công khai, bạn có thể muốn nghĩ về những gì mình sẽ làm bắt đầu từ tháng 9. Azul cam kết giúp bạn giải quyết vấn đề này, vì vậy đừng ngần ngại liên hệ với chúng tôi nếu bạn cần hỗ trợ.

kết luận

Một số khía cạnh của nền tảng Java đang thay đổi trong năm nay, hầu hết đều theo chiều hướng tốt hơn. Truy cập nhanh hơn vào các tính năng mới, phát hành mở các tiện ích như Flight Recorder và Mission Control, phát hành các tệp thực thi OpenJDK theo giấy phép GPLv2 với ngoại lệ "Classpath". Tuy nhiên, sự thật đáng buồn là sự hỗ trợ hào phóng miễn phí thông thường dành cho nền tảng Java đang trở thành quá khứ. Java vẫn ổn định, an toàn và miễn phí. Hai trong số ba phẩm chất này là quan trọng nhất đối với bạn và người dùng của bạn?
Việc phát hành thường xuyên các phiên bản mới của JDK - 4 sẽ dẫn đến điều gì?

Giới thiệu về tác giả

Simon Ritter là Phó Giám đốc Kỹ thuật tại Azul Systems. Simon làm việc trong lĩnh vực CNTT từ năm 1984 và có bằng Cử nhân Vật lý của Đại học Brunel ở Anh.

Simon gia nhập Sun Microsystems vào năm 1996 và dành thời gian cho cả việc phát triển và tư vấn về Java. Từ năm 1999, ông đã trình diễn các công nghệ Java cho các nhà phát triển, tập trung vào cả nền tảng Java cốt lõi, máy khách và các ứng dụng nhúng. Hiện tại tại Azul Systems, anh tiếp tục giúp mọi người hiểu rõ hơn về các sản phẩm JVM của Java và Azul. Bạn có thể theo dõi anh ấy trên Twitter: @speakjava .

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION