"Oxy hóa" nền tảng IoT nông nghiệp bằng Rust

Trong giới lập trình, "oxy hóa" là một cách nói vui ám chỉ việc viết lại (một phần hoặc toàn bộ) một phần mềm bằng ngôn ngữ Rust, đây là một lối chơi chữ, vì "Rust" còn có nghĩa là "rỉ sét", một hiện tượng do sự oxy hóa gây nên. Gần đây mình cũng mạnh dạn oxy hóa một phần nền tảng IoT nông nghiệp của AgriConnect.

Động lực khiến mình viết lại nền tảng IoT của AgriConnect bằng Rust là để giảm tải hệ thống, tăng cường khả năng chịu áp lực trong tương lai. Phần mềm mình đang nói đến ở đây có tên mã là "Hạt Thóc". Nghe tên khiêm tốn, nhỏ bé thôi nhưng nó vận hành theo kiểu SaaS (Software as a Service), tức một phần mềm sẽ vận hành cùng lúc nhiều trang trại khách hàng. Mỗi khách hàng sẽ có một không gian riêng khi thao tác, quản lý trang trại của mình, thậm chí có tên miền riêng, nhưng thực ra tất cả đều đang được phục vụ bởi một chương trình trên server. Phần mềm này vốn được viết bằng ngôn ngữ Python, framework Django, được chia ra nhiều thành phần, mỗi thành phần chạy dưới dạng một process, một service riêng. Trong hoàn cảnh đặc thù của "Hạt Thóc" thì thì mình không "oxy hoá" theo kiểu, viết lại một vài hàm nào đó bằng Rust, biên dịch dưới dạng thư viện, rồi dùng Python import thư viện đó, mà viết lại toàn bộ thành phần con luôn. "Hạt Thóc" có ba thành phần chính:

  • Collector: Giao tiếp để thu thập dữ liệu cảm biến, trạng thái bật tắt của các tải, và lưu vào database.
  • ControlView: Cung cấp giao diện web để người dùng vào xem dữ liệu, cấu hình trang trại, đặt lịch, hay bật tắt tải bằng tay.
  • ControlCenter: Chạy ngầm để phân tích lịch, dữ liệu cảm biến để ra lệnh bật, tắt tải, kiểm tra tình trạng bất thường và phát đi cảnh báo.
...

Cơn bệnh tưởng blockchain trong nền nông nghiệp mới

Sự tăng giá của BitCoin khiến mọi người bắt đầu để ý tới công nghệ blockchain. Trong cơn say tiền điện tử, nhiều người bắt đầu hoang tưởng về quyền năng của blockchain. Một số kẻ cơ hội bắt đầu vơ lấy blockchain, gắn vào mọi thứ để lòe bịp thiên hạ.

Một trong những ứng dụng bị gắn mác blockchain vô tội vạ là chuỗi truy xuất nguồn gốc nông sản.

Dưới đây là đoạn trích tranh luận của mình về tính thiết thực của việc ứng dụng blockchain trong truy xuất nguồn gốc nông sản.

Hội thoại 1:


Thức ăn thu hút yến

Gần đây mình phát hiện có một loại phế phẩm từ côn trùng có khả năng thu hút chim yến rất tốt.

Đây là hình ảnh của phế phẩm đấy.

Phân

Phân