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

Введение функции без сервера флота

В феврале этого года мы объявили Fleet (ранее Hole), платформу FAAS, построенную на node.js, которая будет быстрее, чем другие платформы, и создать более верную интеграцию с экосистемой. В этом посте я проясню, как все это работает и что мы привносим в экосистеме без серверов, и в следующей статье я прокомментирую платформу. Tagged с помощью Server, узла, JavaScript, FAAS.

В феврале этого года мы объявили Флот (Ранее Hole), платформа FAAS, построенная на node.js, которая будет быстрее, чем другие платформы, и создать более верную интеграцию с экосистемой. В этом посте я проясню, как все это работает и что мы привносим в экосистеме без серверов, и в следующей статье я прокомментирую платформу.

  • Что такое функция флота?
    • Общие проблемы
    • Решение флота
  • Масштабирование
  • Http rest
  • Сценарии использования

Это технология, способная выполнять функции node.js, которые вызываются HTTP-запросами с автоматическим масштабом на ноль или n с возможностью выполнять функции с холодным началом почти нулевым.

export default (req, res) => {
    res.send({ message: 'ƒ Fleet Simple HTTP Endpoint!' });
};

Живой пример: https://examples.runfleet.io/simple-http-endpoint/

Общие проблемы

В кратком объяснении о холодном запуске – когда ваша служба получает запрос, и платформа должна обеспечить свою функцию, чтобы иметь возможность обрабатывать запрос, обычно следуя этому потоку:

  1. Событие вызвано
  2. Начните новую виртуальную машину
  3. Загрузить код (от S3, обычно.)
  4. Настройка среды выполнения
  5. Функция инициирования

Шаги от 2 до 4 – это то, что мы называем холодным стартом, в следующих вызовах, если экземпляр доступен, и кэширован, поставщик может пропустить эти шаги для выполнения функции в теплом запуске. Есть некоторые недоразумения в отношении холодного старта, когда функция уже работает, и получает новый вызов, поставщик вызовет новый экземпляр с холодным стартом, то же самое происходит, когда ваше приложение получает много призывов одновременно, все будет с холодным запуском Анкет

Одно из решений, которое некоторое принятие – это время от времени PIN Для некоторых это очень плохо, потому что это устраняет идею о том, что вы не беспокоитесь о инфраю …

Решение флота

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

  • Изолированный Способен выполнять функцию с изолированной памятью и позволить им использовать процессор в соответствии с предоставленными пределами.
  • Безопасно В том же случае, одна функция не может наблюдать за другой или получать ресурсы из других функций (например, информация из Process.ENV, контекст, запросы …), это также включает доступ к файловой системе.
  • Быстро Мы исключили шаги «Запуск нового виртуальной машины» и «Среда выполнения настройки», исходный код, доступны в каждом регионе, где доступна функция, близко ко времени выполнения. Мы смогли выполнять функции быстрее в том же процессе.

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

Навязывать безопасная среда , Флот должен был Ограничьте некоторые node.js apis Чтобы повысить безопасность и предотвратить подозрительные функции от доступа к ресурсам, каждая работающая функция имеет доступ только к ресурсам, которые были предоставлены для нее.

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

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

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

Функции флота вызываются через HTTP RET, нет необходимости в дополнительной службе API Gateway, каждый новый парк развертывания генерирует новый URL-адрес для развертывания предварительного просмотра (в - .runfleet.io ) И с помощью опции вы можете определить развертывание для производства с помощью эксклюзивного поддомена в <-Dame> .runfleet.io Анкет

Все развертывания сделаны в проекте, созданном в Console.fleetfn.com , способен пригласить участников в команды с привилегиями … Это предмет для другой статьи.

Вы можете захотеть Узнайте больше об этом здесь Анкет

Флот создан для запуска функций node.js намного быстрее и вскоре запустит функции на других языках с использованием webassembly. Имея это в виду, Fleet не имеет дело с подготовкой контейнеров, такими как Cloud Run, или позволяет создавать собственную среду выполнения.

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

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

Хотя в центре внимания флота не находится хостинг веб -сайтов, вы также можете обрабатывать рендеринг на стороне сервера с React разверните статические файлы в S3 и используйте функции для маршрутизации.

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

  • Перейти к Console.fleetfn.com
  • Продолжайте с GitHub и надеюсь, что скоро получите электронное письмо

Если вы хотите расставить приоритеты в своем электронном письме в списке раннего доступа, вы можете заполнить наш Быстрый вопросник Анкет

Мы каждую неделю публикуем наш еженедельный Changelog, вы можете внимательно следить за нашим Twitter @fleetfn который включает в себя несколько коротких видеороликов основных ресурсов, и мы всегда публикуем на нашей конкретной странице для ChangeLog с более подробным описанием fleetfn.com/changelog Анкет

Оригинал: “https://dev.to/fleet/fleet-serverless-function-introduction-5cle”