Ich denke an ARMageddon

Hallo Habr! Mein Name ist Sergey Minaev, ich bin der Leiter der Verwaltung von Webdiensten bei Sportmaster.



Und während die ganze Welt darüber diskutiert, wie erfolgreich der Apple M1-Prozessor geworden ist und ob es wirklich möglich ist, den Benchmarks zu glauben, haben meine Ingenieure und ich uns Gedanken über die Zukunft gemacht.



Wir saßen und rauchten, ein neuer Tag begann, aber der Gedanke an das, was geschehen war, ließ unsere Köpfe nicht los. Nein, wir haben nicht über den möglichen Absturz von Intel gesprochen, wir haben nicht darüber nachgedacht, was AMD als nächstes mit x86 machen würde, wir haben nicht über Vendekapets nachgedacht. Wir haben versucht und versuchen immer noch zu verstehen, wie sehr das neue Produkt von Apple die Webentwicklung verändern wird.



Kehren wir zu „vor langer Zeit in einer fernen Galaxie“ zurück und erinnern uns an die verschiedenen Prozessorarchitekturen und warum sie am Rande der Geschichte standen.



Am Anfang war das Wort. Dann ein Doppelwort







Wenn Computer so groß wie Bäume und x86 so klein wie Gras waren, wurde der größte Teil der Arbeit auf „großen Computern“ ausgeführt, und niemand nahm den IBM-PC sehr ernst. Aber dann gab es eine Revolution mehrmals - 80386 erschien. Der geschützte Modus erschien, es war möglich, 4 GB Speicher zu adressieren ... aber all dies spielt keine Rolle. Preis und Prävalenz sind wichtig. Irgendwann eroberte x86 dank Microsoft, einem sehr wenig bekannten Unternehmen, den Markt für PCs, die zu Hause gekauft werden konnten. Und wo es eine Vielzahl gibt, erscheint ein handliches, bekanntes und beliebtes Instrument. Es war x86, das zu einem solchen Tool wurde, für das eine Menge Software geschrieben wurde, und diese Software wurde auf x86 selbst geschrieben.



Ja, es gab einen Markt für große und schwere DEC Alpha, PowerPC, MIPS, SPARC. Apple-Computer, die auf Motorolla / PowerPC basieren, werden vorerst umgangen. Das Wichtigste geschah jedoch auf PC-Ebene: x86 war ein bekanntes und weit verbreitetes Tool, die Leistung stieg mit jeder Generation und die Verfügbarkeit war höher als bei anderen Architekturen. All dies führte dazu, dass eine kritische Masse an Software speziell für x86 verteilt wurde. Ein gutes Beispiel dafür ist die schrittweise Aufgabe der Alpha-, MIPS- und PowerPC-Architekturen in Windows NT 4.0.



Allmählich begann x86 in das Serversegment einzudringen, in dem zuvor PowerPC, MIPS und IA64 regierten. Im Laufe der Zeit begannen Architekten, benutzerdefinierte Architekturen aufzugeben, der Servermarkt dominierte x86 (bereits amd64), und Giganten wie PowerPC und SPARC rückten in einen sehr Nischenmarkt vor. MIPS ging in Router, PA-RISC wurde für IA64 aufgegeben und IA64 fand seinen Eisberg.



Aber was können wir über das Serversegment sagen, selbst wenn Spielekonsolen von PowerPC / Cell auf x86 und ... ARM umgestellt wurden?



Willkommen in einer schönen neuen Welt. Oder kommst du nicht ...







Gehen Sie mental auf Mitte 2000 über: Mit 29 US-Dollar kündigt Apple den Übergang von IBM PowerPC zu Intel x86 an. Schneller höher stärker. Der Rosetta-Übersetzer scheint den Übergang von einer Architektur zur anderen zu erleichtern. Zu dieser Zeit dachte niemand viel über die Entwicklung des MacBook nach, so dass sich herausstellte, dass Kaugummi aus Friedensfreundschaft und Kaugummi bestand.



Wir gehen jetzt zu 2007 über, als Apple sein erstes iPhone auf Samsung 32-Bit RISC ARM vorstellte. Dies ist ein Meilenstein für ARM. Prozessoren dieser Architektur wurden früher in PDAs verwendet, aber Geräte dieses Formats waren das Vorrecht von Ingenieuren und Geeks. Wenn Sie sich an das U-Bahn-Auto dieser Zeit erinnern, konnten nur wenige Menschen den PDA sehen, und wenn er auffiel, erregte er Interesse. Wen können Sie jetzt mit einem Smartphone überraschen? Mobile Geräte sind vollständig in unser Leben eingetreten. Jetzt ist der Markt für C / C ++ oder Assembler sehr eng, aber für einen mobilen Entwickler stehen fast alle Türen offen. Ja, Java wurde für Android und Swift für iOS entwickelt. Aber alles läuft auf ARM.



