Бессерверный Технология вызвала много шумихи в технологическом сообществе, вызвав большое любопытство и получив некоторую негативную реакцию. Эта технология началась с запуска AWS Lamba в 2014 г., за которым вскоре последовали Функции Azure позже в 2016 году.
Google позже последовал их примеру с выпуском Google Cloud функционирует в июле 2018 года. Итак, что такое бессерверная технология? Чтобы лучше всего ответить на этот вопрос, давайте вернемся к традиционным серверным вычислениям.
В традиционной ИТ-модели вы отвечали практически за все. Как владелец бизнеса, вам придется выделить бюджет на серверы и другое сетевое оборудование, такое как маршрутизаторы и коммутаторы, а также стойки для серверов.
Вам также придется побеспокоиться о том, чтобы получить безупречный и безопасный центр обработки данных и убедиться, что он может в достаточной степени обеспечивать охлаждение, резервное питание и доступ в Интернет. После настройки вам нужно будет установить операционную систему, а затем развернуть свои приложения. Кроме того, вам потребуется
настроить системы мониторинга и реализовать функции безопасности, такие как брандмауэры системы предотвращения вторжений и обнаружения.Как вы уже догадались, это ресурсоемко, дорого и утомительно.
Затем облачные вычисления ворвался в мир технологий, полностью изменив способ развертывания и управления серверами и приложениями. Это ознаменовало новую эру, когда разработчики с готовностью в кратчайшие сроки создавали облачные серверы и базы данных и начинали работать над своими приложениями. Не беспокойтесь о проблемах, связанных с традиционными ИТ-вычислениями, таких как простои, дорогое оборудование и аренда центров обработки данных.
Хотя облачные вычисления принесли с собой удобство и экономию на масштабе при развертывании ИТ-ресурсов, некоторые компании будут покупать слишком много единицы серверного пространства и ресурсы, такие как ОЗУ и ЦП, в ожидании всплеска сетевого трафика или активности, которые могут привести к перегрузке Приложения.
Хотя это разумный шаг, непредвиденным результатом является недоиспользование ресурсов сервера, которые часто тратятся впустую. Даже с автоматическим масштабированием непредвиденный и внезапный всплеск может дорого обойтись. Кроме того, вам все равно придется выполнять другие задачи, такие как настройка балансировщиков нагрузки, которые также могут увеличить эксплуатационные расходы.
Очевидно, что, несмотря на переход к облаку, некоторые узкие места все еще сохраняются и могут привести к увеличению затрат и потере ресурсов. И вот где Бессерверные вычисления приходит в.
Бессерверные вычисления - это облачная модель, которая предоставляет пользователям серверные сервисы с оплатой по факту использования. Проще говоря, поставщик облачных услуг выделяет вычислительные ресурсы и взимает плату только за время работы приложений. Это эквивалентно переходу с ежемесячной платы за кабельное телевидение на оплату только тогда, когда вы смотрите свои телешоу.
Срок 'Бессерверный'Может немного ввести в заблуждение. Есть ли серверы? Конечно, в этом случае серверы и базовая инфраструктура полностью обслуживаются и обслуживаются поставщиком облачных услуг. Таким образом, вам не нужно о них беспокоиться. Как разработчик, вы сосредотачиваетесь исключительно на разработке своих приложений и обеспечении их работоспособности.
При этом бессерверные вычисления снимают головную боль по управлению серверами и экономят ваше драгоценное время, необходимое для работы над вашими приложениями.
Прекрасным примером бессерверной серверной службы является Функция как услуга (FaaS) Платформа. FaaS это модель облачных вычислений, которая позволяет разработчикам разрабатывать, выполнять и управлять кодом в ответ на события без сложность построения и управления базовой инфраструктурой, обычно связанной с развертыванием микросервисы.
Faas - это подкатегория бессерверных вычислений с небольшими отличиями. Бессерверные вычисления включают в себя широкий спектр услуг, включая вычисления, базу данных, хранилище и API, и это лишь некоторые из них. FaaS ориентирован исключительно на управляемую событиями вычислительную модель, в которой приложения выполняются по запросу, то есть в ответ на запрос.
Примеры FaaS вычислительные модели включают:
Таким образом, мы видели, что с FaaS, вы платите только за время работы вашего приложения, а облачный провайдер практически все делает за вас, включая обслуживание базовой инфраструктуры. Управление серверами - меньшая из ваших проблем.
К настоящему времени у вас есть хорошее представление о некоторых достоинствах бессерверных вычислений. Давайте углубимся в преимущества использования этой технологии.
Это, пожалуй, одно из самых больших преимуществ принятия модели бессерверных вычислений. Хотя термин "бессерверный’Может быть неверно истолкован как подразумевающий, что серверы не задействованы, на самом деле приложения все еще работают на серверах. Суть вопроса в том, что управление серверами полностью является делом поставщика облачных услуг, и это дает вам больше времени для работы над своими приложениями.
Бессерверная инфраструктура обеспечивает автоматическое масштабирование приложений в ответ на всплеск использования, спроса или роста пользовательской базы. Если приложение запущено на нескольких экземплярах, серверы будут запускаться и останавливаться при необходимости. При традиционной настройке облачных вычислений всплеск трафика или активности может легко перегрузить ресурсы сервера, что приведет к несогласованности с выполняемым приложением.
Как разработчику вам не нужно создавать какую-либо специальную инфраструктуру, чтобы ваши приложения были высокодоступными. Бессерверные вычисления обеспечивают встроенную высокую доступность, гарантирующую, что ваши приложения будут запущены и работают, когда это необходимо.
Бессерверные вычисления распределяют ресурсы по принципу оплаты по мере использования. Ваше приложение будет требовать только серверные функции при выполнении кода и будет автоматически масштабироваться в зависимости от объема рабочей нагрузки.
Это обеспечивает экономию на масштабе, поскольку вам выставляется счет только за время работы приложений. В традиционной серверной модели вы должны платить за место на сервере, базы данных и другие ресурсы, независимо от того, запущено приложение или простаивает.
Бессерверная архитектура избавляет от необходимости настраивать серверную часть и вручную загружать код на серверы, как при традиционной настройке. Разработчикам легко загружать небольшие пакеты кода и запускать отличный продукт.
Простота развертывания также позволяет разработчикам легко исправлять и обновлять определенные функции кода без изменения всего приложения.
Есть ли недостатки, связанные с бессерверной моделью? Давайте выясним.
Плохо настроенные приложения представляют собой один из самых серьезных рисков, связанных с бессерверными вычислениями. Если вы выберете AWSНапример, разумно настроить различные разрешения для вашего приложения, которые, в свою очередь, будут определять, как они будут взаимодействовать с другими сервисами в AWS. Если разрешения нечеткие, функция или служба могут иметь больше разрешений, чем требуется, оставляя достаточно места для нарушений безопасности.
Выбор бессерверной модели может вызвать проблемы при переходе к другому поставщику. В основном это связано с тем, что у каждого поставщика есть свои функции и рабочие процессы, которые немного отличаются от остальных.
Еще одна проблема, связанная с бессерверной моделью, - это сложность воспроизведения бессерверной среды для тестирования и мониторинга производительности кода перед запуском. Это в первую очередь потому, что разработчикам не хватает доступа к серверным службам, которые являются прерогативой поставщика облачных услуг.
Мониторинг бессерверных приложений - сложное мероприятие по тем же причинам, по которым отладка и тестирование - сложная задача. Это усугубляется отсутствием инструментов с интеграцией с серверными службами, такими как AWS Lamba.
Бессерверные вычисления продолжают набирать обороты и популярность среди компаний и разработчиков по трем основным причинам. Один из них - доступность, которая подразумевает снижение эксплуатационных расходов. Во-вторых, бессерверные вычисления облегчают автоматическое и быстрое масштабирование, и, наконец, разработчикам не нужно беспокоиться о базовой инфраструктуре, которой занимается поставщик.
Между тем поставщики облачных услуг круглосуточно работают над устранением некоторых ловушек, связанных с бессерверными вычислениями, таких как трудности с отладкой и мониторингом приложений.