Tự động hoá một số tác vụ nhàm chán trong công việc với Chatwork Forwarder từ R&D Unit
Khi tạo xong một Pull Request trên Github thì bước tiếp theo có thể là một trong những công việc nhàm chán nhất với mọi developer ở Sun*: vào Chatwork mention từng người, từng người một, paste link Github rồi viết message nhờ mọi người review. Và Chatwork Forwarder sinh ra để giúp bạn giải quyết những công việc 'chán đến đỉnh đầu' như thế.
Chatwork Forwarder là service public mới nhất của R&D Unit, được phát triển với sự hỗ trợ của một số thành viên thuộc Unit 4 tại văn phòng Đà Nẵng. Sản phẩm được phát triển vào cuối năm 2019 vừa qua, và đã chính thức hoàn thành để đưa vào sử dụng rộng rãi trong tháng 2 này, tại địa chỉ https://cw-forwarder.sun-asterisk.vn/. Ít nhất, nó đã được áp dụng ở khắp các dự án đang vận hành của tất cả các Team thuộc R&D Unit, từ Products Development cho đến AI Research, Blockchain Research hay Cyber Security Research.
Trong bài viết này, chúng ta hãy cùng tìm hiểu xem Chatwork Forwarder có những chức năng gì, và đang được sử dụng để giải quyết những vấn đề gì trong R&D Unit nhé.
Giới thiệu về Chatwork Forwarder
Như tên gọi của nó, Chatwork Forwarder là một dịch vụ để forwarder các payloads từ các dịch vụ khác lên Chatwork, đơn giản chỉ có vậy. Service này ra đời xuất phát từ thực tế, Chatwork là dịch vụ khá kém về khả năng tích hợp với các service bên thứ 3. Hiện tại, rất nhiều dịch vụ hỗ trợ Slack như là một kênh để gửi thông báo khi có notification, bên cạnh các kênh truyền thống như gửi Email, hay Webhook. Tuy nhiên, hầu như chả có mấy dịch vụ hỗ trợ gửi notification về … Chatwork cả (lỗi ở đây thì phần nhiều là ở Chatwork). Cũng vì vấn đề này mà rất nhiều lập trình viên yêu thích Slack hơn là dùng Chatwork.
Tuy nhiên, ở Sun*, Chatwork từ trước đến giờ được sử dụng là kênh giao tiếp chính. Ngoại trừ vấn đề tích hợp service từ bên thứ 3 kém ra, hay các vấn đề khác như thỉnh thoảng có hay down service, giật lag, update code frontend bất thình lình dẫn đến extension Chat++ lăn ra chết … thì công bằng mà nói, những tính năng còn lại của Chatwork khá tốt.
Chatwork Forwarder ra đời như là mảnh ghép đứng giữa kết nối dịch vụ của bên thứ 3, với Chatwork.
Về hướng dẫn sử dụng dịch vụ, các bạn có thể tham khảo chi tiết ở bài viết đi sâu hơn về kỹ thuật sau trên Viblo.
Còn trong khuôn khổ bài viết này, chúng ta sẽ tiếp tục đi tìm hiểu về một vài use cases thú vị của Chatwork Forwarder.
Tự động thông báo khi có Pull Request trên Github
Như đã đề cập ở phần đầu bài viết, đây có lẽ là công việc mà nhiều lập trình viên đang cảm thấy nhàm chán nhất trong một ngày làm việc.
Không chỉ có sự kiện Pull Request, bạn còn có thể bắt các thông báo khác như có comment, Pull Request được approve, Pull Request được merge… Chỉ cần vài bước setting đơn giản ban đầu là quá trình phát triển dự án, công việc của cả member, lẫn team leader, technical leader đều sẽ được giảm tải đi rất nhiều.
Việc tự động hóa hầu hết quá trình thông báo này giúp tránh được những tình trạng “quên” không nhờ team review, mention thiếu người khi nhờ review, mất thời gian để “nghĩ” xem hôm nay nên viết message với nội dung như thế nào...
Tự động thông báo khi có bài viết mới của member trên Viblo
Do Viblo là dịch vụ được phát triển và vận hành bởi chính R&D Unit, nên cũng dễ hiểu khi các thành viên của R&D Unit luôn tích cực sử dụng, và có những bài viết nổi bật trên đó. Để thúc đẩy hơn nữa việc chia sẻ kiến thức giữa các thành viên trong Unit, cũng như bài viết của mỗi cá nhân được tiếp cận với nhiều người hơn, phía R&D đã có nhiều hoạt động, chính sách khác nhau. Một trong những điều có thể là nhỏ nhặt thôi nhưng mà rất hiệu quả, đang được triển khai ở R&D đó là: gửi thông báo về bài viết mới của member R&D lên box chung của cả Unit. Thông qua đó mọi người đều dễ dàng tiếp cận bài viết mới, và cùng vào comment, feedback, hay vote up…
Việc này có thể thực hiện được là nhờ vào sự kiết hợp giữa Chatwork Forwarder và một chức năng mới, cũng vừa được Viblo release thời gian gần đây là gửi webhook (config tại trang này). Chức năng cho phép gửi thông báo về một địa chỉ nào đó, khi users mà bạn đang follow publish một bài viết mới. Để sử dụng hiệu quả, chúng ta cần tạo một tài khoản mới trên Viblo, rồi dùng tài khoản đó follow hết tất cả các users là members thuộc Unit. Sau đó, ta sẽ config trong setting của tài khoản này để thông báo sẽ được gửi về một địa chỉ của Chatwork Forwarder. Thế là mỗi khi có member của R&D post bài mới, Viblo sẽ gửi thông báo sang Chatwork Forwarder, và Chatwork Forwarder sẽ thực hiện nốt công việc còn lại là gửi message lên box chung của R&D trên Chatwork.
Thông báo về trạng thái uptime/downtime của dịch vụ
R&D Unit đang vận hành khá nhiều service khác nhau, trong đó có những service quan trọng đang public đến người dùng cuối (ví dụ như các dịch vụ của Viblo). Một vấn đề cần phải giải quyết là hệ thống monitor trạng thái của dịch vụ, cũng như cần có cảnh báo kịp thời khi dịch vụ gặp vấn đề, không thể truy cập được.
Nếu service monitoring đó mọi người có thể tự phát triển được thì không sao, nhưng nếu là thuộc dạng đi dùng sản phẩm open source, hay service của bên khác cung cấp, thì chúng ta lại quay về vấn đề ban đầu, bị giới hạn bởi các kênh nhận notification. Có thể dùng Slack, Email, nhưng không có Chatwork. Với việc sử dụng chức năng gửi Webhook của open source/service này, kết hợp với Chatwork Forwarder, bạn sẽ có thể tạo thêm một kênh để nhận thông báo, là Chatwork. Dẫu sao, Chatwork vẫn là kênh dễ tiếp cận nhất.
Trên đây là một số use cases rất cơ bản của Chatwork Forwarder đang được sử dụng ở R&D Unit. Ngoài ra, tuỳ thuộc vào các services bên thứ 3 bạn đang dùng là gì, chúng ta có thể thực hiện được thêm nhiều ý tưởng thú vị khác nữa. Hãy tận dụng nó để làm cho công việc của bạn được trở nên dễ dàng, và hiệu quả hơn nhé.