LCC 276 - Il a coule mon data center !

Published: March 28, 2022, 7:13 a.m.

Emmanuel, Guillaume et Antonio se r\xe9unissent pour discuter des nouvelles de ce d\xe9but de printemps. On y parle retour de JavaOne, revue de pull request, de developpement cloud natif, de SLO, et de log.

Enregistr\xe9 le 25 mars 2022

T\xe9l\xe9chargement de l’\xe9pisode LesCastCodeurs-Episode–276.mp3

News

Langages

Remplacer vos APIs de logging avec System.Logger


  • Blog post r\xe9dig\xe9 suite \xe0 notre \xe9pisode 271 (o\xf9 on avait cit\xe9 System.Logger)

  • Rapide histoire des APIs de log en Java

  • Pr\xe9sentation de l\u2019API System.Logger

  • Formattage des messages bas\xe9 sur java.text.MessageFormat

  • Utilisation possible des ResourceBundle

  • Niveaux TRACE, DEBUG, INFO, WARNING, ERROR (et non FINE, FINER, FINEST comme JUL)

  • Le service System.LoggerFinder pour changer l\u2019impl\xe9mentation (JUG, Log4J, Logback, …)

  • Etude de perf: Logback est plus performant, suivit de JUG puis Log4J2

Une s\xe9rie de petites librairies Java l\xe9g\xe8res. Librairies simples, avec chacune une t\xe2che unique, dont :


  • parsing JSON

  • parsing HTML / CSS

  • client HTTP

  • client mail

  • resolveur de noms de param\xe8tres de m\xe9thode

  • des Properties am\xe9lior\xe9s

  • un depdenceny-injection l\xe9ger

