1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/baidu-EasyFaaS

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

EasyFaaS

简介

EasyFaaS — это лёгкий, адаптивный, ресурсоэффективный и без состояния высокопроизводительный движок для вычислений функций. Он имеет следующие особенности:

  • Лёгкий: EasyFaaS зависит только от ядра Linux и не требует Docker, Kubernetes или других внешних сервисов.
  • Адаптивный: EasyFaaS может работать в различных средах, включая Docker, Kubernetes и голый металл.
  • Ресурсоэффективный: у него мало модулей, а система занимает меньше места.
  • Без состояния: каждый Pod сам по себе не имеет состояния и автономен.
  • Высокопроизводительный: более короткое планирование цепочки, меньшие системные издержки и лучшая производительность.

Подходит для:

  • Edge-вычислений;
  • Интернета вещей (IoT);
  • CI/CD;
  • Частных сетей;
  • CDN.

Руководство пользователя

Быстрый старт. Руководство по разработке. Тестирование качества. Оценка движка.

Основные функции

  • Предоставляет вычислительные возможности на основе событий, эластично масштабируемые по требованию.
  • Поддерживает различные языки выполнения, разработчикам нужно только использовать подходящий язык для написания пользовательских функций, без необходимости управлять базовой инфраструктурой.
  • Отвечает за полный жизненный цикл пользовательского контейнера.
  • Позволяет пользователям настраивать ёмкость контейнеров для функций, обеспечивая динамическое распределение ёмкости контейнеров.
  • Поддерживает синхронный и асинхронный режимы вызова, а также несколько расширяемых триггеров событий.
  • Обеспечивает настраиваемый сервис управления функциями.
  • Поддерживает пользовательские языки выполнения.
  • Работает на различных платформах, включая Docker, Kubernetes и голый металл.

Техническая архитектура

Архитектура

EasyFaaS использует один Pod как минимальную единицу обслуживания, каждый Pod содержит три контейнера: controller, funclet и runner-runtime. Runner-runtime является init-контейнером, который подготавливает необходимые ресурсы и затем завершает работу.

Модули

1. Основные компоненты

1.1 Controller Отвечает за управление трафиком и состоянием пула контейнеров. Реализует функцию планирования контейнеров. Поддерживает настройку параллелизма на уровне функций. Управляет состоянием контейнеров и планирует их состояние в соответствии со стратегией. Обеспечивает проверку работоспособности, которая может определять cooldown/reborn в зависимости от состояния runtime. 1.2 Funclet Отвечает за управление пользовательскими рабочими контейнерами, включая базовые ресурсы контейнеров и ресурсы выполнения функций. Реализует процессы инициализации, прогрева и сброса контейнеров. Управляет сетью контейнеров, эффективно используя сетевые ресурсы. Монтирует пользовательские контейнеры динамически и периодически освобождает смонтированные каталоги контейнеров. Управляет процессами пользовательских контейнеров, обрабатывая аномальные завершения дочерних процессов. Настраивает динамическую память пользовательских рабочих контейнеров. 1.3 Runner-runtime Runner отвечает за управление выполнением пользовательских функций во время выполнения, runtime поддерживает различные языковые среды выполнения, в настоящее время этот компонент предоставляет только образы контейнеров.

2. Сменные компоненты

2.1 Компонент HTTPtrigger Основная функция: расширение способа запуска функций, поддержка запуска функций через HTTP-запросы. HTTP-триггер связывает функцию с URL, он может получать HTTP-запрос, находить соответствующую функцию на основе метода HTTP, URL, передавать информацию о HTTP в функцию и выполнять её, получать результат выполнения и упаковывать его в ответ HTTP. 2.2 Компонент stubs Основная функция: предоставление сервиса хранения кода локальных функций. Хранит пользовательский код функций локально. Позволяет напрямую вызывать локальный код функций.

Вклад

Если у вас есть какие-либо вопросы или проблемы, пожалуйста, создайте issue на GitHub или Gitee, мы ответим вам как можно скорее. Для быстрого общения вы можете сканировать QR-код ниже, чтобы присоединиться к технической группе обсуждения EasyFaaS, добавить следующих администраторов и отметить «EasyFaaS», администраторы пригласят вас в группу.

Введение

EasyFaaS — это лёгкий, хорошо адаптируемый, ресурсоэффективный, без сохранения состояния и высокопроизводительный движок функционального вычислительного сервиса. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/baidu-EasyFaaS.git
git@api.gitlife.ru:oschina-mirror/baidu-EasyFaaS.git
oschina-mirror
baidu-EasyFaaS
baidu-EasyFaaS
main