Pensando en ARMageddon

¡Hola, Habr! Mi nombre es Sergey Minaev, soy el jefe de administración de servicios web en Sportmaster.



Y mientras el mundo entero discute el éxito del procesador Apple M1 y si es realmente posible creer en los puntos de referencia, mis ingenieros y yo nos sumergimos en pensamientos sobre el futuro.



Nos sentamos y fumamos, comenzó un nuevo día, pero el pensamiento de lo que había sucedido no abandonó nuestras cabezas. No, no discutimos el posible colapso de Intel, no pensamos en lo que haría AMD con x86 a continuación, no pensamos en Vendekapets. Hemos intentado y seguimos intentando comprender cuánto cambiará el desarrollo web con el nuevo producto de Apple.



Volvamos a “hace mucho tiempo, en una galaxia lejana” y recordemos las diferentes arquitecturas de procesadores y por qué se dejaron al margen de la historia.



En el principio era la palabra. Entonces una palabra doble







Cuando las computadoras eran tan grandes como árboles y la x86 era tan pequeña como la hierba, la mayor parte del trabajo se hacía en “computadoras grandes” y nadie se tomaba muy en serio la PC IBM. Pero luego hubo una revolución número de veces: apareció 80386. Apareció el modo protegido, fue posible direccionar 4GB de memoria ... pero todo esto realmente no importa. El precio y la prevalencia importan. En algún momento, x86, gracias a Microsoft, una empresa muy poco conocida, comenzó a conquistar el mercado de las computadoras personales que se podían comprar en casa. Y donde hay muchos, aparece un instrumento útil, familiar y favorito. Esta misma herramienta era x86, para la que se empezó a escribir mucho software, y este software se escribió en x86.



Sí, había un mercado para DEC Alpha, PowerPC, MIPS, SPARC grandes y pesados. Las computadoras Apple basadas en Motorolla / PowerPC están omitidas por ahora. Pero lo más importante sucedió a nivel de computadora personal: x86 era una herramienta familiar y extendida, el rendimiento aumentaba con cada generación y la disponibilidad era mayor que la de otras arquitecturas. Todo esto llevó al hecho de que se extendió una masa crítica de software específicamente para x86, un buen ejemplo de esto es el abandono gradual de Microsoft de las arquitecturas Alpha, MIPS y PowerPC en Windows NT 4.0.



Poco a poco, x86 comenzó a irrumpir en el segmento de servidores, donde antes reinaban PowerPC, MIPS, IA64. Con el tiempo, los arquitectos comenzaron a abandonar las arquitecturas personalizadas, x86 (ya amd64) comenzó a dominar el mercado de servidores y gigantes como PowerPC y SPARC se trasladaron a un mercado muy especializado. MIPS entró en enrutadores, PA-RISC se abandonó para IA64 e IA64 encontró su iceberg.



Pero qué podemos decir sobre el segmento de servidores, incluso si las consolas de juegos han pasado de PowerPC / Cell a x86 y ... ARM.



Bienvenido a un mundo nuevo y feliz. O no vienes ...







Muévase mentalmente a mediados de 2000: dólar a los 29, Apple anuncia la transición de IBM PowerPC a Intel x86. Mas rápido, mas alto, más fuerte. El traductor de Rosetta parece facilitar la transición de una arquitectura a otra. En ese momento, nadie pensó mucho en el desarrollo de la MacBook, por lo que resultó un chicle de paz-amistad-mascar.



Ahora nos estamos moviendo al 2007 cuando Apple presentó su primer iPhone con Samsung RISC ARM de 32 bits. Este es un momento histórico para ARM. Los procesadores de esta arquitectura se usaban anteriormente en PDA, pero los dispositivos de este formato eran prerrogativa de ingenieros y geeks. Si recuerdas el vagón del metro de esa época, pocas personas podían ver el PDA y, si era llamativo, despertó interés. ¿A quién puedes sorprender ahora con un smartphone? Los dispositivos móviles han entrado por completo en nuestras vidas. Ahora el mercado de C / C ++ o Assembler es muy estrecho, pero casi todas las puertas están abiertas para un desarrollador móvil. Sí, Java está diseñado para Android, Swift para iOS. Pero todo funciona con ARM.



ARM tiene muchas ventajas, no creo que sea necesario detenerse en datos técnicos, porque lo más importante es la prevalencia y la costumbre. Un hábito tanto de los usuarios como del desarrollo.



Mientras tanto, ARM está irrumpiendo en el mundo de las consolas: Nintendo y nVidia están comenzando a utilizar esta arquitectura.



Se olvida el pasado, se cierra el futuro, se concede el presente



Ahora pasemos a nuestro tiempo. Este año está lleno de acontecimientos, así que creo que el cambio en la arquitectura de Apple fue, por supuesto, notable, pero obtendremos los ecos del fondo un poco más tarde.



En algún momento, las computadoras portátiles de Apple se han convertido no solo en un símbolo de moda, se han convertido en una herramienta de trabajo, además, lo más importante, en la herramienta habitual de un desarrollador. A menudo escuchamos a los candidatos "dame una MacBook o programaré en la mía". El desarrollador (web, móvil) y el MacBook son prácticamente indivisibles.



Y en este momento comienza lo más interesante: una empresa que no tiene una cuota de mercado tan grande, pero que tiene una herramienta a la que están acostumbrados y en la que, según diversas estimaciones, se crea el 90-95% del código para la web, cambia la arquitectura del procesador en su producto. ...

Regresemos al pasado, en algún lugar de 1985-1995. ¿Cuál fue la ventaja de x86: precio-disponibilidad, hábito, número creciente de software y desarrollo de software? Ahora, los portátiles Apple M1 se venden más baratos que los portátiles Intel Core. Los desarrolladores están muy acostumbrados a la Macbook, y si la versión ARM es más barata que la x86, generalmente la comprarán. Y lo comprarán tanto por el precio, como porque es más rápido según las pruebas, y porque vive más de la carga. Y, en general, ¡este es un Macbook supernuevo!







Y si con el desarrollo móvil todo está más o menos claro, poco cambiará en él, entonces con la web, quizás, comenzará lo incomprensible.



Los usuarios de las nuevas MacBooks se ejecutarán en ARM y escribirán código para x86. Sí, existe Rosetta 2, pero Docker aún no está listo para M1. Pero eso es todo por ahora. Habrá versiones optimizadas para M1, los desarrolladores probablemente usarán imágenes ARM. El mismo Java necesita una JVM para funcionar, que se compila para una arquitectura de procesador específica. Y algún día estará nuestro querido "Todo funciona para mí localmente, ¡es algo con tu servidor!".



En conclusión







No estamos seguros de qué pasará como esperamos. Quizás Rosetta 2 vivirá permanentemente, quizás se les ocurra algo más, quizás Apple abandonará el M1 (o el imperio Intel / AMD contraatacará).



Pero por ahora, buscamos en las cajas, encontramos una Raspberry Pi 4 y comenzamos a probar Docker en ARM. Y al mismo tiempo, revisamos todas nuestras imágenes base en el Registro corporativo y vimos si podían reconstruirse para ARM.



VMware está comenzando a portar ESXi a ARM, Kubernetes ya existe en la versión ARM, Amazon está mejorando las instancias ARM y a menudo se escribe en Internet que la hegemonía x86 está llegando a su fin.

Quizás todo esto sea en vano, pero ya estamos pensando en la posibilidad y conveniencia de utilizar servidores en la arquitectura ARM. Es mejor pensar en ello ahora, para no quedar atrapado y al margen de la historia.



All Articles