Penser à ARMageddon

Bonjour, Habr! Je m'appelle Sergey Minaev, je suis responsable de l'administration des services Web chez Sportmaster.



Et pendant que le monde entier discute du succès du processeur Apple M1 et de la possibilité de croire aux repères, mes ingénieurs et moi nous sommes plongés dans une réflexion sur l'avenir.



Nous nous sommes assis et avons fumé, une nouvelle journée a commencé, mais la pensée de ce qui s'était passé ne nous quittait pas. Non, nous n'avons pas discuté du possible crash d'Intel, nous n'avons pas pensé à ce qu'AMD ferait avec x86 ensuite, nous n'avons pas pensé à Vendekapets. Nous avons essayé et essayons toujours de comprendre à quel point le nouveau produit d'Apple changera le développement Web.



Revenons à «il y a longtemps, dans une galaxie lointaine» et rappelons-nous les différentes architectures de processeurs, et pourquoi ils ont été laissés en marge de l'histoire.



Au commencement était le mot. Puis un double mot







Lorsque les ordinateurs étaient aussi grands que les arbres et x86 était aussi petit que l'herbe, la plupart du travail était effectué sur de «gros ordinateurs», et personne ne prenait vraiment l'IBM PC au sérieux. Mais ensuite il y a eu un nombre de tours de révolution - 80386. Le mode protégé est apparu, il était possible d'adresser 4 Go de mémoire ... mais tout cela n'a vraiment pas d'importance. Le prix et la prévalence comptent. À un moment donné, x86, grâce à Microsoft, une entreprise très peu connue, a commencé à conquérir le marché des ordinateurs personnels que vous pouviez acheter chez vous. Et là où il y en a beaucoup, il apparaît un instrument pratique, familier et préféré. Cet outil même était x86, pour lequel beaucoup de logiciels ont commencé à être écrits, et ce logiciel a été écrit sur x86 lui-même.



Oui, il y avait un marché pour les grands et lourds DEC Alpha, PowerPC, MIPS, SPARC. Les ordinateurs Apple basés sur Motorolla / PowerPC sont pour l'instant contournés. Mais le plus important s'est produit au niveau des ordinateurs personnels: x86 était un outil familier et répandu, les performances augmentaient à chaque génération et la disponibilité était supérieure à celle des autres architectures. Tout cela a conduit au fait qu'une masse critique de logiciels a été distribuée spécifiquement pour x86, un bon exemple en est l'abandon progressif par Microsoft des architectures Alpha, MIPS et PowerPC dans Windows NT 4.0.



Peu à peu, x86 a commencé à pénétrer le segment des serveurs, où PowerPC, MIPS, IA64 régnaient auparavant. Au fil du temps, les architectes ont commencé à abandonner les architectures personnalisées, x86 (déjà amd64) a commencé à dominer le marché des serveurs, et des géants tels que PowerPC et SPARC sont entrés dans un marché de niche. MIPS est entré dans les routeurs, PA-RISC a été abandonné pour IA64 et IA64 a trouvé son iceberg.



Mais que dire du segment des serveurs, même si les consoles de jeux sont passées de PowerPC / Cell à x86 et ... ARM.



Bienvenue dans un nouveau monde courageux. Ou ne viens pas ...







Passer mentalement à la mi-2000: dollar à 29, Apple annonce le passage d'IBM PowerPC à Intel x86. Plus vite plus haut plus fort. Le traducteur Rosetta semble faciliter la transition d'une architecture à une autre. À cette époque, personne ne pensait beaucoup au développement sur le MacBook, donc il s'est avéré paix-amitié-gomme.



