LCC 265 - Cherie, ca va couper

Published: Oct. 13, 2021, 9:08 a.m.

Dans ce nouvel \xe9pisode news, Arnaud, Emmanuel et Audrey reviennent sur les annonces d\u2019Oracle concernant le JDK, sur Spring One, mais aussi sur les petites fuites de donn\xe9es et autre panne g\xe9n\xe9ralis\xe9e qui ont fait l\u2019actu r\xe9cemment.

Enregistr\xe9 le 8 octobre 2021

T\xe9l\xe9chargement de l\u2019\xe9pisode LesCastCodeurs-Episode\u2013265.mp3

News Langages

Oracle annonce des LTS de deux ans

  • Donc une LTS tous les 2 au lieu de 3 ans, ce qui fait que la prochaine sera la 21 et pas la 23.
  • Une enqu\xeate r\xe9cente aupr\xe8s de d\xe9veloppeurs montre qu\u2019entre un quart et la moiti\xe9 utilisent les release de six mois en dev, mais moins de la moiti\xe9 d\u2019entre eux en prod
  • Mais pas de d\xe9tail sur le temps de security patch support gratuit. Oracle en payant c\u2019est 8 ans

Oracle offre Oracle JDK gratuitement avec support pendant 1 LTS + 1 an (donc 3 ans)

  • Java 17 et +
  • Redistribution gratuite aussi. Pas de click through.
  • Sous license NFTC (\u201cOracle No-Fee Terms and Conditions\u201d).
  • Ils en ont marre d\u2019avoir de la comp\xe9tition ?

Dans JDK 18, avec le JEP 400, le charset par d\xe9faut va enfin passer \xe0 UTF\u20138

  • Autant ce n\u2019\xe9tait plus vraiment un probl\xe8me pour les syst\xe8mes sour mac OS ou Linux, qui utilisent depuis assez longtemps UTF\u20138 par d\xe9faut, mais c\u2019est surtout pour les syst\xe8mes Windows o\xf9 c\u2019est plus probl\xe9matique
  • Dans JDK 17, la propri\xe9t\xe9 syst\xe8me System.getProperty("native.encoding") avait \xe9t\xe9 introduite si on veut lire par exemple un fichier avec
  • Deux approches de mitigation pour les probl\xe8mes de compatibilit\xe9,
  • en recompilant et en utilisant cette propri\xe9t\xe9 quand on ouvre un fichier
  • en utilisant -Dfile.encoding=COMPAT sans recompilation, qui gardera le m\xeame comportement qu\u2019en JDK 17 et avant
  • L\u2019\xe9quipe d\u2019Oracle sugg\xe8re de tester ses applications avec -Dfile.encoding=UTF\u20138 pour voir s\u2019il n\u2019y a pas de soucis
Librairies

JUnit 5.8

  • les classes de test peuvent \xeatre ordonn\xe9es avec la Class Order API (par nom de classe, nom d\u2019affichage, avec @order ou random)
  • les classes de test imbriqu\xe9es peuvent l\u2019\xeatre avec @TestClassOrder
  • @ExtendWith peut maintenant \xeatre utilis\xe9 pour enregistrer des extensions via des champs ou des param\xe8tres de m\xe9thode (constructeur, m\xe9thodes de test ou lifecycle)
  • @RegisterExtension peut maintenant \xeatre utilis\xe9 sur des champs priv\xe9s.
  • assertThrowsExactly version plus stricte de assertThrows()
  • assertDoesNotThrow() supporte les suspending functions Kotlin
  • assertInstanceOf produit de meilleurs messages d\u2019erreurs (remplacement pour assertTrue(obj instanceof X))
  • assertNull comporte maintenant le type de l\u2019object si sa m\xe9thode toString retourne null pour \xe9viter les messages de type expected but was
  • @TempDir
    • peut maintenant \xeatre utilis\xe9 pour cr\xe9er plusieurs r\xe9pertoires temporaires (le retour au mode par context peut \xeatre fait par configuration)
    • fait un reset des permissions read and write du r\xe9petertoire root et de tout les r\xe9pertoires contenus plut\xf4t que d\u2019\xe9chouer \xe0 les supprimer
    • peut maintenant \xeatre utilis\xe9 sur des champs private
  • Nouvel UniqueIdTrackingListener qui va g\xe9n\xe9rer un fichier contenant les identifiants des test execut\xe9s et qui peut \xeatre utilis\xe9 pour re-executer ces tests dans une image GraalVM par exemple.

