Đơn xin nghỉ phép chờ sếp duyệt, hàng trăm file cần sao lưu cùng lúc, cả nghìn cảm biến gửi nhiệt độ về mỗi phút. Những quy trình nhiều bước như vậy được lập trình viên xử lý gọn gàng nhờ Azure Durable Functions.
Một bạn trong lớp nộp đơn xin nghỉ học. Đơn chuyển đến giáo viên chủ nhiệm, chờ duyệt. Nếu đồng ý, văn phòng ghi nhận và báo lại cho bạn. Nếu từ chối, bạn cũng nhận được thông báo. Quy trình nghe đơn giản, nhưng để máy tính tự làm thì phải "nhớ" được đơn đang ở bước nào, ai đang chờ ai. Đây chính là bài toán mà Durable Functions giải quyết.
Nhắc lại một chút về serverless
Cuốn Azure Durable Functions Succinctly, do một chuyên gia đào tạo Azure của Microsoft viết, mở đầu bằng lời nhắc: đừng chọn kiến trúc chỉ vì nó đang thịnh hành. Kiến trúc serverless, tức "không máy chủ", dựa trên ba trụ cột. Người lập trình không phải lo hạ tầng máy chủ. Hệ thống tự mở rộng theo số lượng sự kiện đến. Và chỉ trả tiền khi mã thực sự chạy, không có sự kiện thì không tốn đồng nào.
Azure Functions là công nghệ serverless tiêu biểu của Microsoft: mỗi hàm là một đoạn mã nhỏ, chạy khi có sự kiện kích hoạt. Sách đưa ví dụ một hàm cứ 15 phút lại dọn dẹp cơ sở dữ liệu, một hàm khác nhận ảnh từ camera giao thông rồi gọi dịch vụ AI để đọc biển số xe.
Vấn đề: hàm thông thường "không có trí nhớ"
Sách chỉ ra hai giới hạn của Azure Functions thông thường. Thứ nhất, một hàm không gọi trực tiếp được hàm khác. Thứ hai, quan trọng hơn, hàm không lưu được trạng thái: chạy xong là quên. Muốn làm một quy trình nhiều bước, lập trình viên phải tự lưu "đang ở bước mấy" vào kho dữ liệu bên ngoài và tự điều phối các hàm. Công việc trở nên rắc rối.
Durable Functions là phần mở rộng của Azure Functions sinh ra để gánh việc này. Nó tự động lưu và quản lý trạng thái, giúp lập trình viên tạo các quy trình "có trí nhớ". Có thể viết bằng C#, F#, JavaScript, Python hoặc PowerShell.
Một quy trình Durable Functions có ba vai. Hàm khách (client) khởi động quy trình. Hàm điều phối (orchestrator) đóng vai nhạc trưởng, quyết định bước nào chạy trước, bước nào sau. Các hàm hoạt động (activity) là người làm việc cụ thể như gửi email, chép file.
Những "khuôn mẫu" quy trình hay gặp
Sách giới thiệu nhiều mẫu quy trình thường gặp trong thực tế. Mẫu đầu tiên là chạy nối tiếp: bước này xong mới đến bước kia. Mẫu thứ hai là "tỏa ra rồi gom lại" (fan-out/fan-in): chia việc cho nhiều hàm chạy song song, đợi tất cả xong rồi tổng hợp. Ví dụ sao lưu một thư mục: lấy danh sách file, rồi chép từng file lên kho lưu trữ đám mây cùng lúc.
.png)
Hình 1. Mẫu tỏa ra rồi gom lại: một hàm lấy danh sách file, nhiều hàm chép file chạy song song, kết quả được gom về một nơi
Mẫu thứ ba là "có con người tham gia". Sách lấy đúng ví dụ xin nghỉ phép: hệ thống gửi email cho quản lý rồi chờ trong một khoảng thời gian. Quản lý duyệt hay từ chối, quy trình đi theo nhánh tương ứng. Hết thời gian mà quản lý không phản hồi thì đơn được tự động duyệt.
.png)
Hình 2. Quy trình duyệt đơn nghỉ phép: gửi email cho quản lý, chờ phản hồi có giới hạn thời gian, rồi rẽ nhánh duyệt hoặc từ chối
Ngoài ra còn mẫu giám sát định kỳ, ví dụ cứ một khoảng thời gian lại kiểm tra thời tiết và gửi cảnh báo khi cần.
Ứng dụng thật: hệ thống Internet vạn vật
Chương cuối sách xây dựng phần phía sau (backend) cho các thiết bị Internet vạn vật (IoT), những cảm biến nhỏ gửi dữ liệu nhiệt độ lên đám mây. Mỗi thiết bị được quản lý như một "thực thể bền vững" lưu trạng thái riêng. Hệ thống nhận dữ liệu, ghi nhận trạng thái mới nhất, cho phép cấu hình từng thiết bị và tự gửi tin nhắn SMS cảnh báo khi có bất thường. Đây là bài toán gặp nhiều trong nhà máy, kho lạnh, nông nghiệp thông minh.
Nghề nghiệp và kỹ năng
Kiến thức này phục vụ trực tiếp vị trí lập trình viên backend, kỹ sư điện toán đám mây và kỹ sư hệ thống IoT. Doanh nghiệp nào cũng có quy trình nhiều bước cần tự động hóa: duyệt đơn, xử lý đơn hàng, đồng bộ dữ liệu.
Người học rèn được tư duy phân tích quy trình: chia việc lớn thành bước nhỏ, xác định bước nào chạy song song được, bước nào phải chờ con người. Đây là kỹ năng dùng được cả khi phân tích nghiệp vụ, không riêng gì lập trình.
Từ quy trình trên giấy đến quy trình tự chạy
Mỗi tổ chức đều vận hành bằng những quy trình. Biết biến quy trình trên giấy thành phần mềm tự chạy, tự nhớ, tự nhắc việc là năng lực rất được trọng dụng. Durable Functions là một ví dụ sinh động cho thấy người làm công nghệ thông tin giúp công việc của mọi người trôi chảy hơn như thế nào.
Trường Cao đẳng Công nghệ thông tin TP.HCM
- Website: itc.edu.vn - Email tuyển sinh: tuyensinh@itc.edu.vn
- Điện thoại: (028) 386 050 03 - Hotline: 093 886 1080 / 097 500 5356
- Địa chỉ: 12 Trịnh Đình Thảo, P. Tân Phú, TP.HCM
ThS. Trương Châu Long - Trưởng bộ môn CNTT & HTTT