РЕАЛИЗАЦИЯ ПРИЛОЖЕНИЙ ПРИ ПОМОЩИ БЕССЕРВЕРНЫХ ВЫЧИСЛЕНИЙ

Жолтаева Милена Максутовна
Евразийский национальный университет им. Л.Н.Гумилева
Казахстан, г. Нур-Султан студент 4 курса

Аннотация
Данная статья посвящена тема реализации и развертывания приложении при помощи бессерверных вычислений. Бессерверные сервисы являются более доступными подходами для многих сетевых сервисов, более удобными для клиентов, и более того, вокруг этих услуг будут формироваться новые рынки, что подразумевает новые бизнес-возможности для компьютерных инженеров. В данной статье рассматриваются различные приложения, базированные на бессерверных вычислениях, их возможности и применение.

Ключевые слова: , , , , , , ,


Рубрика: 05.00.00 ТЕХНИЧЕСКИЕ НАУКИ

Библиографическая ссылка на статью:
Жолтаева М.М. Реализация приложений при помощи бессерверных вычислений // Современные научные исследования и инновации. 2021. № 5 [Электронный ресурс]. URL: https://web.snauka.ru/issues/2021/05/95652 (дата обращения: 13.04.2024).

Научный руководитель:  Наурызбаев А.Е., к. ф.-м. н., доцент

 

Бессерверные вычисления [1] недавно появился как альтернативный способ создания серверных приложений. Бессерверная система не требует выделенной инфраструктуры. Крупные поставщики облачных сервисов, такие как Amazon Web Services, Google, Microsoft и IBM, создали версии бессерверных сервисов. Serverless позволяет разработчику развертывать “функции” (serverless также называется Functions-as-a-Service) на общей платформе, поддерживаемой поставщиком. Эти функции обычно представляют собой стандартные фрагменты кода на популярных языках, которые выполняются без сохранения состояния. Поставщик несет ответственность за бесперебойную работу инфраструктуры и масштабирование ресурсов для удовлетворения выполнения функций в связи с изменениями спроса пользователей. Затраты на бессерверный жизненный цикл обычно ниже, чем затраты на выделенную инфраструктуру, поскольку бессерверные поставщики не взимают плату за время простоя.

Бессерверные вычисления отличаются от традиционных концепций облачных вычислений (а также называемые «серверными») в том смысле, что инфраструктура и платформы, на которых работают сервисы, прозрачны для клиентов. При таком подходе клиенты заботятся только о желаемой функциональности своего приложения, а остальное делегируется поставщику услуг.

Функция как услуга (англ. function-as-a-service, FaaS) — архитектурный шаблон, предполагающий возможность вызова экземпляра управляющего кода без необходимости управления серверами и серверным приложением; ключевой компонент бессерверных вычислений [2].

Чат-боты. Облачные провайдеры предлагают все большее число когнитивных услуг, таких как машинное обучение, перевод и аналитика, в качестве строительных блоков для разработки приложений искусственного интеллекта. Одним из таких приложений является “чат-бот”, который использует разговорный интерфейс для взаимодействия с пользователем. Чат-боты существуют с 1960-х годов [3], но в последнее время наблюдается быстрый рост числа чат-ботов, отчасти связанный с широким внедрением на рынок мобильных и “умных” устройств. Чат-боты теперь встроены в популярные программы обмена сообщениями [4], а также появляются как автономные сервисы, такие как Amazon Alexa, Microsoft Cortana и Apple Siri.

В модели бессерверного программирования разработчики развертывают фрагменты кода как “функции” в облаке. Функции не имеют состояния, и каждый вызов не зависит от предыдущих запусков. Функции могут быть вызваны непосредственно или вызваны событиями. Функции не предназначены для длительного выполнения; следовательно, это поощряет программную модель, в которой приложение разбивается на несколько функций, содержащих небольшое количество логики. Нетривиальные приложения, такие как чат-боты, будут использовать множество функций, связанных вместе.

Как отмечалось ранее, бессерверные вычисления являются идеальной платформой для создания расширяемых чат-ботов благодаря своим отличительным характеристикам. Во-первых, он предоставляет способ создания облачного “клеевого” кода для составных строительных блоков ИИ. Это освобождает разработчика от бремени управления масштабируемостью из-за колебаний спроса пользователей. Это позволяет создать нормализованную среду сценариев, которая может быть упакована и распространена. Наконец, он также предоставляет критическую недостающую часть: средство для того, чтобы совместимые сервисы ИИ взаимодействовали с другими, не разговорными сервисами для выполнения интересных задач для пользователей.

Машинное обучение. Пользователи МЛ в настоящее время сталкиваются с рядом сложных проблем, которые значительно затрудняют их продуктивность и эффективность. Во-первых, пользователям часто приходится вручную настраивать множество параметров системного уровня, таких как количество рабочих/серверов параметров, распределение памяти, количество процессоров, физическая топология и т. Д. Во-вторых, пользователи должны указать множество специфичных для ML параметров, таких как скорость обучения, алгоритмы обучения, структура нейронной сети, которые неочевидным образом взаимодействуют с параметрами системного уровня. В-третьих, рабочие процессы ML все чаще состоят из нескольких этапов, включая (а) предварительную обработку, (б) обучение и (в) поиск гиперпараметров, каждый из которых имеет различные вычислительные требования, которые пользователи ML должны учитывать. Необходимость учета гетерогенных требований к ресурсам на каждом этапе является бременем для пользователей ML, что также часто приводит к перепрофилированию ресурсов — современные фреймворки ML, как правило, специализируются на крупнозернистых кластерах на базе виртуальных машин, которые не обладают гибкостью, необходимой для таких рабочих нагрузок.

