
Команда Deno приєдналася до Cloudflare для інтеграції celld з workerd, щоб спростити хостинг Workers
Команда Deno приєднується до Cloudflare, щоб об'єднати celld з workerd і радикально спростити хостинг Workers та Durable Objects для розробників, які працюють з розподіленими додатками.
Команда Deno приєднується до Cloudflare
Команда Deno приєднується до Cloudflare, щоб радикально спростити хостинг Workers та Durable Objects і дати розробникам можливість використовувати ті самі примітиви в більшій кількості місць. Ryan Dahl, старший головний інженер, і Kenton Varda, видатний інженер, діляться історією цього кроку.
Dahl, творець Node.js, взявся за Deno для пошуку потужніших абстракцій для написання JavaScript. Deno покращував досвід розробника, але, на його думку, більші проблеми стосуються мережевих додатків: розподіл обчислень, координація стану, зберігання даних і автомасштабування відповідно до попиту.
Чому Durable Objects були важливими
Рішення стало очевидним, коли Dahl прочитав про Durable Objects від Cloudflare. Вони забезпечують розподілений синглтон з базою даних SQLite. Кожен Durable Object діє як міні-сервер з власною адресою, власною реляційною базою, однопотоковим виконанням JavaScript, підтримкою WebSocket і синхронним доступом до локальної SQLite. Побудова чат-додатку з одним Durable Object на кожен канал розподіляє дані та WebSocket-з'єднання, що робить додаток масштабованим.
На цій абстракції можна побудувати інші сервіси, зокрема Queues, KV, Durable Execution і навіть сховище Git. Проте запуск цієї моделі поза Cloudflare залишався складним. workerd — це відкритий код, але його підтримка Durable Objects обмежена одним екземпляром. Dahl хотів розподілену версію, що призвело до створення celld — це один бінарник на Rust, єдиною зовнішньою залежністю якого є об'єктне сховище.
Відповідь Cloudflare
Kenton Varda відповів на поширену твердження, ніби Cloudflare створила Workers інакше для прив'язки користувачів. Він зазначив, що Workers відрізняється, бо кращий, що робить запуск додатків у сотнях локацій простим і дешевим. Він також зазначив, що workerd, середовище Cloudflare Workers, є відкритим кодом і в продакшні працює той самий код, а колишні користувачі перейшли на його використання в інших місцях.
Varda визнав, що workerd має проблему з готовністю до продакшену: Durable Objects працює лише в режимі одного екземпляра, що добре для локального тестування, але не дозволяє масштабуватися. Реалізація продакшен-роутингу залежить від зовнішніх сервісів, якими керують інженери site reliability, тому для хостерів це непридатне. celld пропонував повністю сумісну, самохостингову та масштабовану реалізацію.
План
Ryan Dahl і Bert Belder керують новим зусиллям, щоб самостійний хостинг workerd став першокласним способом створення та запуску додатків з використанням моделі програмування Workers. Робота включає об'єднання коду та ідей celld в workerd, більш детальне оголошення очікується в найближчі місяці. Розробники вже сьогодні можуть почати самостійний хостинг celld або workerd.
Джерела: Cloudflare
SiTech — веброзробка з підтримкою AI
Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.