Java 18 est dans la place


  • 400: UTF–8 by Default

  • 408: Simple Web Server

  • 413: Code Snippets in Java API Documentation


  • un super guide sur l’utilisation des nouveaux javadoc code snippets


  • 416: Reimplement Core Reflection with Method Handles

  • 417: Vector API (Third Incubator)

  • 418: Internet-Address Resolution SPI

  • 419: Foreign Function & Memory API (Second Incubator)

  • 420: Pattern Matching for switch (Second Preview)

  • 421: Deprecate Finalization for Removal

  • Librairies

    Micronaut 3.3 sorti, avec des nouveaut\xe9s et Micronaut 3.4 aussi


    • graalVM 22


    • binding par valeur d’annotations (CDI)


    • Serialization (remplace Jackson, plus leger en memoire, ne fait pas de deserialisation arbitraire, pas de reflexion)


    • module email qui permet d’envoyer avec MailJet, Amazom simple email service, SendGrid, Postmark


    • Operateurs Kubernetes


    • possibilit\xe9 de r\xe9f\xe9rencer des beans properties dans @Requires


    • injection de localized message sources


    • nouveau module Micronaut Data MongoDB


    • support de Maven pour Micronaut AOT


    Hibernate 6: certains points cl\xe9s


    • nouveau parseur HQL (langage plus riche)

    • API nettoy\xe9es (donc ca va peut etre demander des migrations)

    • DDL de meilleure qualit\xe9 plus adapt\xe9e \xe0 la base de donn\xe9e cible

    • requetes de type rapport (filter, rollup, cube, et les window functions arrivent bientot)

    • arythmetique sur les dates

    • index pour les colonnes (SQL plus compact et rapide)

    Kubernetes Service Discovery and Selection with Stork

    Quarkus 2.7


    • Stork 1.0

    • Quarkus CLI dans homebrew et SDKman

    • extension pour le driver Oracle Reactif

    • terminal interactif

    Infrastructure

    L’\xe9nergie utilis\xe9e dans les data centers est constante \xe0 1 \xe0 1,5% de l’\xe9nergie mondiale d’apr\xe8s l’agence internationale de l’\xe9nergie


    • hors cryptocurrency

    • augmentation a continu\xe9 mais les efforts d’economies d’\xe9nergie ont compens\xe9 la croissance de la demande

    • hors production du materiel je crois

    • les alertes ont fait boug\xe9 les lignes

    • \xe9tudes source Masanet et al - science et une autre de Malmodin 2020 dans science aussi

    Cloud

    Sondage annuel \u201cThe State Of Cloud Native Development\u201d


    • Sondage cr\xe9\xe9 par Slash Data et soutenu par la CNCF

    • Interrogent 19.000 d\xe9veloppeurs sur : l\u2019utilisation de Kubernetes, le Edge Computing, le Cloud Native, Containers et Orchestrateur

    • Le nombre mondial de d\xe9veloppeurs cloud native a augment\xe9 au cours des 12 derniers mois de 0,3 million, pour atteindre 6,8 millions.

    • Dans le m\xeame temps, la proportion de d\xe9veloppeurs backend impliqu\xe9s dans les technologies cloud native a diminu\xe9 de 3 points de pourcentage, passant de 44 % \xe0 41 %.

    • Dans toutes les r\xe9gions, l\u2019Am\xe9rique du Nord (47 %) et l\u2019Europe occidentale (46 %) affichent les taux d\u2019adoption les plus \xe9lev\xe9s.

    • Kubernetes est utilis\xe9 par 31% de tous les d\xe9veloppeurs backend, ce qui repr\xe9sente une augmentation de 4 points de pourcentage au cours des 12 derniers mois. Actuellement, 5,6 millions de d\xe9veloppeurs utilisent Kubernetes.

    • Dans tous les secteurs, le Edge Computing a connu une croissance rapide de l\u2019adoption de Kubernetes et pr\xe9sente d\xe9sormais les taux d\u2019utilisation les plus \xe9lev\xe9s des conteneurs et de Kubernetes.

    • Parmi les d\xe9veloppeurs sp\xe9cialis\xe9s dans le Edge Computing, l\u2019utilisation de Kubernetes a augment\xe9 de 11 points au cours des 12 derniers mois, pour atteindre 63 %.

    • L\u2019architecture Serverless est \xe9galement attrayante pour les d\xe9veloppeurs Edge Computing : 48 % de tous les d\xe9veloppeurs edge utilisent serverless, contre seulement 33 % de tous les d\xe9veloppeurs backend.

    • Parmi les outils serverless, AWS Lambda continue de jouer un r\xf4le pr\xe9pond\xe9rant. Cependant, Google Cloud Run a consid\xe9rablement gagn\xe9 du terrain au cours des 12 derniers mois.

    SLO et dependences de service


    • 99,99 en cible interne, au dessus, il y a tant de variables entre l’utilisateur et le service que c’est perdu dans le bruit (wifi, ISP etc)

    • 99,999 pour les infra globales

    • disponibilit\xe9 est fonction du MTTF et MTBR = MTTF/(MTTF+MTTR)

    • si on veut offrir 99,99, toutes les dependances critiques doivent offrir beaucoup plus, regle du 9 supplementaire

    • sinon il faut des mitigation, cache, fail open etc

    • dispo depend du temps de detection et du temps de recuperation

    • donc forcer les clients (services dependants) \xe0 baisser leur niuveau ou engineerer pour compenser le bas niveau du service dont on est dependant

    • faire des scenarios (e.g. 1 outage majeur, 3 faibles - e.g. un shard, 5 de dependances)

    • considerer que la perte d’un shard du service veut dire SLO is 1/nieme indisponible (n \xe9tant le numbre de shards)

    • donc il reste peut de temps pour reagir quand on compte temps de detection, temps de paging, etc.

    • error budget: 1-SLO, sur un mois et peut etre une fenetre glissante pour remonter graduellement. si budget depens\xe9, on ne fait plus de mise en prod sauf critical security issues ou si c’est pour corriger les causes du probleme qui a consomm\xe9 le budget

    • rendre le plus de dependances non critiques (par exemple en \xe9liminant les SPOF)

    • faire revue d’architecture pour identifier ces dependances et leurs impacts

    • appels a trois pools de serveurs indpendants et prendre le premier resultat

    • dependences asynchrones peut reduire le nombre de dependancs critiques

    • retours arriere rapide et automatis\xe9s: en enlevant un humaind e la boucle, on racourcit les temps de r\xe9ponse

    • et bien d’autres choses encore

    Architecture

    Les design patterns pour les syst\xe8mes distribu\xe9s et donc les microservices


    • survol et d\xe9finitions des patterns qu’il faut conna\xeetre dans les microservices

    • Pas trop dans le d\xe9tail donc bon survol

    • Idempotence, asynchronicite, helathcheck, feature flag, fallback

    • Bulkhead: compartementalisation

    • Metrics, monitoring, alarmes

    • Rate limiting, backpressure, etc

    M\xe9thodologies

    La pyramide des fondamentaux dans la revue de code


    • codifie les points sur lesquels se concentrer sur la revue de code et ceux avec une priorit\xe9 plus basse

    • automatiser les points bas comment le style de code pour eviter de perdre du temps et de la frustration humaine

    S\xe9curit\xe9

    Removed unencrypted Git protocol and certain SSH keys


    • nettoyage de printemps

    • plus de git: qui est non s\xe9curis\xe9

    • plus ne nouvelles cl\xe9s RSA SHA1

    • plus de DSA

    • de nouvelles courbes elliptiques

    Samsung utilise incorrectement la crypto rendant son enclave s\xe9curis\xe9e, pas s\xe9curis\xe9e


    • l’article n’a pas les details techniques

    • 100 m de telephones

    • la meme cl\xe9e \xe9tait reutilis\xe9e (et pas encapsul\xe9e

    • le vecteur d’initialisation pouvait \xeatre configur\xe9 et reutilis\xe9 \xe0 valeur unique

    • n’importe quelle application pouvait essayer d’acceder aux secrets de l’enclave en essayant les conbos parce que l’application avait acc\xe8s \xe0 ces param\xeatres

    • quand on reutilise les vacteurs d’initialisation, on peut faire un 1–1 entre le message clair et chiffr\xe9, ce qui permet de revenir a message clair si on produit le meme message cript\xe9.

    • https://knowledge-base.secureflag.com/vulnerabilities/broken_cryptography/reused_iv_key_pair_vulnerability.html

    Loi, soci\xe9t\xe9 et organisation

    Alert: peacenotwar module sabotages npm developers in the node-ipc package to protest the invasion of Ukraine

    Un d\xe9veloppeur sabote son projet open source et paralyse des milliers d’applications

    Violation de RGPD par utilisation de Google fonts

    French privacy regulator rules against use of Google Analytics

    VMWare, Red Hat et d’autres s’ajoutent aux sanction contre le gouvernement Russe en arretant la vente et les services pour les entit\xe9s Russes et Belarusse

    Une Entr\xe9e en bourse pour Sonatype

    Conf\xe9rences

    JavaOne \xe0 Las Vegas du 16 au 20 octobre 2022


    • Java language & platform, cloud-native development, database, microservices, DevOps, artificial intelligence & machine learning, security & application management, and more.

    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/