Разработчики хотят кодировать. Следовательно, без сервера.

Разработчики хотят кодировать. Следовательно, без сервера.

20 апреля 2022 г.

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


Вместо этого я хочу обосновать, почему бессерверные технологии — это то, о чем должны заботиться все разработчики, независимо от того, заботятся ли об этом их боссы, ПОКА.


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


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


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


Но какое отношение все это имеет к Serverless?


Много.


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


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


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


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


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


Serverless фокусируется на производительности разработчиков, а не на сложности


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


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


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


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



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE