10/10/2018, 10:39

Lập trình web: Sử dụng hệ thống CMS nào? Joomla, Drupal hay Wordpress

Lập trình web: Sử dụng hệ thống CMS nào? Joomla, Drupal hay Wordpress

Đã có nhiều trao đổi thảo luận về việc hệ thống này number one, hệ thống kia là "the best" ... Khi mở thread này, mình không muốn sa lầy vào tranh cãi như thế, mà mong muốn có những trao đổi có ích nhằm chọn một hệ thống để phát triển cho một nhu cầu sử dụng rất cụ thể.

Team mình cần phát triển một website nội dung về chứng khoán, cách tiếp cận là phát triển dựa trên một open source CMS. Yêu cầu đối với website này lần lượt ưu tiên như:

1. Stable and Security: hệ thống cần hoạt động ổn định và an toàn
2. Performance and Scaling: hệ thống có thể dễ dàng mở rộng đáp ứng từ 10.000 lượt visit lên đến 300.000 lượt visit mỗi ngày.
3. SEO: có sẵn nhiều module, plugin và practice article hổ trợ search engine optimization.
4. Flexible Development: Dễ dàng phát triển, tích hợp và nâng cấp, được hỗ trợ của cộng đồng mạnh.

Việc chọn hệ thống nào rất quan trọng vì nó ảnh hưởng rất lớn đến toàn bộ quá trình phát triển về sau (nhân sự, chuyên môn sau này, tính mở rộng...) Sau khi tham khảo nhiều tài liệu, short-list hiện tại là Joomla, Drupal và Wordpress nên mình mong muốn thread này chỉ nên đề cập quanh 3 hệ thống này trên các tiêu chí trên.

Sau đây là một số nhận định của mình, mời các bạn tham khảo và góp ý để mình có thể chọn được hướng đi đúng.

Tiêu chí 1: Stable and Security

Do cả 3 hệ thống này đều có bề dày phát triển nên tiêu chí 1 hầu hết đều đáp ứng được nên mình không đi sâu vào chi tiết này cũng như so sánh nhất, nhì, ba.

Tiêu chí 2: Performance & Scaling

- Joomla:
+ Performance: cảm nhận ban đầu là performance của Joomla không tốt bằng so với Drupal và Wordpress (thấy có vẻ Wordpress load nhanh nhất). Tuy nhiên rõ ràng một số site phát triển bằng Joomla không hề có vấn đề về performance dù lượng truy cập rất lớn. Cụ thể trang vietbao.vn, load khá nhanh và ít bị nghẽn dù lượng truy cập và khối lượng dữ liệu rất lớn.
+ Scaling: không biết các trang Joomla sẽ xử lý như thế nào nếu dữ liệu quá nhiều như trang vietbao.vn, có thể tách web server và database chạy trên nhiều server không?

- Drupal:
+Performance: được giới phát triển đánh giá khá tốt, nhưng nhìn source code mình thấy load quá nhiều module, không biết có ảnh hưởng gì nhiều đến performance không? Một số article có hướng dẫn sử dụng opcode như APC (Alternative PHP Cache) để cải thiện performance. Nhưng hình như điều này cũng đúng với các hệ thống PHP khác vì opcode can thiệp vào web server để xử lý PHP tốt hơn.

+ Scaling: cách đơn giản là có thể tách web server và database server. Theo mình biết (không biết chính xác không), site tamtay.vn đã tách được thành nhiều web server (load balancing...) và nhiều database server (đọc, ghi) rất tốt. Nhưng dường như là tự phát triển riêng và không thấy công bố các chi tiết chính thức nên không rõ là làm như thế nào. Một hướng khác là sử dụng cloud computing (ví dụ: Amazon S3 service) để scale file server. Thấy một số site của Drupal greek (ví dụ: lullabot.com) có đề cập đến việc này. Không biết ở VN mình có ai đã làm được việc này chưa? nếu làm được việc này thì sẽ có hệ thống cực kỳ mạnh mẽ và không phải lo vấn đề scalling về sau.

- Wordpress:
+Performance: cá nhân mình rất thích sự đơn giản và cấu trúc súc tích của hệ thống này, sử dụng wp-super-cache còn có thể cache hệ thống như file static --> Performance là điểm rất mạnh của Wordpress đã được chứng mình qua hầu hết các blog lớn của thế giới.

+ Scaling: nghe nói Wordpress MU có plug-in Multi-DB, có khả năng tách database thành n database, mỗi database có thể chạy trên mỗi server khác nhau. Không biết đã có ai thử khả năng này chưa? nếu thật sự đúng như vậy thì scaling của Wordpress chỉ cần lo về phía web server mà thôi.

Tiêu chí 3: SEO

Đây là một tiêu chí rất quan trọng hiện nay vì nếu hệ thống cực kỳ tốt, mà không có ai vào thì... chán chết.