Stephen Colebourne avertit les utilisateurs de Joda Time de ne pas mettre \xe0 jour la base de donn\xe9es des fuseaux horaires

  • Les personnes qui sont responsables de cette base de donn\xe9es veulent fusionner certaines zones ensemble, par exemple, Oslo et Berlin. Alors que ces deux villes (et d\u2019autres) n\u2019ont pas forc\xe9ment toujours eu la m\xeame heure
  • La base est cens\xe9e r\xe9f\xe9rencer tous les changements depuis 1970
  • mais en fusionnant plusieurs zones, le risque est de perdre l\u2019historique pr\xe9\u20131970

Recap Spring.io :

  • R\xe9cap Jour 1
  • R\xe9cap Jour 2
  • R\xe9cap en vid\xe9o par Josh Long
  • State of Spring 2021
    • les chiffres:
      • 61% des sond\xe9s utilisent spring boot
      • 94% d\u2019entre eux pour faire des micro services
      • 35% sur des architectures reactive
      • 61% voudraient passer sur du natif d\u2019ici 2 ans
    • Nouvelle baseline pour Spring Framework 6.0
      • Java 17 et Jakarta EE 9 d\xe8s la 6.0 M1 de Spring Framework qui arrive Q4 2021 (GA en Q4 2022)
    • Spring Native arrive dans Spring Framework
      • Compilation AOT b\xe9n\xe9ficiera aux d\xe9ploiements JVM aussi
      • Spring Boot starter pour applications natives
      • Spring Boot proposera des plugin de build et configuration native d\xe8s la 3.0
    • Support de RSocket and GraphQL
    • Spring Observability passe dans Spring Framework
      • API unifi\xe9e pour les metrics et le tracing, compatible Micrometer, Wavefront, Zipkin, Brave et OpenTelemetry
      • int\xe9gration consistante dans tout le portfolio
      • auto configuration dans Spring Boot 3.0
      • Core abstractions dans Spring Framework 6.0
  • Spring Native
  • De Spring framework 5.3 \xe0 6.0
Infrastructure

(suite annonces Spring.io) Tanzu Application Platform :

  • plateforme livr\xe9e avec toute la chaine d\u2019outils mais configurable si les \xe9quipes pr\xe9f\xe8rent utiliser d\u2019autres outils que ceux propos\xe9s
  • compatible AKS, EKS, GKS et TKG.
  • application accelerator (inspir\xe9 par spring initializer) pour g\xe9n\xe9rer les templates des applications qui seront ensuite d\xe9ploy\xe9es
  • Spring Cloud Gateway for K8s and API Portal for VMware Tanzu

Tanzu Community Edition :

  • Version OSS de Tanzu
Cloud

