Потребляющие мало энергии масштабируемые интеллектуальные облака обладают большим потенциалом. К 2020 г. облачные вычисления, вероятно, станут стандартным элементом корпоративных ИТ. Однако, на этом пути имеется ряд проблем, которые необходимо решить, прежде чем облака начнут широко использоваться.
Вот только некоторые технические вопросы, которые необходимо решить, прежде чем начнется массовое распространение облаков.
Уроки суперкомпьютинга
Насколько мы понимаем, должно произойти следующее. Облака станут больше. Некоторые облака будут связаны между собой. Многие сервисы для бизнеса будут предоставляться через облака. Программы станут гораздо, гораздо объемнее.
Вопрос в том, как компаниям воспользоваться всем этим и с какими проблемами они столкнутся при обращении к таким технологиям. В частности, действия в масштабе облака приведут к увеличению числа аппаратных и программных сбоев. Устранение этих сбоев станет важной задачей.
Чтобы понять, с какого рода сбоями придется иметь дело облачным компаниям, полезно обратиться к суперкомпьютингу — той сфере, где используются многие технологии и методы, которые, вероятно, будут применяться в облаке.
“Вы увеличиваете количество ядер, и, как следствие, количество отказов — отказов аппаратуры и системного ПО — резко возрастает, — утверждает Ричард Кенвей, глава руководящего научного комитета PRACE — европейской организации, объединяющей ресурсы различных суперкомпьютеров в регионе для создания системы с экзабайтной скоростью. — Мне приходилось слышать, что скрытые отказы могут происходить каждые несколько минут”.
Это означает, что необходимо разработать новое ПО, которое поможет справиться с вероятными ежеминутными сбоями в инфраструктуре.
Процент отказов ядра будет ограничен за счет сужения полосы пропускания между памятью и каждым ядром, полагает Кенвей, поскольку, по его расчетам, рост количества ядер будет опережать расширение полосы пропускания. Для программистов это будет означать усугубление проблем с ПО и может заставить их задуматься о новых способах создания программ.
Новые подходы к разработке ПО
Отличие облаков от суперкомпьютеров заключается в типах выбираемого оборудования. Для суперкомпьютера основной акцент делается на производительности отдельных потоков. Поэтому можно ожидать, что в этих системах будут использоваться процессоры высшего класса (например, Xeon). Тогда как для облаков важнее “тупая” нагрузка, не требующая высокой производительности отдельных потоков.
Это означает, что для облаков начнут использоваться менее совершенные (но малопотребляющие) процессоры, что резко увеличит их количество в облаках и произойдут изменения в стратегиях разработки ПО.
Главный технолог Fujitsu Technology Solution Джозеф Регер ожидает, что в 2020 г. для облаков станут предпочтительными малопотребляющие многоядерные процессоры. Но с этим связаны и определенные сложности.
Компаниям потребуется стандартизировать инфраструктуру и привести разработку приложений в соответствие с используемыми процессорами. Кроме того, необходимо будет программировать свои облачные операционные системы на использование параллелизма, чтобы избежать нехватки памяти.
Эти две проблемы в сочетании с большими размерами облаков могут стать головной болью для разработчиков.
Хотя новые сетевые технологии (более быстрые межсоединения, усовершенствованный обмен информацией внутри процессора и т. д.) в определенной степени ускорят прохождение обновлений через систему, проблемы останутся, особенно в связи с обновлением крупных приложений.
Необходимость в эффективном управлении
Но от работы этих огромных облаков на малопотребляющих процессорах мало проку, если из-за нелепых ошибок вы не используете их столь эффективно, как могли бы, считает вице-президент Facebook по проектированию оборудования и цепочке поставок Фрэнк Френковски.
“Одна из главных проблем на уровне оркестрирования, которая интересует меня и, думаю, любого, кто управляет большим ЦОДом, заключается не в том, как построить эффективную инфраструктуру, а как эффективно ею управлять”, — сказал он.
Френковски считает, что организация энергоснабжения и управление им — та область, в которой необходимы дополнительные инвестиции. И хотя сегодня производители решают эти проблемы на уровне серверов или монтажных стоек, для решения в масштабе крупных ЦОДов потребуется общеотраслевая открытая инициатива, заявил он.
Facebook участвует в проекте Open Compute, который надеется стандартизировать используемые в ЦОДах элементы инфраструктуры, чтобы облегчить жизнь тем, кто обслуживает облачные ЦОДы.
Хотя стандартизация аппаратуры ведет к росту значения ПО, что имеет преимущества с точки зрения управления, расширение парка оборудования по мере роста облаков означает повышение важности такого показателя, как простота обслуживания.
“Поскольку имеются десятки тысяч устройств, способность техника выявить среди них дефектное, заменить один из его компонентов и вернуть его к работе является важной частью больших систем”, — говорит Френковски.
Производители уже пытаются преодолеть эти трудности. В некоторые серверы HP встроена технология, которую в компании называют “море сенсоров”. Она позволяет серверам самостоятельно диагностировать проблемы и конкретные отказы оборудования. А Facebook разработала различные программы-агенты, позволяющие менять конфигурацию серверов в сети. Это избавляет от необходимости подходить к ним и вносить изменения в BIOS вручную.
Похоже, эта идея окажется привлекательной. Эдриан Кокрофт, облачный архитектор компании Netflix, придерживается того же подхода к оборудованию в духе открытого кода, к которому призывает Facebook. Когда Netflix решила создать собственную сеть распределения контента, дабы быть уверенной, что ее онлайновый видео-сервис исправно обслуживает пользователей, она спроектировала и собственное оборудование.
Чтобы все общались друг с другом
Как и в случае с любой технологией, множество серьезных проблем может возникнуть в процессе реализации. Даже крупные провайдеры с их богатым опытом могут столкнуться с трудностями.
Брайан Форд, ученый из Йельского университета, изучавший стабильность облаков, сказал: “Подобные риски все еще представляют большие сложности даже в рамках одной организации, поскольку ситуации, когда левая рука не знает, что делает правая, являются обычным делом”.
Облачные вычисления принесут с собой совершенно новые приложения, которые будут размещаться на различных уровнях облачной инфраструктуры. Таким образом, появится необходимость в обмене информацией между всеми участниками каждого облака. Это проблема в равной мере организационная и техническая. Некоторые компании уже пытаются ее решать.
Netflix, например, перешла к стратегии разработки посредством “несвязанных команд” (no-ops), когда каждый разработчик отвечает за свой код и обеспечивает его устойчивость к сбоям любого бита кода, с которым тот вступает во взаимодействие. Кокрофт считает это лучшим способом избежать проблем взаимозависимости в больших масштабах: “Все наши компоненты предполагают, что в их окружении произойдет сбой, а им необходимо будет продолжать работать. В любой момент есть масса компонентов, которые, возможно, вышли из строя. А клиенты этого не замечают, поскольку сервис выбирает обходной путь. Думаю, года через два это получит довольно широкое распространение”.
Болезненная проблема многопользовательских систем
Технически и организационно с проблемой обмена информацией связан вопрос создания подлинно многопользовательских приложений.
Как показали недавние сбои в работе Amazon, разработка такой технологии представляет нетривиальную задачу даже для крупнейшей в мире компании — владелицы публичного облака. И она станет еще более непростой, когда новые организации начнут использовать множество приложений, размещенных в многочисленных облаках.
Джон Менли, ответственный за автоматизированную инфраструктуру лаборатории HP, сказал: “Перед разработчиками ПО встанет задача создания подлинно многопользовательских программ”.
Это связано с тем, что в облаке многочисленные организации получают доступ к одному и тому же ПО. В таком случае разработчику необходимо обеспечить раздельное хранение данных и эффективный механизм взимания платы.
По завершении каждой сессии экземпляр ПО должен быть уничтожен, а ресурсы возвращены в общий пул, сказал Менли. Это может оказаться непросто, когда компании арендуют ПО на продолжительное время.
Главное — открытость. Но не будут ли производители против?
Все препятствия на пути к облакам можно было бы устранить, если бы отрасль одобрила стандарты и полную техническую открытость. Стандарты упростят управление ПО и оборудованием, а полная техническая открытость покончит с вызывающими проблемы взаимозависимостями.
Но промышленные магнаты намерены дать этим идеям генеральное сражение. Стандарты позволяют использовать оборудование потребительского класса и могут уменьшить огромные прибыли, получаемые производителями благодаря запатентованным технологиям. Наряду с этим полная техническая открытость облачных архитектур должна упростить начинающим компаниям выход на рынок с технологией, не уступающей технологиям крупнейших компаний, что еще больше подорвет рынок.
Некоторые производители осознали такую угрозу. HP и Huawei присоединились к проекту Facebook Open Compute, хотя и продолжают тестировать и заимствовать фрагменты открытой технологии и используют их в своих патентованных решениях.
Но, как показывает прошлое, до 2020 г. можно ожидать разработки заинтересованными сторонами множества конфликтующих стандартов и постоянных споров о том, насколько открытым должен быть тот или иной производитель.