-Joomla:
+ Mình không rành về khả năng SEO của Joomla lắm, nghe mọi người chê nhiều hơn khen. Tuy nhiên, cá nhân thì thấy trang vietbao.vn SEO cực kỳ tốt. Mình thử search rất nhiều loại từ khóa và rất nhiều lần trang này nằm trong top của Google result. --> nhờ khả năng mặc định của Joomla hay do kỹ năng của team vietbao.vn?


- Drupal:
+được đánh giá rất tốt với các module như Path-Auto, ... Ngoài ra, mình còn nghe quảng cáo về việc SEO được chú ý ngay từ lúc phát triển Drupal core --> SEO là ưu điểm của Drupal so với các hệ thống khác, không biết có đúng không?

+ Tuy nhiên, hình như một số site Drupal có vấn đề với Google sitemap là bị ảnh hưởng kết quả SEO bởi nhiều lý do khác nhau. Nếu vậy, thực sự Drupal làm SEO tốt hay Joomla làm tốt hơn? Mình rất lúng túng chỗ này vì nhiều bài viết đánh giá và nhiều bài viết về kinh nghiệm thực tế trái ngược nhau?

- Wordpress:
+ Được đánh giá khá cao về khả năng SEO, bản thân mình có sài thử all-in-one-seo-pack và simple-tags..., thấy rất thích vì sự đơn giản và dễ dàng khi dùng các plug-in này. Mình nghĩ, SEO không là vấn đề với Wordpress, thậm chí là ưu điểm so với các hệ thống khác.

Tiêu chí 4: Flexible Development

-Joomla:
+ Rất dễ set-up hệ thống, cộng với cộng đồng sử dụng đông đảo. Tuy nhiên, mình đọc rất nhiều nhận xét về kiến trúc, rất khó phát triển về sau và nhiều người khuyên là dùng nếu muốn phát triển website với các tính năng đơn giản.

- Drupal:
+ Được đánh giá tốt nhất về kiến trúc hệ thống, cộng đồng developer rất mạnh. Do mình cần tích hợp một số chức năng với các đối tác là các công ty chứng khoán (thông qua web services...), nên rất muốn đi theo hướng chọn Drupal. Thực sự không biết mình nhận xét đúng không? Drupal rất dễ tích hợp với các hệ thống khác phải không?

+ Điểm yếu nếu dùng Drupal là cộng đồng Vietnamese Drupal developer không nhiều, và khá kín tiếng --> tuyển người sẽ khá khó khăn. Điều này đúng không?

- Wordpress:
+ Trong tất cả các tiêu chí, mình đều đánh giá cao Wordpress, đặc biệt WP còn rất nhiều tìềm năng để phát triển, cộng đồng designer và developer đều mạnh (có thể so với Joomla designer community và Drupal developer community).
+ Tuy nhiên, điểm chính yếu nhất là WP kiến trúc được dùng để làm blog không phải CMS, nên không biết nếu đi theo hướng dùng WP có bị vào ngõ cụt không? Dù có một số website đã dùng WP như một CMS và có vài hướng dẫn về việc này, nhưng mình không tự tin lắm. Đã có website nào ở Việt Nam mình dùng Wordpress, đặc biệt là Wordpress MU để làm hệ thống quản lý nội dung (CMS) chưa? Có khả năng thành công không nhỉ?

Bài này gồm một số nhận định mang tính cá nhân, một số chỉ là suy đoán nên các bạn cứ thoải mái chỉ ra các điểm mình viết chưa chính xác, ngoài ra còn khá nhiều câu hỏi nhưng mình tin là cũng có rất nhiều người cùng quan tâm đến nên rất mong lắng nghe ý kiến phản hồi.

Sơn Trần,

joc.sontran@gmail.com

