Новый двигатель для приложений для обработки данных без сервера
Наш Engine Apps Data Data имеет свой подход к развертыванию и запуску приложений без серверов; В нескольких аспектах, отличных от решений в таких областях, как программные шины, интеграционные платформы и предложения FAAS. Эта статья объясняет наш подход. Мы надеемся, что вам это интересно.
” 3 в 1 дюйм платформе обработки данных
Сердце нашего решения и его механизм данных называются «центр преобразования скраджников». Он доступен в качестве автономного программного пакета на GitHub и станет основным элементом нашей облачной платформы Scramjet.
Мы называем наш подход «3 в 1 платформу обработки данных», поскольку он объединяет 3 понятия в одно решение:
- Двигатель обработки данных
- Без сервера приложения данных
- Завершите API с выделенным CLI (охватывая как конечные точки ввода -вывода, так и управление)
Давайте посмотрим на каждую точку отдельно.
Двигатель обработки данных
Hub Scramjet Transform создает единый план развертывания, времени выполнения, управления и выполнения для приложений без серверов (последовательности).
Короче говоря, STH позволяет запустить обработку данных в 3 простых шагах:
Развертывать
si sequence send
Бежать
si sequence run
Отправить данные
curl -H "Content-Type: application/octet-stream" — data-binary "@file.txt"
Вы можете свободно публиковать в нашей последовательности простые HTTP -запросы, файл, отправлять поток или даже прочитать данные из другого потока или API. Пожалуйста, обратите внимание, что, в отличие от типичных архитектур микросервисов, не существует дорогостоящего шага строительства контейнерного изображения, подталкивания его в реестр, а затем загружать его в оркестратор контейнера для запуска микросервиса. Вы можете перейти из каталога с кодом к последовательности обработки ваших данных менее чем за минуту.
Мы делаем пакет наши приложения, но их размер измеряется в килобитах, а не в сотнях мегабайт, как в случае с изображениями контейнеров. Минимальный дизайн приложения обеспечивает лучшую производительность, оптимизированное использование ресурсов и более простой процесс CI/CD.
Мы подготовили короткую 3-минутную демонстрацию, показывающую всю подготовку приложения (последовательность), развертывание и запуск процесса на нашем канале YouTube. Проверьте это ниже:
Без сервера приложения данных
Мы называем последовательности пользовательских приложений. У них есть возможности для выполнения непрерывной обработки данных и потоковой обработки, у них нет ограничений по времени выполнения или ограничений размера входных данных.
Каждая последовательность имеет прямую структуру – это каталог, по крайней мере, с двумя основными файлами:
- Package.json – простой файл json описывает метаданные последовательности
- Индекс. [JS/TS] – JavaScript или файл TypeScript с кодом последовательности. Вы можете структурировать свое приложение в нескольких файлах, если хотите.
Ниже существует содержание одной из наших последовательностей «Hello World», что дает целое число чисел.
const {DataStream} = require("scramjet");
module.exports = async function(stream, start = 0, end = 1000) {
await DataStream.from(async function*() {
let i = +start || 0;
while(i++ < end) {
await new Promise(res => setTimeout(res, 1000));
yield {x: i};
}
})
.do(console.log)
.run()
}
Вы можете найти Intro Readme и больше образцов в нашем выделенном репозитории Scramjetorg/Scramjet-Cloud-Docs
API и CLI
Давайте посмотрим на API Transform Hub через команды, доступные в нашем CLI:
- Pack [Параметры] – каталог пакетов с кодом последовательности в файл tar.gz
- хост [Команда] – Мониторинг и проверьте версию хоста
- config | c [Команда] – отображать и управлять конфигурацией
- Последовательность | SEQ [Команда] – Пакет, развертывание, управление и мониторинг (шаблоны приложений)
- экземпляр | Inst [Command] – Управление и мониторинг экземпляров (запущенные приложения)
Вышеуказанные команды (и связанные с ними API) охватывают полное управление двигателем обработки данных и без сервера, работающих над ним. После начала каждый работающий экземпляр раскрывает следующие конечные точки API:
- ввод, вывод
- stdin, stdout, Stderr
- журнал, мониторинг
- _Event (к экземпляру), событие (из экземпляра)
- Остановись, убей
Этот подход следует за подходом «батареи, включенные», и каждый беговой экземпляр обрабатывается таким же образом.
Почему наша облачная платформа Scramjet
Наш подход, показанный выше, имеет несколько преимуществ:
- Свобода и гибкость – нет искусственных ограничений на размер данных и время выполнения приложений; Нет «ограничения по времени выполнения» или «ограничение размера полезной нагрузки».
- Отличная цена для эффективных рабочих процессов данных с полностью программируемым сбором данных, способность создавать шаблоны между экземплярами, выполняющими различные задачи обработки данных.
- Производительность по дизайну – мгновенное выполнение данных без прокси, очередей и шлюзов. Легкие приложения с минимальным потреблением ресурсов.
- Работает поперечный (Edge & Cloud)-из коробки, охватывающей между местами. Запустите один и тот же тип приложений на крае или интеллектуальных устройствах через автономный концентратор преобразования Scramjet и в нашей облачной платформе Scramjet.
В качестве резюме, ниже вы найдете диаграмму, показывающую различные модели обработки данных цепочки на нашей платформе:
Оригинал: “https://dev.to/scramjetorg/introduction-to-scramjet-data-processing-platform-5bof”