ARM hat viele Vorteile, ich denke nicht, dass es notwendig ist, sich mit technischen Daten zu befassen, denn das Wichtigste ist die Verbreitung und Gewohnheit. Eine Gewohnheit sowohl der Benutzer als auch der Entwicklung.



In der Zwischenzeit bricht ARM in die Welt der Konsolen ein: Nintendo und nVidia beginnen, diese Architektur zu verwenden.



Die Vergangenheit wird vergessen, die Zukunft wird geschlossen, die Gegenwart wird gewährt



Kommen wir nun zu unserer Zeit. Dieses Jahr ist sehr ereignisreich, daher denke ich, dass die Änderung der Architektur bei Apple natürlich spürbar war, aber wir werden die Echos des Hintergrunds etwas später erhalten.



Irgendwann wurden Apple-Laptops nicht nur zum Symbol der Mode, sondern zu einem funktionierenden Werkzeug, vor allem zu einem vertrauten Werkzeug für Entwickler. Wir hören oft von Kandidaten, "gib mir ein MacBook oder ich programmiere auf meinem". Der Entwickler (Web, Mobile) und das MacBook sind praktisch unteilbar.



Und an diesem Punkt beginnt das Interessanteste: Ein Unternehmen, das keinen so großen Marktanteil hat, aber über ein Tool verfügt, an das es gewöhnt ist und auf dem nach verschiedenen Schätzungen 90-95% des Codes für das Web erstellt werden, verändert die Prozessorarchitektur in seinem Produkt ...

Kehren wir in die Vergangenheit zurück, irgendwo zwischen 1985 und 1995. Was war der Vorteil von x86: Preisverfügbarkeit, Gewohnheit, wachsende Anzahl von Software und Softwareentwicklung. Jetzt werden Apple M1-Laptops billiger verkauft als Intel Core-Laptops. Entwickler sind sehr an das Macbook gewöhnt, und wenn die ARM-Version billiger als die x86 ist, wird sie im Allgemeinen gekauft. Und sie werden es sowohl wegen des Preises kaufen, als auch weil es laut Tests schneller ist und weil es mehr vom Laden lebt. Und im Allgemeinen - das ist ein super neues Macbook!







Und wenn bei der mobilen Entwicklung alles mehr oder weniger klar ist, wird sich wenig daran ändern, dann beginnt mit dem Web vielleicht das Unverständliche.



Benutzer der neuen MacBooks werden auf ARM ausgeführt und schreiben Code für x86. Ja, es gibt Rosetta 2, aber Docker ist noch nicht bereit für M1. Aber das ist alles für jetzt. Es wird optimierte Versionen für M1 geben, Entwickler werden höchstwahrscheinlich ARM-Images verwenden. Dasselbe Java benötigt eine JVM, die für eine bestimmte Prozessorarchitektur kompiliert wird. Und eines Tages wird es unser geliebtes "Alles funktioniert für mich vor Ort, es ist etwas mit Ihrem Server!".



Abschließend







Wir sind uns nicht sicher, was wie erwartet passieren wird. Vielleicht wird Rosetta 2 dauerhaft leben, vielleicht werden sie sich etwas anderes einfallen lassen, vielleicht wird Apple die M1 aufgeben (oder das Intel / AMD-Imperium wird zurückschlagen).



Aber jetzt haben wir die Boxen durchsucht, einen Raspberry Pi 4 gefunden und begonnen, Docker auf ARM zu testen. Gleichzeitig haben wir alle unsere Basis-Images in der Unternehmensregistrierung durchgesehen und geprüft, ob sie für ARM neu erstellt werden können.



VMware beginnt, ESXi auf ARM zu portieren, Kubernetes ist bereits in der ARM-Version vorhanden, Amazon verbessert ARM-Instanzen und im Internet wird häufig geschrieben, dass die x86-Hegemonie zu Ende geht.

Vielleicht ist das alles umsonst, aber wir denken bereits über die Möglichkeit und Zweckmäßigkeit nach, Server in der ARM-Architektur zu verwenden. Es ist besser, jetzt darüber nachzudenken, um nicht eingeholt zu werden und am Rande der Geschichte zu stehen.



All Articles