JavaRush /בלוג Java /Random-HE /למה תוביל ההפצה התכופה של גרסאות חדשות של ה-JDK?

למה תוביל ההפצה התכופה של גרסאות חדשות של ה-JDK?

פורסם בקבוצה
זה עידן של שינוי עבור Java. גרסאות JDK ישוחררו כעת על פי לוח זמנים ולא כאשר פונקציונליות חדשה תהיה זמינה. לגישה הזו יש יתרונות וחסרונות, אבל איך שינויים כאלה ישפיעו על JDK 8? סיימון ריטר, אוונגליסט ג'אווה נודע, אלוף ג'אווה ו-CTO עמית ב- Azul Systems, מסביר מדוע "ג'אווה החדשה על לוח הזמנים" היא פשרה בין יציבות, אבטחה ועלות.
למה תוביל ההפצה התכופה של גרסאות חדשות של ה-JDK - 1
בשנת 2018, שינויים משמעותיים ממתינים לעולם ג'אווה. כפי שהוכרז בשנה שעברה, אנו עוברים לשחרור גרסאות JDK על בסיס מתוזמן, במקום לשחרר גרסאות כאשר פונקציונליות חדשה הופכת זמינה. אלו חדשות נהדרות מכיוון שכעת תכונות חדשות ייכללו במהדורות כשהן מוכנות, ולמפתחים תהיה גישה אליהן הרבה יותר מהר. JDK 10 מתוכנן לצאת במרץ, וכבר נכנסנו לשלב שני של תיקוני באגים, כך שהכל מתנהל לפי התוכנית. בקשת המפרט של Java (JSR) כבר נמצאת בפיתוח פעיל וזמינה להערות הציבור. יש אפילו הצעות לשיפור JDK (JEP) שכבר מכוונות ל-JDK 11 . נראה ש-Java מתפקד מצוין.

זמנים משתנים

עם זאת, ישנם שינויים רבים אחרים הקשורים ללוח הזמנים של השחרור הזה, שיבואו לידי ביטוי השנה, ואולי לא יהיו נעימים כל כך. במשך 22 שנים וחצי, הצלחנו להתרגל לעובדה שלג'אווה, כפלטפורמה, יש שלושה מאפיינים בסיסיים הקשורים ישירות לאופן התמיכה בה.
  1. יציבות . בעבר, תכונות שנוספו עם מהדורה חדשה של ה-JDK, למרות שנבדקו ביסודיות, דרשו בדיקה בייצור. זה עזר לזהות ליקויים שהצריכו תיקון. כדי להבטיח שמשתמשים יוכלו להמשיך לעבוד עם בנייה יציבה תוך כדי בדיקת גרסה חדשה, העדכונים תמיד היו חופפים חלקית בזמן.

    אם נסתכל על המהדורות האחרונות שמתחילות ב-JDK 6, אנו רואים שהעדכונים ל-JDK 5 המשיכו להשתחרר עוד כמעט 3 שנים (שנתיים ו-11 חודשים ליתר דיוק). עם הצגת JDK 7, עדכונים ציבוריים עבור JDK 6 שוחררו למשך שנה ו-9 חודשים. ועדכונים עבור JDK 7 שוחררו תוך 13 חודשים מההוצאה של JDK 8.


  2. בטיחות . צוותי הפיתוח והתמיכה של OpenJDK, אורקל, ולפניהם Sun Microsystems (החברה שיצרה את Java, הערת העורך) תמיד שמו את אבטחת הפלטפורמה בראש סדר העדיפויות. כזכור, Java נועדה במקור למכשירים ניידים (בפרט, מחשבי כף יד Star7).



    אחת ממטרות הפיתוח המרכזיות הייתה להבטיח שניתן יהיה להעביר קוד דרך הרשת ולהפעיל אותו בצורה מאובטחת. עדכונים מתפרסמים באופן קבוע עבור JDK, הכוללים תיקונים לבעיות אבטחה שהתגלו. אם תתקין עדכונים אלה מיד לאחר שחרורם, תהיה בטוח לחלוטין.


  3. עלות אפס . אחד הדברים הגדולים ב-Java הוא שהיא תמיד הייתה פלטפורמה חינמית, עוד לפני שהיא שוחררה כתוכנת קוד פתוח ב-2006. היו הגבלות מסוימות לגבי המקום שבו ניתן להשתמש ב-Java ללא תמלוגים, אבל זה תמיד חל על יישומים ניידים ומשובצים; עבור לקוחות שולחניים ושרתים ארגוניים, הגרסה הנוכחית של Java תמיד הייתה חינמית. אחד השינויים שכבר החלו ב-JDK הוא שחרור קובצי ההפעלה של OpenJDK תחת רישיון GPLv2 עם החריג "Classpath". רישיון זה אינו מטיל הגבלות כלשהן על האופן שבו תוכל לפרוס את Java Runtime Environment.

