Конец эпохи графического интерфейса
Для начала рассмотрим исторический контекст GUI и их роли в мире системного администрирования.
В «старые добрые времена» графических пользовательских интерфейсов не было ни на каких компьютерах — тем более на серверах. Долгое время после того, как GUI начали получать распространение на пользовательских устройствах, серверы по-прежнему обходились без них. В 1980-х и 1990-х годах вычислительные ресурсы, необходимые для отображения GUI, были весьма значительны в сравнении с суммарными вычислительными мощностями машин, и расходовать их на GUI было довольно нецелесообразно — а нередко и вовсе невозможно. Мир системного администрирования сложился именно в этом контексте: люди работали из командной строки, поскольку другого варианта просто не существовало. Стремление использовать GUI для системного администрирования не было широко распространено — возможно, потому что такая идея ещё не приходила людям в голову.
В середине 1990-х годов Microsoft совместно с рядом других компаний начала внедрять концепцию администрирования серверов через GUI для начального сегмента серверного рынка. Поначалу этот подход не пользовался популярностью, поскольку не соответствовал методам работы опытных администраторов. Но постепенно, по мере того как новые Windows-администраторы и в некоторой степени администраторы Novell Netware начали «вырастать» с доступом к GUI-инструментам администрирования, для таких систем начало формироваться признанное место на серверном рынке. В середине — конце 1990-х годов UNIX и другие не-Windows серверы полностью доминировали на рынке. Даже VMS оставался заметным игроком, а в сегменте малого бизнеса и недорогих серверов Novell Netware был лидером в середине десятилетия и всё ещё оставался серьёзным конкурентом в конце. Netware предлагал GUI-интерфейс, но достаточно лёгкий — его, пожалуй, следует считать лишь «полу-GUI» в сравнении с богатым GUI-опытом Windows NT, доступным как минимум с 1996 года (и в некоторой степени раньше — с семейством NT 3.x), хотя Windows NT только начинала занимать своё место на рынке до выхода NT 4.
Даже тогда рынок GUI-администрирования оставался преимущественно второстепенным. Microsoft и Windows ещё не занимали серьёзных позиций на серверном рынке, но начинали проникать в него через сегмент малого бизнеса, где низкая стоимость и простота использования их продуктов имели большой смысл. Но именно паника конца 1990-х годов и расширение рынка, вызванные сочетанием проблемы Y2K, пузыря интернет-компаний и превосходной разработкой продуктов и маркетинга со стороны Microsoft, спровоцировали значительный рост и сдвиг в сторону рынка GUI-администрирования.
Массовое расширение IT-рынка в конце 1990-х годов означало, что времени и ресурсов на подготовку новых специалистов катастрофически не хватало. Порог вхождения для многих систем, включая Solaris и Netware, был очень высок, а отрасли требовалось поистине огромное количество людей, способных за кратчайшее время пройти путь от нуля до «компетентного IT-специалиста» — быстрее, чем позволяли существующие на тот момент платформы. Рост рынка был взрывным, и работа в IT сулила такие деньги, что свободных ресурсов для эффективной подготовки новых кадров не было: все, кто мог преподавать, зарабатывали значительно больше, работая непосредственно в отрасли. По мере роста рынка ценность зрелых опытных специалистов становилась крайне высокой, поскольку на фоне постоянно расширяющейся отрасли в целом они становились всё более редкими.
Рынок реагировал на эту потребность по-разному, однако одним из важнейших способов было кардинальное изменение подхода к IT. Вместо того чтобы побуждать IT-специалистов преодолевать традиционные пороги освоения и вырабатывать необходимые навыки для эффективного управления существующими системами, рынок изменил сами используемые инструменты, приспособив их к менее опытным и менее квалифицированным IT-сотрудникам. Более простые и нередко более дорогие инструменты — зачастую с GUI-интерфейсами — начали массово появляться на рынке, позволяя менее подготовленным специалистам стать относительно полезными и производительными почти сразу, даже никогда прежде не работая с конкретным продуктом.
Это изменение совпало с естественным развитием производительности компьютерного оборудования. Именно в ту эпоху впервые мощность многих систем достигла такого уровня, что хотя GUI по-прежнему оказывал заметное влияние на производительность, более низкая стоимость персонала поддержки и скорость развёртывания и управления системами в целом компенсировали эти вычислительные потери от GUI. GUI стремительно стал стандартным дополнением к системам, которые ещё несколько лет назад никогда бы его не получили.
Для повышения компетенций новых IT-специалистов и ускорения их выхода на рынок отрасль также активно переориентировалась на сертификации — в то время это было в значительной мере новшеством, — что позволяло новым IT-специалистам, нередко без какого-либо практического опыта, подтвердить определённый уровень компетентности, как правило, без необходимости существенного взаимодействия с действующими IT-профессионалами или инвестиций с их стороны, каких требовали университетские программы. Рынок GUI-администрирования и индустрия сертификаций переживали бурный рост; облик IT кардинально изменился.
В результате на рынок хлынул поток новых, необученных или слабо подготовленных IT-специалистов — беспрецедентными темпами. В краткосрочной перспективе это изменение сработало для отрасли. Поле деятельности перешло от острой нехватки кадров к относительно достаточному укомплектованию значительно быстрее, чем это было бы возможно иным путём. Однако вскоре начали проявляться последствия столь стремительного прихода новых людей.
Одним из главных ударов по отрасли стал общеотраслевой «бэби-бум» со всеми сопутствующими ему болезнями роста. Целое поколение IT-специалистов выросло на экспресс-курсах и программах ускоренной сертификационной подготовки конца 1990-х годов. Это породило долгосрочный эффект: практические правила и общие подходы, типичные для той эпохи, нередко кодифицировались до уровня практически религиозных убеждений — в степени, нехарактерной для предшествующих и последующих подходов. Зачастую, поскольку обучение велось быстро и поверхностно, многие концепции приходилось заучивать наизусть без понимания лежащих в их основе принципов. По мере того как «выпускники 1998 года» со временем вырастали в старших IT-специалистов своих компаний, они становились наставниками новых поколений, и это старое механическое заучивание весьма заметно передавалось через схожие подходы в последующие годы — даже спустя долгое время после того, как знания устарели или утратили практическую ценность. В ряде случаев они были интерпретированы неверно и предсказуемым образом ошибочны даже для той эпохи, из которой они вышли.
Частью обучения той эпохи стало общее принятие того, что GUI — это не просто допустимо, но практично и ожидаемо. Эффект «бэби-бума» означал, что наставничества со стороны предшествующего поколения почти не было, а прежде установившиеся практики и нормы нередко сметались. Эффект «бэби-бума» означал, что отрасль не столько переизобрела себя, сколько просто установила себя заново. Даже сама концепция информационных технологий как отдельной отрасли приобрела нынешние очертания и укоренилась в общественном сознании именно в ходе этой смены эпох. Вместо того чтобы оставаться пережитком других отделов и дисциплин, IT выделилось в самостоятельную область, однако сделало это без зрелости и преемственности практик, которые существовали бы при более органичном росте, — оставив отрасль, возможно, в худшем положении, чем при непрерывном развитии.
Долгосрочное влияние IT-бума конца 1990-х годов будет ощущаться ещё очень долго: потребуется много поколений, прежде чем тенденции, убеждения и допущения того времени будут окончательно преодолены. Постепенно новые концепции и подходы завоёвывают признание — нередко лишь тогда, когда старые технологии уходят в прошлое и появляются новые, разрушая железную хватку традиции. Одним из таких явлений является представление о GUI как доминирующем методе системного администрирования.
Как мы отметили ранее, GUI при своём появлении был точкой дифференциации между старыми системами и новым миром конца 1990-х годов. Но с тех пор GUI-инструменты администрирования стали повсеместными. Каждая значимая платформа имеет и давно имеет графические средства администрирования, так что GUI больше не выделяет ни одну платформу в сколько-нибудь значимой мере. Это означает, что у производителей больше нет явной заинтересованности в продвижении концепции GUI. Маркетинговая ценность GUI фактически исчезла. Точно так же не только системы, прежде лишённые развитого GUI, в большинстве своём обзавелись им (или несколькими), но и GUI-ориентированные системы, не имевшие развитых инструментов командной строки, вернулись к их разработке и создали новые профессиональные экосистемы вокруг них. Приливная волна, безусловно, изменила направление.
Более того, на протяжении почти двух прошедших десятилетий риторика мира без GUI начала завоёвывать позиции. Системные администраторы, работающие из позиции мастерского владения командной строкой — на любой платформе, — как правило, превосходят своих коллег, открывая себе больше карьерных возможностей, более сложные роли и более высокие доходы. Компании, ориентированные на администрирование из командной строки, располагают более квалифицированными специалистами и более высокой плотностью администрирования, что, в свою очередь, снижает общие затраты.
Одного этого было достаточно, чтобы позиции GUI начали слабеть. Но всегда оставался старый аргумент о том, что GUI, даже в конце 1990-х годов, потребляли небольшое количество системных ресурсов и добавляли лишь ничтожно малую поверхность атаки. Даже если их не планировалось использовать, зачем не иметь их установленными «про запас»? По мере ускорения CPU, роста объёма памяти, удешевления хранилищ и совершенствования системного дизайна влияние GUI становилось всё меньше, и этот аргумент в пользу наличия GUI всё более усиливался. Особенно убедительным было предложение о том, что GUI позволяет менее квалифицированным сотрудникам выполнять задачи так же хорошо, делая их более полезными. Однако слишком часто старшие сотрудники сохраняли GUI как костыль именно в этих обстоятельствах.
С приходом виртуализации в сегмент commodity-серверов всё начало меняться. Стоимость GUI внезапно снова стала заметной. Система, запускающая двадцать виртуальных машин, вдруг стала потреблять в двадцать раз больше CPU-ресурсов, в двадцать раз больше памяти и в двадцать раз больше дискового пространства по сравнению с одним экземпляром GUI. Накладные расходы GUI снова стали ощутимыми. По мере роста плотности виртуальных машин росло и относительное влияние GUI.
Виртуализация дала толчок облачным вычислениям. Облачные вычисления увеличили плотность развёртывания виртуальных машин и обнажили другие последствия GUI для производительности — прежде всего более длительное время развёртывания экземпляров и более сложный удалённый доступ к консоли. Системы, требующие GUI, стали заметно отставать от своих аналогов без GUI по темпам внедрения и возможностям.
Однако значительно более весомым фактором стал артефакт стандартных методов тарификации в облачных вычислениях. Поскольку облачные вычисления, как правило, открыто демонстрируют затраты на каждый экземпляр в прозрачном и полностью видимом виде, у IT-отделов не осталось возможности замалчивать или игнорировать затраты на GUI-развёртывания, дополнительные накладные расходы которых нередко удваивали стоимость одного облачного экземпляра. В бухгалтерских отчётах было совершенно отчётливо видно, что счета за GUI-системы значительно превышают счета за их аналоги без GUI. Даже нетехнические команды могли убедиться, что затраты на GUI накапливаются — ещё до учёта расходов на управление.
Эти затраты продолжают расти по мере движения в сторону контейнерных технологий, где масштаб отдельных экземпляров становится всё меньше, а это означает, что относительные накладные расходы GUI становятся всё более значительными.
Но по-настоящему весомым фактором, возможно, наиболее ощутимо обнажившим проблемы GUI-администрирования, стал переход отрасли к моделям автоматизации систем DevOps. Сегодня лишь относительно небольшой процент компаний активно переходит к полностью облачной, эластично масштабируемой DevOps-модели управления системами, однако тенденция очевидна, и эта модель полностью оставляет GUI-администраторов и их системы за бортом. В DevOps-моделях прямой доступ к машинам больше не является стандартным режимом управления, и системы ушли ещё дальше — не просто к работе исключительно из командной строки, но к полному описанию в коде. Это означает, что системные администраторы в DevOps-мире должны взаимодействовать со своими системами не только через командную строку, но и в программном режиме.
Рынок стремительно движется к меньшему числу более высококвалифицированных системных администраторов, управляющих значительно большим количеством серверов «на одного администратора», чем в любую предыдущую эпоху. Представление о том, что один системный администратор способен управлять лишь несколькими десятками серверов, — расхожее убеждение в мире GUI, — давно оспаривалось даже в традиционном администрировании из командной строки: числа легко доходят до нескольких сотен. Модели DevOps или аналогичные им модели автоматизации поднимают эти числа до тысяч серверов на администратора. Накладные расходы GUI становятся всё более очевидными.
По мере того как новые технологии — облако, контейнеры и модели автоматизации DevOps — становятся повсеместными, неизбежно нарастает «расползание» рабочих нагрузок. Это означает, что компании любого размера наблюдают рост числа рабочих нагрузок, которыми необходимо управлять. Компании, традиционно имевшие всего два-три сервера, сегодня могут иметь десять или двадцать виртуальных экземпляров! Число компаний, которым достаточно одной-двух виртуальных машин, неуклонно сокращается.
Всё это отнюдь не означает, что GUI-администрирование исчезнет в обозримом или даже отдалённом будущем. Потребность в разовом системном администрировании сохранится. Однако соотношение администраторов, способных работать в GUI-режиме «разового» администрирования, к тем, кто должен работать через командную строку и, в частности, через скриптовые или даже полностью автоматизированные системы (такие как Puppet, Chef, Ansible), уже стремительно смещается в сторону GUI-независимого администрирования и DevOps-практик.
Что всё это означает для нас в окопах реального мира? Это означает, что даже такие роли, как администрирование Windows в малом бизнесе, которые традиционно практически не требовали работы из командной строки, должны пересмотреть свою зависимость от локального GUI сервера. Инструменты и процессы командной строки становятся всё более мощными, известными и именно такими, какими нас ожидают видеть при работе. В мире UNIX командная строка всегда сохраняла своё место, и необходимость прибегать к GUI-инструментам почти всегда воспринималась бы как серьёзный недостаток. То же самое восприятие начинает распространяться и на Windows-мир. Постепенно тех, кто полностью полагается на GUI-инструменты, начинают воспринимать как специалистов второго класса, всё более оттесняемых на более младшие роли и в более мелкие организации.
Совершенствование инструментов скриптинга и автоматизации также означает, что ценность масштаба возрастает: стоимость администрирования небольшого числа серверов становится весьма высокой в расчёте на рабочую нагрузку. Это создаёт мощные стимулы для небольших компаний обращаться к консолидации управления через внешних поставщиков, способных специализироваться на крупномасштабном управлении системами и использовать методы скриптинга и автоматизации для приближения своих затрат к уровню крупных предприятий. Возможность задействовать внешних поставщиков для достижения масштаба или его приближения со временем будет иметь очень большое значение для небольших компаний, стремящихся сохранить конкурентоспособность в плане IT-затрат, при этом получая те же вычислительные преимущества, которые крупный бизнес начинает ощущать уже сегодня.
Следует отметить, что параллельно с этим отраслевым переходом к командной строке и инструментам автоматизации происходит переход к более современным, мощным и преимущественно удалённым GUI. Это значительно менее драматический сдвиг, однако не менее заслуживающий внимания. Такие инструменты, как Microsoft RSAT и Server Administrator, предоставляют GUI-интерфейс, использующий под капотом интерфейсы командной строки и API. Аналогично в экосистеме Canonical Ubuntu теперь есть Landscape. Эти инструменты менее популярны в корпоративном секторе, но начинают позволять более крупному SMB-рынку сохранять GUI-зависимость при управлении большим количеством серверных экземпляров. Прогресс в области подобных GUI-инструментов, возможно, является наиболее мощной силой, сдерживающей повсеместное внедрение инструментов командной строки.
Независимо от того, интересен ли нам переход от командной строки к GUI и обратно как любопытный артефакт истории информационных технологий как отрасли, или мы рассматриваем это как способ понять, как системное администрирование эволюционирует как карьерный путь или бизнес-подход для наших собственных нужд, — нам полезно осмыслить факторы, которые это обусловили, и понять, почему прилив и отлив отрасли вновь выносит нас в открытое море командной строки. Понимая эти силы, мы можем более практично оценить, куда нас приведёт будущее, когда прилив может снова смениться, как лучше выстраивать собственную карьеру или принимать решения как о технологиях, так и о человеческих талантах для наших организаций.

