Содержание |
Тема «компьютинг без серверов» (так можно перевести serverless computing) находится в левой части гартнеровской кривой технологических трендов 2017 года. Заметим, что из разумной предосторожности Gartner использует более скромный термин Serverless PaaS. Важное обстоятельство - позиция Serverless PaaS, отмеченная кружком зеленого цвета, предполагает перемещение serverless computing на стабильную правую сторону в ближайшие несколько лет.
По мнению аналитиков Gartner, хотя технология находится в зародыше, ее развитие и адаптация к практическому использованию потребует весьма ограниченного периода времени.
Название Serverless предложил в 2012 году Кен Фромм в статье «Why The Future Of Software And Apps Is Serverless»[1].
Разобщенность мнений по поводу serverless computing отражает приведенная ниже картинка.
Выступающий: «Компьютинг без серверов – это круто!»
Скептический слушатель: «Почему бы им не назвать это дело просто удаленным вызовом процедуры?»
Такие суждения отражают повышенный интерес к serverless computing, сопровождающийся, как обычно в таких ситуациях, и излишне оптимистическими, и излишне пессимистическими оценками. От себя добавим, как говорится в известной притче про судью, его жену и двух женщин, делящих ребенка: «И ты женщина тоже права», а именно, есть третье мнение и оно тоже верное, serverless computing - круто, но не очень, и уж конечно это не удаленный вызов процедур.
Новый подход к предоставлению сервисов PaaS в виде функций
Говоря о serverless computing, нужно понимать, что на самом деле без физических виртуальных серверов не обойтись ни при каких условиях, значит речь идет не об отказе от «железа», а о новом подходе к предоставлению сервисов PaaS в виде функций. Этот сервис назвали FaaS (Function as a Service).
Под FaaS понимают такую категорию облачных сервисов, которая предоставляет платформу для разработки и выполнения приложений без какого-либо обременения, связанного с поддерживающей инфраструктурой. Пользователь не видит серверов, в этом смысле инфраструктуру можно считать бессерверной (serverless). Эта позиция напоминает малыша, который, закрывая глаза ладошками, думает, что он невидим.Как «Полюс» отказывается от SAP. Опыт российского лидера золотодобычи представлен на TAdviser SummIT
Впервые сервисы FaaS были реализованы в 2014 году в проекте Open-Source Microservice Hosting Platform[2]. Вскоре появились сервисы Amazon AWS Lambda, в 2016 году - Google Cloud Functions, Microsoft Azure Functions, IBM/Apache's OpenWhisk и в 2017 - Oracle Cloud Fn.
Hook.io представляет собой платформу с открытым кодом, поддерживающую хостинг микросервисов (microservice) и веб-перехватов (webhook hosting).
Микросервисы — это современный этап в развитии хорошо известной сервис-ориентированной архитектуры (SOA). Микросервисы представляют собой набор слабосвязанных компонентов, которые взаимодействуют по сети друг с другом для выполнения цели. Webhook — метод разработки веб-приложений с механизмом оповещения о событиях, происходящих на веб-страницах.
Serverless computing – разновидность облачных сервисов
В англоязычной википедии термин serverless computing совершенно справедливо отнесен к категории misnomer. Это удивительное по точности слово, к сожалению, не имеет адекватного перевода на русский. Приблизительно его можно интерпретировать как «ошибочное название», но скорее оно означает «распространенное заблуждение, с которым приходится мириться». В качестве примера подобных misnomer можно привести веб-сервисы, не имеющие отношения к Web, или «коммутационные фабрики», вообще ни как не связанные с фабриками.
Впрочем, остается удивляться тому, что очень хороший и великолепно соответствующий термин есть. Это utility computing, но по непонятной причине он постоянно остается невостребованным, хотя известен давным-давно. Еще в 1961 году Джон Маккарти, автор термина «искусственный интеллект» и изобретатель языка программирования LISP, сказал:
Если мое представление о компьютерах будущего окажется верным, то когда-нибудь компьютинг будет организован как любая иная коммунальная услуга, как телефония, например. И этот коммунальный компьютинг станет основой для новой и чрезвычайно важной индустрии |
Если бы Маккарти сказал только это, он уже был бы достоин памяти потомков, но он больше известен тем, что увлекся искусственным интеллектом и нагородил, как мы теперь понимаем, немало чепухи. Так в 1966 году в качестве задания студентам на лето он предложил создать такого робота, который бы смог собрать цветной телевизор из соответствующего комплекта деталей. Задание на лето — не меньше и не больше... Таково было его понимание сложности проблемы ИИ, отсюда безмерный оптимизм. В конечном счете телевизор был водружен туда, куда было задумано, но, увы, студенты собрали его вручную.
С остальными коммунальными услугами все проще. В них очевидно, что и как передается потребителю. А какова разумная форма предоставления услуг компьютинга? Самая банальная форма – IaaS. Вам предоставляется в пользование стандартная серверная инфраструктура или СХД.
Впрочем, исторически первой «двугорбой аббревиатурой» стала SaaS, выросшая из услуг, предлагаемых провайдерами ASP (Application Service Provider). Затем были DaaS, DBaaS, PaaS … - одним словом XaaS, то есть «все что угодно как сервисы». Все это – не что иное, как поиск форм для представления тех услуг, о которых Джон Маккарти писал полвека назад.
Форма предоставления ПО как сервисов – Software as a Service (SaaS) за годы своего существования серьезно изменилась. Она имеет три лица – контейнеры (CaaS), приложения (PaaS), к ним прибавляются функции (FaaS). Можно было бы на этом остановиться, но маркетологам по душе serverless computing. То есть FaaS есть ни что иное, как очередной шаг в сторону Utility computing.
В своих нынешних реализациях у платформ FaaS обнаруживается целый ряд ограничений: сложность организации параллельных вычислений, значительная задержка. Тем не менее FaaS можно рассматривать как очередной шаг по направлению к полноценной системе Utility computing и выразить уверенность, что через какое-то время будет сделан следующий шаг в том же направлении.
Качественное отличие FaaS от PaaS заключается в том, что предметом сервиса является не какое-то монолитное завершенное веб-приложение, а слабосвязанная распределенная по облаку система компонентов, позволяющая создавать архитектуры, работа которых подчинена событиям (event-based architecture). Такая система не привязана к каким-то физическим серверам и не ограничена по масштабированию (auto-scalable).
Содержательное введение в FaaS можно найти в материале «Serverless Architectures» Мартина Фаулера, известного популяризатора компьютерных знаний[3].
Разработчикам будет полезна GitHub-страница компании nuclio «Serverless for Real-Time Events and Data Processing»[4].