Pengumuman peluncuran S2
(s2.dev)- S2 adalah pratinjau Stream Store serverless yang ingin menangani stream real-time yang tahan lama sesederhana object storage, dengan tujuan mengangkat log dan stream menjadi elemen dasar penyimpanan cloud
- Record di-append ke tail stream, dan meskipun beberapa writer menulis secara bersamaan, S2 menangani pengurutan yang tahan lama sehingga mendukung pembacaan historis maupun tailing real-time
- Basin di S2 berperan sebagai namespace untuk stream seperti bucket, memungkinkan pemodelan seperti stream per pengguna tanpa batas jumlah stream maupun periode retensi
- Kelas penyimpanan dimulai dengan
StandarddanExpress, masing-masing menargetkan latensi p99 di bawah 500ms dan di bawah 50ms, sehingga memisahkan opsi latensi dan biaya - Saat ini tersedia gRPC API, Rust SDK, dan CLI, dengan REST API, kompatibilitas protokol Kafka, multi-region basins, dan latensi di bawah 5ms sebagai langkah berikutnya
Model penyimpanan stream yang diajukan S2
- S2 menargetkan Stream Store serverless untuk data streaming di era cloud
- Gagasan utamanya adalah bahwa log atau stream juga dapat menjadi elemen dasar penyimpanan cloud seperti object
- Object storage berfokus pada
PUT/GET/DELETEuntuk objek bernama serta blob dan byte range, sehingga cocok untuk data at-rest - Penyimpanan stream S2 menyediakan
APPEND/READ/TRIMuntukStreambernama, dengan record dan sequence number sebagai unit dasar - Penulisan dilakukan dengan append ke tail stream, dan meskipun beberapa writer mencatat secara bersamaan, S2 mengurutkan semua record dan menjamin durabilitas
- Pembacaan dapat dimulai dari hitungan detik yang lalu hingga bertahun-tahun, dan juga memungkinkan tailing real-time yang sulit dilakukan dengan blob S3
- Basin berperan sebagai namespace untuk stream, seperti bucket yang menjadi namespace untuk object
- basin dan stream dapat digunakan tanpa batas jumlah
- tidak ada batas pada periode retensi data
- pemodelan stream per pengguna juga dimungkinkan, tanpa perlu menangani batas cluster atau tuning infrastruktur seperti di Kafka
- Operasi untuk memeriksa tail stream dengan konsistensi kuat dan kontrol konkurensi saat menulis juga didukung
- pendekatan pesimistis dengan fencing token dimungkinkan
- pendekatan optimistis dengan memberikan sequence number yang diharapkan juga dimungkinkan
- desain ini menargetkan offloading durabilitas serta pemisahan compute dan storage yang dimanfaatkan database seperti MemoryDB dan Neon
Performa, harga, fitur yang tersedia saat ini, dan roadmap
- Berdasarkan skalabilitas dan durabilitas object storage, S2 menyediakan API serverless dalam bentuk layanan multi-tenant
- Durabilitas ditempatkan sebagai aspek yang tidak bisa dikompromikan, sementara pilihan latensi dan biaya disesuaikan melalui storage class per stream
Standard: berbasis AWS S3 Standard, dan karena ada produk padanan di semua penyedia cloud publik, S2 menilai ini dapat tersedia di semua region cloud seiring pertumbuhanExpress: berbasis quorum 3 bucket AWS S3 Express One Zone, dengan padanan regional di Azure dan kemungkinan juga di GCP
- Target performa dan batas awalnya adalah sebagai berikut
Standardmenyediakan latensi p99 end-to-end di bawah 500msExpressdiharapkan dapat memberikan latensi di bawah 50ms- semua write disimpan dengan aman ke S3 dengan durabilitas regional sebelum acknowledgement
- throughput mendukung ratusan MB per detik per stream
- pembacaan data yang baru ditulis memiliki overhead kecil berkat caching in-memory
- reader yang tertinggal dilayani langsung dari object storage tanpa batas atas
- pada tahap awal, write dibatasi hingga 125 MiBps per stream, dan read untuk write terbaru hingga 500 MiBps per stream
- Selama masa pratinjau, layanan ini tersedia gratis, dan intended pricing telah dipublikasikan dengan target harga yang secara berarti lebih murah daripada tingkat umum sistem streaming cloud
- Tidak ada biaya tetap seperti instance atau unit cluster
- Antarmuka pengembang yang saat ini tersedia adalah sebagai berikut
- Sistem ini dibangun di atas infrastruktur cloud yang telah teruji, dan codebase Rust-nya menjalani deterministic simulation testing
- karena sistem ini masih muda, masalah masih mungkin ada
- sistem ini sedang dimatangkan menuju general availability dan SLA yang dapat diandalkan di produksi
- Roadmap berikutnya diringkas dalam tiga sumbu
- Kafka protocol compatibility: akan disediakan sebagai lapisan open source, dan beberapa fitur seperti key-based compaction direncanakan untuk diintegrasikan langsung ke S2
- Multi-region basins: setelah diperluas ke lebih banyak region cloud, ada kemungkinan basin yang melintasi region dan cloud
- Under 5 millisecond latencies: dengan fleksibilitas struktural storage class, S2 menilai peningkatan tambahan 10x dibanding
Expressdimungkinkan
- Jika Anda terutama menggunakan API “low-level” dari Kafka atau Kinesis, S2 secara langsung menargetkan kebutuhan seperti tanpa batas jumlah stream, ordered throughput 10–100x lebih tinggi, dan kontrol konkurensi
1 komentar
Opini di Hacker News
Saya bukan ahli hukum, tetapi memberi nama produk S2 dan dalam perkenalannya mengatakan bahwa ini teknologi untuk memperbaiki AWS S3 tampaknya sangat berpotensi memicu klaim merek dagang/hak cipta dari Amazon
Karena berada di bidang yang sama, kebingungan konsumen juga jelas bisa terjadi. Tentu mereka pasti sudah meneliti apakah merek dagangnya terdaftar, tetapi: https://tsdr.uspto.gov/#caseNumber=98324800&caseSearchType=U...
EC2 dan S3 saja sudah membingungkan untuk dibedakan dengan telinga, dan sekarang ditambah satu lagi
Penamaannya ala IBM vs HAL, yaitu gaya 『2001: A Space Odyssey』
Saya baru-baru ini mulai proses pengajuan merek dagang, dan berdasarkan situs registrar domain, biayanya kurang lebih mirip dengan membeli domain seperti
s4.dev. Rebranding setelah peluncuran jauh lebih menyakitkan daripada menggantinya sebelum peluncuranMungkin juga mereka mengajukan penawaran akuisisi, dan kemungkinan sampai gugatan tampaknya sangat kecil
Idenya benar-benar bagus dan API-nya juga indah, dan saya ingin memakainya di proyek saya, tetapi saya sama sekali tidak yakin startup ini akan bertahan lama dalam bentuknya sekarang
Jika berhasil, AWS akan membuat versi internal yang lebih baik dan lebih murah; sebaliknya, kemungkinan besar juga bisa gagal mendapatkan traction di pasar. Akan jauh lebih masuk akal jika ini hadir sebagai produk pengguna akhir yang menyertakan dashboard seperti Papertrail, bukan API “komponen dasar cloud” yang sangat erat terikat dengan AWS. Jika memungkinkan pengguna membawa langsung backend kompatibel S3 seperti Digital Ocean Spaces, ini akan menjadi produk cloud-netral yang bagus dan tahan lama
Arsitektur internalnya tidak terikat pada AWS, melainkan struktur antarmuka yang bisa diimplementasikan untuk sistem cloud lain
Tidak ada habisnya startup yang mengemas perangkat lunak open source yang sudah ada sebagai layanan dan memasarkannya lebih murah daripada produk AWS, tetapi ternyata berjalan di AWS
Jadi menurut saya tidak perlu berhenti hanya karena Beezus
“Amazon S3 now supports the ability to append data to an object” diumumkan 30 hari lalu, dan Azure juga sudah lama memiliki fitur yang sama dengan append blob. Ini masih lebih mentah daripada S2 dan belum punya konsep record, tetapi langkah bagi penyedia cloud untuk menyediakannya secara native sangat kecil. Jika sampai memasukkan konsep record, pada dasarnya ini lebih dekat ke message queue, dan ruang persaingan itu juga sama besarnya, begitu pula area solusi penyimpanan log
Saya ingin memahami. Jika dibangun di atas AWS, AWS mengenakan biaya $0,09 per GB untuk egress internet, lalu di sini mereka menagih egress internet $0,05 per GB?
Kedengarannya seperti mensubsidi biaya egress AWS. Atau mereka bisa memakai tarif egress yang tidak dipublikasikan?
Mereka akan menyelesaikannya ketika mencapai skala yang berarti, dan jelas ada beberapa asumsi di sini
Dengan begitu, pada 50TB kerugiannya maksimal $300 per bulan, dan setelah itu mulai menghasilkan uang
Ini pada dasarnya WarpStream, tetapi bukannya langsung menuju kompatibilitas Kafka, mereka menyediakan API pada level yang lebih rendah?
Jika diadopsi dalam jangka panjang, API dasar setingkat S3 untuk streaming tampaknya benar-benar bernilai
Namun pendekatan arsitekturnya berbeda dari WarpStream, sehingga bisa memberikan latensi yang jauh lebih rendah. Sistemnya juga tidak punya disk
Orang-orang ini pada dasarnya secara sadar memilih untuk sepanjang karier mereka menjelaskan “sebenarnya kami bukan S3”
Itu bukan bahan lelucon
Secara pribadi menurut saya argumen itu benar, dan di teks utamanya pun terlihat cukup transparan
Kelihatannya bagus, tapi apakah tidak ada Java SDK?
Secara pribadi, di perusahaan-perusahaan tempat saya bekerja, dalam 90% kasus produksi/konsumsi Kafka sangat bergantung pada Spring atau klien bawaan. Ini praktis menghalangi bahkan proof of concept yang ringan sekalipun.
Saat ini ada Rust SDK dan CLI (https://s2.dev/docs/quickstart). Layanan intinya juga ditulis dengan Rust, jadi Rust terasa seperti titik awal yang baik.
Saya suka ini. Hal berikutnya yang saya harap seseorang bangun di atasnya adalah bagian yang menerapkan “event” stream menjadi representasi yang bisa di-query pada titik waktu tertentu.
Pada dasarnya ini adalah separuh lain untuk membuat sesuatu yang mirip Datomic. Daripada database tertentu, sepertinya akan lebih baik berupa pola atau framework untuk membuat data in-memory yang konkret dan bisa di-query. Ada berbagai cara yang mungkin: menerapkannya ke Sqlite lokal, atau berdasarkan MySQL binlog menerapkannya ke instance query lokal lalu memutarnya kembali ke titik waktu tertentu, atau menerapkan event apply/undo per aplikasi ke state lokal.
Sekitar 10 tahun lalu saya memulai Gazette [0].
Gazette berada di titik tengah arsitektur antara Kafka dan WarpStream/S2. Ia menyediakan stream log tak terbatas berorientasi byte dengan S3 sebagai backend, tetapi broker menggunakan scratch disk lokal untuk replikasi awal/jaminan durability dan untuk mengurangi latensi append/read. Jadi p99-nya bukan di atas 500 ms, melainkan di bawah 5 ms, dan ia menjamin semua file sampai ke S3 dengan fitur praktis seperti batas ukuran target/kompresi/latensi yang bisa dikonfigurasi. Klien yang membaca data lama mengambil konten langsung dari S3, lalu setelah itu beralih ke live tailing untuk append yang sangat baru.
Gazette bermula sebagai tool internal di startup sebelumnya, dan ketika membangun perusahaan sekarang, kami sempat sangat singkat mempertimbangkan untuk menawarkannya sebagai raw service [1], lalu mengubah arah menjadi platform perpindahan data menyeluruh [2] yang memakai Gazette sebagai detail implementasi internal. Positioning pasar untuk layanan seperti ini sangat sempit. Anda harus membuatnya kompatibel API dengan apa yang sudah dipakai pelanggan target sehingga biaya mencoba menjadi 0 (WarpStream melakukan ini dengan baik), atau naik lebih tinggi di stack aplikasi dan menyelesaikan masalah yang sebenarnya ingin diselesaikan pelanggan secara lebih langsung.
[0]: https://gazette.readthedocs.io/en/latest/
[1]: https://news.ycombinator.com/item?id=21464300
[2]: https://estuary.dev
Anda bukan orang pertama yang mengatakan pasar ini tidak ada atau sangat kecil. Namun ketika Anda juga mencari validasi di HN, Anda pasti merasa ada sesuatu di sini. Di atas S2 kami bisa menyediakan jauh lebih banyak hal seperti kompatibilitas Kafka, tetapi komponen dasar inti itu penting. Secara pribadi saya juga menginginkannya, dan karena saya melihatnya dibuat ulang di berbagai konteks lalu digunakan kembali secara tidak efisien dalam bentuk sistem yang kehilangan sifat aslinya, keyakinan itu saja sudah cukup untuk menjadi founder. Saya memahami latar belakang saran Anda, tahu kesulitan yang akan datang, dan berterima kasih atas sarannya.
Ini model layanan yang sangat berguna, tetapi jika semua write dipersistenkan ke S3 sebelum acknowledgment, proposisi nilainya terasa membingungkan.
Penulis mungkin bisa melakukan batching kumpulan record sebelum menuliskannya sebagai blob yang lebih besar, dan proses background bisa melakukan compaction, tetapi bukankah ini tetap layanan streaming berbasis object storage? AWS sudah menunjukkan bahwa mereka umumnya bersedia mengimplementasikan layanan yang kompatibel protokol, seperti saat beralih dari RDS ke Aurora, dan tampaknya mereka bisa melakukan hal yang sama untuk reimplementasi Kafka.
Jika chunk yang ditulis ke object storage sebelum mengonfirmasi write dirancang multi-tenant dan memuat record dari stream yang berbeda bersama-sama, Anda bisa sering melakukan write sambil tetap menargetkan ukuran blob yang ideal dari sisi harga/performa untuk masing-masing PUT S3 Standard dan Express.
Teknologinya terlihat sangat keren. Hanya saja sayang ini bukan source-available.
Mungkin ini pendapat minoritas, tetapi jika teknologi intinya dibuka dengan lisensi seperti FSL dan self-hosting yang didukung penuh dimungkinkan, saya akan sangat mempertimbangkan layanan komersialnya. Kalau tidak, sulit membenarkan ketergantungan dibandingkan sesuatu seperti Kafka.
Kami juga sedang mempertimbangkan emulator in-memory yang akan kami rilis sebagai open source. API-nya sendiri tidak terlalu rumit. Jika Anda ingin mempertahankan Kafka API sambil mendapatkan fitur seperti kelas penyimpanan S2, jumlah topic/partition yang sangat banyak, dan throughput tinggi per partition, kami sedang merencanakan lapisan kompatibel Kafka open source yang bisa di-self-host. Kami juga akan memasukkan fitur seperti enkripsi sisi klien agar bisa lebih meyakinkan.