(Xem bản formatted tại đây http://docs.google.com/Doc?id=ds3zw5h_24dmjhx6cv&hl=en)
-----------------------
Updated: Đã chọn được nền tảng - Drupal

Tuyển PHP Developer Pro, part-time và full-time tại Sài Gòn. >>>
Bấm vào đây để xem chi
tiết
Thanh duc viết 12:53 ngày 10/10/2018
Nhận định thì ít mà đặt câu hỏi thì nhiều !
pcdinh viết 12:53 ngày 10/10/2018
Bạn tên là "mình " kiễng chân nhiều lần quá.

Bạn phải làm quen với cách viết docs phân tích giải pháp đi.

Ví dụ: SEO của bạn là cụ thể là các gạch đầu dòng nào thế? Bạn bảo thằng này tốt hơn thằng kia là dựa trên các tiêu chí nào?

Scaling: cách đơn giản là có thể tách web server và database server.
Mình về làm lại bài tập nhé.

Performance: cảm nhận ban đầu là performance của Joomla không tốt bằng so với Drupal và Wordpress (thấy có vẻ Wordpress load nhanh nhất)
Mình cảm nhận ngày mưa khác với ngày nắng, sáng khác với chiều. Nên "mình" nên tập benchmark, load test rồi mới đưa ra đánh giá. Những con số biết nói.

Điểm yếu nếu dùng Drupal là cộng đồng Vietnamese Drupal developer không nhiều, và khá kín tiếng --> tuyển người sẽ khá khó khăn. Điều này đúng không
Cả tấn. Chỉ cần hô là dự án này 10 000 USD là dân developer kéo đến đông như cửu vạn ý. Ko làm kiểu Drupal được thì làm kiểu hack và patch. PHP dễ tính. Kiểu gì cũng chạy

Tuy nhiên, điểm chính yếu nhất là WP kiến trúc được dùng để làm blog không phải CMS, nên không biết nếu đi theo hướng dùng WP có bị vào ngõ cụt không?
Blog về bản chất không khác gì với CMS. Chỗ khác chỉ là hiện tượng single channel hay multiple channel thôi. Ở Drupal, blog, story hay page thì cũng như nhau. Customize WP là dễ nhất. Demo: www.triax.com.vn (cái này tôi làm trong 5 ngày - WP của năm 2006)

Cụ thể trang vietbao.vn, load khá nhanh và ít bị nghẽn dù lượng truy cập và khối lượng dữ liệu rất lớn.
Trang đó là trang HTML ý mà. Chứ có phải là PHP đâu.

hệ thống có thể dễ dàng mở rộng đáp ứng từ 10.000 lượt visit lên đến 300.000 lượt visit mỗi ngày.
Với traffic nhỏ như thế này thì không cần lo về scale đâu. Cứ vanilla Apache PHP MySQL mà chiến. Cache tí cho nhanh cũng tốt.
vntux viết 12:50 ngày 10/10/2018
Được gửi bởi pcdinh
Trang đó là trang HTML ý mà. Chứ có phải là PHP đâu.
Trang vietbao.vn sao lai HTML nhỉ, giải thích giùm được không?
pcdinh viết 12:50 ngày 10/10/2018
Vì các trang news bản chất là tĩnh. Nó chỉ cần động khi update thông tin. Sau đó nó là tĩnh. Còn làm thế nào để nó là tĩnh thì có nhiều cách.
fotech_nd viết 12:46 ngày 10/10/2018
Em tưởng web tĩnh thì phải là kiểu editor dùng một HTML editor cập nhật thông tin rồi upload lên host chứ? Còn nếu đã có controller xử lý thì phải là web động chứ nhỉ?
pcdinh viết 12:40 ngày 10/10/2018
Được gửi bởi fotech_nd
Em tưởng web tĩnh thì phải là kiểu editor dùng một HTML editor cập nhật thông tin rồi upload lên host chứ? Còn nếu đã có controller xử lý thì phải là web động chứ nhỉ?
Hệ thống hoàn toàn có thể kết xuất data thành các file tĩnh mà. Khi update thì chỉ cần invalidate cache và update file tĩnh là xong. Đó là một cách làm.

Các hệ thống news như vietbao thường rất đơn giản cho nên chỉ cần mod_cache của Apache cũng có thể tạo nên sự khác biệt. Điểm yếu của mod_cache là URL-based. Nhưng với các hệ thống front controller với logic phức tạp thì URL-based ko có ý nghĩa gì. Dùng redirect thì sống còn forward hay internal routing thì chết.

Nói chung bước vào personalization mà làm cache mới khó khăn.
namduong8889 viết 12:50 ngày 10/10/2018
SỬ DỤNG HỆ THỐNG CMS và LẬP TRÌNH WEB là 2 việc hoàn toàn khác nhau.
snoob viết 12:45 ngày 10/10/2018
Được gửi bởi pcdinh
Hệ thống hoàn toàn có thể kết xuất data thành các file tĩnh mà. Khi update thì chỉ cần invalidate cache và update file tĩnh là xong. Đó là một cách làm.

Các hệ thống news như vietbao thường rất đơn giản cho nên chỉ cần mod_cache của Apache cũng có thể tạo nên sự khác biệt. Điểm yếu của mod_cache là URL-based. Nhưng với các hệ thống front controller với logic phức tạp thì URL-based ko có ý nghĩa gì. Dùng redirect thì sống còn forward hay internal routing thì chết.

Nói chung bước vào personalization mà làm cache mới khó khăn.
Nói nó là web tĩnh em còn tinh chút chút chớ nói nó làm bằng HTML thì không tin nổi
kooltech viết 12:44 ngày 10/10/2018
Được gửi bởi snoob
Nói nó là web tĩnh em còn tinh chút chút chớ nói nó làm bằng HTML thì không tin nổi
Bản chất nó là php nhưng khi nội dung đã được output ra html để cache, mỗi lần bạn xem, website sẽ load html đã cache trên disk or RAM và đưa lại cho bạn nên tốc độ nó nhanh. Thế nên pcdinh mới nói là HTML.
Bài liên quan
0