Привет, Хабр! Меня зовут Сергей Минаев, я руководитель администрирования веб-сервисов компании Спортмастер.
И пока весь мир обсуждает, насколько успешным оказался процессор Apple M1 и действительно ли можно доверять бенчмаркам, мы с инженерами глубоко задумались о будущем.
Мы сидели и курили, начался новый день, но мысли о случившемся не могли покинуть наши головы.
Нет, мы не обсуждали возможный крах Intel, не думали о том, что AMD будет делать дальше с x86, не думали о Вендекапете.
Мы пытались и до сих пор пытаемся понять, насколько новинка от Apple изменит веб-разработку.
Давайте вернемся «давным-давно, в далекую галактику» и вспомним разные архитектуры процессоров и то, почему они остались на обочине истории.
В начале было слово.
Тогда двойное слово
Когда компьютеры были большими, как деревья, а 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.
Добро пожаловать в дивный новый мир.
Или не приветствуются.
Мысленно перенесемся в середину 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!
И если с мобильной разработкой все более-менее понятно, мало что в ней изменится, то с вебом, возможно, начнется что-то непонятное.
Пользователи новых MacBook будут работать на ARM и писать код под x86. Да, есть Rosetta 2, но Docker пока не готов для M1. Но это пока все.
Появятся оптимизированные версии для М1; разработчики, скорее всего, будут использовать образы ARM. Для работы Java необходима JVM, скомпилированная для конкретной архитектуры процессора.
И когда-нибудь наше любимое «У меня все работает локально, что-то у тебя с сервером!» возникнет.
И в заключение
Мы не уверены, что все получится так, как мы ожидаем.
Возможно, 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
-
Сказка О Чёрном Хабрашутере
19 Oct, 24