Думая Об Armageddon

Привет, Хабр! Меня зовут Сергей Минаев, я руководитель администрирования веб-сервисов компании Спортмастер.

И пока весь мир обсуждает, насколько успешным оказался процессор Apple M1 и действительно ли можно доверять бенчмаркам, мы с инженерами глубоко задумались о будущем.

Мы сидели и курили, начался новый день, но мысли о случившемся не могли покинуть наши головы.

Нет, мы не обсуждали возможный крах Intel, не думали о том, что AMD будет делать дальше с x86, не думали о Вендекапете.

Мы пытались и до сих пор пытаемся понять, насколько новинка от Apple изменит веб-разработку.

Давайте вернемся «давным-давно, в далекую галактику» и вспомним разные архитектуры процессоров и то, почему они остались на обочине истории.



В начале было слово.

Тогда двойное слово



Думая об ARMageddon

Когда компьютеры были большими, как деревья, а x86 — маленькими, как трава, большая часть работы выполнялась на «больших компьютерах», и никто не воспринимал IBM PC всерьез.

Но тут случилась революция номер один – появилось 80386. Появился защищенный режим, можно было адресовать 4гб памяти.

но все это на самом деле не имеет значения.

Цена и распространенность имеют значение.

В какой-то момент x86 благодаря очень малоизвестной компании Microsoft начала завоевывать рынок персональных компьютеров, которые можно было купить дома.

А где множество, там появляется удобный, знакомый и любимый инструмент. x86 стал именно таким инструментом, для которого стало писаться множество программного обеспечения, и это программное обеспечение было написано на самом x86. Да, существовал рынок для больших и тяжелых DEC Alpha, PowerPC, MIPS, SPARC. В настоящее время мы избегаем компьютеров Apple на базе Motorolla/PowerPC. Но самое главное происходило на уровне ПК: x86 был привычным и распространённым инструментом, производительность росла с каждым поколением, а доступность была выше, чем у других архитектур.

Все это привело к тому, что критическая масса ПО получила распространение именно под x86; Хорошим примером этого является постепенный отказ Microsoft от архитектур Alpha, MIPS и PowerPC в Windows NT 4.0. Постепенно x86 стала прорываться в серверный сегмент, где раньше царили PowerPC, MIPS и IA64. Со временем архитекторы стали отказываться от заказных архитектур, x86 (уже amd64) стал доминировать на рынке серверов, а такие гиганты, как PowerPC и SPARC, заняли весьма нишевый рынок.

MIPS перешел в маршрутизаторы, PA-RISC был заброшен в пользу IA64, а IA64 нашел свой айсберг.

А что уж говорить о серверном сегменте, даже если игровые консоли перешли с PowerPC/Cell на x86 и… ARM.

Добро пожаловать в дивный новый мир.

Или не приветствуются.



Думая об ARMageddon

Мысленно перенесемся в середину 2000 года: доллар стоит 29, Apple объявляет о переходе с IBM PowerPC на Intel x86. Быстрее выше сильнее.

Появляется переводчик Rosetta, который призван облегчить переход от одной архитектуры к другой.

О разработке на MacBook тогда особо никто и не думал, так что получилась жвачка мир-дружба-жвачка.

Теперь мы переносимся в 2007 год, когда Apple представила свой первый iPhone на базе 32-битного RISC ARM от Samsung. Это эпохальное время для ARM. Процессоры такой архитектуры и раньше использовались в КПК, но устройства такого формата были прерогативой инженеров и компьютерных фанатов.

Если вспомнить вагон метро того времени, мало кто мог увидеть КПК, а если он попадался на глаза, то вызывал интерес.

Кого сейчас можно удивить смартфоном? Мобильные устройства полностью вошли в нашу жизнь.

Сейчас рынок C/C++ или ассемблера очень узок, но для мобильного разработчика открыты практически все двери.

Да, Java создана для Android, а Swift — для iOS. Но все это работает на ARM. У ARM масса преимуществ, не думаю, что стоит останавливаться на технических данных, ведь самое главное — распространенность и привычка.

Привычка как пользователей, так и разработчиков.

Тем временем ARM прорывается в мир консолей: эту архитектуру начинают использовать Nintendo и nVidia.

Прошлое забыто, будущее закрыто, настоящее отдано

Теперь перейдем в наше время.

Этот год очень насыщен событиями, поэтому думаю, что изменение архитектуры в Apple было, конечно, заметно, но отголоски фона мы получим чуть позже.

В какой-то момент ноутбуки Apple стали не просто символом моды, они стали рабочим инструментом, а главное — распространенным инструментом разработчика.

Мы часто слышим от кандидатов: «дайте мне MacBook, или я буду программировать на своем».

Разработчик (веб, мобильный) и MacBook практически неразделимы.

И тут начинается самое интересное: компания, не имеющая такой большой доли рынка, но имеющая инструмент, к которому они привыкли и на котором, по разным оценкам, 90-95% кода для web, меняет архитектуру процессора в своем продукте.

Вернемся в прошлое, где-то в 1985-1995 годы.

В чем были преимущества x86: цена-доступность, привычка, рост количества ПО и разработки ПО.

В настоящее время ноутбуки Apple M1 продаются дешевле, чем ноутбуки Intel Core. Разработчики очень привыкли к Макбукам, и если ARM-версия дешевле x86, то они в основном будут ее покупать.

И купят его и из-за цены, и потому, что по тестам он быстрее, и потому, что дольше держит зарядку.

И вообще – это суперновый Macbook!

Думая об ARMageddon

И если с мобильной разработкой все более-менее понятно, мало что в ней изменится, то с вебом, возможно, начнется что-то непонятное.

Пользователи новых MacBook будут работать на ARM и писать код под x86. Да, есть Rosetta 2, но Docker пока не готов для M1. Но это пока все.

Появятся оптимизированные версии для М1; разработчики, скорее всего, будут использовать образы ARM. Для работы Java необходима JVM, скомпилированная для конкретной архитектуры процессора.

И когда-нибудь наше любимое «У меня все работает локально, что-то у тебя с сервером!» возникнет.

И в заключение



Думая об ARMageddon

Мы не уверены, что все получится так, как мы ожидаем.

Возможно, Rosetta 2 будет жить вечно, возможно, придумают что-то еще, возможно, Apple откажется от M1 (или империя Intel/AMD нанесет ответный удар).

А пока мы порылись по коробкам, нашли Raspberry Pi 4 и начали тестировать Docker на ARM. В то же время мы просмотрели все наши базовые образы в корпоративном реестре и посмотрели, можно ли их пересобрать для ARM. VMware начинает портировать ESXi на ARM, Kubernetes уже существует в ARM-версии, Amazon совершенствует ARM-экземпляры, а в Интернете часто пишут, что гегемонии x86 приходит конец.

Может быть, это все напрасно, но мы уже думаем о возможности и целесообразности использования серверов на архитектуре ARM. Об этом лучше подумать сейчас, чтобы не оказаться втянутыми в историю и на обочине истории.

Теги: #arm #Процессоры #Intel #Программное обеспечение #ИТ-компании #ИТ-компании #Apple #x86 #MacBook #m1 #rosetta

Вместе с данным постом часто просматривают: