LCC 251 - Trie dans le desordre

Published: March 16, 2021, 6:31 p.m.

Dans cet \xe9pisode d\xe9sordonn\xe9 mais complet, Antonio, Guillaume et Emmanuel parlent de JVM sur Kubernetes, des datacenters OVH, de Spring Native, de Flutter, de Saga, d\u2019Open Source et de salaire.

Enregistr\xe9 le 12 mars 2021

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

News Infrastructure

Un data center d\u2019OVH en feu

  • Strasbourg
  • data center entierement d\xe9truit
  • recommande d\u2019activer les protocoles de disaster recovery
  • impacte aussi d\u2019autres data centers : SBG1, SBG3 et SBG4 (electricite coup\xe9e et une partie des salles serveurs)
  • Autre article couvrant l\u2019\xe9v\xe8nement
  • 3,5 millions de sites down, les backups aussi?
  • 18% des adresses IP attribu\xe9es \xe0 OVH
  • remedarrage (sauf SBG2) la semaine prochaine
  • touche la partie hosted private cloud
  • quelques jours avant annonce de mise en bourse

Am\xe9liorer le temps de d\xe9marrage des JVMs sur Kubernetes

  • JIT etc, temps de demarrage relativement lent
  • rajouter des pods et faire deu deployment graduel (3x co\xfbt)
  • script de chauffe avec le readiness probe utilisant initialDelaySeconds mais pas d\u2019amelioration massive (rejoue les URLs de prod) et ralentit l\u2019auto scaling
  • changer les heuristiques de la JVM : 2x CPU request et limit puis 3x => probleme disaparait, CPU throttling ; mais co\xfbteux et plus difficile de positionner les pods
  • utiliser des pods \u201cburstable\u201d, limit > requests
  • Bon articles pour ceux qui sont en phase d\u2019apprentissage de Jave et Kubernetes.
  • Attention, leur mod\xe8le peut faire crasher un noeud en cas de probleme et de reboot de pods excessifs puisque la charge th\xe9orique n\xe9cessaire est de 3x. Mais ce n\u2019est probablement pas pire que leur probl\xe8me initial
Front

Sortie de Flutter 2.0

  • poste plus technique
  • niveau production pour le support du Web
  • Sound Null Safety qui permet d\u2019\xe9viter les null pointer exception
  • le support du desktop est aussi en mode stable
  • de nouvelles widgets
  • Meilleur support dans IntelliJ et Visual Studio Code
  • Filio une app exemple pour etre progressive et belle sur tous les supports
  • Fultter fix pour faire evoluer le code
  • \u201c500,000 Flutter developers across a growing number of platforms\u201d wow
Librairies

Hibernate Reactive 1.0 CR arrive

Spring Native est en b\xe9ta

Micronaut 2.4 est sorti

  • Ajout et support des annotations jakarta.inject comme alternative \xe0 javax.inject
  • Ajout d\u2019annotations @NonNull et @Nullable propres \xe0 Micronaut, car diff\xe9rents outils et frameworks proposent aussi des annotations nullables qui rentrent parfois en conflit les unes avec les autres
  • Nouvelle annotation @InterceptorBean pour appliquer des interceptors \xe0 des beans, qui remplacent les annotations AOP existantes
  • Support plus fin des erreurs de r\xe9ponse, avec des content type plus fins
  • Diverses am\xe9liorations de Micronaut Data, dont par exemple le support des records de Java 14+
  • Support de Oracle Coherence CE pour Micronaut Data
Outillage