עם זאת, שינויים באופן הפיתוח והשחרור של ה-JDK דורשים שיקול זהיר של תוכניות להעברת יישומים לגרסאות חדשות של Java. עם לוח הזמנים של מהדורות חדש זה, המאמצים להבטיח שעדכונים זמינים עבור מספר מהדורות קודמות עשויות שלא להיות מעשיות. כדי לענות על הצרכים של שתי קבוצות שונות של משתמשים (אלו שדורשים תכונות חדשות במהירות וכאלה שמעריכים יציבות ארוכת טווח), החליטה אורקל לעבור למודל תמיכה ארוך טווח (LTS). גרסאות ספציפיות של ה-JDK ייחשבו למהדורות LTS, כלומר הן יקבלו עדכונים למשך שלוש שנים. כל שאר מהדורות הביניים נקראות Feature releases ומקבלות עדכונים למשך 6 חודשים בלבד. כדי לשמור על סנכרון עם המערכת החדשה הזו, JDK 8 סווג כגרסת LTS. המהדורה הבאה תהיה JDK 11, שתוכננה לספטמבר 2018. השינוי הגדול ביותר שהדגם החדש הזה מביא הוא שהעדכונים בין מהדורות לא יחפפו עוד בזמן . שמתי את זה במפורש באותיות מודגשות כי זה היה ברור לחלוטין. הנה גרפיקה המציגה את הזמינות של עדכונים עבור מהדורות JDK עד JDK 19.
למה תוביל ההוצאה התכופה של גרסאות חדשות של JDK - 2?
באיור: מחזור חיים של Java SE – לוח זמנים של 5+ שנים עדכונים ציבוריים אפס חפיפה ("צוק תמיכה") תמיכה מסחרית של Oracle תמיכה מסחרית מורחבת של Oracle
מחזור חיים של Java SE - עדכונים ציבוריים של לוח זמנים של 5+ שנים אפס זמן חפיפה לקובצי הפעלה ציבוריים מ-Oracle (ללא תמיכה) תמיכה מסחרית של Oracle תמיכה מסחרית מורחבת של Oracle
כתוצאה ישירה מהשינויים הללו, פלטפורמת Java עדיין יציבה, מאובטחת וחינמית, אך כעת עליך לבחור שתיים משלוש התכונות הללו. בפריסות עתידיות של Java, כל שלושת המאפיינים לא יהיו זמינים בו-זמנית.

תן לי להסביר קצת יותר

נניח שאתה מודאג מאבטחה (כמו שאתה צריך להיות), אבל אתה לא רוצה להוציא כסף. במקרה זה, עליך לעבור לגרסאות JDK חדשות ברגע שהן משוחררות. במקרים בהם התמיכה אינה חופפת בזמן (מהדורות תכונות ו-LTS), תצטרך לעשות זאת על מנת לקבל תיקוני אבטחה חדשים. למרבה הצער, ללא חפיפת הזמן, תצטרכו לעבור מיידית למהדורות JDK שעדיין לא נבדקו בייצור, כך שתאבדו את היציבות הקודמת. אפשרות נוספת היא לבחור ביציבות בעלות אפסית. שוב, זה אפשרי: כל מה שאתה צריך לעשות הוא להמשיך להשתמש בגרסת ה-LTS הקודמת לאחר שחרור הגרסה החדשה. אתה מקבל את היציבות שאתה מכיר, אתה לא צריך לשלם כלום, אבל לא תקבל שום תיקוני אבטחה מכיוון שהם אינם זמינים יותר עבור מהדורה זו. לבסוף, אם אתה רוצה יציבות וביטחון, אתה צריך לשלם. אתה יכול להמשיך להשתמש במהדורת ה-LTS הקודמת, אך גישה לאבטחה ולתיקוני באגים תהיה זמינה רק באמצעות חוזה תמיכה מסחרי.

ובלוק פרסום קטן מהסופר :)

