Thứ Bảy, 5 tháng 12, 2009

Hỗ trợ nguồn mở

(NHQ – Dịch và giới thiệu)

Nguồn mở và hỗ trợ

Sự hỗ trợ cho các chương trình máy tính là một vấn đề then chốt. Trong Tin học nói chung và đặc biệt với nguồn mở.

Vậy hỗ trợ là gồm những gì? Đó là khả năng đem lại sự trợ giúp trong việc sử dụng chương trình và sửa chữa chương trình trong trường hợp có lỗi.

Sự hỗ trợ có thể dành cho người sử dụng cuối, như cho những người khai thác chương trình, hoặc còn dành cho những lập trình viên làm việc trên chương trình đó.

Sự triển khai các chương trình cho các tác vụ quan trọng, đặc biệt trong các doanh nghiệp, tuyệt đối đòi hỏi có sự hỗ trợ, bởi vì nguy cơ của một tình huống bế tắc là quá quan trọng, dù cho sự bế tắc này có nguyên nhân từ một sự bất thường hay do một sai sót sử dụng, cấu hình, không tương thích, v.v...

Vấn đề hỗ trợ là một chủ đề nhạy cảm với phần mềm nguồn mở. Thứ nhất vì có một sự khác biệt nền tảng, với các sản phảm nguồn gốc cộng đồng, giữa sự hỗ trợ cộng đồng và sự hỗ trợ của nhà xuất bản phần mềm. Thứ đến còn bởi vì các nhà xuất bản phần mềm sở hữu muốn làm mọi người tin rằng sự hỗ trợ là một điểm yếu của phần mềm nguồn mở.

Quả là giấy phép nguồn mở nói chung đều chứa ghi chú bằng chữ lớn: PHẦN MỀM NÀY ĐƯỢC CUNG CẤP TRÊN HIỆN TRẠNG, KHÔNG BẢO ĐẢM, v.v... Và vì thế, sẽ thật không bình thường để đòi hỏi bất cứ điều gì với tác giả chương trình, người đã cho phép sử dụng công trình của anh ta. Nhưng đôi khi người ta quên mất rằng sự thiếu bảo đảm cũng là điều khoản thường được ghi rõ trong các giấy phép sở hữu.

Hỗ trợ cộng đồng và hỗ trợ nhà xuất bản phần mềm

Về hỗ trợ nguồn mở, cần phải phân biệt hai thế giới: các sản phẩm cộng đồng một bên, và các sản phẩm của các nhà xuất bản phần mềm thương mại bên kia.

Các sản phẩm cộng đồng (Linux, Apache, PHP, …) được hưởng trước hết sự hỗ trợ của cộng đồng. Có nghĩa là hỗ trợ dựa trên sự tự nguyện của các nhà phát triển có liên quan, họ trả lời cho các câu hỏi của người sử dụng trên các danh sách thư điện tử (mailing-lists) và các diễn đàn (forums).Và cũng dựa trên sự theo dõi và xử lý các bất thường trên các hệ nền phát triển của cộng đồng.

Khi cộng đồng hoạt động tích cực, như trường hợp với các sản phẩm lớn, sự hỗ trợ cộng đồng này có thể rất hiệu quả, rất nhạy bén, cao hơn nhiều so với hỗ trợ thương mại. Nhưng một số người sử dụng vẫn còn lo âu vì nó không có bảo đảm, rằng người ta không thể buộc tội ai nếu một vấn đề không được giải quyết. Trong thực tế, phần lớn các hỗ trợ của các nhà xuất bản thương mại cũng không có bảo đảm kết quả.

Ngoài khía cạnh cộng đồng, còn có vấn đề về sự đa dạng sản phẩm. Một hệ thông thông tin thường có thể bao hàm đến hơn chục sản phẩm khác nhau trong chồng phần mềm: Linux, Apache, Tomcat, MySql, Hibernate, … Khi một vấn đề xảy ra, cần phải đề cập đến cái nào? Các khách hàng chuyên nghiệp yêu cầu có một người đối thoại duy nhất, để đảm trách những mức hỗ trợ đầu tiên.

Từ rất sớm trong sự phát triển của nguồn mở, các tác nhân thương mại đã đáp ứng cho yêu cầu hỗ trợ này. Đó là sự định vị của các 'nhà phân phối' như RedHat hay Mandriva, nhưng cũng có cả các Cty dịch vụ phần mềm tự do ở Pháp như Alcove, Linagora hay OpenWide.