Модель бессерверных вычислений становится убедительным подходом к решению проблемы управления ресурсами центров обработки данных. Бессерверные вычисления опираются на лямбда-функции, которые представляются разработчиками и автоматически планируются облачной инфраструктурой. Таким образом, они избавляют разработчиков от необходимости явно настраивать, развертывать и управлять долгосрочными вычислительными единицами (например, виртуальными машинами).

С распространением IoT-устройств, таких как датчики, автомобили, беспилотные летательные аппараты и роботы, эти IoT-устройства не только производят большое количество данных, но и все чаще потребляют выходные данные конвейеров обработки данных, работающих на машинном обучении, чтобы своевременно принимать меры [5]. Обычно производители и потребители данных связаны с IoT-сервисами, которые реализуют логику обработки данных для преобразования необработанных данных в реальные результаты. Ранее центральные облака использовались в качестве основной базовой инфраструктуры для размещения таких IoT-сервисов. Однако из-за требований короткого времени отклика и низкой пропускной способности многих сервисов, связанных с подключенными транспортными средствами, беспилотными летательными аппаратами и камерами, существует острая необходимость перенести обработку данных из облака на края сети, близкие как производителям, так и потребителям. Этот сдвиг парадигмы обычно называют туманным или пограничным вычислением, которое включает в себя вычисления как в облачной, так и в пограничной среде. Для согласованности мы будем использовать термин “туманные вычисления” на протяжении всей статьи.

Проектирование и развертывание служб привязано к конкретным пограничным устройствам. Это погранично-ориентированный подход, который требует от разработчиков служб статического определения того, какой сервисный модуль должен быть развернут на каком типе пограничного устройства. Набор сервисных модулей, работающих на пограничном устройстве, фиксируется после развертывания. Однако для ситуационных приложений интернета вещей различные сервисные модули должны динамически запускаться на границе сети в зависимости от доступности и мобильности устройств интернета вещей. Это требует подхода, ориентированного на данные.

Существующие фреймворки туманных вычислений плохо поддерживают интенсивные услуги интернета вещей. Например, большинство существующих вычислительных платформ fog используют тематический интерфейс pub/sub, такой как MQTT, для связи между различными модулями пограничных служб и требуют ручной настройки пути маршрутизации данных. Это проблематично, когда запущенный экземпляр задачи на границе должен быть перенесен в облако или другой край из-за мобильности устройств, колебаний рабочей нагрузки или когда нам нужно динамически добавлять или удалять служебные модули из-за меняющихся бизнес-потребностей. Поэтому IT-услуги требуют динамического состава услуг.

С увеличением сложности любой IoT-системы возникают новые архитектурные стили, такие как микросервисы, которые улучшают масштабируемость, изоляцию отказов, гибкость и т. Д. Каждый микросервис может быть развернут независимо друг от друга, и микросервисы слабо связаны. Бессерверные вычисления порождают новый метод предоставления новых вычислительных ресурсов в рамках более высокого уровня абстракции в облачных вычислениях, где часть бизнес-функции может быть определена и выполнена по требованию; вычислительные ресурсы для ее выполнения должным образом распределяются облачным провайдером.

Бессерверный подход в некоторых случаях очень удобен, поскольку позволяет построить очень масштабируемое решение. Это также изменит вашу парадигму мышления об управлении серверами и их оплате. Бессерверная платформа дает вам очень простой инструмент для развертывания вашей функции без необходимости знать AWS или любого другого облачного провайдера.


Библиографический список
  1. Joseph M. Hellerstein, Jose Faleiro. Serverless Computing: One Step Forward, Two Steps Back. – 2019.
  2. Функция как услуга / URL: https://ru.wikipedia.org/wiki/Функция_как_услуга
  3. Мессенджер-маркетинг как современный способ продвижения брендов / vc.ru URL: https://vc.ru/35106-messendzher-marketing-kak-sovremennyysposob-prodvizheniya-brendov.
  4. Srini Janarthanam. Hands-On Chatbots and Conversational UI Development. – Packt Publishing, 2017.
  5. Peter Sbarski, Yan Cui, Ajay Nair. Serverless Architectures on AWS, Second Edition. – Manning Publications, 2018. – 500 p.


Количество просмотров публикации: Please wait

Все статьи автора «Жолтаева Милена Максутовна»


© Если вы обнаружили нарушение авторских или смежных прав, пожалуйста, незамедлительно сообщите нам об этом по электронной почте или через форму обратной связи.

Связь с автором (комментарии/рецензии к статье)

Оставить комментарий

Вы должны авторизоваться, чтобы оставить комментарий.

Если Вы еще не зарегистрированы на сайте, то Вам необходимо зарегистрироваться:
  • Регистрация