Как Serverless выполняет первоначальное обещание облака.

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

Вместо этого я хочу обосновать, почему бессерверность - это то, о чем должны заботиться все разработчики, независимо от того, заботятся ли об этом их боссы, ЕЩЁ.

Начнем, конечно, с личной истории…

Я никогда не занимался «веб-разработкой». Двойные кавычки здесь не предназначены для того, чтобы высмеять концепцию, но чтобы показать мое незнание того, что она на самом деле означает. Долгое время я не понимал разницы между сервисом, уровнем, Apache, IIS, ASP, JSP, JS, CSS или любыми другими аббревиатурами. Как разработчик программного обеспечения, я написал либо настольные приложения для построения кода C ++ для Windows, либо приложения для управления сервером C-кода для Linux. Я всегда думал, что это то, что должны делать крутые ребята, и все «веб-штуки» предназначались для более мелких программистов.

Чем больше я держался подальше от сети, тем загадочнее она становилась для меня. Такие вещи, как REST, JSON, WebAPI и т. Д. Появляются в каждой второй статье в Интернете. Люди, создающие мобильные приложения, говорили о создании «серверной части веб-сервисов» для своих приложений, что меня смутило. Не помогло и то, что следующая самая популярная вещь в городе - «облако» - позаимствовала почти все свои характеристики у «веб-вещей». Если вы хотели создавать приложения в «облаке», вам нужно было либо хорошо разбираться в «веб-материалах», либо глубоко разбираться в виртуальных машинах, контейнерах и других связанных с виртуализацией технологиях. Я избегал их обоих достаточно долго, чтобы они приобрели определенную ауру в моем сознании. Пока я не попал на работу, где мне пришлось все это изучить. СПАСИБО!

Но какое отношение все это имеет к бессерверному режиму?

Много.

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

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

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

Бессерверная версия предоставляет основу для простых экспериментов

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

Бессерверная версия ориентирована на продуктивность разработчиков, а не на изощренность

В начале моей карьеры синдром крутого парня, о котором я упоминал ранее (тот, который удерживал меня от «веб-вещей»), также слишком долго удерживал меня от Visual Studio. Я упорно использовал vim и gdb в Linux, даже когда весь код, над которым я работал, был кроссплатформенным кодом C / C ++, который можно было легко обрабатывать в Visual Studio в Windows. И все это просто потому, что было круто отказываться от чего-либо, кроме командной строки. Не хочу начинать дебаты на эту тему, но достаточно сказать, что, по крайней мере, я чувствовал, что теряю бесчисленные часы продуктивности, делая это.

Более важный момент, который я пытаюсь здесь подчеркнуть, заключается в том, что даже в облаке существуют конкурирующие технологии, которые позволяют вам делать аналогичные вещи. Существует несколько сценариев, в которых виртуальные машины, контейнеры или бессерверные файлы будут обеспечивать аналогичные выходные данные. Однако бессерверная версия, вероятно, будет единственной, которая оптимизирует продуктивность разработчиков, предоставляя возможности, ориентированные на валюту разработчика, то есть не виртуальные машины, контейнеры, оркестраторы или экземпляры, а CODE. Проблема продуктивной обработки кода (даже кода, предназначенного для облака) решена с помощью IDE мирового уровня, таких как Visual Studio (попробуйте это).

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

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

Больше контента на plainenglish.io