Рубрики
Без рубрики

Serverless не должен быть бесежденным черным ящиком

«В науке, вычислении и инженерии черный ящик – это устройство, система или объект, который можно просматривать с точки зрения его входов и выходов (или характеристик передачи), без каких-либо знаний о его внутренних работах. Его реализация« непрозрачная » (черный). Почти все может быть называется черным коробком:

Автор оригинала: FreeCodeCamp Community Member.

Несколько недель назад я смотрел документальный фильм HBO (потому что я старый, и это то, что делают старые люди – мы смотрим документальные фильмы) на травму травматизма.

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

Они не могут ходить, не в состоянии удержать голову – обе вещи, которые они могли сделать только несколько месяцев назад, и все же их мозг не смог обрабатывать, что что-то изменилось.

Это определение черных ящиков, но что выходит, не то, что мы ожидаем. И в этом нет ничего, потому что вы не можете «отладить» мозг. Если бы вы могли установить там точку останова и узнать, почему линия «пива и куриные крылышки» выполняет каждую ночь.

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

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

Безверонная грусть

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

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

Я сделал этот высокоучебный и полезный график, чтобы визуализировать стоимость/польза без сервера в течение времени разработки.

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

Но нам нравятся абстракции.

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

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

Итак, позвольте мне перефразировать это: нам нравятся абстракции, пока мы не сделаем.

Когда нам не нравятся абстракции

Начнем с какого базового опыта без сервеса.

Если вы должны были создать новый неверный проект с чем-то вроде функций Azure, вы попадаете в опыт онлайн-редактора.

Это довольно удобно. Нет ничего, как быть в состоянии просто начать писать код напрямую. Или, если вы меня, «Копирование и вставка из переполнения стека».

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

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

Теперь любой, кто серьезно относится к серверу (или просто построить все вообще в этом отношении), не воспринимает опыт онлайн-редактора слишком серьезно. Чтобы построить все возможное, нам нужно развивать локально.

Местное развитие без промежуточностей

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

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

Функции Azure обрабатывают это немного по-другому. Вместо того, чтобы дать вам эмулятор для местного развития, они дают вам время выполнения. Это верно, вы получаете вся коробка Отказ

Местное развитие с функциями Azure

Когда вы устанавливаете Функции Azure Core Tools Вы устанавливаете ту же временем выполнения, которые Azure использует. Поскольку вы получаете все время выполнения, вы можете построить любую функцию локально. Не просто HTTP триггеры.

Обратите внимание, что вы можете делать зарисовать BLOB и очередь. Если вы бросите файл в хранилище Azure Blob, ваша локальная функция запущена. Если вы поместите сообщение в очередь сообщений Azure, ваша локальная функция триггеры. Это здорово, потому что иначе, как на земле вы бы проверили блог или очередь триггеры? Вы бы не сделали. Вы бы просто предложили Мэри в облаке и молись.

Работа только на … Аарон Роджерс Отказ Это две футбольные ссылки подряд, и извините. Ты заслуживаешь лучшего.

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

Отладка функций без сервеса с VS-кодом

Вы можете установить Расширение функций Azure Для VS-кода, который автоматически позволяет отладки локальной функции.

Это ставит новую панель в VS-код для функций Azure. Вы можете увидеть все ваши различные функции проекты в этом пространстве.

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

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

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

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

Черные коробки предназначены для хирургов мозга

На самом деле, нет работы под названием «Хирург мозга». Это называется нейрохирургом, и по состоянию на 2015 год, Средняя зарплата составляет $ 609 639 в год Отказ Ага. Шутки в сторону.

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