Về phía các nhà xuất bản nguồn mở (MySql, eZ Publish, TinyERP), câu hỏi lại khác: nhà xuất bản là một Cty thương mại và mô hình kinh doanh của nó được dựa chủ yếu trên sản phẩm hỗ trợ. Vì thế ở đây, lực lượng hỗ trợ là rất giống với lực lượng này của các sản phẩm sở hữu. Tuy nhiên sẽ không giống nhau y hệt vì song song, và bù đắp cho hỗ trợ trả phí của nhà xuất bản, thường luôn tồn tại một hỗ trợ cộng đồng, ít nhiều sống động tùy theo sản phẩm.

Nhưng thông thường, những sửa chữa động đến mã nguồn thì chỉ được nhà xuất bản đảm trách.

Với các nhà xuất bản nguồn mở thương mại mới, sự hỗ trợ sản phẩm là nền tảng của mô hình kinh doanh, đó là lý do sống còn, là nguồn thu nhập duy nhất của họ. Vì thế chúng ta có thể chờ đợi một sự hỗ trợ chất lượng cao, bao gồm các tùy chọn phong phú về tính nhaỵ bén.

Ba mức hỗ trợ

Trước tiên hãy nhắc lại định nghĩa thông thường về các mức hỗ trợ

  • Mức 1: một thao tác viên không chuyên gia tiếp nhận yêu cầu, ghi nhận vấn đề vào một công cụ theo dõi, và tra cứu các mệnh lệnh đơn giản để thử chữa lỗi.

  • Mức 2: một kỹ thuật viên chuyên gia trên một số lĩnh vực phân tích yêu cầu, làm những chẩn đoán ban đầu của vấn đề. Anh ta giải quyết vấn đề hoặc tìm ra cách tránh lỗi trong khả năng chuyên môn, hoạc nếu không được, chuyển hướng sang một nhà chuyên môn phù hợp.

  • Mức 3: sự can thiệp của chuyên gia chuyên môn hóa đem đến sự sửa chữa cuối cùng.

Một sửa chữa động đến mã nguồn của một chương trình chỉ có thể được làm ở mức 3.

Tất nhiên, một qui tắc chung về hỗ trợ là cần phải giới hạn các can thiệp ở mức thứ nhất, nếu có thể chỉ có một người đên mức 2, là người đảm nhiệm việc trỏ đến chuyên gia chuyên môn hóa.

Hình vẽ sau đây thể hiện điều đó.


Các lớp phần mềm

Trong phần tiếp theo, chúng ta phân biệt 4 lớp của một hệ nền nguồn mở:

  • Hệ điều hành GNU/Linux. Mức 3 chỉ có thể được bảo đảm bởi các cộng đồng (Debian), hoặc bởi các nhà phân phối chuyên môn hóa (RedHat, Mandriva).

  • Các thành phần hệ thống khác nhau, thông thường được bao hàm trong các phân phối, ví dụ đặc trưng là Apache hay Tomcat. Những thành phần này nói chung cũng được hỗ trợ ở mức 3 bởi các cộng đồng, thí dụ cộng đồng của Apache Software Foundation.

  • Các giải pháp bậc cao của các nhà xuất bản nguồn mở, thí dụ đặc trưng eZ Publish, TinyERP hoặc Alfresco. Các giải pháp này thì chỉ có thể do nhà xuất bản hỗ trợ ở mức 3.

  • Cuối cùng, các mô-đun ứng dụng đặc thù, hoặc các cấu hình phức tạp của các ứng dụng này. Đó có thể chẳng hạn một ứng dụng nghề nghiệp hoàn toàn đặc thù, được xây dựng trên một khuôn khổ nguồn mở, hoặc là các bộ khung mẫu hoặc các mở rộng của một công cụ quản lý nội dung. Thông thường chúng được thực hiện bởi một nhà tích hợp giải pháp nguồn mở, nhưng đôi khi cũng có thể do một ê-kíp của khách hàng cuối thực hiện. Tất nhiên, dù kiểu gì, thì người thực hiện các mô-đun hay cấu hình này là ứng viên tốt nhất để đảm đương hỗ trợ mức 3.

