Jak bezpieczne jest wykonywanie drobnych aktualizacji JVM?

10

Pracuję nad JVM od lat i bardzo rzadko miałem awarię JVM ... to było około 6 miesięcy temu.

Od tego czasu doświadczyłem około 5 awarii JVM wynikających z 2 wad JVM. Rozwiązanie firmy Oracle zawsze było takie samo ... aktualizacja.

Każde uaktualnienie odbywa się zawsze do i od momentu wydania ... tzn. Najnowszą sugestią Oracle (po potwierdzeniu, że naprawili błąd) było uaktualnienie z wersji 1.6u20 do 1.6u26.

W jaki sposób powinienem aktualizować mniejsze wersje JVM?

Czy to duże wydarzenie, które wymaga ogromnej ilości testów regresji, czy są to bezpieczne aktualizacje, które należy objąć?

Dakotah North
źródło
3
W jakim kontekście będzie działała JVM? Czy używasz go do grania w aplety do gier, czy prowadzisz na nim system informacyjny szpitala? Prawidłowa odpowiedź w dużej mierze zależy od tych informacji.
blubb

Odpowiedzi:

5

To nie powinno być wielkim wydarzeniem uaktualnić wersję moll, a ja nigdy nie doświadczyły problemów.

To powiedziawszy, niesławne problemy z Javą 7 są nieco przerażające, a nawet pomimo tego, że była to poważna aktualizacja wersji, te specyficzne problemy pojawiły się w rzeczywistości w Javie 6 ~ u20 i być może zostały naprawione w wersji u25. Pojawiły się one tylko dlatego, że Java 7 ma domyślnie włączone flagi optymalizacji, których Java 6 nie ma. Gdybyście użyli tych flag w Javie 6, moglibyście doświadczyć nie tylko awarii, ale także nieprawidłowego wykonania pętli , czyli błędów w obliczeniach, z powodu niewielkiej aktualizacji z 6u19 do 6u20 (w przybliżeniu).

Faktem jest, że nikt nie gwarantuje, że zaktualizowana wersja w ogóle będzie działać. JVM, jego środowisko (komputer, system operacyjny) i twoja aplikacja, wszystkie one współdziałają ze sobą, i aby mieć całkowitą pewność, że cały ogromny zbiór rzeczy dobrze się ze sobą współgra, powinieneś wykonać ogromną ilość testów regresji.

Moje podejście do aktualizacji JVM jest podobne do wszystkich aktualizacji: chyba że mam konkretną potrzebę aktualizacji i jeśli nie jest to krytyczna aktualizacja zabezpieczeń, poczekam chwilę i przeczytam doświadczenia innych ludzi w Internecie. Jeśli nikt nie narzeka w ciągu około miesiąca, prawdopodobnie uaktualnienie jest bezpieczne.

Joonas Pulakka
źródło
Czy jest jakieś miejsce, w którym chcesz przeczytać doświadczenia innych ludzi w Internecie?
Dakotah North
@Dakotah North: Nie jest to konkretne miejsce. Wiszące na licznych listach mailingowych (takich jak [email protected] , gdzie w dniu premiery Java 7 pojawiło się powiadomienie o krytycznych problemach), zapewnia mnóstwo tego rodzaju informacji.
Joonas Pulakka
4

Z mojego doświadczenia z korporacyjnymi aplikacjami Java korzyści wynikające z wprowadzenia niewielkich aktualizacji JVM przeważają nad powiązanym ryzykiem.

Jedną z korzyści jest to, że drobne aktualizacje prawie zawsze zawierają poprawki błędów . Zastosowanie tych aktualizacji może faktycznie poprawić stabilność środowisk produkcyjnych. Wystąpiły awarie JVM, w których analiza pierwotnej przyczyny ujawnia, że ​​defekt został już zidentyfikowany i naprawiony w niewielkiej aktualizacji JVM.

Kolejną korzyścią jest to, że drobne aktualizacje często zawierają ulepszenia wydajności . Jednak, jak zauważył @Joonas, ryzykowne jest używanie niesprawdzonych lub eksperymentalnych flag wydajności w każdej aktualizacji (dużej lub mniejszej) bez istotnych testów.

Podobnie jak w przypadku każdej zmiany, najważniejsze jest, aby postępować odpowiedzialnie . Oto kilka praktyk, które stosuję podczas planowania aktualizacji JVM:

  • Uważnie przejrzyj wszystkie informacje o wersji dla każdej drobnej aktualizacji między bieżącą wersją a wersją docelową.
  • Poznaj tolerancję użytkowników na awarie aplikacji i odpowiednio przetestuj regresję. (@Szymon)
  • Badania doświadczeń innych w Internecie (@Joonas)
  • Przygotuj plan wycofania (@Thorbjorn)
Mikrofon
źródło
2

Wokół Oracle Java 1.6 u20 wprowadzono kontrolę bezpieczeństwa ostrzegającą przed „Mieszanym kodem”, co wpłynęło na naszą aplikację dla niektórych użytkowników powodujących awarię. Było to niewielkie ulepszenie i miało duży wpływ na produkcję.

Zawsze bądź przygotowany na wycofanie.


źródło