End-Of-Life (EOL)
Mengapa dan bagaimana rilis Node.js mencapai End-Of-Life
Versi mayor Node.js dirilis, diperbaiki, dan ditetapkan sebagai End-Of-Life mengikuti jadwal yang dapat diprediksi. Karena tidak memungkinkan untuk memelihara semua lini rilis selamanya, setelah periode pemeliharaan yang direncanakan, lini rilis mayor Node.js akan berhenti dipelihara oleh proyek.
Apa yang Terjadi Ketika Suatu Lini Rilis Mencapai EOL
Saat suatu versi mencapai End-Of-Life, artinya versi tersebut tidak lagi menerima pembaruan, termasuk tambalan keamanan. Ini dapat membuat aplikasi yang berjalan pada versi tersebut rentan terhadap masalah keamanan dan bug yang tidak akan pernah diperbaiki.
- Tidak ada lagi perbaikan kerentanan: Ketika rilis keamanan baru mengungkap masalah dan tambalan pada lini mayor yang lebih baru, meskipun kerentanan yang sama memengaruhi versi EOL, tidak akan ada rilis baru untuk mereka. Pengguna yang tetap bertahan di versi EOL dan menggunakan jalur kode yang terdampak akan langsung rentan terhadap serangan yang memanfaatkan kerentanan tersebut.
- Kerusakan pada toolchain: Versi EOL mungkin tidak lagi dapat melakukan dynamic linking dengan versi pustaka bersama yang lebih baru yang menjadi dependensinya, yang dapat menghambat atau merusak pembaruan sistem.
- Perubahan ekosistem: Banyak paket user-land populer menghentikan dukungan untuk versi Node.js yang sudah EOL dari waktu ke waktu. Ketika suatu aplikasi tetap menggunakan paket yang sudah kedaluwarsa, aplikasi tersebut dapat mengalami lebih banyak kerentanan dan bug yang tidak diperbaiki, semakin menjauhi standar ekosistem.
- Masalah kepatuhan: Banyak audit industri melarang penggunaan runtime yang tidak dipelihara.
Versi EOL
| Versi (Kode nama) | Pembaruan Terakhir | Kerentanan | Rincian |
|---|---|---|---|
| v23 | 2Tinggi2Sedang | ||
| v21 | 7Tinggi5Sedang | ||
| v19 | 1Tinggi3Sedang2Rendah | ||
| v18 (Hydrogen) | 15Tinggi19Sedang4Rendah | ||
| v17 | 1Tinggi3Sedang1Rendah | ||
| v16 (Gallium) | 11Tinggi18Sedang4Rendah | ||
| v15 | 1Kritis6Tinggi1Sedang1Rendah | ||
| v14 (Fermium) | 2Kritis16Tinggi16Sedang5Rendah | ||
| v13 | 1Kritis2Tinggi | ||
| v12 (Erbium) | 2Kritis13Tinggi6Sedang3Rendah | ||
| v11 | 3Tinggi1Sedang | ||
| v10 (Dubnium) | 1Kritis12Tinggi3Sedang1Rendah | ||
| v9 | 1Kritis4Tinggi1Sedang1Rendah | ||
| v8 (Carbon) | 1Kritis11Tinggi2Sedang1Rendah | ||
| v7 | 3Tinggi2Sedang | ||
| v6 (Boron) | 16Tinggi12Sedang | ||
| v5 | 15Tinggi8Sedang | ||
| v4 (Argon) | 2Kritis17Tinggi9Sedang | ||
| v0 | 2Kritis |
Dukungan Komersial
Meskipun penggunaan versi EOL memiliki banyak kelemahan, dalam praktiknya banyak organisasi menghadapi batasan yang mencegah peningkatan versi secara langsung, seperti kode warisan (legacy), kebutuhan kepatuhan, atau rantai dependensi yang kompleks. Melalui OpenJS Foundation Ecosystem Sustainability Program, Node.js mendapatkan dukungan dari HeroDevs dan NodeSource untuk menyediakan layanan komersial dalam bentuk perbaikan keamanan.
HeroDevs menyediakan Never-Ending Support (NES) untuk versi Node.js yang telah melewati fase pemeliharaan resmi. Ini mencakup tambalan keamanan, bantuan kepatuhan, dan dukungan teknis untuk menjembatani kebutuhanmu sambil kamu merencanakan strategi peningkatan.
Menggunakan versi EOL melalui dukungan komersial harus dianggap sebagai solusi sementara — tujuan utama tetap untuk meningkatkan ke versi yang masih didukung secara aktif.