Рассел Коэн наблюдал, как сотни команд пытаются усыновить ржавчину в Амазонке за последнее десятилетие. Большинство из них облажались.
Коэн, старший инженер -программист, который возглавляет усилия по внедрению ржавчины в AWS, не придерживается его. Выступая на мероприятии Rustconf 2025 на этой неделе, он точно изложил, почему большинство организаций терпят неудачу в Rust — и что некоторые успешные делают по -другому.
Коэн сказал, что он взял четыре ключевых понимания относительно успеха проектов ржавчины. Команды должны: иметь реальную причину использовать ржавчину; найти, выращивать и расширять возможности ржавчины прагматистами; Узнайте (или создайте) новые инструменты; и создавать операционные возможности на ранней стадии.
$ 100 тыс. Переписывает никто не просил
Между тем, вот как это обычно идет не так, описал Коэн. В 2024 году энтузиаст ржавчины в Amazon убедил свою команду построить новый сервис в Rust вместо Python. Служба работала нормально. Три месяца спустя проект реорганизовался под другой командой.
«Они взяли на себя полностью рабочую услугу и переписали его с нуля в Java», — сказал Коэн.
Зачем кому -то выбрасывать рабочий код? Поскольку новая команда посмотрела на кодовую базу Rust и увидела иностранную экосистему, им придется учиться с нуля. У них были сроки для соблюдения и значительных знаний на Python, уже на месте. По его словам, переписываемость ржавчины имело ноль деловой смысл.
«Когда эта команда унаследовала сервис, они не просто видели код ржавчины; они увидели целый стек», — объяснил Коэн.
Победа в 10 раз, которая на самом деле имела значение
Но Коэн также рассказал другую историю. Пожарная телевизионная команда Amazon занималась стареющим оборудованием — миллионы устройств, которые не стали моложе. Память была ограничением, и годы оптимизации Java достигли снижения доходности, сказал он.
Однако один инженер попробовал ржавчину. «Разница была огромной. Они смогли сократить использование памяти не только немного, но и в 10 раз», — добавил Коэн.
Такое улучшение привлекает внимание исполнительной власти. Но ключевое отличие было: «Они не пытались переписать весь мир с ржавчиной», добавил он. Они нашли чистые границы API и заменили кусочки компонентов по кусочкам.
Причина, по которой усилия прошли, заключалась в том, что Fire TV имела реальную проблему, которую Руст резко решила. Первая команда только что подумала, что ржавчина была крутой, предложил Коэн.
«Мы любим ржавчину» — это не бизнес -обоснование
Правило Коэна заключается в том, что вам нужно «по крайней мере один порядок улучшения по сравнению с существующей технологией».
«Это много. Это не на 10% скорость», — сказал он. «Если ваша проблема — теоретическая проблема, которую вы могли бы поразить в будущем, я думаю, что вам будет очень трудно попасть в эту бар».
В Amazon команды в основном выбирают ржавчину для задержки хвоста и использования памяти, а не общая производительность. Если вы приезжаете из Java, переписывание в Rust не будет автоматически сделать вещи быстрее. «JVM — невероятная инженерная часть», — отметил Коэн. Годы оптимизации Java не просто исчезают, потому что вы переключили языки.
Более того, он объяснил, что знает команду, которая проводила годы, пытаясь переписать службу Java, потому что паузы GC убивали их производительность P99. Это казалось идеальным вариантом использования ржавчины. Но «им потребовалось несколько лет, чтобы добраться до паритета, потому что в службе было десятилетия оптимизации, которые они пытались переписать».
Хуже того, «код Java продолжал становиться быстрее, когда они были в этих многолетних переписывающих усилиях», — сказал он.
Экспертная проблема
По словам Коэна, команды с экспертом с ржавчиной на 40% реже сдаются рано. Команды без одного отчета о том, что ржавчина труднее построить и развернуть.
Но вы не можете просто нанять свой выход из этого. «Люди, которые вам нужно сделать успешным усыновлением ржавчины; они не эксперт по ржавчине, который попадает в вашу компанию», — сказал Коэн. «Это люди, которые знают, как быть эффективным в вашей организации, которые теперь становятся экспертом в ржавчине».
Это не евангелисты, публикующие Reddit о безопасности памяти. Они прагматики, которые будут писать сценарии из -за того, что ржавчины работают с вашей системой сборки, отметил он. Они учат, они создают недостающие инструменты и выясняют, как интегрировать ржавчину с любой инфраструктурой, которую у вас уже есть.
Трехмесячный ущерб
Коэн описал шаблон обучения ржавчине. Месяц один включает в себя чтение книги, может быть, небольшой запрос на притяжение. Второй месяц: «Некоторые глубокие души ищут проверку заемных займов, некоторые темные места, и именно здесь люди либо проталкивают и учатся думать в ржавчине, либо сдаются», — сказал он.
Месяц третий: наконец продуктивно. «Они не эксперты, но они знают достаточно, чтобы отточить себя».
Но это только в том случае, если им есть где обратиться за помощью. Без поддержки «временная шкала может стать намного дольше, либо люди сдаются».
Пожарная телевизионная команда взломала это с помощью групповых сессий кодирования — появление проблем с кодом со всеми в комнате, один человек, который ездит, все смотрят. «Новички могут учиться напрямую, и эксперты могут учиться, обучая».
Инструментальная рулетка
«Ржавчина не так зрелая, как многие другие языковые экосистемы», — признался Коэн. Это означает пробелы. Много из них.
Когда Fire TV боролся с бинарным размером, они обнаружили грузовой пузырь-инструмент, который точно показывает, что раздувает ваши артефакты. Очевидно в ретроспективе, но «все должны были где -то изучать эти знания».
По иронии судьбы, инструмент не работал на их встроенной платформе. Таким образом, они исправили это и внесли свой вклад вверх по течению. Это прагматичное мышление в действии, сказал он.
И все же иногда разрыв больше. Например, команда базы данных Amazon Aurora должна была протестировать распределенные системы в рамках сбоев сети. Для асинхронной ржавчины не было хорошего инструмента. Таким образом, они потратили месяцы, создавая «беспорядки», которые «остаются ключевым компонентом их возможностей и способностью многих команд проверять свою систему», сказал Коэн.
Проверка реальности в 2 часа ночи
Проблема с инструментами становится опасной в производстве. Коэн рассказал историю о команде, чья сервис был медленным в тестах нагрузку: «Наша услуга медленная. Вы смотрели на пламя?»
Получить пламя в средах без серверов нелегко. Команда должна была изучать новые инструменты, как их читать и какие показатели имели значение. Но они нашли проблему. «Они собирали регулярное выражение для каждого запроса», — сказал он. Они исправили это и получили 10 -кратное улучшение производительности.
«Без пламенных графиков они просто делают образованные догадки», — сказал Коэн. Альтернатива — выяснить это в 2 часа ночи, когда ваша служба тает — намного хуже, отметил он.
Другая команда увидела загадочные проблемы с производительностью в течение нескольких недель, прежде чем обнаружил, что их распределитель памяти возвращал память в ОС во время операций Drop, оставляя все время выполнения Async. Для отслеживания потребовалось «недели, используя эзотерические инструменты Linux».
Заплатить сейчас или заплатить позже
Коэн приписывает инженеру Amazon, который написал первый коммит Amazon Rust еще в 2016 году, который просто сказал: «Rust заставляет вас заплатить свой технический долг заранее, когда он самый дешевый. Позвольте вам войти в приложение, чтобы избежать состояния гонки, дешевле, чем отладка впереди. Команды, которые успешны с ржавчиной, должны ожидать некоторой степени достаточной боли, зная, что это будет стоить этого».
Действительно, команды, которые преуспевают, ожидают от предварительной боли и планируют это. Они бюджетно время для обучения. Они инвестируют в инструменты рано. Они признают, что существующая игровая книга Java/Python не применяется, сказал он.
Команды, которые не относятся к ржавчине как замену, а затем удивляются, когда это не так.
Неудобная правда
Коэн указал, что он не пытается отговорить кого -либо из использования ржавчины. Но он сказал, что видел слишком много неудачных усыновлений, чтобы притворяться, что это легко.
«Вы не можете недооценивать стоимость введения ржавчины в организацию», — сказал он. Язык может быть великим, но организационные изменения стоят дорого. Действительно дорого.
Для правильных проблем — задержка хвоста, использование памяти, надежность — ржавчина может быть преобразующей. Но «если вы представляете ржавчину или какую -либо новую технологию в организацию, вам нужно иметь реальную причину», — сказал Коэн.
Будущее ржавчины — это не просто лучший синтаксис или более быстрый сборник. Это «построение экосистемы настолько хорошо, что выбор ржавчины становится очевидным», — сказал он.
Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Дэррил К. Тафт охватывает DevOps, инструменты разработки программного обеспечения и проблемы, связанные с разработчиком из своего офиса в районе Балтимора. Он имеет более чем 25 -летний опыт работы в бизнесе и всегда ищет следующий совок. Он работал … читайте больше от Дэррила К. Тафта