Когда попадаешь в мир IT, первое время чувствуешь себя словно на страницах Википедии: многочисленные ссылки в статье непроизвольно открывают новые вкладки, потом еще вкладки, еще ссылки, и вот ты уже не можешь вспомнить, с чего начинал. И нет такой отметки X, на которой можно понять, что во всем разобрался. Вопросы не заканчиваются НИКОГДА, а количество ответов множится от года к году, в зависимости от компании, проекта, домена и даже, кажется, количества выпитого кофе. Сотрудники Godel Technologies решили время от времени делиться своим видением различных ситуаций, начав с рассуждений руководителя .NET департамента Виктора Некрасова на тему разницы между понятиями Serverless Computing и Cloud Computing.
На первый взгляд, понятия действительно схожи, но это только на уровне лингвистики, наверное. Cloud Computing, если переводить дословно, – это облачные вычисления. Рассмотрим условный пример: для текущего стрима работы нам хватает трех компьютеров. Но вдруг появляется крупный заказчик – скажем, ядерная станция – и просит смоделировать работу какого-нибудь сектора. Сфера бизнеса настолько специфическая, что вычисления уже предполагаются гораздо серьезнее. Понадобится достаточно большая мощь в виде, к примеру, 20 компьютеров. То есть надо купить еще 17 физических компьютеров, настроить их, смодулировать работу сектора... А потом что? Куда их девать? Возникает ситуация, которую современным языком назовут «очень большим гемором». Именно поэтому все чаще стали использовать облачные вычисления, где можно купить компьютерную мощность на какое-то время в неограниченном количестве. Более того, можно сказать «днем хочу такие-то мощности, а ночью их не хочу», чтобы платить меньше. Есть возможность решить самому, когда и что использовать. Термин Cloud Computing и означает какие-то вычисления в облаке, где все очень гибко. Неудивительно, что данная технология стала такой популярной.
А теперь рассмотрим понятие Serverless Computing на примере какого-нибудь сервиса. Допустим, мы создаем сервис, который сообщает погоду в Минске в режиме настоящего времени. Такой сервис представляет собой компонент, который при загрузке пользователем выполняет для него определенную функцию. Фактически это программа, написанная на языке программирования, но чтобы к ней достучаться куда-то, откуда она смогла бы нам «отвечать», сперва ее нужно туда «задеплоить», если говорить языком программиста, а по-русски просто выложить. То есть программа физически должна где-то находиться. Исторически в таких целях всегда использовались огромные дата-центры, где «живут» все программы. Сейчас модно переносить программы из труднодоступных и неповоротливых дата-центров, которые координируются разными людьми на нескольких уровнях, в облако, где намного больше мобильности и простора для действий. Но даже в облаке программу надо деплоить. И здесь как раз хорошо видна разница с точки зрения ценовой политики: в дата-центрах мы платим фиксированную сумму, независимо от того, используем мы программу или нет. Мы покупаем компонент на месяц и платим за то, чтобы на нем была выложена та самая программа о погоде. Пользоваться данным сервисом будут раз в день в лучшем случае, но платить все равно придется полный тариф. В Serverless Computing другие финансовые условия: мы платим только за выложенное состояние компонента. Можно купить такой компонент в облаке, в зависимости от провайдера он называется «лямбда» или «функция», где наша программа будет выложена внутри этой функции (или лямбды), и мы не будем за нее платить, если не используем. То есть оплата требуется только за каждый конкретный вызов программы. В этом и заключается суть serverless архитектуры. Не нужен сервер, чтобы хостить программу, она, вроде как, где-то лежит и когда используется, ее подхватывает определенный инструментарий, разворачивает и программа автоматически нам отвечает. К слову, это уже немножко будущее.
Если рассматривать в линейке, то можно сказать, что Serverless Computing – это часть Cloud Computing. Но я поделился своим субъективным пониманием этих двух технологий. Но с удовольствием почитаю и другие точки зрения.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.