ศึกชิงตำแหน่งตัวแทน Redis
(lwn.net)- เมื่อวันที่ 21 มีนาคม 2024 Redis Ltd. ประกาศว่าโครงการ "in-memory data store" ของ Redis จะออกภายใต้ไลเซนส์แบบไม่เสรีที่เปิดให้ใช้ซอร์สได้ตั้งแต่ Redis 7.4 เป็นต้นไป
- ข่าวนี้แม้จะชวนไม่พอใจ แต่ก็ไม่ได้เหนือความคาดหมายแต่อย่างใด และจุดที่น่าสนใจคือมีตัวเลือกหลายตัวที่สามารถเลือกใช้แทน Redis ได้
- ผู้ใช้ที่ต้องการใช้ซอฟต์แวร์เสรีต่อไป สามารถเลือกได้อย่างน้อย 4 ทางเลือก รวมถึง KeyDB ซึ่งเป็นฟอร์กเดิม และโครงการ Valkey ที่ Linux Foundation เพิ่งประกาศใหม่
ประวัติย่อของ Redis
- Redis เป็นโครงการที่ Salvatore Sanfilippo (ชื่อเล่น "antirez") เริ่มขึ้นเพื่อใช้กับแอปพลิเคชันวิเคราะห์ล็อกแบบเรียลไทม์ชื่อ LLOOGG ซึ่งมีความต้องการที่ MySQL ตอบโจทย์ไม่ได้
- มันถูกออกแบบให้เป็นฐานข้อมูลแบบพจนานุกรมอย่างง่ายแทนฐานข้อมูลเชิงสัมพันธ์ และชื่อของมันย่อมาจาก "remote dictionary server"
- Redis ได้รับความนิยมอย่างรวดเร็วในฐานะส่วนหนึ่งของกระแส NoSQL และในปี 2010 ก็ได้รับการว่าจ้างจาก VMware ให้พัฒนาต่อ
- Redis ได้รับความนิยมผ่านลูกค้าอย่าง Twitter และ Pinterest เริ่มถูกรวมในลินุกซ์ดิสทริบิวชัน และในปี 2013 ก็ถูกเพิ่มเข้าไปในบริการ ElastiCache ของ AWS
คลาวด์กับโอเพนซอร์ส
- ผู้ที่สนับสนุนไลเซนส์ที่มีข้อจำกัดการใช้งานอย่าง SSPL และ RSAL ของ Redis พยายามนำเสนอเรื่องนี้ว่าเป็นเพียงการต่อสู้ระหว่างผู้ให้บริการคลาวด์รายใหญ่เช่น AWS กับโอเพนซอร์ส
- แต่เมื่อดูรายชื่อผู้มีส่วนร่วมของ Redis จะเห็นได้ว่ามีนอกจากบริษัท Redis แล้ว ยังมีบริษัทอีกหลากหลายแห่งที่มีส่วนร่วมด้วย
การเปลี่ยนโมเดลการแจกจ่าย
- Redis เป็นบริษัทที่ได้รับเงินลงทุนจากเวนเจอร์ และดูเหมือนจะคำนวณแล้วว่าการถอยห่างจากโอเพนซอร์สจะสร้างรายได้เพิ่มได้มากกว่า
- หากดูกรณีของ MongoDB ก็จะเห็นว่าหลังย้ายไปใช้ SSPL ก็ยังเติบโตต่อเนื่อง และหลายบริษัทก็เลือกจ่ายเพื่อใช้งานมากกว่าจะโฮสต์บริการเอง
ฟอร์กและทางเลือกต่างๆ
- เพียงไม่กี่วันหลังจาก Redis เปลี่ยนไลเซนส์ ก็มีฟอร์กโดยตรงชื่อ Valkey เกิดขึ้น โดยมี AWS, Google Cloud, Oracle, Ericsson และ Snap สนับสนุนความพยายามนี้
- KeyDB เป็นฟอร์กที่สร้างขึ้นในปี 2019 ด้วยเหตุผลทางเทคนิค และหลังจากถูก Snap เข้าซื้อ โค้ดเบสทั้งหมดก็ถูกทำให้เป็นโอเพนซอร์สเต็มรูปแบบภายใต้ไลเซนส์ BSD 3-clause
- Drew DeVault ผู้ก่อตั้ง SourceHut ได้สร้างฟอร์กชื่อ Redict โดยใช้ LGPLv3
- Garnet ของ Microsoft เป็นรีโมตแคชสโตร์ที่เข้ากันได้กับ Redis และออกภายใต้ไลเซนส์ MIT
การแข่งขันของตัวแทนทางเลือก
- ลินุกซ์ดิสทริบิวชันกำลังเผชิญกับโจทย์ว่าต้องหาซอฟต์แวร์มาแทน Redis
- ชุมชนของ Fedora, openSUSE, Debian และอื่นๆ กำลังพิจารณา KeyDB, Redict, Valkey และตัวเลือกอื่นๆ เพื่อใช้แทน Redis
เส้นทางต่อจากนี้
- ยังเร็วเกินไปที่จะคาดการณ์ว่าฟอร์กใดฟอร์กหนึ่งหรือหลายฟอร์กจะได้แรงส่งมากพอหรือไม่ แต่ Valkey มีแนวโน้มสูงที่จะกลายเป็นทางเลือกที่เชื่อถือได้
3 ความคิดเห็น
เดิมที Redis เองก็เป็นตัวเลือกทดแทนของ memcached อยู่แล้ว
แต่ก็ยังไม่เคยเห็นว่าการตัดสินว่าอะไรจะมาแทนเทคโนโลยีสักอย่างถูกขับเคลื่อนด้วยแคมเปญแบบนี้(?)
Only time will tell.
Valkey - โอเพนซอร์สทางเลือกแทน Redis ที่ Linux Foundation เปิดตัว
Redis เปลี่ยนไลเซนส์จาก BSD เป็นไลเซนส์แบบคู่
GN⁺: Redis นำไลเซนส์ source-available แบบคู่มาใช้
Redict คือฟอร์กอิสระแบบ copyleft ของ redis
ความคิดเห็นจาก Hacker News
Redis Community Edition ยังคงใช้งานได้ฟรีต่อไป จะมีการซัพพอร์ต บำรุงรักษา และปรับปรุงต่อเนื่อง
Neal Gompa เริ่มการถกเถียงเรื่องการเปลี่ยนไลเซนส์ในรายชื่ออีเมลนักพัฒนา Fedora และชี้ว่าจำเป็นต้องถอด Redis ออกจาก Fedora
เพิ่งทราบเป็นครั้งแรกว่า Binbin Wang ซึ่งเป็น committer ของ Apache Kvrocks (ทางเลือกแทน Redis ที่ใช้ Flash) มีส่วนร่วมเกือบ 25% ของ commit ใน Redis เวอร์ชันใหม่
เหตุผลที่ไลเซนส์ AGPL ได้รับความนิยมมากขึ้นเรื่อย ๆ คือทุกคนยกเว้นเจ้าของลิขสิทธิ์ต้องปฏิบัติตามกฎที่เข้มงวดมาก แต่ซอฟต์แวร์แกนหลักยังคงเป็นโอเพนซอร์ส ทำให้ชุมชนยังได้รับประโยชน์อยู่
AWS ฟอร์ก ElasticSearch ไปเป็น DBaaS ชื่อ "OpenSearch" เรื่องนี้เคยทำให้ที่ทำงานเก่าต้องติดอยู่กับ NEST .NET library เวอร์ชันหนึ่งจนใช้ฟีเจอร์ใหม่ไม่ได้ ซึ่งเมื่อมองจากพัฒนาการทางเทคโนโลยีแล้ว ดูเหมือนเป็นการเดินไปผิดทาง
การใช้ไลเซนส์ MIT และหารายได้จากการซัพพอร์ตเป็นวิธีแก้ที่ง่ายสำหรับปัญหานี้รวมถึงปัญหาอื่นที่อาจเกิดขึ้น
น่าสนใจที่ประมาณ 40% ของ commit ไปยัง Reddit มาจากบริษัทจีน (Tencent 24.8%, Alibaba 6.8%, Huawei 5.2%, Bytedance 2%)
ณ ตอนนี้ ไลเซนส์แบบผูกกับลิขสิทธิ์ดูจะได้เปรียบกว่า หากไม่มีหลักประกันว่ารีลีสทั้งหมดในอนาคตจะใช้ไลเซนส์เดิม แล้วไลเซนส์ที่เสรีกว่าและเป็นมิตรกับธุรกิจมากกว่าจะมีคุณค่าอะไร? มันดูเหมือนนโยบายหลอกล่อแล้วสลับเงื่อนไขมากกว่า
Redis ดูเหมือนม้าโทรจันสำหรับนักพัฒนา ตอนแรกมันดูเป็นฐานข้อมูลคีย์-แวลง่าย ๆ แต่ก็เอาไปใช้เป็นแคชได้ และการแคชทุกอย่างก็ดูเท่ดี ทว่ามันขัดกับหลักการ Unix แบบดั้งเดิมที่ว่าแต่ละโปรแกรมควรโฟกัสกับสิ่งเดียวที่ตัวเองทำได้ดี ผ่านไป 10 ปี คุณกลับต้องดาวน์โหลดเอกสารไวท์เปเปอร์ระดับองค์กรของ Redis เพื่อจะตัดสินใจเรื่องแคชให้ถูกต้อง
เห็นด้วยกับมุมมองของ Andrew Kelley: ควรเปลี่ยนชื่อโปรเจ็กต์ Redis เป็น Redict และมองโปรเจ็กต์ที่ตอนนี้เรียกว่า "Redis" ว่าเป็น commercial fork แปลก ๆ ของ Redict