Azure installe des agents dans son image linux et ils sont vuln\xe9rables aux auto update

  • Li\xe9 \xe0 OMI (open management infrastructure, l\u2019\xe9quivalent de Windows Management Infrastructure (WMI) pour les syst\xe8mes UNIX qui s\u2019ex\xe9cute en root avec tous les privil\xe8ges
  • D\xe8s qu\u2019on utilise des services comme azure log, ils l\u2019installent dans les VMs
  • L\u2019article dit que c\u2019est la faute \xe0 l\u2019open source et que seulement 20 contributeurs. C\u2019est un peu BS.
  • En fait si c\u2019est install\xe9 via un service le service le mettra \xe0 jour
  • Mais MS recommande de mettre \xe0 jour manuellement aussi
Web

Julia Evans nous explique CORS

  • Julia explique comment se comporte le navigateur qui voit qu\u2019on essaie d\u2019acc\xe9der \xe0 une URL diff\xe9rente de celle du domaine de la page web charg\xe9e, et le navigateur se demande s\u2019il a le droit de charger cette page
  • Il va faire un \u201cpreflight\u201d request (avec une m\xe9thode HTTP OPTIONS) pour savoir s\u2019il a le droit ou non, puis si c\u2019est le cas, pourra acc\xe9der \xe0 la resource
  • Julia explique la same-origin policy (c\xe0d qu\u2019on ne doit acc\xe9der que des resources du domaine qu\u2019on est en train de visiter dans son navigateur)
Data

Kafka 3.0

  • Le support Java 8 et Scala 2.12 est d\xe9pr\xe9ci\xe9 et sera retir\xe9 en version 4
  • Nouvelles am\xe9liorations sur KRaft, le m\xe9chanisme de consensus qui remplacera \xe0 terme ZooKeeper
Outillage

TravisCI fait un petit partage de vos secrets dans toutes les PRs de vos repos par accident

  • le probl\xe8me a dur\xe9 8 jours
  • rotation des secrets recommand\xe9
  • Travis a patch\xe9 discretement sans disclosure initialement ce qui a fait un raffut
Architecture

Facebook est tomb\xe9 pendant environ 6H

  • Facebook pr\xe9voit de faire une maintenance sur son backbone (classique)
  • Un ing\xe9nieur lance par erreur une commande qui declare l\u2019ensemble du backbone inaccessible
  • Oups, le syst\xe8me d\u2019audit qui devrait emp\xeacher de lancer une telle commande est bugg\xe9, la commande passe \u2026
  • Toute l\u2019infra de Facebook est d\xe9sormais d\xe9connect\xe9e du net. Les avertissements BGP sont stopp\xe9es puisque l\u2019infra FaceBook n\u2019est plus dispo et les DNS d\xe9provisionnent les entr\xe9es FaceBook, le monde ne peut plus acc\xe9der \xe0 FaceBook
  • Les ing\xe9 comprennent vite le probl\xe8me sauf que ils ont perdus les acc\xe8s remotes aux services et la plupart de leurs syst\xe8mes internes sont KO \xe0 cause du retrait des DNS
  • Ils envoient donc du personnel sur site dans les datacenters pour physiquement remettre en service l\u2019infra mais l\u2019acc\xe8s physique aux machines est super prot\xe9g\xe9
  • Ils finissent par y arriver SAUF que le fait de tout red\xe9marrer pause un vrai challenge du fait de l\u2019affluence du traffic qui reprend. Ils risquent de refaire tomber les datacenters du fait de la surcharge \xe9lectrique. (sans parler de sprobl\xe8mes plus haut niveau comme le rechargement des caches etc)
  • Heureusement ils ont un plan de reprise qu\u2019ils testent r\xe9guli\xe8rement qui est plut\xf4t pr\xe9vu dans le cadre d\u2019une temp\xeate qui mettrait HS tout ou partie du r\xe9seau. Ce syst\xe8me marche bien et tout rentre dans l\u2019ordre petit \xe0 petit, Facebook est sauv\xe9, la plan\xe8te a reperdu 5 points de QI
  • Julia Evans explore BGP et son fonctionnement dans cet article
  • Vu de dehors avec Cloudflare
  • Impact non seulement du DNS mais des routes BGP elles m\xeame. Ces routes disent qu\u2019une IP (our s\xe9rie d\u2019IP) appartient \xe0 une personne donnee.
    • Fondamentalement mod\xe8le de confiance.
    • Int\xe9ressant de voir comment Facebook DNS down ajout\xe9 beaucoup de traffic aux serveurs de DNS principaux qui ne cachent pas le SERVFAIL
S\xe9curit\xe9

Fuite massive de donn\xe9es chez Twitch

  • Quoi ?
  • l\u2019int\xe9gralit\xe9 du code source
  • Les revenus (sur 3 ans) de plus de 10\u2009000 streamers Twitch ont \xe9t\xe9 publi\xe9s sur le net.
  • certains codes d\u2019acc\xe8s AWS
  • attention c\u2019est la partie 1, il pourrait y avoir d\u2019autres donn\xe9es prochainement
  • Comment ?
  • Officiellement suite \xe0 une erreur dans un changement de config
  • Officieusement c\u2019est plus probablement un employ\xe9 ou un ex employ\xe9
  • Pourquoi ?
  • le message sur 4chan d\xe9nonce un \xab un cloaque toxique d\xe9go\xfbtant \xbb, ce qui pourrait faire r\xe9f\xe9rence aux probl\xe8mes de harc\xe8lements et de raids hostiles visant des streameurs et des streameuses en raison de leur origine ethnique, de leur orientation sexuelle ou genre.
  • il est aussi question d\u2019une revendication \xe0 une concurrence plus saine dans le secteur du streaming de jeu vid\xe9o
Conf\xe9rences

DevFest Nantes les 21 et 22 octobre 2021
DevFest Lille le 19 novembre 2021
SunnyTech les 30 juin et 1er juillet 2022 \xe0 Montpellier

Nous contacter

Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Faire un crowdcast ou une crowdquestion
Contactez-nous via twitter https://twitter.com/lescastcodeurs
sur le groupe Google https://groups.google.com/group/lescastcodeurs
ou sur le site web https://lescastcodeurs.com/