1. Giới thiệu về Swiggy:
Swiggy là một trong những nền tảng giao hàng thực phẩm hàng đầu tại Ấn Độ. Công ty được thành lập vào năm 2014 bởi Sriharsha Majety, Nandan Reddy và Rahul Jaimini. Trụ sở của Swiggy đặt tại Bangalore, Karnataka.
2. Các tính năng độc đáo:
Không chỉ nổi tiếng về dịch vụ mà còn về việc ứng dụng công nghệ. Đằng sau sự thuận tiện mà khách hàng trải nghiệm hàng ngày là hai công nghệ chủ chốt: Data Science Platform (DSP) và Redis.
2.1 Data Science Platform (DSP) – Nền tảng triển khai học máy tại Swiggy
DSP không chỉ là một nền tảng; đó là trái tim của khả năng học máy tại Swiggy. Nó giúp tổ chức mở rộng và tối ưu hóa việc triển khai các mô hình học máy
- Xây dựng Mô Hình: Trước hết, các nhà khoa học dữ liệu tại Swiggy sẽ xây dựng và huấn luyện mô hình của mình trên DSP. Điều này cho phép họ nhanh chóng truy cập vào dữ liệu, tiến hành thử nghiệm và tối ưu mô hình.
- Feature Store: Một trong những thành phần quan trọng nhất của DSP chính là “feature store” – nơi lưu trữ và quản lý tất cả các đặc trưng cần thiết cho việc dự đoán mô hình.
Ví dụ: Khi cần dự đoán xem một khách hàng có khả năng đặt một món ăn mới không. Mô hình có thể truy cập feature store để biết lịch sử đặt hàng trước đó của khách hàng như “số lần khách hàng đó đã đặt món ăn trước đây”, “đánh giá trung bình của khách hàng đối với món ăn đó” hoặc “thời gian trung bình giữa các lần đặt hàng” và sử dụng các thông tin này để làm ra dự đoán.
- ETL và Databricks: DSP cung cấp một giao diện đơn giản giúp người dùng lên lịch cho các công việc ETL (Extract, Transform, Load) để tạo ra dữ liệu đặc trưng. Những công việc này được thực hiện trên Databricks (một nền tảng dựa trên Apache Spark, hỗ trợ việc xử lý dữ liệu lớn và phức tạp) và cập nhật định kỳ vào feature store.
2.2 AWS ElastiCache và Redis – Giải pháp cho yêu cầu độ trễ thấp
Đối với mọi yêu cầu cần phản hồi nhanh chóng (độ trễ thấp), Swiggy sử dụng AWS ElastiCache hỗ trợ bởi Redis làm kho dữ liệu đặc trưng của mình. Tức là thay vì truy vấn vào cơ sở dữ liệu chính (có thể mất nhiều thời gian), Swiggy có thể truy vấn vào Redis để nhận dữ liệu một cách tức thì, giảm độ trễ và cung cấp trải nghiệm mượt mà cho người dùng.
Ví dụ: Khi bạn muốn biết món ăn nào đang được giảm giá, thay vì tìm kiếm trong cơ sở dữ liệu chính (có thể mất thời gian), ứng dụng Swiggy có thể truy vấn nhanh chóng vào Redis và trả lời yêu cầu của bạn trong tích tắc, giúp bạn nhanh chóng quyết định và đặt hàng.
Redis là một hệ thống lưu trữ dữ liệu in-memory, hoạt động theo mô hình client-server. Khi client gửi yêu cầu, server sẽ xử lý và trả lời. Hiệu suất của Redis phụ thuộc vào thời gian xử lý (thường là trong khoảng μs) và thời gian phản hồi tròn (RTT), thường nằm trong khoảng ms. Vì vậy, yếu tố quyết định cho hiệu suất của Redis chính là RTT.
- Mô hình Client-Server: Redis hoạt động dựa trên mô hình client-server. Khi ứng dụng Swiggy (client) cần thông tin nào đó, nó sẽ gửi yêu cầu đến Redis (server). Redis sau đó trả lời yêu cầu này bằng cách truy xuất dữ liệu từ bộ nhớ.
- AWS ElastiCache: Để tăng hiệu suất và độ tin cậy của Redis, Swiggy sử dụng dịch vụ AWS ElastiCache. Điều này giúp quản lý, cấu hình và mở rộng cụ thể cho việc sử dụng Redis trong môi trường đám mây của AWS, đảm bảo rằng hệ thống luôn hoạt động ổn định và có hiệu suất tối ưu.
Tóm lại, sự kết hợp giữa DSP và Redis tại Swiggy không chỉ giúp nâng cao hiệu suất và tốc độ phản hồi của ứng dụng mà còn cung cấp một trải nghiệm người dùng ấn tượng. Đằng sau mỗi đơn đặt hàng là một hệ thống công nghệ phức tạp, đảm bảo rằng bạn, khách hàng, luôn nhận được dịch vụ tốt nhất.