C2019D07: Software updates februari 2019
Aankondigingen
Aankondiging: Software onderhoud hosting omgeving
Beste Klant / collega
(Is dit bericht niet goed leesbaar? Bekijk dan hier de online versie.)
Bij deze vragen we aandacht voor het volgende:
-
Overgang van Oracle java naar AdoptOpenJDK versie
-
Uitfaseren van oude Maxmind GeoIP databases
-
Upgrade van ffmpeg-2 en ffmpeg-3 naar ffmpeg-4.
-
Upgrade van passenger-5 naar passenger-6
-
Upgrade van Python-3.6 naar Python-3.7
-
Upgrade van ImageMagick-6 naar ImageMagick-7 en bekende kwetsbaarheden in ghostscript
-
Upgrade van apache_mod_smooth_streaming-1.7 naar 1.9
-
End Of Life van PHP-5.3 en PHP-5.6
-
End Of Life kalender van overige software componenten
-
Reguliere software updates
Overgang van Oracle java naar AdoptOpenJDK versie
Zoals eerder aangekondigd is Oracle in januari van dit jaar opgehouden met het supporten van java 8. Daarom stappen we over van de oracle variant naar AdoptOpenJDK. Vorige maand is dat met alle instanties in de testomgeving gebeurd. Deze maand is het de beurt aan de productieomgeving. Dat betekent dat zaken als POMS, Elasticsearch en graylog voortaan op basis van AdoptOpenJDK zullen draaien. Omdat beide versies onderling uitwisselbaar zijn verwachten we daar geen problemen mee. Daarnaast bieden we met ingang van heden naast java 8 ook java 11 aan. Op de upload servers is naast een runtime environment (“jre”) ook een volledige development kit (“jdk”) beschikbaar met daarin tools als jar, javac, jdb en jconsole. Dit was op basis van oracle jdk-1.8 en wordt nu OpenJDK-11.
Uitfaseren van oude Maxmind GeoIP databases
Maxmind (het bedrijf achter de geolocation op basis van IP databases) is opgehouden met het aanbieden van een aantal legacy GeoIP versie 1 databases. Dit betreft “GeoIPASNum.dat”, “GeoIPCity.dat” en de IPv6 databases. De belangrijkste database in dit rijtje (“GeoIP.dat”, die een IPv4 adres vertaalt naar een landcode) is nog wél beschikbaar, maar omdat Maxmind bezig is alles om te bouwen naar hun nieuwe versie 2 formaat (“GeoIP2”) raden we gebruikers van de maxmind databases aan om hun code aan te passen naar de nieuwe databases. In PHP kan daar de MaxMind-DB-Reader extension voor gebruikt worden, welke wij bundelen met php-7. Meer informatie over het gebruik van de nieuwe maxmind code staat op de NPO hosting wiki.
Upgrade van ffmpeg-2 en -3 naar ffmpeg-4
In de vorige update ronde heeft een migratie plaatsgevonden van niet meer gesupporte ffmpeg versies naar de dichtsbijzijnde wel gesupporte versie. Nu is het moment aangebroken om de drie versies die nog overbleven (ffmpeg-2, -3 en -4) terug te brengen naar één versie: ffmpeg-4. Omdat de verschillen in API tussen bovenstaande ffmpeg versies klein zijn verwachten we daar geen problemen mee. Het grootste verschil is de zgn “AAC” encoder. In oudere versies van ffmpeg is “libfaac” de aangewezen encoder daarvoor, terwijl in nieuwere versies deze vervangen is door de “aac” encoder. Dat betekent dat aanroepen waarin staat “-c:a libfaac” vervangen dienen te worden door “-c:a aac”
Upgrade van passenger-5 naar passenger-6
In Ruby-on-rails sites zit een stukje middleware genaamd “Passenger” wat dient als verbindingsschakel tussen de webserver en de ruby code. Veel (oude) Ruby-on-rails sites draaien nog met een oudere versie van passenger (versie 4) omdat ze niet met de nieuwere versie 5 kunnen samenwerken. Nieuwere sites maken wel gebruik van versie 5. Deze zullen we upgraden naar passenger-6. Hiervoor zijn geen wijzigingen in de ruby code nodig.
Upgrade van Python-3.6 naar Python-3.7
Wij bieden zowel Python-2.7 als Python-3 aan. De Python-3 tak wordt ge-upgrade van 3.6 naar 3.7 waarmee Python-3.6 verdwijnt. Aangezien 3.7 voldoende backwards compatible is met 3.6 verwachten we daar geen problemen mee. Waar nodig zullen we contact met gebruikers van Python-3.6 opnemen, bijvoorbeeld om even “pip install” voor Python-3.7 modules te doen.
Upgrade van ImageMagick-6 naar ImageMagick-7 en bekende kwetsbaarheden in ghostscript
ImageMagick wordt veel gebruikt om plaatjes te converteren. In php
leveren we een gebundelde
ImageMagick, maar het is ook mogelijk om op de command line losse
ImageMagick commando's aan te roepen. Het bekendste voorbeeld daarvan
is een programma genaamd “convert”. Indien dit zonder expliciet pad
wordt gedaan is dat de systeem default, /usr/bin/convert
.
Dat is nu nog op basis van ImageMagick-6, maar wordt ge-upgrade naar
ImageMagick-7. Tijdelijk zullen we versie 6 en 7 naast elkaar leveren,
waarbij versie 6 nog te bereiken is via /local/ImageMagick6/
en versie 7
(ook) via /local/ImageMagick7/
. Er zijn verschillen in
aanroep tussen beide versies, dus testen is een goed idee.
Een scenario zou kunnen zijn om waar nu gerefereerd wordt aan convert
alvast te gaan refereren aan /local/ImageMagick6/bin/convert
.
Dat geeft dan tijd om rustig te kijken wat er eventueel veranderd moet
worden om om te gaan van versie 6 naar 7.
ImageMagick-6 bieden we nog aan tot medio 2019.
Los van de versie (6 of 7) wordt ImageMagick ook vaak gebruikt om postscript en pdf naar image formaten als png te converteren. ImageMagick gebruikt daar een tool genaamd “ghostscript” voor. Postscript echter is een volledige programmeertaal, wat het voor de interpreter daarvan, ghostscript, heel lastig maakt om zo'n conversie in alle gevallen goed te doen. Het is soms mogelijk om “kwaadaardige” postscript bestanden te fabriceren die problemen in ghostscript veroorzaken waardoor het kwaadaardige postscript bestand de controle van ghostscript overneemt en zo bijvoorbeeld willekeurige programma's kan executeren. Recent zijn er weer van dit type kwetsbaarheden in ghostscript gevonden. Normaal zorgen wij voor een ghostscript update, waarbij de problemen opgelost zijn. Alleen in dit geval is dat niet mogelijk, omdat er nog geen update beschikbaar is.
Dat betekent dat indien uw website ImageMagick gebruikt om willekeurige postscript of pdf bestanden te converteren er een nu risico is dat dit misbruikt wordt. Wij zien op dit moment 2 mogelijkheden: 1) het risico accepteren of 2) tijdelijk conversie van postscript documenten niet toestaan. Indien u kiest voor optie 2 kunt u contact met ons opnemen voor een configuratiewijziging om deze conversies tijdelijk niet meer toe te staan.
We verwachten dat voor de volgende software update ronde (maart 2019) er een gefixte ghostscript beschikbaar zal zijn, waar deze problemen in opgelost zijn. Maar, omdat er in het verleden meer van dit soort problemen gevonden zijn is dat geen garantie voor de toekomst en is het heel goed denkbaar dat er in de toekomst nog meer problemen in ghostscript gevonden gaan worden.
Upgrade van apache_mod_smooth_streaming-1.7 naar 1.9
Het NPO streaming platform maakt gebruikt van een een module waarme het bron signaal on-the-fly vertaald wordt naar een aantal verschillende adaptive streaming formaten. Deze module wordt ge-upgrade naar een up-to-date versie.
End Of Life van PHP-5.3 en PHP-5.6
Zoals eerder aangekondigd zijn zowel PHP-5.3 als PHP-5.6 End-Of-Life. We zullen we per 31 maart ophouden met het aanbieden van php-5.3. PHP-5.6 blijft nog op het platform beschikbaar tot 30 september 2019. We verzoeken alle PHP-5 gebruikers zo snel mogelijk te upgraden naar PHP-7 en/of energie te steken in een migratie naar ons nieuwe Community Hosting Platform op basis van OpenShift.
End Of Life kalender van overige software componenten
Beniewd tot wanneer een bepaalde software component nog beschikbaar is? Deze informatie staat nu overzichtelijk bij elkaar in onze End Of Life kalender
Reguliere software updates
In de vorige ronde hebben we aangekondigd dat Icecast (audio streaming) en Keepalived (loadbalancers) ge-update zouden worden. Omdat daar in de testfase nog wat problemen in zijn gevonden zijn beide updates uitgesteld naar deze ronde. De eerder aangekondigde Elasticsearch upgrades van hele oude naar up-to-date versies stuiten nog steeds op problemen en zijn tot nader order uitgesteld. In de periode van 18–21 februari worden de volgende updates doorgevoerd:
wat | van | naar | changelog | |
---|---|---|---|---|
keepalived | 1.2.15 | 2.0.11 | 1 | |
icecast | 2.4.0-kh8 | 2.4.0-kh10 | 1 | |
mod_smooth_streaming | 1.7.6 | 1.9.5 | 1 | |
passenger 5/6 | 5.3.7 | 6.0.1 | 1 | |
ruby 2.1 | 2.1.8 | 2.1.9 | 1 | |
python | 3.6.8 | 3.7.2 | 1 | |
OpenJDK8U-jre | 8u192b12 | 8u202b08 | vervanging van Oracle jre-1.8 | |
OpenJDK11U-jre | - | 11.0.2_9 | nieuw! | |
OpenJDK11U-jdk | 11.0.1_13 | 11.0.2_9 | vervanging van Oracle jdk-1.8 | |
Elastic Search 6.5/6.6 | 6.5.4 | 6.6.0 | 1 | |
mysql | 5.7.24 | 5.7.25 | 1 | |
ImageMagick 6 | 6.9.10-23 | 6.9.10-25 | 1 | |
ImageMagick 7 | 7.0.8-23 | 7.0.8-25 | 1 | |
ffmpeg | 2.x | 4.1 | we discontinueren ffmpeg-2 | |
ffmpeg | 3.x | 4.1 | we discontinueren ffmpeg-3 | |
postfix | 3.2.7 | 3.3.2 | 1 |
De updates worden voor 11 februari op het testcluster doorgevoerd. zodat er gelegenheid is om de nieuwe versies te testen.
Het schema voor de productie clusters is als volgt:
wat | actie | impact | wanneer |
---|---|---|---|
mod_smooth_streaming | herstart origins | encoding sessies worden herstart | 18 februari 8:00 – 12:00 |
passenger | herstart Ruby-on-Rails applicaties | geen | 18 februari 8:00 – 12:00 |
ruby | herstart Ruby-on-Rails applicaties | geen | 18 februari 8:00 – 12:00 |
python | herstart applicatieservers | geen | 18 februari 8:00 – 12:00 |
ImageMagick | nieuwe versie wordt actief | geen | 18 februari 8:00 – 12:00 |
ffmpeg | nieuwe versie wordt actief | geen | 18 februari 8:00 – 12:00 |
postfix | herstart mailservers | geen | 19 februari 8:00 – 12:00 |
tomcat | herstart java | ongeveer 1-5 min downtime per instantie | 20 februari 1:00 – 6:00 |
graylog | herstart java | 1 korte onderbreking naar de Graylog instanties | 20 februari 1:00 – 6:00 |
ActiveMQ | herstart java | 1 korte onderbreking naar de ActiveMQ instanties | 20 februari 1:00 – 6:00 |
mysql | herstart databases | 2 korte onderbrekingen naar de database instanties | 20 februari 1:00 – 6:00 |
Elastic Search | herstart java | geen | 20 februari 13:00 – 17:00 |
keepalived | herstart loadbalancers | geen | 18–21 februari 13:00 – 17:00 |
icecast | herstart streamservers | geen | 18–21 februari 13:00 – 17:00 |