Rõ ràng rằng tính ổn định sẽ tăng dần từ dưới lên giữa 4 lớp này: các lỗi trong Apache đã là hiếm hoi, nhưng lỗi của Linux còn hiếm hơn nữa. Các giải pháp bậc cao không có độ khỏe mạnh (robustness) bằng Apache, nhưng xác suất lỗi mạnh nhất là ở trong các phát triển đặc thù, đơn giản vì chúng có lượng người sử dụng hạn chế và tuổi đời thấp hơn các lớp trên.

Điều đó thể hiện trong hình sau đây:


Lớp ứng dụng

Lực lượng người sử dụng và độ trưởng thành

Xác suất lỗi

Như vậy rõ ràng rằng nhu cầu hỗ trợ cho các lớp trên là mạnh hơn. Nếu có một đối tác duy nhất, thì đương nhiên đó phải là người có thể can thiệp vào các lớp này.

Hỗ trợ trong trường hợp không có ứng dụng đặc thù

Hình vẽ sau đây mô tả trường hợp người ta sử dụng các sản phẩm nguồn mở như hiện trạng, với không hoặc rất ít cấu hình. Đó là trường hợp đặc trưng của việc triển khai bộ phần mềm OpenOffice.

Nếu cấu hình bao hàm một sản phẩm của một nhà xuất bản ngoài các sản phẩm của cộng đồng, và cũng không cần cấu hình đặc thù,thì khách hàng có thể liên hệ trực tiếp đến nhà xuất bản cho các mức hỗ trợ 1, 2 và 3 với sản phẩm của họ, và liên hệ với nhà phân phối với các lớp dưới. Hiếm khi có nhà xuất bản mong muốn đảm nhiệm hỗ trợ mức 1 và 2 ngoài sản phẩm của họ, trên toàn bộ cấu hình.

http://lh4.ggpht.com/_3yryf1jdefs/SxsS4VQDMqI/AAAAAAAAA20/LPWvOvNV5GU/s800/4e.jpg

Trung tâm hỗ trợ tích hợp

Sau cùng, một số nhà cung cấp dịch vụ đưa ra dịch vụ đảm bảo hỗ trợ tổng thể nhiều sản phẩm ở các mức hỗ trợ 1 và 2. Đó là nghề chính yếu của một số hãng dịch vụ phần mềm nguồn mở, song một số hãng dịch vụ tích hợp đa năng cũng có thể chào hàng dịch vụ này.

Hiếm khi có một trong số các hãng dịch vụ nói trên có trình độ chuyên môn cần thiết để đảm đương mức hỗ trợ 3 trên tất cả các thành phần hệ thống, nhưng họ có thể có được tay nghề cần thiết cho một vài thứ trong số các thành phần này.

Trường hợp ứng dụng hoặc cấu hình đặc thù

Hình vẽ sau đây biểu thị trường hợp trong đó khác hàng sử dụng một ứng dụng đặc thù,hoặc một cấu hình phức tạp của một giải pháp nguồn mở của một nhà xuất bản, mà một nhà tích hợp giải pháp nguồn mở đã làm riêng cho họ.

Trong trường hợp này, nhà tích hợp trong phần lớn trường hợp sẽ đảm nhiệm hỗ trợ mức 1 và 2, và họ sẽ nhờ các chuyên gia thích hợp để cho mức hỗ trợ 3.

Cũng có thể xảy ra tình huống khách hàng có nhiều cấu hình khác nhau, nhưng dựa trên cùng các lớp thấp, họ có thể sẽ nhờ đến sự hỗ trợ tổng thể của một nhà phân phối cho các lớp này.

Hình vẽ trên đây còn biểu thị một khả năng nữa, trong đó khách hàng cuối liên hệ với một nhà phân phối để nhờ hỗ trợ phần thấp: hệ điều hành và các thành phần hệ thống, và nhờ cậy nhà tích hợp để hỗ trợ cho các thành phần lớp trên.

(Kỳ sau: Mô hình kinh doanh nguồn mở)

PS: Bài được đăng trên tạp chí Tin học & Đời sống, số tháng 11/2009

1Nguồn: Sách trắng « Introduction à l'open source et au logiciel libre » (http://ftp.smile.fr/client/Livres_blancs_Smile_2/LB_Smile_Open_source.pdf)

Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.