Gradle explique l\u2019impact de la disparition de JCenter sur les builds Gradle

  • telechargement des dependences et des plugins
  • publications vers bintray
  • beaucoup d\u2019exemples utilisent jcenter + Gradle, donc verifier vos fichiers de build => jcenter() d\xe9pr\xe9ci\xe9
  • reco: enlever jcentral du build et verifier que ca continue de tourner
    • troubleshoot les d\xe9pendances qui ne sont que sur jcentral
  • sp\xe9cialement \xe0 risque Android
  • Gradle Entreprise dans le build scan on sait d\u2019o\xf9 vient chaque d\xe9pendance
  • les plugins peuvent ajouter des repository \xe0 vos projets
  • dependance encore sur jcenger uniquement (attendre le maintainer, migrer vers une autre librairie, copier le jar
  • attention au confusions de dependances et collision de namespace
    • risque potentiel
    • activation de verification des dependance ( true false)
Architecture

InfoQ article sur le pattern Saga, le outbox pattern et change data capture

  • outbox pattern, evite l\u2019\xe9criture double DB/queue. Il ecoute les changements de la base de donn\xe9e dans une table d\xe9di\xe9e qui est transform\xe9e en message dans une queue apr le composant de change data capture (modifi\xe9)
  • cela evite tout besoin de XA ou autre synhcronization distribu\xe9e
  • Saga, transaction m\xe9tier large. utilise des compensations pour anuler partiellement ou totalement la transaction
  • 2 approches
  • choereographie: passage des messages d\u2019un service a l\u2019autre
    1. orchestration: un swervice coordonne les autres et fait les appels
  • dual write: inconsistence si un ou l\u2019autre des envois (DB tx ou message) echoue
  • Article ensuite decrit comment implementer une saga entre 4 services via the outbox pattern en utilisant Kafka et Debezium

Thoth un framework event sourcing de la Maif

M\xe9thodologies

L\u2019\xe9tat des lieux du Dev Java par jaxcenter

  • 49% de Dev java et le reste team lead architect et consultants
  • 69% Java 8, JavaScript at 40%, Java 11 at 36% (note that they were allowed to select more than one programming language of choice). 16% Java 12 or newer, and 15% Java 7 or older.
  • 66% convertissent ou utilisent microservices , 13% ne l\u2019envisagent pas, 70% moins de 10 microservices
  • App servers 6h% tomcat 19%wildfly 18 weblogic 15 jetty 14 web sphere
  • Spring boot 62% (83 l\u2019ann\xe9e derni\xe8re) drop wizard 8% Quarkus 6%
  • Idea 65% eclipse 48 vscode 27. Netbeans 13
  • 59% oracle JDK 22 adopt et 10 corretto
  • Macen 67% (50% l\u2019ann\xe9e derni\xe8re
  • Docker 57% (74 en 2020) kube 42 VMware 27
  • Jenkins 61
  • 76% utilisent un cloud
  • AWS 39 azure 24 Google 18
  • Douleurs de Dev
  • 54% temps de r\xe9ponse
  • Redeployment 59% 4 mins 20% 10 mins

D3.js 10 ans d\u2019open source ; les le\xe7ons apprises

  • apprendre aux autres >> code en terme d\u2019impact ; exemples sont puissants (modifi\xe9)
  • Le support expose les probl\xe8mes de l\u2019outil tr\xe8s rapidement pour aprendre les choses a ma\xe9liorer. Mais d\xe8s que cela arr\xeate d\u2019\xeatre constructif pour vous, arr\xeater et ne vous sentez pas mal.
  • visualisation utile pour l\u2019exploration et l\u2019explication mais ce sont deux cas d\u2019utilisation diff\xe9rents
  • ne commiter pas sur une forme de visualisation (camember, barres etc) avant d\u2019avoir vu votre data dessus.
  • 90% des bugs suir 10% des fonctionalit\xe9s: choisissez bien vos batailles
  • Internet va vous faire sentir mal
  • ne pas y aller seul
  • Essayer d\u2019avoir du bon temps

Salaire \xe9gal pour tous dans la soci\xe9t\xe9

  • 175k pour tous y compris les fondateurs
  • \xc9vite d\u2019avoir \xe0 quantifier la performance de chacun
  • Et le Risque incentividation individuelle != team (modifi\xe9)
  • Transparence du mod\xe8le
  • Plus bas salaire pour certains si ils travaillaient ailleurs mais c\u2019est une valeur qui permet de vivre correctement avec enfants (jug\xe9 et test\xe9 par les fondateurs)
  • Paie bas\xe9e sur le travail et non les co\xfbts de l\u2019employ\xe9 -> pas de diff\xe9rence g\xe9ographique
  • Scale probablement pas mais une start up peut se le permettre (ils ne prennent pas de junior pour l\u2019instant
  • Carri\xe8re != compensation par rewards
  • Mais pour les parts dans la bo\xeete ils le font en fonction du risque du premier risque au dernier pas risque
Loi, soci\xe9t\xe9 et organisation

Un autre renvoie d\u2019une personne du groupe ethic AI chez google apr\xe8s qu\u2019elle ait t\xe9l\xe9charg\xe9 avec un script des infos concernant la premi\xe8re employ\xe9e renvoy\xe9e

  • Elle a exfiltre des milliers de docs vers des comptes externes
  • Met en doute le commitment du ethical ai chez Google
  • Mais comment r\xe9pondre \xe0 une personne ex filtrant des docs priv\xe9s ?
  • Mitchell qui annonce qu\u2019elle est vir\xe9e
  • Ethique vs lanceur d\u2019alerte ?
Conf\xe9rences

Mix-It (virtuel) les 18, 19 et 20 mai 2021

  • 10 talks de 30 mn + 20mn de Q&A + 10 mn de pause

https://www.devoxx.fr/2021/02/25/preparation-du-programme-de-ledition\u20132021/

  • reprend une partie du CfP de l\u2019ann\xe9e derni\xe8re.
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/