Journal Intel = 14 nm, AMD = 7 nm, ARM = 7 nm… et mon serveur ?

36
3
déc.
2019

Sommaire

Je me lance dans un projet personnel qui nécessite un serveur pour lequel je viens de faire le tour des actualités. Je vous partage ici mes découvertes et mes réflexions. Bonne lecture.

Je place ce document sous licence CC0.

Intel = 14 nm

Intel avait l’habitude d’adopter une nouvelle finesse de gravure tous les deux ans. Et avec chaque nouvelle finesse de gravure, les nouveaux processeurs étaient toujours plus véloces :

  • 45 nm en novembre 2007 (Penryn)
  • 32 nm en janvier 2010 (Westmere, 2 ans après)
  • 22 nm en avril 2012 (Ivy Bridge, 2 ans après)
  • 14 nm en septembre 2014 (Broadwell, 2 ans après)
  • 10 nm avec deux tentatives pas très concluantes au niveau des performances en 2018 (Cannon Lake) et 2019 (Ice Lake)

Ou là, Intel a du mal à adopter pleinement le 10 nm… Espérons que le troisième rafraîchissement (optimization) de la micro-architecture en 10 nm (10 nm++ Tiger Lake prévu pour 2020) sera plus véloce que le quatrième rafraîchissement de celle en 14 nm (14 nm+++ Comet Lake).

Par rapport à la régularité du cycle biennal, Intel stagne 6 années sur la gravure 14 nm, et peut-être plus longtemps si on en croit des rumeurs tablant sur 2022 pour voir enfin arriver des processeurs Intel 10 nm dans les ordinateurs fixes.

D’ailleurs, ces difficultés de passer à la gravure 10 nm ont plutôt incité Intel à temporiser la pleine production en 10 nm. Par conséquent, Intel a plutôt intérêt à s’orienter vers des prévisions de vente pessimistes. Mais la conjoncture économique est au renouvellement des ordinateurs. Et fait rare, Intel s’excuse pour ses retards de livraison. Face à la demande, Intel favorise les deux segments qui rapportent le plus : les Xeon haut de gamme (gros serveurs) et les i9 (Gamer).

Attention, ne vous faites pas avoir, la dernière et 10ᵉ génération des processeurs Intel est en double gravure 14 nm et 10 nm : la publicité de Intel met en avant la finesse de gravure 10 nm, mais leurs tests de vélocité utilisent des processeurs gravés en 14 nm.

Ce qui me choque le plus est la compétitivité de mon vieil ordinateur portable acheté en 2012, chez pcubuntoo avec un processeur i7-3610QM (22 nm Ivy Bridge) et 8 Go DDR3, à 800 € sans disque dur. Ce bon vieux portable (7 ans) fonctionne toujours aussi bien et me semble dans la même gamme de prix que les portables équipés du i7-1060G7 (toujours le même nombre de cœurs et la même quantité de mémoire).

Néanmoins, au niveau consommation électrique et fréquence de fonctionnement, le dernier i7-1060G7 doit battre mon vieux i7-3610QM (2012). J’ai bien l’impression que c’est seulement sur ces deux aspects que les processeurs de Intel se sont améliorés : consommation et fréquence. Rappelons que Intel a raté le marché des téléphones, et que depuis une dizaine d’années, Intel essaye de produire des processeurs capables de rivaliser avec ceux utilisés dans les téléphones. Une des priorités de Intel est la réduction de la consommation électrique.

Une autre amélioration des processeurs Intel est le paquet de nouvelles instructions. Mais bon, la plupart des logiciels sont compilés avec la compatibilité des premiers processeurs AMD64 (Pentium II) de la fin des années 90 (il y a 20 ans).

Notons que Intel a changé sa stratégie tic-tac. Avec la nouvelle stratégie processus-architecture-optimisation, Intel profite de la réduction de la taille de gravure pour réduire la consommation électrique. Puis, Intel apporte des rafraîchissements (optimizations) pour améliorer la vélocité.

Bref, tout ça pour dire, que j’ai du mal à justifier le renouvellement de mon vieil ordinateur, d’autant plus que la mode est à la réutilisation, l’économie circulaire. À la rigueur, on peut installer un nouveau SSD plus volumineux en espérant pouvoir stocker toutes les vidéos que nous avons tendance à capturer avec nos ordiphones ! Mais on touche un autre sujet qui nécessite un article à part entière : comment bien stocker et protéger son patrimoine numérique avec les logiciels libres d’aujourd’hui.

Pour ceux qui sont dans mon cas, on trouve des SSD SATA à des prix accessibles : 60 € pour 500 Go, 110 € pour 1 To et 230 € pour 2 To.

AMD = 7 nm

Alors que Intel essaye de passer à 10 nm, AMD est déjà loin avec la gravure en 7 nm. J’invite les experts qui pensent que le 10 nm de Intel correspond au 7 nm de AMD à nous donner des explications dans les commentaires (j’ai la flegme de vérifier la taille des transistors dans la documentation de chacun des fondeurs).

Je n’aime pas les situations de quasi-monopôle (Intel, Microsoft, Google, YouTube…) et j’essaye de ne pas cautionner ces monopôles et choisissant des alternatives. Mais bon, reconnaissons que Intel contribue au noyau Linux et à la pile graphique, ce qui garantie une certaine compatibilité avec leurs processeurs. AMD y contribue moins, favorise davantage le segment Windows… allez donnons lui une chance dans ce journal.

