Создание масштабируемой серверной части

Что, если бы я сказал вам, что вы можете развертывать код на стороне сервера без необходимости поддерживать какую-либо инфраструктуру?

Звучит неплохо, правда? Вот в чем суть бессерверной архитектуры.

Что такое бессерверное?

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

Бессерверная версия позволяет разработчикам создавать и запускать приложения и службы, не думая о серверах, на которых фактически выполняется код.

Состоит из двух основных компонентов:

  • Функции как услуга (Faas)
  • Серверная часть как услуга (Baas)

Функции как услуга

FaaS - это концепция бессерверных вычислений через бессерверные архитектуры. Разработчики программного обеспечения могут использовать это для развертывания отдельной «функции, действия или части бизнес-логики. Ожидается, что они начнутся в течение миллисекунд и обработают отдельные запросы, а затем процесс завершится ».

На базовом уровне вы могли бы описать их как способ запуска некоторого кода, когда «что-то» происходит. FaaS состоит из трех основных концепций.

Полностью управляемые вычисления

Инициализация, установка исправлений, масштабирование, мониторинг и ведение журнала предоставляются прямо из коробки! #lessops

Простое развертывание кода

Просто упакуйте и загрузите свой код. #savetime

Платите за то, чем пользуетесь

Получайте счет на основе использования за 100 мс. #savemoney

Бэкэнд как услуга

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

BaaS - это ваша упрощенная база данных.

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

Что значит…

Вам как разработчику не нужно беспокоиться о:

• Подготовка оборудования

• Установка и настройка

• Планирование пропускной способности

• Масштабирование кластера

• Обновление программного обеспечения

Поставщики услуг

Технологические гиганты Amazon, Google и Microsoft уже давно внедрили бессерверные вычисления в свой набор веб-сервисов. У каждой платформы есть свои особенности, но в основе своей они все одинаковы.

Запуск ваших функций

Итак, вы, должно быть, думаете: «Звучит здорово и все такое, но как на самом деле работает бессерверная версия?» На самом деле это довольно просто. После развертывания кода все, что осталось, - это определить триггеры событий для вызова ваших функций. Эти события включают, но не ограничиваются:

HTTP-запросы

• Хранилище (загрузка файлов)

• Триггеры БД

• Потоки событий

• Очередь / обмен сообщениями

Итак, теперь вы немного знаете о том, как работает бессерверная архитектура, но с чего начать?

Войдите в AWS Lambda и DynamoDB

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

Горизонтальное масштабирование полностью автоматическое, эластичное и управляется провайдером. Если ваша система должна обрабатывать 100 запросов параллельно, провайдер обработает это без какой-либо дополнительной настройки с вашей стороны.

Lambda также может выступать в качестве полной серверной службы веб-приложения, мобильного приложения или приложения IoT, получая запросы от клиента через шлюз Amazon, который преобразует эти запросы в вызовы API, которые позже преобразуются в предопределенные триггеры, выполняющие определенные функции.

Последний кусок пазла

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

Amazon API Gateway - это полностью управляемый сервис, который позволяет разработчикам легко создавать, публиковать, поддерживать, отслеживать и защищать API в любом масштабе.

Вы можете создать API, который действует как «входная дверь» для приложений для доступа к данным, бизнес-логике или функциональным возможностям ваших внутренних служб из Lambda.

В заключение

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

Мы всегда будем создавать все более и более сложные системы, которые решают новые проблемы способами, о которых мы никогда не могли и мечтать 20–30 лет назад. С помощью этих новых архитектурных стилей мы можем решать проблемы способами, которые никогда не считались возможными раньше .

Хотя бессерверные вычисления все еще находятся в зачаточном состоянии, они не предназначены для полной замены существующих архитектур разработки программного обеспечения. Однако, распознавая правильные варианты использования, этот новый шаблон архитектуры может значительно упростить рабочий процесс разработчика.

Надеюсь, вы нашли эту статью информативной! Я всегда с нетерпением жду ваших отзывов и опыта работы с бессерверными версиями, поэтому не стесняйтесь оставлять комментарии в разделе комментариев ниже!

Отдельное спасибо Vetek Consulting за помощь в этой теме! Если вы хотите узнать больше, следите за обновлениями во второй части этой статьи, где я подробно расскажу о том, как включить бессерверную систему в ваш технологический стек.