უკან დაბრუნება
Cloudflare-მა K2 საჯარო ბეტაში წარადგინა: R2-ზე აგებული serverless მოვლენების ნაკადები
SiTech AI Team2 წთ. საკითხავი

Cloudflare-მა K2 საჯარო ბეტაში წარადგინა: R2-ზე აგებული serverless მოვლენების ნაკადები

Cloudflare-მა საჯარო ბეტაში გამოუშვა K2, მოვლენების ნაკადების serverless პრიმიტივი, რომელიც მონაცემებს R2-ის ობიექტურ საცავზე აგებულ დალაგებულ ჟურნალში ინახავს. სერვისი თავდაპირველად Basin Pipelines-ისთვის შეიქმნა და ბეტის პერიოდში უფასოა.

Cloudflare-მა 1 ოქტომბერს K2-ის საჯარო ბეტა გამოაცხადა. K2 მოვლენების ნაკადების serverless პრიმიტივია დეველოპერების პლატფორმაზე: მოვლენები მასში დალაგებული ჟურნალის სახით ინახება, მიმღებებს კი მათი წაკითხვა დატვირთვის რამდენიმე მკითხველზე განაწილებით ან ყველა შეტყობინების მიღებით შეუძლიათ. სერვისი სრულად serverless-ია და მიმღების ხანგრძლივი უმოქმედობის დროსაც მონაცემები არ იკარგება.

K2 RPC არქიტექტურის პრობლემას წყვეტს: იქ გამომგზავნი (producer) და მიმღები (consumer) მასშტაბითა და დროით ერთმანეთს უნდა შეესაბამებოდნენ, მიმღების ჩამორჩენისას კი მოვლენები იკარგება. K2 მათ შორის გამძლე ბუფერია R2-ის ობიექტურ საცავზე და მკითხველებს საკუთარი ტემპით მუშაობის საშუალებას აძლევს.

როგორ მუშაობს

ობიექტურ საცავში ჩაწერის დამატება (append) შეუძლებელია, ამიტომ K2 ჩაწერებს ჯერ მეხსიერებაში აგროვებს, შემდეგ კი მთლიან სეგმენტ ფაილად წერს; რიგითობასა და მკაცრად მზარდ ოფსეტებს R2-ის ატომური ოპერაციები უზრუნველყოფს, ცალკე კოორდინაციის სერვისის გარეშე. ნაკლი დაყოვნებაა: ობიექტურ საცავში ჩაწერა ლოკალურ დისკზე ნელია, ამიტომ საწყის ვერსიაში გამოშვების დაყოვნება 99-ე პერცენტილზე დაახლოებით 1 წამია.

K2 თავდაპირველად შიდა საჭიროებისთვის აშენდა და Basin Pipelines-ის ინგესტის ფენად იყო გამიზნული: pull-მოდელზე მომუშავე სისტემას მიღებული მოვლენების გამძლე შენახვა სჭირდებოდა მანამ, სანამ ისინი წაიკითხებოდა და R2-ში ჩაიწერებოდა. ჩვეულებრივ ამას Apache Kafka აკეთებს, მაგრამ Cloudflare-ის edge 335-ზე მეტ ქალაქშია გაშლილი და კლასიკური განაწილებული სისტემების გაშვება იქ პრაქტიკულად შეუძლებელია, ამიტომ გუნდმა R2 აირჩია.

K2, Queues თუ Pipelines?

Cloudflare-ს ასინქრონული მიწოდების სხვა პრიმიტივებიც აქვს: Queues და Basin Pipelines. Queues ცალკეულ სამუშაოებზეა ორიენტირებული, რომლებიც დიდ რესურსს ან დროს მოითხოვს; ის მხარს უჭერს ხელახალ ცდებს, გადავადებებსა და წარუმატებელი მცდელობებისთვის განკუთვნილ dead-letter რიგებს.

K2 კი მაღალი მასშტაბის მონაცემთა გადაადგილების, გრძელვადიანი შენახვისა და fan-out მოხმარებისთვისაა განკუთვნილი; შეტყობინებები პარტიებად იგზავნება და იკითხება, რაც ეფექტიანობას ზრდის, თუმცა ცალკეული შეტყობინების დონეზე ხელახალი ცდები აღარ მუშაობს და გამოშვების დაყოვნება Queues-ზე მაღალია. Basin Pipelines serverless ინგესტის სერვისია, რომელიც JSON მოვლენებს R2-ში ან Basin Catalog-ში წერს; Cloudflare-ის რეკომენდაციით, Pipelines უნდა აირჩიოთ, თუ შედეგი ობიექტურ საცავში ან Iceberg ცხრილებში უნდა მოხვდეს, K2 კი მორგებული დამუშავებისთვის ან სხვა დანიშნულების ადგილისთვის.

ხელმისაწვდომობა და ფასები

K2 Workers Paid-ის გამოწერის მქონე ანგარიშებზეა ხელმისაწვდომი; ბეტის ლიმიტებია მაქსიმუმ 10 გბ შენახვა და 30 მბ/წმ გამოშვების სიჩქარე ერთ ნაკადზე, უფრო მაღალი ლიმიტები კი ცალკე მოთხოვნით გაიცემა. ბეტის განმავლობაში გამოყენება უფასოა; სავარაუდო ფასებია 0,04 დოლარი გბ-ზე გაგზავნილ და წაკითხულ მონაცემზე და 0,02 დოლარი გბ-ზე თვეში შენახვაზე.

გეგმებში შედის ჩაწერის უფრო მაღალი პარალელიზმი, გასაღებები და მათზე დაფუძნებული რიგითობის გარანტიები, push-ზე დაფუძნებული მიწოდება Worker-ებისთვის, დაბალი დაყოვნების Express tier და Apache Kafka-ის კლიენტების drop-in მხარდაჭერა.

SSiTech

SiTech — AI-გაძლიერებული ვებ დეველოპმენტი

ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.