Azul (החברה שלי) יצרה קבוצה של קובצי הפעלה של OpenJDK תחת המותג Zulu Enterprise, שנבנו ממקור, נבדקו עם מדדי TCK/JCK, ואפילו נותחו עם כלי עזר שפיתחנו כדי להבטיח שאין פגמים בקוד הקוד הפתוח עקב קבצי כותרת גרועים. . אנו מספקים הזדמנות להוריד את הגרסה הנוכחית בחינם, כמו גם תמיכה מסחרית למעוניינים. לאחרונה התחלנו להציע סט חדש של אפשרויות תמיכה עבור Zulu, שמטרתן לספק ללקוחות גמישות מרבית. אנו רוצים לספק למשתמשים את היכולת לעבור לגרסה חדשה של ה-JDK המתאימה לצרכי העסק והלקוח שלהם. לשם כך, אנו מספקים שלוש אפשרויות תמיכה:
  1. תמיכה לטווח קצר (STS). STS מעניק למשתמשים את הגישה המהירה ביותר לתכונות Java חדשות, עם מספיק תמיכה למעבר חלק למהדורות JDK חדשות יותר. Zulu Enterprise מספקת למהדורות STS גישה לתיקוני באגים, עדכוני אבטחה ותיקונים אחרים לפי הצורך ("תמיכה בייצור") למשך 12 חודשים, בתוספת 6 חודשים של תמיכה נוספת המתמקדת בייעוץ תמיכה ועזרה למשתמשים לעבור לגרסה חדשה יותר של JDK ("תמיכה מורחבת"). זה מסתכם במחזור חיים של 18 חודשים.

  2. תמיכה לטווח בינוני (MTS). מהדורות MTS מאפשרות לך להשתמש בתכונות חדשות הזמינות במהדורות תכונות בייצור מבלי להמתין לגרסה חדשה של LTS. Azul מתכננת מהדורת MTS אחת לשנה בין מהדורות LTS ומספקת תמיכה בייצור למשך 18 חודשים לאחר תאריך ההשקה הכללי הבא של ה-LTS. זה מבטיח חפיפה בזמן ומעבר "חלק" במהלך פריסת הייצור. לאחר סיום התמיכה בייצור, ניתנת 12 חודשים נוספים של תמיכה מורחבת.

  3. תמיכה ארוכת טווח (LTS). הוא מסופק עבור מהדורות הנחשבות ל-LTS על ידי קהילת OpenJDK ומספק 8 שנות תמיכה בייצור עם שנתיים נוספות של תמיכה מורחבת.
הנה עוד ציור כדי להבהיר את זה.
למה תוביל ההפצה התכופה של גרסאות חדשות של JDK - 3?
באיור: מחזור חיים של Java SE – 5+ שנים לוח זמנים של Oracle בינאריים זמינים לציבור (לא נתמכים) תמיכה מסחרית של Oracle תמיכה מסחרית של Oracle תמיכה מסחרית מורחבת של Azul Zulu תמיכה מסחרית Azul Zulu תמיכה מסחרית מורחבת (פסיבית)
מחזור חיים של Java SE - לוחות זמנים של 5 שנים ומעלה פריטי הפעלה ציבוריים מ-Oracle (ללא תמיכה) תמיכה מסחרית של Oracle תמיכה מסחרית של Oracle תמיכה מסחרית של Oracle תמיכה בייצור מסחרי מ- Azul Zulu תמיכה מסחרית מורחבת (פסיבית) מאת Azul Zulu
אם אתה משתמש כרגע ב-JDK 8 ללא חוזה תמיכה מסחרי ושומר על המערכת שלך יציבה ומאובטחת באמצעות עדכונים ציבוריים, אולי תרצה לחשוב מה תעשה החל מספטמבר. Azul מחויבת לעזור לך בכך, אז אל תהסס לפנות אלינו אם אתה זקוק לתמיכה.

מסקנות

מספר היבטים של פלטפורמת Java משתנים השנה, רובם לטובה. גישה מהירה יותר לתכונות חדשות, שחרור פתוח של כלי שירות כגון Flight Recorder ו-Mision Control, שחרור של קובצי הפעלה של OpenJDK תחת רישיון GPLv2 עם החריג "Classpath". עם זאת, האמת העצובה היא שהתמיכה החינמית הנדיבה הרגילה בפלטפורמת Java הופכת לנחלת העבר. Java עדיין יציבה, מאובטחת וחינמית. אילו שתיים משלוש התכונות האלה הכי חשובות לך ולמשתמשים שלך?
למה תוביל ההפצה התכופה של גרסאות חדשות של JDK - 4?

על הסופר

סיימון ריטר הוא סגן המנהל הטכני ב- Azul Systems. סיימון עוסק בתחום ה-IT מאז 1984 ובעל תואר ראשון בפיזיקה מאוניברסיטת ברונל בבריטניה.

סיימון הצטרף ל-Sun Microsystems ב-1996 ובילה זמן בפיתוח Java וגם בייעוץ. מאז 1999, הוא מדגים טכנולוגיות Java למפתחים, תוך התמקדות הן בפלטפורמת הליבה של Java והן באפליקציות לקוח ויישומים משובצים. כעת ב- Azul Systems, הוא ממשיך לעזור לאנשים להבין טוב יותר את מוצרי Java ומוצרי JVM של Azul. אתה יכול לעקוב אחריו בטוויטר: @speakjava .

הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION