一直以來多謝您使用Nuita

這次,Nuita對內部系統進行了大規模革新。由於這次改動主要是「幕後」的改善,外觀上的變化較少,但這是為今後穩定營運與功能新增打下的重要基礎。

框架與程式庫的更新

我們將驅動Nuita運作的Web框架「Ruby on Rails」更新到了最新版本8.0.4。如此一來,便能套用安全性修補程式,並可期待更穩定的運作表現。

此外,我們亦將前端構建系統從Webpacker遷移到新的機制,令JavaScript與CSS的處理速度更快。Bootstrap等npm套件亦已更新至最新版本。

擺脫AWS服務,簡化系統

在此之前,Nuita一直是透過組合使用Amazon Web Services(AWS)的各種代管服務來運作。但為了降低營運成本、提升可維護性,我們遷移到了更簡潔的架構。

  • 廢除Elasticsearch:我們廢除了原本用作全文檢索引擎的Elasticsearch,改用MariaDB的全文檢索功能。搜尋體驗沒有太大變化,但基礎設施的複雜度大幅降低。

  • 變更工作隊列:我們將背景工作處理基礎設施從AWS SQS + Shoryuken遷移到了delayed_job。傳送通知等非同步處理現在以更簡單的機制運作。

  • 廢除DynamoDB:我們廢除了之前部分數據儲存所使用的NoSQL數據庫(DynamoDB),並將其整合入RDBMS。數據一致性因此提升,查詢優化亦變得更容易。

  • 廢除Docker/Capistrano/Selenium:開發、部署、測試環境亦一併簡化,減輕了維護負擔。

路由與控制器的整理

我們清晰區分了未登入狀態(公開)與登入後狀態(member/以下)的URL命名空間。統一採用RESTful的資源設計,令今後的功能新增與API建置更加容易。

新增公告功能

我們新增了用於顯示營運方公告的Announce模型。今後若有重要公告,將可以在網站內直接傳達給大家。

擼帖的日期變成了永久連結

擼帖(帖文)上顯示的日期現在變成了連結,點擊後即可前往該擼帖的個別頁面(永久連結)。當您想分享特定帖文的時候會很方便。

結語

這次的改動表面上並不十分顯眼,但這是為了償還技術債、令Nuita今後能夠更穩定地營運下去所進行的重要重構。

若您發現任何問題,請透過聯絡表格與我們聯繫。往後亦請繼續支持Nuita。