Pour avancer rapidement, AMD fait fondre ses processeurs par des sous-traitants. Et d’ici que Intel livrent enfin des processeurs 10 nm pour les ordinateurs fixes, AMD en sera peut-être à l’étape 5 nm, car son sous-traitant TSMC est déjà prêt pour la production en 5 nm.

De plus, AMD n’essaye pas non plus de rivaliser avec la faible consommation électrique des processeurs de nos téléphones portables, une contrainte de moins que Intel. Le vrai débouché des processeurs x86 sont les serveurs, et ceux qui achètent les serveurs ne sont plus les grandes entreprises, mais les gestionnaires des centres de données (datacenters) : Amazon, Google, Microsoft… Historiquement HP et Dell étaient les plus gros acheteurs de processeurs pour serveur, mais les cloud providers ont leurs équipes dédiées pour la fabrication de leur matériel.

Les deux segments prioritaires de AMD ont été les cloud providers et les gamers. Donc, en plus de proposer des processeurs en 7 nm, AMD propose aussi davantage de cœurs. Sa micro-architecture Zen (Zen+, Zen 2, Zen 3) est utilisée pour ses processeurs EPYC et Ryzen. Ces deux gammes de processeurs, peuvent embarquer jusqu’à 64 cœurs chacun !

Par conséquent, les processeurs AMD connaissent de plus en plus de succès. Le fait de passer par un fondeur multi-clients, AMD peut plus facilement d’adapter la production à la demande. Récemment, des japonais faisaient la queue avant l’ouverture des boutiques pour acquérir le dernier processeur AMD Ryzen 9.

Sur le lien précédent, deux images sont intéressantes :

Le nombre de processeurs vendus par AMD et Intel sur 1 an

Nous pouvons constater une envolée des ventes de AMD depuis cet été, alors que pour Intel ça stagne.

Le nombre de processeurs vendus par AMD et Intel sur 1 an

Le chiffre d’affaires

Nous pouvons remarquer que le chiffre d’affaires de AMD est moindre pour le même volume de processeurs vendus. Certainement car AMD vend ses processeurs moins chers que Intel.

Le chiffre d’affaires de processeurs vendus par AMD et Intel sur 1 an

Exemples de serveurs AMD

800 € = Ryzen 7 2700 (8 cœurs) + HDD 2 To

Configuration obtenue sur le site LDLC en optant pour le Ryzen 7 2700, un processeur d’ancienne génération (Zen+, 2018), qui se trouve moins cher que les Ryzen 5 de nouvelle génération (Zen 2, 2019). Le Ryzen 7 2700 permet d’obtenir un petit ratio 55 €/cœur (coût par cœur sans compter RAM, SSD et HDD).

Prix Description
210 € AMD Ryzen 7 2700 (8 cœurs 3.2 GHz)
210 € 32 Go DDR4 2933 MHz
80 € SSD 500 Go M.2 PCI x4
70 € HDD 2 To
100 € Alimentation 80PLUS Platinium 550 W
20 € Ventirad d’entrée de gamme (pas besoin de lumière)
80 € Carte mère d’entrée de gamme avec 4 slots mémoire
30 € Boîtier mini tour d’entrée de gamme

2500 $ = Ryzem 9 3900X (12 cœurs) + HDD 20 To

Chez System76 :

  • Ryzem 9 3900X (12 cœurs 3.8 GHz)
  • 32 Go DDR4
  • SSD 500 Go M.2 PCI express
  • HDD 20 To

J’estime le ratio à 100 $/cœur (sans prendre en compte les prix supposés des RAM, SSD et HDD).

Serveurs ARM

Depuis 20 ans, des constructeurs tentent de concurrencer les serveurs basés sur les processeurs x86 (AMD et Intel). Nous avions les PowerPC, mais quand Apple a abandonné les PowerPC pour les Duo-cœurs d’Intel, l’industrie s’est aussi orientée vers les processeurs Intel. La solution ARM devenaient la seule alternative crédible face au monopôle des x86, grâce à un prix de vente et une consommation électrique très faibles.

Mais il ne suffit pas de réduire le coût d’achat et le coût d’utilisation (factures électriques), il faut surtout avoir un haut ratio vitesse d’exécution / coût de possession. Et sur ce point, la fabrication en masse de composant pour l’écosystème x86 permettent aux constructeurs de serveurs x86 de proposer des solutions suffisamment performantes pour ne pas se faire trop distancer par les serveurs ARM qui n’atteignaient pas la taille critique.

Un autre élément en faveur des serveurs x86 qui est bien plus important : la rétro-compatibilité avec les anciens logiciels. Et oui, on migre pas d’un claquement de doigt les logiciels (dont le système d’exploitation) de l’architecture x86 vers ARM. C’est un argument similaire qui laisse Linus Torvalds penser à l’échec des serveurs ARM : Ce n’est pas facile de développer/déboguer sur sa machine de dév. x86 et déployer sur une machine ARM.

Par contre, quand nous commençons un tout nouveau projet, on peut dès le début tout mettre en place pour faciliter le déploiement sur une architecture ARM.

C’est ce que fait Amazon depuis un an avec ses processeurs ARM, nommés Graviton. Et la seconde génération Graviton est en cours de genèse qui embarquent 32 cœurs. Amazon a la taille critique pour produire suffisamment de processeurs Graviton afin d’obtenir des processeurs ARM deux fois moins coûteux que les équivalents chez AMD et Intel. Par contre, les meilleurs processeurs Intel et AMD restent plus véloces que les Graviton (pour un même nombre de cœurs).

Et c’est possible de s’en procurrer. \o/

System76 propose le Starling Pro ARM.
Une configuration avec 96 cœurs et 128 Go RAM coûte dans les 6000  pour un ratio **65 /cœur**.

