Предсказывать будущее — дело неблагодарное: говорят, в этом преуспел разве что Нострадамус да одна слепая болгарская старушка. Вместе с тем, некоторые тенденции развития IT-технологий явно намекают нам на то, что уже в ближайшей перспективе вычислительные мощности и возможности девайсов будут расти, а сами эти устройства — становиться проще и дешеветь. Как такое возможно? Ответ прост: облака.
Облачный софт
Когда в октябре 2006 года корпорация Google анонсировала запуск сервиса Google Docs, а спустя пять лет к ним подтянулась Microsoft со своим Office 365 по подписке, лично я воспринял появление этих новинок с некоторым скепсисом. С одной стороны, подобная модель SAAS позволяет избавиться от необходимости устанавливать софт на свой компьютер, экономя тем самым дисковое пространство. Да и самим софтом можно пользоваться на любой, даже довольно слабой машине, с любой архитектурой и операционной системой — для работы с Документами от Google вообще требуется только браузер. С другой стороны, устройство должно иметь стабильное соединение с интернетом, причем на приличной скорости, что и стало основной причиной моих сомнений. У нас тут всё-таки не Сингапур, и если в обеих столицах с доступом к сети все более-менее в порядке, то стоит отъехать от кольцевой автодороги на сотню километров… В общем, вы поняли.
Однако за минувшее десятилетие широкая поступь технического прогресса добралась до весьма отдалённых уголков нашей необъятной страны. Даже в деревне, где мы с семьёй проводим лето, и где еще пару лет назад можно было проверить почту, лишь забравшись с мобильником на самую высокую березу, сейчас вполне уверенно принимается сигнал 3G. В заграничных поездках жизнь тоже стала потихоньку налаживаться: бесплатный wi-fi для постояльцев теперь можно найти даже в паршивых трех звездах, пусть только на ресепшен, но тем не менее. Да и сами сервисы активно развиваются: те же гугловские Таблицы давным-давно научились работать с формулами, и, хотя пока еще уступают по своим возможностям Excel, скоро наверняка догонят — средств у разработчика для этого вполне достаточно. Скорее всего, даже опередят. Ко всему прочему, именно «облачность» Таблиц позволяет использовать их в качестве базы данных для интернет-магазина, бекэнда для веб-приложений, и даже в целях фишинга.
Еще один интересный проект, с которым я познакомился некоторое время назад — это новая мелодия на мотив Chromium OS под названием Cloud Ready. Операционка, представляющая собой по большому счету ядро Linux с браузером, а для всего остального функционала использующая облачные сервисы, позволила изрядно взбодрить один из моих старых ноутбуков, который с трудом тянул даже Xubuntu. Быстрая загрузка, вполне современный графический интерфейс, минимально необходимый набор софта (включающий те же самые Документы Google) и довольно шустрая работа на древнем, как бивень мамонта, железе — что еще нужно для просмотра котиков в интернете и работы с текстами?
Не знаю, как у вас, а лично у меня уже почти не осталось сомнений в том, что очень скоро большинство приложений и игрушек окончательно мигрируют в облака. Во-первых, это снизит расходы на железо, поскольку с облачным софтом можно довольно уверенно работать почти на любом устройстве, включая планшеты и смартфоны, под которые далеко не всегда можно подобрать адекватные офисные приложения. Во-вторых — это простота переноса пользовательских данных. Меня до сих пор поражает, насколько эффективно эту проблему решила Apple в iOS, в сравнении с тем же Android, где мне приходилось изрядно помучиться, чтобы перетащить информацию со старого телефона на новый. Думаю, недалек тот момент, когда и в прочих операционках после первого запуска и входа в аккаунт все пользовательские файлы, установленные программы, драйверы, почта, фотки, сохраненные игры и переписка в мессенджерах будут подтягиваться автоматически — разработчики Windows 10 уже сейчас пытаются это реализовать с помощью учетной записи Microsoft в сочетании с OneDrive. Работает, правда, пока еще кривовато, но вектор в целом понятен.
Интернет вещей
Но больше всего перспектив у облачных технологий, пожалуй, в мире интернета вещей и микрокомпьютеров. Еще недавно (да ладно, прямо сейчас) арсенал возможностей контроллеров и одноплатников во многом ограничивался аппаратной конфигурацией. Архитектура и частота процессора, объем оперативной памяти — именно от этого в первую очередь зависит, какой софт можно запустить на таком девайсе, какой объем данных он сможет обработать, и к чему его, следовательно, можно приспособить. Ведь так? Забудьте.
Выше мы говорили о модели SaaS — «софт как услуга», но существуют еще две категории облачных решений: платформа как услуга (PaaS), и инфраструктура как услуга (IaaS), когда клиенту предоставляется все необходимое для разработки и запуска собственных решений на разном уровне. Именно развитие подобных сервисов, думается, и позволит в не столь уж отдаленном будущем полностью перенести бекэнд IoT-приложений в облака, оставив на самом устройстве только необходимый минимум софта — не требовательного к аппаратным ресурсам и способного запускаться на очень слабом дешевом железе. Примерно так, например, сейчас работают многие IP-камеры: само устройство только создает и передает по сети картинку, а все настройки девайса, да и собственно видео доступны на удаленном облачном сервере. Такой подход позволит сделать большинство IoT-приложений кроссплатформенными и практически полностью решить проблемы, связанные с поддержкой разных аппаратных конфигураций и разных протоколов, а также объединить различные устройства и датчики с универсальными мобильными приложениями — то есть, строить сложные гетерогенные сети, не беспокоясь о поддержке их отдельных компонентов. Кроме того, облачные архитектуры легко масштабируемы. Примечательно, что подобные решения существуют уже сейчас, просто на данном этапе они пока еще не обрели популярность, достаточную для конкуренции с более успешными коммерческими проектами.
Помимо уже привычных систем «умный дом» распределенные архитектуры с облачным бекэндом могут успешно применяться в телемедицине и дистанционной диагностике, в интеллектуальных промышленных приложениях, связанных с эксплуатацией производственного оборудования, в логистике, в управлении транспортом, в розничной торговле, в инфраструктуре мониторинга окружающей среды и измерительных приборов… Да много где.
Большинство решений из мира IoT, включая пресловутый «умный дом», требуют анализа больших массивов информации, в том числе, исторических данных, а также предполагают выявление закономерностей для построения сценариев поведения оборудования в будущем. С помощью облачных вычислений можно заметно разгрузить оборудование на стороне пользователя. Извлечение полезной информации из сложных потоковых данных, таких как видео, — еще один пример анализа, требующего большого объема обработки. И эти объемы со временем будут только расти. Растет потребность в обработке данных из различных источников в разных сочетаниях, требуется проводить их сравнительный и эвристический анализ. Нельзя забывать, что системы IoT — это системы реального времени, в которых поток информации поступает из множества источников непрерывно, и для управления этими потоками необходимы соответствующие ресурсы. Нужно оперативно отсеивать недостоверную информацию, поступающую от неисправных датчиков, поскольку такие данные могут привести в конечном итоге к повреждению оборудования или нанести вред пользователю. Кроме того, всю эту бигдату нужно где-то хранить. Облака тут являются фактически безальтернативным решением, но оно, конечно, имеет и собственный набор «узких мест».
Проблемы и решения
Одним из существенных препятствий на пути переноса всех ресурсоемких задач по обработке данных в облака является необходимость изначально строить серверные приложения с прицелом на облачную инфраструктуру. Если в качестве источника данных выступает гетерогенная сеть с большим арсеналом совершенно разных устройств, конструкция бекэнда может приобрести поистине монструозные формы.
Очевидным решением тут является переход от монолита к микросервисной архитектуре. Использование микросервисов гарантирует масштабируемость, гибкость, а также возможность модификации под новые задачи и обновления серверных решений без необходимости полностью останавливать процесс обработки данных. Собственно, сегодня уже мало кто сомневается, что управляемые микросервисы — это перспективная технология, позволяющая справиться с наиболее сложными задачами в мире больших данных.
Второй проблемой переноса обработки данных в облако может стать, как ни странно, связанность. Какие-либо проблемы на уровне публичных или магистральных сетей способны привести к сбоям в передаче информации между конечными устройствами и облачным сервером. Еще несколько лет назад блокировки отдельных ресурсов провайдерами по требованию российских контролирующих органов приводили к периодическим проблемам при обращении к сервисам Amazon Cloud и Microsoft Azure. И застраховаться от подобных явлений, увы, очень сложно. Одно из очевидных решений — резервирование каналов связи и использование сторонних NS-служб — не может служить стопроцентной гарантией, что система будет работать без сбоев.
Сейчас в дополнение к облачным технологиям понемногу развивается концепция так называемых «туманных вычислений» (Fog Computing), которые считаются более эффективными при обработке данных в реальном времени. Это действительно очень важно, поскольку, согласно прогнозам IDC, к 2024 году количество конечных устройств в сетях IoT достигнет по всему миру 41,6 миллиарда, а совокупный объем генерируемого ими трафика составит 79,4 зеттабайт. Однако одними только вычислительными мощностями, потребными для обработки таких массивов данных, сложности «облачного интернета вещей» не ограничиваются.
Вопросы безопасности
Что такое Shodan, знают, наверное, все. Подобных сервисов, предназначенных для поиска подключенных к интернету «умных» устройств, сейчас развелось уже довольно много — и хакеры активно используют их в своих интересах. Поэтому промежуточное звено между конечными устройствами интернета вещей и облачным центром обработки данных в виде публичных сетей может стать той самой ахиллесовой пятой, которая поставит под угрозу безопасность всей инфраструктуры. Шифрование тут может рассматриваться, как действенное рабочее решение, но вряд ли станет панацеей.
Хранение критических данных в облаке тоже вряд ли вызовет энтузиазм у поборников безопасности — сообщения о взломах облачных сервисов мы читаем с завидной регулярностью. Как бы ни старались вендоры защитить виртуальные серверы и хранилища от различных видов атак, в любом софте рано или поздно может отыскаться критическая уязвимость, ведущая к компрометации. Да и защитить пользователя от себя самого вряд ли возможно.
И здесь мы приходим еще к одному важному обстоятельству, о котором нельзя не упомянуть в контексте интернета вещей: причиной множества успешных взломов, да и появления поисковиков вроде пресловутого Shodan, являются ошибки в конфигурации. Некоторые пользователи «умных» девайсов банально не утруждают себя сменой дефолтных настроек и пароля по умолчанию, из-за чего доступ к ним может получить любой желающий. Не говоря уже о более тонких материях вроде открытых портов, отключения двухфакторной аутентификации или отказа от использования VPN там, где это необходимо. Иными словами, «инженер по облачной безопасности» — это, вероятно, еще одна профессия, актуальность которой в ближайшей перспективе будет только расти.
И что потом?
Миграция сервисов в облака — это неизбежный и неотвратимый процесс, но вместе с тем, не стоит рассматривать его, как конечную точку на маршруте технического прогресса. Перенос технологии в облако и переход к микросервисным архитектурам не приводит к автоматическому повышению производительности, росту общей эффективности или прибыли. Это прекрасный инструмент для оптимизации технологии, но не более того.
Если же вернуться к вопросу миграции в облака приложений, с которого я начал эту статью, то в условиях пандемии и национальных локдаунов, когда бизнес стремится к децентрализации, а рабочие места все чаще и чаще становятся удаленными, это стало актуальным, как никогда ранее. Думается, ориентация на облачные технологии во многом изменит сами подходы в разработке прикладного софта и рынок ПО в пользу модели SaaS с постепенным отходом от традиционных схем дистрибуции.
По данным crn.com, в 2021 году оборот глобального рынка облачных сервисов достиг отметки в 120 миллиардов долларов и продолжает уверенно расти. А по прогнозам аналитиков в следующем году рынок общедоступной облачной инфраструктуры расширится еще на 28 процентов. Данный сегмент технологий сейчас можно назвать одним из самых быстрорастущих, а значит, в ближайшем будущем мы сможем наблюдать переход в облака все большего и большего числа сервисов — игровых, софтверных, коммуникационных и прочих. Таково наше будущее. И с этим ничего не поделать.
Автор: Валентин Холмогоров