Pensando em ARMageddon

Olá, Habr! Meu nome é Sergey Minaev, sou o chefe de administração de serviços da Web da Sportmaster.



E enquanto o mundo inteiro está discutindo o sucesso do processador Apple M1 e se você pode realmente acreditar nos benchmarks, meus engenheiros e eu mergulhamos em pensamentos sobre o futuro.



Sentamos e fumamos, um novo dia começou, mas o pensamento do que havia acontecido não saiu de nossas cabeças. Não, não discutimos o possível crash da Intel, não pensamos no que a AMD faria com o x86 a seguir, não pensamos nos Vendekapets. Tentamos e ainda estamos tentando entender o quanto o novo produto da Apple mudará o desenvolvimento da web.



Vamos voltar a “muito tempo atrás, em uma galáxia distante” e lembrar as diferentes arquiteturas de processadores e por que elas foram deixadas à margem da história.



No começo era a palavra. Então uma palavra dupla







Quando os computadores eram do tamanho de árvores e o x86 do tamanho da grama, a maior parte do trabalho era feito em “grandes computadores” e ninguém realmente levava o IBM PC a sério. Mas então houve uma revolução no número de vezes - apareceu 80386. O modo protegido apareceu, era possível endereçar 4 GB de memória ... mas tudo isso realmente não importa. Preço e prevalência são importantes. Em algum momento, o x86, graças à Microsoft, uma empresa muito pouco conhecida, começou a conquistar o mercado de computadores pessoais que você poderia comprar em casa. E onde há muitos, surge um instrumento prático, familiar e favorito. O X86 se tornou uma dessas ferramentas, para a qual muitos softwares começaram a ser escritos, e este software foi escrito no próprio x86.



Sim, havia um mercado para DEC Alpha, PowerPC, MIPS, SPARC grandes e pesados. Os computadores Apple baseados em Motorolla / PowerPC foram ignorados por enquanto. Mas o mais importante aconteceu no nível do computador pessoal: o x86 era uma ferramenta familiar e difundida, o desempenho aumentava a cada geração e a disponibilidade era maior do que a de outras arquiteturas. Tudo isso levou ao fato de que uma massa crítica de software foi distribuída especificamente para x86, um bom exemplo disso é o abandono gradual da Microsoft das arquiteturas Alpha, MIPS e PowerPC no Windows NT 4.0.



Gradualmente, o x86 começou a entrar no segmento de servidores, onde PowerPC, MIPS, IA64 reinavam antes. Com o tempo, os arquitetos começaram a abandonar as arquiteturas customizadas, o x86 (já amd64) começou a dominar o mercado de servidores e gigantes como PowerPC e SPARC entraram em um mercado de nicho muito específico. O MIPS foi para os roteadores, o PA-RISC foi abandonado pelo IA64 e o IA64 encontrou seu iceberg.



Mas o que podemos dizer sobre o segmento de servidores, mesmo que os consoles de jogos tenham passado de PowerPC / Cell para x86 e ... ARM.



Bem-vindo a um admirável mundo novo. Ou você não vem ...







Mude mentalmente para meados de 2000: dólar a 29, a Apple anuncia a transição do IBM PowerPC para o Intel x86. Mais rápido, mais alto, mais forte. O tradutor Rosetta parece facilitar a transição de uma arquitetura para outra. Naquela época, ninguém pensava muito sobre o desenvolvimento do MacBook, então surgiu um chiclete de paz-amizade.



Estamos agora nos movendo para 2007, quando a Apple lançou seu primeiro iPhone no Samsung RISC ARM de 32 bits. Este é um momento histórico para a ARM. Processadores com essa arquitetura eram usados ​​anteriormente em PDAs, mas dispositivos desse formato eram prerrogativa de engenheiros e geeks. Se você se lembra do vagão do metrô da época, poucas pessoas podiam ver o PDA e, se fosse impressionante, despertava interesse. Quem você pode surpreender com um smartphone agora? Os dispositivos móveis entraram completamente em nossas vidas. Agora o mercado para C / C ++ ou Assembler é muito estreito, mas quase todas as portas estão abertas para um desenvolvedor móvel. Sim, o Java foi desenvolvido para Android, Swift para iOS. Mas tudo roda em ARM.



O ARM tem muitas vantagens, não acho que seja necessário insistir em dados técnicos, porque o mais importante é a prevalência e o hábito. Um hábito dos usuários e do desenvolvimento.



Enquanto isso, a ARM está entrando no mundo dos consoles: Nintendo e nVidia estão começando a usar essa arquitetura.



O passado é esquecido, o futuro está fechado, o presente é concedido



Agora, vamos passar para o nosso tempo. Este ano é muito agitado, então acho que a mudança na arquitetura da Apple foi, claro, perceptível, mas veremos os ecos do fundo um pouco mais tarde.



Em algum ponto, os laptops da Apple se tornaram não apenas um símbolo da moda, eles se tornaram uma ferramenta de trabalho, além disso, o mais importante, a ferramenta usual de um desenvolvedor. Frequentemente ouvimos dos candidatos “dê-me um MacBook ou programarei no meu”. O desenvolvedor (web, mobile) e MacBook são praticamente indivisíveis.



E neste momento começa o mais interessante: uma empresa que não tem uma quota de mercado tão grande, mas que tem uma ferramenta a que está habituada e na qual, segundo várias estimativas, é criado 90-95% do código para a web, muda a arquitectura do processador do seu produto ...

Vamos voltar ao passado, em algum lugar em 1985-1995. Qual era a vantagem do x86: disponibilidade de preço, hábito, número crescente de software e desenvolvimento de software. Agora, os laptops Apple M1 são vendidos mais baratos do que os laptops Intel Core. Os desenvolvedores estão muito acostumados com o Macbook e, se a versão ARM for mais barata que o x86, geralmente será comprado. E vão comprar tanto pelo preço, como porque é mais rápido segundo os testes, e porque vive cobrando mais. E, em geral - este é um Macbook supernovo!







E se com o desenvolvimento mobile tudo ficar mais ou menos claro, pouca coisa mudará, então com a web, talvez, comece o incompreensível.



Os usuários dos novos MacBooks rodarão em ARM e escreverão código para x86. Sim, existe o Rosetta 2, mas o Docker ainda não está pronto para M1. Mas isso é tudo por enquanto. Haverá versões otimizadas para M1, os desenvolvedores provavelmente usarão imagens ARM. O mesmo Java precisa de uma JVM para funcionar, que é compilada para uma arquitetura de processador específica. E um dia vai ter o nosso querido “Tudo funciona para mim localmente, é algo com o seu servidor!”.



Em conclusão







Não temos certeza do que acontecerá como esperamos. Talvez Rosetta 2 viverá permanentemente, talvez eles surjam com outra coisa, talvez a Apple abandone o M1 (ou o império Intel / AMD revide).



Mas, por enquanto, procuramos nas caixas, encontramos um Raspberry Pi 4 e começamos a testar o Docker no ARM. E, ao mesmo tempo, examinamos todas as nossas imagens básicas no Registro corporativo e verificamos se elas podem ser reconstruídas para o ARM.



O VMware está começando a portar o ESXi para o ARM, o Kubernetes já existe na versão ARM, a Amazon está melhorando as instâncias do ARM e frequentemente está escrito na Internet que a hegemonia do x86 está chegando ao fim.

Talvez tudo isso seja em vão, mas já estamos pensando na possibilidade e conveniência de usar servidores na arquitetura ARM. É melhor pensar nisso agora, para não ficar preso e à margem da história.



All Articles