Gigabyte propose aussi des serveurs ARM, dénommés “blockchain infrastructure”.

Serveurs RISC-V

Le top du top, ce serait, quand même, d’utiliser des processeurs RISC-V sous licence open hardware. Peut-être dans 10 ans…

Projet personnel nécessitant un gros serveur

Dans mon cas, je commence un projet personnel et j’ai besoin de développer, tester et laisser tourner mon logiciel plusieurs jours d’affilée, voir plusieurs mois, avec haute disponibilité et mise à jour à chaud de nouvelles versions.

J’ai cinq possibilités pour mon serveur :

  1. Louer une machine virtuelle dans les nuages ;
  2. Louer une machine dédiée dans un centre de données (datacenter) ;
  3. Acheter un serveur d’occasion ;
  4. Acheter son propre serveur neuf ;
  5. Utiliser son ordinateur personnel.

La location

La première possibilité (cloud) est intéressante pour une courte durée (de quelques heures à quelques jours).
La seconde est celle d’une machine dédiée, c’est-à-dire d’une machine physique. Cette possibilité est plus avantageuse si la machine est utilisée plusieurs mois.

Exemple de prix pour une machine avec SSD 2 To :

  1. 1112 €/mois pour AWS m5a.8xlarge (16 cœurs 2,5 GHz + RAM 128 Go)
  2.   235 €/mois pour Online Core-5-S (20 cœurs 2,2 GHz + RAM 128 Go)

Pour 6 mois d’utilisation, nous avons les ratios suivant :

  1. 417 €/cœur
  2.   70 €/cœur

Personnellement, je ne suis pas (encore) à l’aise à déboguer sur un serveur distant, je préfère avoir la machine physiquement à côté de moi. Apparemment, Facebook contribue à Visual Studio Code afin de permettre de travailler à distance. Si vous le faite déjà, je veux bien avoir vos conseils dans les commentaires, merci.

Serveur d’occasion

Les petites annonces, comme sur leboncoin par exemple, proposent des serveurs d’occasion, souvent vieux de plus de 5 ans, mais à des tarifs qui peuvent être intéressants. On peut même y trouver des serveurs pour baie (rack).

Je ne suis pas familier avec les serveurs au format 1U, 2U et 4U. Mais si vous avez l’habitude d’en installer, merci de partager vos conseils dans les commentaires, ils seront les bienvenus. :-)

Serveur neuf

Acheter du neuf est intéressant si on a vraiment besoin des technologies récentes.
Il se peut aussi les produits proposés en occasion ne correspondent pas à nos besoins, où à des prix moins intéressant que le neuf à performance égale.

Prix Processeur (cœurs) Stockage Ratio RAM SSD + HDD
800 € Ryzen 7 2700 (8) 2 To HDD 55 €/cœur 4 Go/cœur 312 Go/cœur
2500 `{mathjax} Ryzem 9 3900X (12) 20 To HDD 100 `/cœur 3 Go/cœur 1700 Go/cœur
6240 `{mathjax} ThunderX ARMv8 2 GHz (96) 500 Go SSD 65 `/cœur 1 Go/cœur 5 Go/cœur

Ordinateur portable

La plupart des portables avec un gros processeur sont des portables pour gamer avec aussi de grandes capacités graphiques. Trouver un ordinateur portable de dév. sans Windows, sans carte graphique et sans processeur Intel, est un vrai challenge. Comment faites-vous ?

Par contre, si votre employeur achète des portables pour y installer GNU/Linux, vous pourriez le convaincre d’acheter ces portables sans Windows, notamment via les boutiques suivantes :

Consulter aussi la liste des bons constructeurs et vendeurs d’ordinateurs :

Conseils et suggestions

