Slack hiện đại hóa nền tảng dữ liệu: Loại bỏ SSH, chuyển 700+ pipeline sang kiến trúc REST
Slack đã hoàn tất việc hiện đại hóa nền tảng dữ liệu bằng cách thay thế việc thực thi công việc dựa trên SSH bằng một lớp điều phối dựa trên REST gọi là Quarry. Quá trình di chuyển này bao gồm hơn 700 Airflow operator, giúp cải thiện đáng kể tính bảo mật, độ tin cậy và khả năng quan sát đồng thời loại bỏ quyền truy cập SSH trực tiếp vào các cụm sản xuất.

Slack đã hoàn thành một dự án hiện đại hóa quy mô lớn đối với nền tảng dữ liệu của mình, thay thế cơ chế thực thi công việc dựa trên SSH bằng một lớp điều phối dựa trên REST trên các pipeline Amazon EMR. Quá trình chuyển đổi này đã loại bỏ quyền truy cập SSH trực tiếp vào các cụm (cluster) sản xuất và chuyển đổi hơn 700 Airflow operator sang hệ thống gửi công việc tập trung, nhằm mục tiêu cải thiện tính bảo mật, độ tin cậy và khả năng quan sát trên 8 khu vực dữ liệu.
Trước đây, nền tảng dữ liệu của Slack phụ thuộc vào các Airflow operator thực thi công việc bằng cách mở kết nối SSH trực tiếp đến các nút chính (master nodes) của Amazon EMR. Mặc dù cách tiếp cận này ban đầu khá đơn giản, nó ngày càng trở nên khó mở rộng khi hàng trăm quy trình làm việc sản xuất, bao gồm cả lập chỉ mục tìm kiếm và pipeline phân tích, bắt đầu phụ thuộc vào nó. Đến năm 2024, việc thực thi dựa trên SSH đã được sử dụng rộng rãi trên các cụm sản xuất, gây ra nhiều lo ngại về vận hành và bảo mật.
So sánh kiến trúc trước và sau khi di chuyển
Thách thức chính nằm ở bề mặt tấn công được mở rộng do quyền truy cập trực tiếp vào môi trường sản xuất. Việc phân phối và xoay vòng khóa SSH làm tăng gánh nặng vận hành, trong khi việc kiểm toán thực thi yêu cầu phải đối chiếu nhật ký trên nhiều hệ thống khác nhau. Độ tin cậy cũng bị ảnh hưởng, khi các công việc đôi khi vẫn tiếp tục chạy sau khi kết nối bị ngắt hoặc thất bại âm thầm dưới sự bất ổn của cơ sở hạ tầng.
Để giải quyết các vấn đề này, Slack đã giới thiệu mô hình gửi công việc dựa trên REST được xây dựng trên một lớp điều phối nội bộ gọi là Quarry. Thay vì sử dụng các phiên SSH duy trì liên tục, Airflow giờ đây gửi công việc thông qua HTTP API. Mỗi công việc tuân theo một vòng đời phía máy chủ với các bước gửi, theo dõi qua ID công việc và hủy bỏ có kiểm soát, giúp tách biệt thực thi khỏi kết nối của máy khách và cải thiện khả năng quan sát cũng như kiểm soát tập trung.
Quá trình di chuyển yêu cầu thêm nhiều công việc kỹ thuật để hỗ trợ các loại khối lượng công việc khác nhau. Trong khi các khối lượng công việc Spark và Hive được chuyển đổi bằng cách sử dụng các giao diện REST hiện có như Livy và HiveServer2, một phần lớn khối lượng công việc bao gồm các lệnh shell tùy ý. Để hỗ trợ các trường hợp này, Slack đã sử dụng khả năng Distributed Shell của Apache Hadoop YARN, cho phép thực thi các lệnh shell bên trong các vùng chứa được quản lý với sự cô lập tài nguyên và khả năng chịu lỗi.
Việc di chuyển được thực hiện từng phần trên các môi trường phát triển, thử nghiệm và sản xuất trải dài trên 8 khu vực dữ liệu. Mỗi khu vực đều giới thiệu thêm sự phức tạp do sự phân đoạn mạng và các ràng buộc về tuân thủ. Trong quá trình chuyển đổi, Slack đã phát hiện ra một số vấn đề, bao gồm hành vi thực thi bộ nhớ ảo trong YARN mà trước đây bị che khuất bởi việc thực thi dựa trên SSH, cũng như các khoảng trống kết nối mạng giữa các tài khoản (cross-account) đã bộc lộ các phụ thuộc ẩn trước đây giữa các dịch vụ.
Sudip Ghosh, Kỹ sư phần mềm cấp cao tại Walmart, nhận định:
Đây không chỉ là một chiến thắng về bảo mật; đó là việc trả nợ khổng lồ về vận hành. SSH rất dễ bắt đầu, nhưng không thể mở rộng an toàn hoặc kiểm toán nhất quán trong một tổ chức lớn.
Slack đã hoàn tất việc di chuyển trong hơn ba quý mà không có thời gian chết cho các khối lượng công việc quan trọng. Công ty đã loại bỏ quyền truy cập SSH trên các cụm EMR sản xuất, cải thiện độ tin cậy của công việc thông qua theo dõi thực thi phía máy chủ trong Quarry, và nâng cao khả năng quan sát thông qua ghi nhật ký có cấu trúc và số liệu tập trung. Cách tiếp cận dựa trên REST đã giảm sự kết hợp giữa Airflow và EMR, chuẩn hóa việc gửi công việc trên các nhóm, đồng thời cho phép thực hiện các nỗ lực tiếp theo như chuẩn bị cho Spark trên Kubernetes.
Việc triển khai được thực hiện từng bước bằng cách sử dụng việc loại bỏ dần các operator và xác thực theo giai đoạn trên các môi trường. Các bảng điều khiển siêu dữ liệu Airflow đã theo dõi các quy trình làm việc còn phụ thuộc vào SSH, và sự phối hợp giữa các nhóm đã giúp giảm thiểu rủi ro di chuyển. Các bài học chính bao gồm việc khám phá sớm cấu trúc mạng, xác thực giới hạn tài nguyên trên các mô hình thực thi và cải thiện giao tiếp trong quá trình hạn chế operator.
Bài viết liên quan

Phần mềm
Bưu điện Anh chọn Accenture và OneView Commerce thay thế hệ thống Horizon gây tranh cãi
21 tháng 5, 2026

Phần mềm
Linear Cosine Palettes: Tạo bảng màu cho nghệ thuật thuật toán với hàm Cosine
05 tháng 6, 2026
Phần mềm
Vivado 2026.1: AMD loại bỏ hỗ trợ Linux trên bản miễn phí gây tranh cãi
24 tháng 5, 2026
