Việc phát hành sshsync, một công cụ dòng lệnh mới để quản lý nhiều kết nối SSH, đã làm dấy lên một cuộc tranh luận sôi nổi giữa các quản trị viên hệ thống và chuyên gia DevOps về tính hữu ích của nó so với các giải pháp đã được thiết lập như Ansible. Công cụ dựa trên Python này, cho phép người dùng chạy các lệnh shell trên nhiều máy chủ từ xa cùng lúc, đã nhận được phản ứng trái chiều từ cộng đồng kỹ thuật.
Sự trùng lặp công cụ và trường hợp sử dụng chuyên biệt
Lời chỉ trích chính đối với sshsync tập trung vào sự trùng lặp được nhận thấy. Nhiều người bình luận đặt câu hỏi về sự cần thiết của một công cụ quản lý SSH khác khi đã có những giải pháp mạnh mẽ như Ansible, pssh, hoặc thậm chí là các tập lệnh shell cơ bản với SSH và SCP. Một người bình luận lưu ý rằng việc thiết lập khóa SSH và inventory với Ansible chỉ mất 10 phút, ngay cả khi bạn làm điều đó lần đầu tiên, cho thấy rằng các công cụ hiện có đã giải quyết được các vấn đề mà sshsync nhắm đến.
Tuy nhiên, những người ủng hộ các công cụ đơn giản hơn như sshsync và pssh đã nhấn mạnh các tình huống cụ thể mà các giải pháp nhẹ hơn tỏa sáng. Một người dùng giải thích rằng các công cụ như pssh có những ưu điểm trong một số môi trường nhất định:
Lý do tôi thấy nó vượt trội hơn Ansible là: sử dụng cú pháp và tùy chọn giống như SSH thông thường, chỉ chạy trên nhiều máy chủ. Vì vậy, nếu bạn đã biết SSH, bạn biết cách sử dụng nó... không yêu cầu các phụ thuộc trên máy đích. Ansible yêu cầu cài đặt python3 trên máy đích. Điều này không được đảm bảo trong tất cả các môi trường (ví dụ: các thiết bị nhúng).
Quan điểm này làm nổi bật sự phân chia thực sự trong cộng đồng DevOps giữa những người thích các hệ thống quản lý cấu hình toàn diện và những người đánh giá cao các công cụ đơn giản, tập trung hơn cho các nhiệm vụ cụ thể.
Các Công Cụ Quản Lý SSH Thay Thế Được Đề Cập Trong Cuộc Thảo Luận:
- Ansible - Hệ thống quản lý cấu hình đầy đủ yêu cầu Python trên các máy đích
- pssh - Công cụ thực thi lệnh SSH song song với cấu hình đơn giản
- Fabric - Thư viện Python để đơn giản hóa việc sử dụng SSH
- pyinfra - Công cụ quản lý cơ sở hạ tầng dựa trên Python
- GoSSHa - Công cụ dựa trên Go được tối ưu hóa cho chuyển tiếp SSH agent ở quy mô lớn
- GNU Parallel - Công cụ thực thi công việc song song
- PowerShell Invoke-Command - Thực thi lệnh từ xa dựa trên Windows
Cân nhắc về quy mô và hiệu suất
Một hiểu biết kỹ thuật thú vị đến từ một người dùng đã xây dựng một công cụ tương tự để quản lý khoảng 3.000 máy chủ. Họ nhấn mạnh một thách thức kỹ thuật cụ thể xoay quanh xác thực SSH agent ở quy mô lớn, lưu ý rằng giải pháp dựa trên Go của họ cho phép bạn thực hiện chuyển tiếp SSH agent hoạt động hiệu quả ở quy mô lớn bằng cách giới hạn đồng thời khi giao tiếp với SSH agent.
Điều này đặt ra những câu hỏi quan trọng về khả năng hiệu suất của sshsync. Mặc dù công cụ cung cấp khả năng thực thi lệnh đồng thời trên nhiều máy chủ, tài liệu không đề cập đến hiệu suất của nó với hàng trăm hoặc hàng nghìn kết nối—một kịch bản phổ biến trong môi trường doanh nghiệp lớn.
Khoảng trống tính năng và hạn chế
Một số người bình luận đã xác định những hạn chế chức năng trong sshsync có thể cản trở việc áp dụng nó. Một người dùng hỏi về việc xử lý các lệnh yêu cầu đầu vào của người dùng, chẳng hạn như lời nhắc mật khẩu sudo. Nhà phát triển thừa nhận rằng không có cách nào để nhận đầu vào của người dùng trong quá trình truyền, có nghĩa là người dùng cần phải cấu hình sudo không cần mật khẩu—một hạn chế đáng kể đối với các môi trường chú trọng bảo mật.
Những người khác đề xuất các tính năng nâng cao tiềm năng có thể làm cho công cụ hấp dẫn hơn, chẳng hạn như thêm tham số lọc cho các máy ảo của nhà cung cấp đám mây, tương tự như những gì một số người dùng đã triển khai trong các tập lệnh tùy chỉnh của họ.
Các tính năng chính của sshsync:
- Chạy lệnh shell đồng thời trên nhiều máy chủ
- Cấu hình dựa trên nhóm để nhắm đến các tập hợp máy chủ cụ thể
- Đẩy/kéo tệp tin giữa máy chủ cục bộ và từ xa
- Chế độ chạy thử để xem trước các hành động trước khi thực hiện
- Sử dụng cấu hình SSH hiện có từ ~/.ssh/config
- Không yêu cầu phụ thuộc trên máy đích
- Được viết bằng Python 3.10+
Quan điểm của nhà phát triển
Người tạo ra sshsync đã đưa ra một quan điểm khiêm tốn đáng khen về dự án, thừa nhận rằng nó không nhằm mục đích cạnh tranh với các công cụ đã được thiết lập. Tôi đang cảm thấy chán, đây dường như là một dự án thú vị để làm việc ngoài giờ, họ giải thích, và thêm rằng một đồng nghiệp thấy nó hữu ích, điều này đã thúc đẩy việc phát hành công khai.
Điều này làm nổi bật một khía cạnh quan trọng của phát triển mã nguồn mở—không phải mọi công cụ đều cần phải cách mạng hóa một ngành công nghiệp. Đôi khi các dự án chỉ là những trải nghiệm học tập, giải quyết nhu cầu cá nhân cụ thể, hoặc lấp đầy những ngóc ngách nhỏ mà các công cụ chính thống có thể bỏ qua.
Mặc dù có một số chỉ trích về tài liệu được tạo bởi AI và thiếu nghiên cứu về các giải pháp hiện có, phản hồi chân thành của nhà phát triển thể hiện tinh thần chia sẻ thực sự đã thúc đẩy phần lớn cộng đồng mã nguồn mở.
Cuộc thảo luận xung quanh sshsync tiết lộ một căng thẳng rộng lớn hơn trong thế giới DevOps giữa các nền tảng toàn diện và các công cụ đơn giản, tập trung hơn. Trong khi Ansible cung cấp một giải pháp quản lý cấu hình hoàn chỉnh với khả năng mở rộng, các công cụ như sshsync hấp dẫn những người tìm kiếm các giải pháp thay thế nhẹ nhàng cho các nhiệm vụ cụ thể mà không cần phải học các hệ thống phức tạp.
Như một người bình luận đã nhận xét một cách sắc bén, Ansible là một trong những ví dụ tốt nhất về sự phức tạp không cần thiết mà tôi từng tương tác—một tình cảm giải thích tại sao các giải pháp thay thế đơn giản hơn tiếp tục xuất hiện bất chấp sự trưởng thành của không gian quản lý cấu hình.
Liệu sshsync có được áp dụng rộng rãi hay không vẫn còn phải chờ xem, nhưng cuộc trò chuyện mà nó đã làm dấy lên làm nổi bật nhu cầu liên tục về các công cụ cân bằng giữa sức mạnh và sự đơn giản trong môi trường CNTT ngày càng phức tạp hiện nay.
Tham khảo: sshsync