Как Apple заставила всех использовать Mac mini
С тех пор как мы в последний раз касались темы Apple в корпоративном мире, произошло немало интересного. Нет, компания из Купертино не выпустила серию специальных продуктов под лейблом Enterprise и даже не представила специальный лэптоп, идеально подходящий для корпоративных пользователей (хотя MacBook Air часто называют «менеджерским» устройством). Но, видно, такая уж судьба у Apple — практически ничего не делать для корпоративного рынка, однако постоянно на нём присутствовать.
Вероятно, все знают, что есть у Apple такое устройство — Mac mini, небольшой квадратный системный блок безо всякой периферии из серии «подключить все, что залежалось». Этот компьютер не слишком популярен на потребительском рынке, ведь Apple постоянно переводит всех на планшеты, ноутбуки, смартфоны — сужая радость потребления глянцевых пикселей до гомогенного пространства iOS и OS X.Однако в определённой среде Mac mini все же удалось получить распространение — в тот самый момент, когда Apple решила сделать серверную версию этого компьютера. Разумеется, Mac mini с OS X Server на борту не заполонил дата-центры, заставив привычных к Linux и соответствующей архитектуре айтишников стремглав броситься скупать серебристые коробочки с не самым мощным железом. Однако он составляет значительную долю серверов в дата-центрах некоторых крупных компаний.Одна из таких компаний — Facebook, в ЦОДах которой работают сотни серверных компьютеров Mac mini. Серверы от Apple нужны крупнейшей социальной сети в мире для того, чтобы тестировать мобильное приложение Facebook для операционной системы iOS. Упомянутое приложение — чрезвычайно сложная система, созданная большим коллективом разработчиков компании и используемая на огромном количестве мобильных устройств по всему миру. Разумеется, социальной сети необходимо множество сетевых машин, чтобы тестировать приложение. «Мы запускаем сотни тысяч тестов каждые несколько часов, — говорит Кристиан Легнитто (Christian Legnitto), бывший сотрудник Apple, который теперь работает во главе команды Facebook, отвечающей за выпуск мобильных приложений. — Когда ваше приложение работает на сотнях миллионов устройств, все эти баги, случающиеся один раз на миллион, могут возникать по сотне раз на день».Mac mini отличаются надёжностью и бесперебойной работой, что уже могло бы послужить причиной их появления в дата-центрах корпорации Марка Цукерберга. Но Facebook использует их отнюдь не по этой причине. Дело в том, что по правилам Apple весь софт для устройств этой компании должен быть запущен на её же устройствах. Таким образом, Facebook не может тестировать своё iOS-приложение на Linux-серверах, которые в изобилии присутствуют в ЦОДах соцсети, или на облачных платформах от Amazon и Microsoft. По словам Легнитто, в дата-центрах компании сегодня установлено не менее сотни стоек, до отказа забитых Mac mini с OS X Server на борту.Конечно, я бы не стал писать целую колонку о том, что в Facebook много компьютеров от Apple: об этом можно было догадаться и без внешних катализаторов. Однако комплект железа, имеющий место в дата-центрах соцсети, — это только часть большого тренда, который сейчас активно шагает по планете. Разумеется, не без участия «яблочной компании».
Изначально разработчики приложений для iPhone, iPad и Mac тестировали свои продукты на собственных MacBook Pro или парочке Mac mini. Но с появлением действительно масштабных разработок узнать, насколько адекватно будет себя вести приложение в руках сотен тысяч или миллионов пользователей, уже затруднительно. И в этот момент Apple открыла своё истинное обличье: выяснилось, что без большого количества «Маков» масштабные приложения протестировать просто невозможно. Именно это и подтолкнуло Facebook закупить себе целую флотилию Mac mini. Облачные технологии, конечно, совершили своего рода революцию для разработчиков программного обеспечения: теперь они могут запускать свои приложения и тестировать их на базе Amazon EC2, Rackspace Cloud или Microsoft Azure. С помощью этих сервисов каждый может развернуть виртуальную машину в считанные секунды. А это, как вы понимаете, полноценный сервер, разве что существующий в софтверном формате. Отсюда следует, что Facebook могла бы запустить операционную систему от Apple на своих собственных серверах, то есть создать виртуальную среду для OS X Server. Однако политика лицензирования Apple запрещает виртуализовать OS X, поэтому Facebook пришлось купить множество Mac mini, которые в Штатах продаются по $1 000 за штуку. И, хотя социальная сеть наверняка получила оптовую скидку, для всех остальных это не меняет положения дел: для того чтобы вести масштабную разработку под операционки Apple, нужны компьютеры от Apple.Впрочем, облака всё-таки смогли облегчить страдания разработчиков. Смекнув, что на рынке образовалась пустующая ниша, некоторые стартапы начали предоставлять своим клиентам возможность тестировать iOS-приложения онлайн. Среди них — Travis CI. Комментируя появление такого продукта на рынке, один из разработчиков Travis сказал: «Проводить тестирование в облаке под Linux было несложной задачей, но с Mac это не работает: если вы хотите выходить на большой масштаб, то приходится строить собственную конфигурацию».Другой вариант использования OS X Server в облаке демонстрирует одна немецкая компания, использующая среду с открытым исходным кодом xtool, которую разработали в Facebook. Среда запущена на базе целой фермы из Mac-серверов, которой оперирует другая компания — Sauce Labs. Вот таким образом это все и функционирует в облаке: один сервис зачастую работает на базе другого.
Большинство компаний сегодня, конечно, используют в своих ЦОДах огромное количество Linux-серверов, собранных из сравнительно недорогих компонентов. Но иногда Mac mini оказывается подходящим вариантом не только для тестирования приложений под iPhone и iPad. Например, Mozilla использует несколько стоек с Mac mini в своём новом дата-центре, возлагая на них нагрузки, требующие как можно более длительной бесперебойной работы. Стартап Imgx применяет целую сеть Mac mini для того, чтобы в реальном времени обрабатывать изображения. Казалось бы, вся эта история с Mac mini в качестве серверов определённо нишевая. Однако тот же Travis CI довольно популярен в опенсорсном сообществе. Из 93 тысяч проектов, использующих сервис, примерно тысяча запущена в среде OS X Server. И с развитием iOS-разработки такие сервисы будут становиться всё популярнее. Сотрудники Facebook, конечно, могут сказать, что мобильные разработки такого масштаба — случай уникальный. Но правы они будут лишь отчасти.