Merci de m’éclairer ma lanterne avec des astuces. :-D

  • # Yenamarre !

    Posté par (page perso) . Évalué à 10 (+15/-0). Dernière modification le 04/12/19 à 01:11.

    Yenamarre des journaux succints, baclés et peu documentés !

    BAP (ça existe pour Blague à part ?) merci pour ton topo qui m'a permis de me mettre à niveau, j'avais pas suivi les dernières nouvelles, comme le fait que les puces dessinées par AMD étaient gravées plus finement que celles fabriquées par Intel

    • [^] # Re: Yenamarre !

      Posté par . Évalué à 4 (+3/-1). Dernière modification le 04/12/19 à 15:44.

      comme le fait que les puces dessinées par AMD étaient gravées plus finement que celles fabriquées par Intel

      Oui alors attention à trois quatre choses : déjà la finesse dépend du fabricant donc faut faire gaffe aux comparaisons entre les différents fondeurs (le 22-14-10nm d'Intel c'est respectivement l'équivalent au 14-12-7nm de TSMC utilisé par AMD et la majorité des SoC ARM)
      Ensuite ce que ne dit pas Olivier c'est que Intel a raffiné son processus de gravure au fil des années tant et si bien que les nouvelles puces mobiles Comet Lake gravées avec un 14nm+++ FinFET mature tiennent la route par rapport aux puces Ice Lake gravées avec la jeune lithographie 10nm+ (qui est déjà de seconde génération). D'ailleurs Intel propose les deux gammes en même temps pour des usages différents : plus de cœurs pour CL, bien meilleur iGPU pour IL.
      Aussi, les puces AMD Zen2 en 7nm ce sont pour l'instant les processeurs desktop sans iGPU. Les proco pour mobile et les APU sont encore des Zen+ à une gravure équivalente à Intel (et leur iGPU est toujours de génération Vega, pas Navi).
      Enfin, la finesse de gravure ne fait pas tout. La micro-architecture joue beaucoup sur les performances et les différentes marques et gammes de procos possèdent chacune leurs forces et leurs faiblesses.

  • # Ordinateur portable

    Posté par (page perso) . Évalué à 8 (+6/-0).

    Regarde du côté des gammes pro. Du matos un peu endurant, des bons procos (plutôt de l'intel il me semble) pour le haut de gamme avec GPU dédié facultatif (et possible à rajouter plus tard, pièces dispos sur ebay) et des config customisable à souhait, pouvant être achetés sans OS ou avec Ubuntu. Cependant, attention : il ne faut pas assimiler un CPU mobile à celui d'une tour. UN CPU mobile est optimisé pour la performance énergétique au détriment des performances. C'est bête, mais avec un core i7 mobile je le vois quand j'ai un peu trop de VMs qui tournent.

    Opera le fait depuis 10 ans.

  • # Un peu confus

    Posté par . Évalué à 10 (+8/-0).

    16 cœurs 2,5 GHz + RAM 128 Go

    😳
    Ça envoie du lourd la, surtout la ram. La ou ca devient bizarre c’est que tu met ca à côté d’un ordinateur portable.
    J’ai du mal à comprendre quel genre de projet perso peut réellement bénéficier de 128Go de ram, mais aussi tourner sur un laptop? Sans parler de la HA sur un laptop?!?

    Personnellement, je ne suis pas (encore) à l’aise à déboguer sur un serveur distant

    Encore plus confus. Tu parles de matos de production qui peut prendre un réel traffic, mais aussi de live debugger sur un serveur distant?

    Linuxfr, le portail francais du logiciel libre et du neo nazisme.

    • [^] # Re: Un peu confus

      Posté par . Évalué à 5 (+3/-0).

      16 cœurs 2,5 GHz + RAM 128 Go

      😳
      Ça envoie du lourd la, surtout la ram. La ou ca devient bizarre c’est que tu met ca à côté d’un ordinateur portable. J’ai du mal à comprendre quel genre de projet perso peut réellement bénéficier de 128Go de ram, mais aussi tourner sur un laptop? Sans parler de la HA sur un laptop?!?

      +1 !
      Je ne sais pas si l'auteur a lu cet article ou celui-là (ou a conscience de ce qu'on peut faire avec seulement 8k…), mais - hormis quelques cas particuliers où ça se justifie - je reste effaré en voyant le gaspillage de ressources dans l'industrie du logiciel…

      • [^] # Re: Un peu confus

        Posté par (page perso) . Évalué à 3 (+1/-0).

        Non, je n'avais pas lu ces articles, c'est très intéressant.
        Pourrais-tu synthétiser dans un journal ou dépêche ?
        Cela donnerait plus de visibilité et nous aiderait à prendre conscience que nous pouvons faire un geste pour la planète en architecturant/codant mieux.
        Merci 😉

        Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

      • [^] # Re: Un peu confus

        Posté par . Évalué à 2 (+0/-0).

        Si c’est pour faire tourner une infra entière, incluant Kubernetes, logstash, graphite, monitoring, des db, des services, c’est pas délirant.
        C’est juste que mettre ça en relation avec un laptop, ça fait bizarre.

        Linuxfr, le portail francais du logiciel libre et du neo nazisme.

    • [^] # Re: Un peu confus

      Posté par (page perso) . Évalué à 3 (+1/-0).

      Réponse courte

      Oups, effectivement cela peut paraître confus. Au début du projet, on peut se contenter d’un laptop, puis au fur et à mesure construire un cluster avec plusieurs machines, etc. Le laptop permet de faire tourner tout ou partie du projet, mais avec un périmètre plus réduit que ce que l’on ambitionne de faire tourner sur une machine de guerre.

      Si c’est encore un peu confus, lire les sections suivantes qui détaillent davantage l’approche.

      Voir la dernière section pour coder sur un serveur à des milliers de kilomètres.

      Le projet

      Bon je ne voulais pas trop orienter le journal vers le projet, mais pour éviter toute confusion, imaginons un projet qui se connecte sur différents sites web pour télécharger des données à longueur de journée, les insérer dans des bases de données du type Redis ou Kafka, puis cette donnée est consommée/structurée pour être rangée dans une autre base, qui pourrait être Elasticsearch, PostegreSQL, InfluxDB, MongoDB, TimescaleDB afin de permettre de répondre à des requêtes des clients via une API de type REST/Websocket/GraphQL/… avec du reverse-proxy, de l’authentification des utilisateurs, de la surveillance des logs, de la détection d’anomalie automatique…

      Ce projet intègre plusieurs logiciels, nécessite de la mémoire (RAM et SSD/HDD) pour les bases de données, la reprise automatique en cas de plantage, une orchestration du style Kubernetes, la mise à jour du système…

      Infrastructure finale

      Si le projet aboutit, on aura au final une infrastructure avec plusieurs machines, et éventuellement réparties sur plusieurs datacenters (CDN et toussa).

      Mettre au point le projet

      Pour monter un tel projet, on va avancer par itération. Les premières itérations n’auront pas besoin, tout de suite, de l’infrastructure finale. On peut très bien commencer sur un nano-ordinateur (Raspberry Pi), ou sur son laptop personnel.

      Il faudra cependant le faire tourner 24/7/365 si possible et prévoir dès le début une grande capacité de stockage.

      Laptop versus serveur

      Quitte à devoir s’acheter une nouvelle machine, on peut se demander s’il est plus pertinent d’acquérir un laptop ou directement un serveur. Tester l’ensemble du projet peut se faire sur son laptop, mais avec une configuration limitée à quelques sites web. Travailler avec un laptop permet d’être aussi plus mobile.

      Un laptop n’est pas si ridicule que ça. Pour 650 €, on trouve des laptops avec 4 cores (Ryzen 7-3700U) et 8 Go RAM. Et pour dis fois plus cher, le laptop le plus puissant embarquent 8 cores (i9-9980HK) et 64 Go RAM (6500 $), ce qui dépasse de nombreux serveurs.

      Comme l’explique Astaoth, le processeur de laptop est conçu pour être économe en énergie, le processeur d’un serveur est conçu pour fonctionner à fond 24/365.

      Coder sur un serveur à des milliers de kilomètres

      On ouvre une session SSH, et avec vim, emacs ou nano on développe sur le serveur distant. On peut aussi activer le X11 forwarding pour lancer un client graphique sur le serveur distant, qui s’affiche sur le serveur X11 de son laptop (local).

      C’est ce que les développeurs de Facebook avaient l’habitude de faire : l’avantage de la mobilité de leur laptop, avec l’avantage de la puissance de calcul du serveur. Mais les développeurs de Facebook sont en train d’adopter une nouvelle méthode : utiliser Visual Studio Code. Lire aussi Coder à distance avec SSH et Coder à distance sous Linux.

      J’espère avoir éclairci toute ambiguïté 😉

      Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

      • [^] # Re: Un peu confus

        Posté par . Évalué à 2 (+1/-0).

        Pour monter un tel projet, on va avancer par itération. Les premières itérations n’auront pas besoin, tout de suite, de l’infrastructure finale. On peut très bien commencer sur un nano-ordinateur (Raspberry Pi), ou sur son laptop personnel.

        Hum… Ça dépend vraiment de ton modèle de performance, mais généralement ça ne marche pas vraiment comme ça.

        Des logiciels simples dans leur conceptions peuvent passer d'une machine microscopique à une machine énorme en montant en charge linéairement, mais ce n'est pas ce que tu décris.

        Tu va évidement pouvoir lancer tes premiers run sur à peu prêt n'importe quoi, mais l'architecture d'un truc complexe qui doit gérer de gros volumes (de requêtes ou de données) va devoir prendre en compte les spécificités de son déploiement. Tu parle justement d'avoir des éléments comme kfaka. Ça n'est pas conseillé sur de petites machines.

        En avançant dans ton développement tu va avoir besoin de données ressemblant à celle de la prod lors de ton développement. Tu va avoir besoin de gros volumes de données. Si tu souhaite de la haut disponibilité, il faut tester avec des données qui ressemblent à celle de la prod, sans être en prod.

        Jouer avec des RPi, c'est rigolo, mais ça va plus t'embêter qu'autre choses. C'est là que des approches dites micro-services sont utiles. Sur ta machine tu travailles avec un ou plusieurs services qui sont connectés à ton environnement de développement (qui lui est alimenté avec des données et possède les services que tu ne veux pas relancer continuellement sur ta machine).

      • [^] # Re: Un peu confus

        Posté par . Évalué à 4 (+2/-0).

        Ok. Donc en gros, tu veux déployer un vrai service avec une architecture pas forcément si complexe, mais moderne.
        Donc t’as besoin de pas mal de services, déployés indépendamment. Perso mon avis sur ce genre de choses, c’est que le cloud élastique à la aws/azure est parfait. Tu provisionnes uniquement ce dont t’as besoin, et tu t’évites des coûts importants en amont, le temps de construire la base.
        Une fois que t’as atteint la vitesse de croisière, tu peux commencer à migrer sur ton propre hardware, mais à moins d’avoir du vrai traffic a large échelle, je vois pas trop ce que tu vas faire avec une instance 8xlarge. Commence plus petit/cheap, et voit ou ça te mène.

        C’est ce que les développeurs de Facebook avaient l’habitude de faire : l’avantage de la mobilité de leur laptop, avec l’avantage de la puissance de calcul du serveur.

        oui, alors, Facebook adore se faire mousser avec leurs articles “ouais, mais tu vois, à notre échelle, on peut pas faire comme les autres, alors on a développé cette techno de malade”. Sauf que, effectivement, ils ont échelle de furieux, et la plupart des problèmes qu’ils rencontrent ne sont absolument pas pertinents pour la vaste majorité du commun des mortels.

        Oui, je suis à peu près convaincu que vu l’infra massive de Facebook, une bonne partie de leurs ingénieurs ne peuvent pas raisonnablement développer localement.
        Rappelle toi aussi que facebook a probablement plus d’ingénieurs que tu n’auras d’utilisateurs en production. On parle de milliers d’ingénieurs bossant toute la journée, sans compter la batterie de tests qui tournent en interne.
        Donc, oui, dans ce contexte, c’est raisonnable d’investir pour que les inges développent à distance directement sur la même infra que leur prod, ça leur évite des soucis.

        Pour le commun des mortels, j’ai vraiment du mal à voir pourquoi tu t’emboucannerais avec ça. Develope chaque service localement. Déploye dans un environment de dev pour validation. Quand ça tourne, yolo ça en prod, comme tout le monde.

        Linuxfr, le portail francais du logiciel libre et du neo nazisme.

        • [^] # Re: Un peu confus

          Posté par . Évalué à 2 (+1/-0).

          comme tout le monde, comme tout le monde … tout le monde a au moins un proto d'appli en prod dans la vraie vie, non ? 0_0

        • [^] # Re: Un peu confus

          Posté par (page perso) . Évalué à 2 (+0/-0).

          Je pense que nous n’arrivons pas à nous comprendre. Je pars d’une feuille blanche. Pour les nombreuses premières itérations, je n’aurai pas besoin de provisionner des machines virtuelles (cloud). Je peux très bien commencer à développer et tester mes premières briques sur mon ordinateur personnel (avec plus d'espace de stockage). On peut même imaginer que le logiciel qui récupère les données des sites web tourne sur un RPi.

          La prochaine fois que vous lisez un paragraphe qui semble dire une « j’exécute toute une infra de micro-services iso-prod sur un RPi », dites-vous que l’auteur s’est peut-être mal exprimé ou que votre interprétation du texte ne reflète probablement pas la pensée de l’auteur. Cela nous évitera des allers-retours inutiles, et nous économisera des frappes au clavier. 😉👍

          Pour ce projet, au lieu d’acheter d’un laptop à xxx €, ce serait peut-être plus logique de prendre un serveur pour un prix similaire. Dis autrement, au lieu de faire tourner mes logiciels 24/365 sur AWS pour récupérer/stocker/retraiter les données des sites web, ce serait peut-être plus économique de le faire sur un serveur chez moi (tant pis pour les coupures de courant et les connexions internet qui sautent). Rien n’est décidé.

          Merci pour vos suggestions, cela va m’aider à prendre des décisions pertinentes.

          Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

          • [^] # Re: Un peu confus

            Posté par . Évalué à 3 (+1/-0).

            Mon avis…

            Si tu penses que à m'endonné tu auras peut-être besoin éventuellement mais c'est pas sûr d'une infra à 1000€/mois, oublie dès maintenant les idées style RPi ou même laptop (quel qu'en soit le prix). Un laptop c'est cher, et la justification c'est dans la mobilité. Si tu veux de la puissance pour travailler, sans avoir un besoin de mobilité, oublie.

            A 1000€ HT on a un bon dekstop (je viens d'en monter un pour compiler intensément au boulot). Core i7 6 coeurs (je te laisse chercher l'équivalent AMD si tu préfères), 32Go de RAM, 1To de SSD rapide. Et en prime le tout dans un boitier Shuttle style barebone c'est même pas moche ça se pose sur un bureau. Avec ça tu simules une infra complète, avec des Docker, des VMs, tout ce que tu veux. Tu développes, tu compiles, bref ça marche, ça respire, t'es efficace pendant ton développement.

            Ensuite si ton projet c'est "j'ai un concept, mais j'ai pas trop d'argent, je veux pas investir 1000€ avant de savoir si ça a du sens", c'est autre chose. A ce moment les VMs à pas cher dans le cloud ont du sens : tu payes à l'heure, à la seconde, bref tu investis quasiment rien. Les premiers mois où t'as presque rien développé tu payes quasiment rien.

            Les serveurs dédiés, ce sera à considérer le jour où tu pars en production, en comparaison à des VMs dans le cloud en fonction de la réussite du produit final.

            En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

            • [^] # Re: Un peu confus

              Posté par (page perso) . Évalué à 2 (+0/-0).

              Merci gUI pour tes recommandations.

              Une information importante sur laquelle je n’ai pas insisté : dans mon projet, la continuité des données récupérées à partir des sites web est très importante. Par conséquent, louer des petites machines AWS plusieurs années 24/365 va me coûter cher au final, plus cher que le dédié. Ne jetons pas l’idée d’utiliser un RPi les premiers mois du projet tant que la faible performance convienne au peu de services utilisés sur les premières itérations.

              Oui, un mini PC à environ 1000 € est une bonne option pour avoir une machine à la fois pour le dév. et aussi comme serveur de test. Je vais surveiller les petites annonces (matériel d’occasion)…

              Par contre, je vais devoir la laisser tourner 24/7. Peut-être, avoir une seconde machine pour permettre les mise à jour du système + redémarrage sans interruption de la collecte des données…

              Merci pour vos suggestions, cela m’aide beaucoup à réfléchir sur comment je pourrais m’y prendre.

              Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

              • [^] # Re: Un peu confus

                Posté par . Évalué à 4 (+2/-0).

                la continuité des données récupérées à partir des sites web est très importante

                Je ne comprends pas cette phrase, surtout que qques char plus tard tu écris :

                Ne jetons pas l’idée d’utiliser un RPi les premiers mois du projet

                Quelle continuité si tu commences sur un RPi (ARM) pour finir sur une VM (x86) dans le cloud ? En quoi une vraie machine "dans un premier temps" offrirait moins de continuitué que un RPi "dans un premier temps" ?

                Et si tu penses que un RPi peut suffire, vas en acheter un dans les minutes qui viennent (ça prend 2mn avec Internet), tu te le fais livrer pour ce week-end et tu démarres dès lundi à bosser dessus. Vu ce que ça coûte pourquoi demander un avis au préalable ? Pourquoi ne pas tester directement ?

                En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

              • [^] # Re: Un peu confus

                Posté par . Évalué à 2 (+1/-0).

                Une information importante sur laquelle je n’ai pas insisté : dans mon projet, la continuité des données récupérées à partir des sites web est très importante. Par conséquent, louer des petites machines AWS plusieurs années 24/365 va me coûter cher au final, plus cher que le dédié.

                Ça dépend. Le serverless peut être idéal, ou pas. Ou utiliser une gateway selon qui tu poll ou si on t'appelle. C'est tellement flou qu'on ne peut pas vraiment t'aider.

              • [^] # Re: Un peu confus

                Posté par (page perso) . Évalué à 3 (+1/-0).

                Si la continuité est vraiment importante, le serveur à domicile n'est probablement pas la meilleure solution vu qu'il y a des beaucoup de raisons d'avoir des interruptions de service plus ou moins longues : panne matérielle, coupure électrique, plantage du modem, panne chez le FAI, vol du serveur, incendie, bête arrachage de prise… et tout ça en ton absence, bien évidemment.

                • [^] # Re: Un peu confus

                  Posté par (page perso) . Évalué à 2 (+0/-0).

                  Je ne peux pas dévoiler ici le projet, et je comprends votre frustration de ne pas savoir, donc envoyez-moi un e-mail à oliver (À) Lmap (POINT) org pour que je vous l’explique en privé (il y a deux décennies, on pouvait s’échanger des messages privés sur DLFP). Vous comprendrez alors en quoi un laptop premier prix peut suffire (ou un RPi) et pourquoi plusieurs machines sur le cloud peut aussi être une bonne solution.

                  Mais oui, c’est sûr : gérer la redondance de l’alimentation et celle de la connexion à internet, c’est un métier à part entière, une partie des compétences d’un hébergeur. Ce n’est pas chez un particulier que l’on peut facilement réussir à atteindre ces exigences. Mais bon, les premiers mois, pourquoi pas commencer à collecter les données de cette façon, le temps de développer le projet ?

                  Je ne cache pas que j’avais envisagé de fournir mes serveurs à mes amis qui laisse allumé leur modem internet toute l’année afin d’assurer la redondance nécessaire, mais cela fait moins sérieux que de prendre des machines sur des datacenters aux 4 coins de la planète.

                  Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

          • [^] # Re: Un peu confus

            Posté par . Évalué à 5 (+4/-0). Dernière modification le 05/12/19 à 00:23.

            Je pense que tu met la charrue avant les bœufs. Commence à coder quelque chose, avance dans le code et dans les fonctionnalités. Quand tu verra tes limites, tu pourras choisir ton matos. Parce que si tu n'a pas particulièrement d'éléments pour choisir entre le cloud, un RPi, un laptop et un gros serveur, c'est que tu es loin d'avoir la maturité pour choisir.

            • [^] # Re: Un peu confus

              Posté par (page perso) . Évalué à 3 (+1/-0).

              C’est exactement ce que je compte faire, commencer à coder. Je pourrais me contenter de ma machine personnelle pour tester, ou d’un RPi tant que mes premières versions ne soient pas trop gourmandes en ressources, ou acheter un mini-PC de dév. plus costaud… C’est vers cette dernière solution vers laquelle je m’oriente…

              Merci JeanClaude, gUI, groumly et karteum59 pour vos commentaires. 😉

              Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

  • # AMD

    Posté par . Évalué à 10 (+12/-1).

    Deux remarques complémentaires sur AMD:

    1. AMD contribue au noyau, notamment sur la partie graphique, et même fournit les spécifications de ses processeurs graphiques (ex-ATI). Donc, je pense qu'il ne faut pas minorer la contribution d'AMD. D'autant plus qu'Intel a 10 fois plus d'employés qu'AMD.
    2. Les processeurs AMD ont été choisis à la fois par Sony et Microsoft pour équiper la prochaine génération de consoles de jeux. Ça veut dire des millions d'unités qui vont être écoulées dans les prochaines années.
  • # Entroware

    Posté par (page perso) . Évalué à 2 (+1/-0).

    J'ai pris mon ordinateur portable de dev avec un gros CPU mais pas que (Intel i7 8550U quad core, 32Go de RAM, "disque dur" MVMe 512Go et pseudo carte graphique Intel qui suffit pour faire tourner les jeux d'il a 10 ans) chez Entroware. C'est du Clevo rebranded et les ordinateurs ne sont disponibles que sous *ubuntu

  • # Serveurs dédiés

    Posté par (page perso) . Évalué à 4 (+2/-0).

    La seconde est celle d’une machine dédiée, c’est-à-dire d’une machine physique. Cette possibilité est plus avantageuse si la machine est utilisée plusieurs mois.

    Y'a quand même de sacré bémols à apporter. À commencer par le temps passé à acheter et installer le serveur, la maintenance potentielle, etc … J'ai vu des serveurs patienter 6 mois avant d'être opérationnels, temps pendant lequel ils se déprecient. Ensuite il y'a la flexibilité. Sur le cloud tu peux partir petit (qui coûte vraiment pas cher, parfois gratuit) et augmenter la taille des machines ou leur nombre en quelques clics. Avec les serveurs dédiés, si tu te rends compte qu'il te faut 3 fois plus de serveurs, c'est un délai non négligeable. Et si tu te rends compte qu'il t'en faut 3 fois moins, c'est chaud de récupérer tes sous. Enfin il faut que tu comptes la conso électrique du serveur, de la clim si nécessaire, la redondance électrique, la maintenance de tout ça …

    Bref, même en ne regardant que les coûts, c'est pas évident que le cloud soit moins avantageux que des serveurs dédiés sur le long termes. Faut avoir pas mal de machines et être à la pointe dans sa gestion pour que ce soit le cas.

  • # vendeur de pc sous linux

    Posté par . Évalué à 1 (+1/-0).

    Une boutique qui vend des PC testés sous Linux Tuxedo
    Ils sont allemand mais livre dans toute l'UE.

    J'ai un Desktop de chez eux qui fonctionne bien comme il faut. Je n'ai pas testé leurs portable.

  • # Intel

    Posté par . Évalué à 1 (+2/-3).

    C'est eux qui ont été assez malveillants pour inventer HDCP.

    Je ne leur ai plus acheté un seul processeur, depuis.

    THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.

    • [^] # Re: Intel

      Posté par . Évalué à 3 (+1/-0).

      Je cite Wikipedia : https://fr.wikipedia.org/wiki/High-bandwidth_Digital_Content_Protection

      Le procédé HDCP (High-Bandwidth Digital Content Protection), traduisible par Protection des contenus numériques haute définition, est un procédé électronique et logiciel élaboré par Intel destiné à contrôler les flux numériques vidéo et audio haute définition. Il exploite principalement les interfaces et liaisons DVI, HDMI ou DisplayPort et permet d'en restreindre l'usage, notamment à en interdire la copie numérique directe vidéo ou audio. Faisant partie de la gestion des droits numériques (DRM), ce système comprend une série de licences (brevets) dites « propriétaires ». Son exploitation requiert une licence d'utilisation (industrielle). Ce dispositif comprend à la fois des équipements (microprocesseurs) et des logiciels intégrés.[…]

  • # processeurs AMD64 (Pentium II)

    Posté par . Évalué à 7 (+5/-0).

    Mais bon, la plupart des logiciels sont compilés avec la compatibilité des premiers processeurs AMD64 (Pentium II) de la fin des années 90 (il y a 20 ans).

    Une petite coquille s'est glissée ici on dirait. Le premier processeur x64 semble être l'Opteron d'AMD, sorti en 2003, et le premier processeur Intel x64 semble être le Xeon Nocona, sorti en 2004, il y a 15 ans.

    Le Pentium 2 était effectivement un processeur i686, succédant au Pentium (i586), succédant au 80486 (i486) et au 80386 (i386).

    Certaines distribution compilaient en i386 pour un maximum de compatibilité, même si aujourd'hui, les paquets de Debian (par exemple) dit "i386" sont en fait i686. Je ne sais pas depuis quand, mais ça fait un petit moment maintenant.

    Du coup, je sais que pour x86, on a eu le i386, i486, i586 et i686, mais pour le x64, j'imagine qu'il y a eu des nouvelles instructions et des ajouts à chaque nouvelle génération de processeurs mais que les programmes n'ont pas forcément été compilés avec ces nouvelles fonctionnalité pour garantir un maximum de support matériel (ou je me trompe ?), donc ça ne doit pas fondamentalement retirer la substance de ton propos.

    • [^] # Re: processeurs AMD64 (Pentium II)

      Posté par . Évalué à 3 (+1/-0).

      C'est bien ça.
      Le Pentium 4 et l'AMD K7 sont même des i786.
      Après il y a eu des ajouts d'instructions au cours de x86_64 mais c'est plutôt dépendant de chaque génération de chaque marque et si un programme très utilisé peut bénéficier de ces nouvelles instructions ou des extensions du jeu d'instruction (SSSE3, AVX-512, AES, etc.) il me semble que c'est là qu'il devient intéressant de compiler plus spécifiquement quitte à perdre la rétrocompatibilité du binaire avec les micro-architectures précédentes.

    • [^] # Re: processeurs AMD64 (Pentium II)

      Posté par (page perso) . Évalué à 2 (+0/-0).

      Mince, je me suis basé sur la mauvaise page. Depuis Fedora 26, il est régulièrement question de ne plus prendre en charge l’architecture x86 (32-bit).
      https://fedoraproject.org/wiki/Architectures/x86#Supported_Hardware

      Ce n’est vraiment pas facile de savoir quels sont les plus vieux processeurs pris en charge par les distributions. Et je n’ai pas trouvé les flags de compilations, à part sur ce commentaire du site Phoronix :
      https://www.phoronix.com/forums/forum/software/distributions/1136111-fedora-31-performance-is-still-sliding-in-the-wrong-direction-benchmarks-against-ubuntu-19-10-clear-linux?p=1136130#post1136130

      Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

      • [^] # Re: processeurs AMD64 (Pentium II)

        Posté par . Évalué à 4 (+2/-0).

        Globalement, je m'attends à ce que n'importe quel processeur x64 fonctionne, avec peut-être quelques bogues occasionnels sur les vieux processeurs qui ne sont plus testés. Ce serait étonnant que les options données dans ton lien exclut des vieux processeurs x64 en tout cas (-m64 -mtune=generic) mais ce n'est que mon intuition, je ne suis pas expert :

        CFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection'
        

        Pour x86, pour les distributions qui supportent encore cette architecture (ce n'est plus le cas d'Ubuntu non LTS par exemple, j'ai une tablette qui prend en charge x64 mais qui n'a qu'1 Gio de RAM donc j'utilise x86 dessus et c'est la fin en 2023 avec Ubuntu 18.04), je m'attends à ce qu'il faille au minimum du i686 (Pentium II) et que ça marche sur Pentium II (avec des problèmes de perfs pour beaucoup de tâches du quotidien bien sûr. J'ai utilisé (de plus en plus occasionnellement) un Pentium II jusqu'en 2011 en tout cas, avec 96 Mio de RAM et un disque dur lent… c'était dur à la fin xD. Il fonctionne certainement encore, mais je n'ai plus le chargeur de l'ordi en question malheureusement. Je l'ai prêté et je ne sais pas ce qu'il est devenu.

  • # Graviton

    Posté par (page perso) . Évalué à 6 (+3/-0).

    C’est ce que fait Amazon depuis un an avec ses processeurs ARM, nommés Graviton. Et la seconde génération Graviton est en cours de genèse qui embarquent 32 cœurs.

    Finalement il est annoncé que le Graviton 2 a 64 coeurs et pas 32.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.