Nous passons maintenant à 2007 lorsque Apple a présenté son premier iPhone sur Samsung RISC ARM 32 bits. C'est un moment historique pour ARM. Les processeurs de cette architecture étaient utilisés dans les PDA auparavant, mais les appareils de ce format étaient l'apanage des ingénieurs et des geeks. Si vous vous souvenez du wagon de métro de l'époque, alors peu de gens pouvaient voir le PDA, et s'il était frappant, cela a suscité l'intérêt. Qui pouvez-vous surprendre avec un smartphone maintenant? Les appareils mobiles sont complètement entrés dans nos vies. Maintenant, le marché du C / C ++ ou de l'assembleur est très étroit, mais presque toutes les portes sont ouvertes pour un développeur mobile. Oui, Java est conçu pour Android, Swift pour iOS. Mais tout fonctionne sur ARM.



ARM a beaucoup d'avantages, je ne pense pas qu'il soit nécessaire de s'attarder sur les données techniques, car le plus important est la prévalence et l'habitude. Une habitude à la fois des utilisateurs et du développement.



Pendant ce temps, ARM fait son entrée dans le monde des consoles: Nintendo et nVidia commencent à utiliser cette architecture.



Le passé est oublié, le futur est fermé, le présent est accordé



Passons maintenant à notre époque. Cette année est très mouvementée, je pense donc que le changement d'architecture chez Apple était, bien sûr, perceptible, mais nous aurons les échos de l'arrière-plan un peu plus tard.



À un moment donné, les ordinateurs portables Apple ne sont pas seulement devenus un symbole de la mode, ils sont devenus un outil de travail, et surtout, l'outil habituel d'un développeur. On entend souvent des candidats «me donner un MacBook ou je vais programmer sur le mien». Le développeur (web, mobile) et MacBook sont pratiquement indivisibles.



Et à ce moment-là, la chose la plus intéressante commence: une entreprise qui n'a pas une part de marché aussi importante, mais qui dispose d'un outil auquel elle est habituée et sur lequel, selon diverses estimations, 90 à 95% du code pour le web est créé, change l'architecture du processeur de son produit. ...

Revenons au passé, quelque part en 1985-1995. Quel était l'avantage de x86: prix-disponibilité, habitude, nombre croissant de logiciels et de développement de logiciels. Désormais, les ordinateurs portables Apple M1 sont vendus moins chers que les ordinateurs portables Intel Core. Les développeurs sont très habitués au Macbook, et si la version ARM est moins chère que la x86, elle sera généralement achetée. Et ils l'achèteront à la fois à cause du prix, et parce qu'il est plus rapide selon les tests, et parce qu'il vit en facturant plus. Et en général - c'est un super nouveau Macbook!







Et si avec le développement mobile tout est plus ou moins clair, peu de choses changeront, alors avec le Web, peut-être, l'incompréhensible commencera.



Les utilisateurs des nouveaux MacBook exécuteront ARM et écriront du code pour x86. Oui, il existe Rosetta 2, mais Docker n'est pas encore prêt pour M1. Mais c'est tout pour le moment. Il y aura des versions optimisées pour M1, les développeurs utiliseront très probablement des images ARM. Le même Java a besoin d'une JVM pour fonctionner, qui est compilée pour une architecture de processeur spécifique. Et un jour, il y aura notre bien-aimé «Tout fonctionne pour moi localement, c'est quelque chose avec votre serveur!».



En conclusion







Nous ne savons pas ce qui se passera comme prévu. Peut-être que Rosetta 2 vivra en permanence, peut-être qu'ils proposeront autre chose, peut-être qu'Apple abandonnera le M1 (ou l'empire Intel / AMD ripostera).



Mais pour l'instant, nous avons cherché les boîtes, trouvé un Raspberry Pi 4 et commencé à tester Docker sur ARM. Et en même temps, nous avons parcouru toutes nos images de base dans le registre de l'entreprise et voir si elles peuvent être reconstruites pour ARM.



VMware commence à porter ESXi vers ARM, Kubernetes existe déjà dans la version ARM, Amazon améliore les instances ARM et Internet est souvent écrit que l'hégémonie x86 touche à sa fin.

Tout cela est peut-être vain, mais nous réfléchissons déjà à la possibilité et à l'opportunité d'utiliser des serveurs sur l'architecture ARM. Il vaut mieux y penser maintenant, pour ne pas être pris et en marge de l’histoire.



All Articles