MEAN so với LAMP Stack Ưu và nhược điểm
Ngăn xếp web đã phát triển qua nhiều thập kỷ với những tiến bộ về công nghệ và ngôn ngữ phụ trợ. Hai trong số các ngăn xếp web phổ biến nhất hiện nay là LAMP và MEAN. Họ dựa vào hai công nghệ khác nhau cho ngôn ngữ phụ trợ, cơ sở dữ liệu và môi trường máy chủ. Thuật ngữ "ngăn xếp" dùng để chỉ các công nghệ xếp chồng lên nhau để tạo môi trường máy chủ web.
Trong bài viết này, tôi muốn làm rõ hai ngăn xếp web này bằng cách xem xét các lựa chọn công nghệ của họ, cả ưu và nhược điểm. Trường hợp mỗi ngăn xếp excel? Và loại dự án nào sẽ có lợi nhất từ một trong hai lựa chọn? Nếu bạn chưa quen với công nghệ web hoặc chỉ muốn tìm hiểu về hai ngăn xếp này, thì hướng dẫn này có mọi thứ bạn cần.
Phát triển LAMP truyền thống
Hầu hết các nhà phát triển nên biết về ngăn xếp LAMP truyền thống bởi vì nó đã xuất hiện từ thời kỳ đầu web. ĐÈN là viết tắt của Linux, Apache, MySQL và PHP. Mỗi trong số đó là các gói phần mềm riêng lẻ được kết hợp để tạo thành một giải pháp máy chủ đa năng.
Lý do lớn nhất để gắn bó với LAMP là bảo mật và hỗ trợ rộng rãi. Nó đã tồn tại trong nhiều thập kỷ và đó là một phương pháp lưu trữ trang web đã được chứng minh.
Tất cả các công nghệ phụ trợ như PHP và MySQL đều nổi tiếng và được hỗ trợ bởi mọi nhà cung cấp dịch vụ lưu trữ lớn. Nếu bạn làm việc trên ngăn xếp LAMP, về cơ bản bạn có thể lưu trữ ở bất cứ đâu. Ngoài ra, bạn nhận được truy cập vào các công cụ CMS phổ biến nhất. WordPress, Drupal và Joomla đều chạy trên PHP / MySQL.
Có tùy chọn tùy chỉnh trong kiến trúc LAMP như LEMP thay thế Apache bằng nginx. Bạn cũng có thể chạy một biến thể trên máy chủ Windows dưới dạng ngăn xếp WAMP.
Tuy nhiên, tất cả các phần mềm cốt lõi - bao gồm Apache, MySQL và PHP - nguồn mở, và được làm chủ yếu cho Linux. Đây là lý do tại sao Linux có ý nghĩa nhất đối với môi trường máy chủ và đó là lý do LAMP đã vượt qua thử thách về thời gian để phát triển web hiện đại.
Hầu hết các nhà phát triển đi theo con đường này bởi vì nó cách đơn giản nhất để có được một trang web trực tuyến. Bạn sẽ tìm thấy rất nhiều hỗ trợ trên các diễn đàn bao gồm mọi thứ bạn cần để định cấu hình và khắc phục sự cố môi trường LAMP. Chẳng hạn, bạn có thể xem câu hỏi ServerFault này để biết thêm thông tin.
Phần cuối JavaScript với MEAN
Node.js là công nghệ mới nhất dành cho các nhà phát triển được xác định để chạy các ứng dụng có thể mở rộng được xây dựng bằng JavaScript. Nút tăng sức mạnh cho ngăn xếp MEAN, và cung cấp một lợi thế chính: mọi thứ chạy trên một ngôn ngữ.
NGHĨA LÀ là viết tắt của MongoDB, Express.js, Angular.js, và dĩ nhiên Node.js. Từ viết tắt này không yêu cầu hệ điều hành máy chủ hoặc phần mềm máy chủ. Một chồng MEAN có thể chạy trên mọi hệ điều hành, và Node thậm chí còn đi kèm với máy chủ của riêng nó để xử lý JS trên phần phụ trợ.
Bạn sẽ tìm thấy rất nhiều tài liệu và hỗ trợ trên trang web Mean.io.
Mặc dù ngăn xếp này đã thu hút được nhiều sự chú ý, nhưng nó vẫn không có được sự hỗ trợ ổn định như một ngăn xếp LAMP truyền thống.
Vậy tại sao mọi người sẽ đi với MEAN? Bởi vì nó cuối cùng nhanh hơn và quy mô dễ dàng hơn. MongoDB là một Cơ sở dữ liệu NoQuery mà tối ưu hóa các truy vấn. Việc sử dụng JavaScript fullstack cũng cải thiện sự phát triển vì một ngôn ngữ áp dụng cho tất cả các công việc phụ trợ và phụ trợ.
Cộng với nhiều khung công tác JS khác đang tấn công thị trường như các giải pháp ổn định. Ví dụ, MEAN có thể được chuyển sang MEEN ngăn xếp thay thế Angular bằng Ember.
Các lập trình viên sẽ thích stack MEAN vì nó tách mã để duy trì và tăng trưởng. Điều này làm cho nó dễ dàng hơn để sắp xếp các ứng dụng web JavaScript của bạn để chúng chạy trong môi trường tự nhiên.
Có rất nhiều điều để tìm hiểu về chủ đề này và đó có lẽ là rào cản lớn nhất để gia nhập cho các nhà phát triển mới. Học tất cả các công nghệ cần thiết để quản lý ứng dụng MEAN có thể mất vài tháng. Nhưng nếu bạn yêu thích Node và muốn chạy mọi thứ trên JavaScript thì điều này rất đáng để nỗ lực.
Dưới đây là một số hướng dẫn cho người mới bắt đầu để giúp bạn bắt đầu.
- Hướng dẫn tuyệt đối cho người mới bắt đầu với Node.js
- Hướng dẫn cho người mới bắt đầu Node.js của Felix
- Giới thiệu về Express.js
- Tìm hiểu cách xây dựng các ứng dụng web hiện đại với MEAN
- Bắt đầu với Node.js, Express và MongoDB
PHP so với nút
PHP đã xuất hiện từ giữa những năm 90 và thực sự là ngôn ngữ phụ trợ phổ biến nhất. Nhiều nhà phát triển web bắt đầu với (hoặc cuối cùng tìm hiểu) PHP vì nó chiếm ưu thế trên các nền tảng web và nhà cung cấp dịch vụ lưu trữ.
Node là một khung mới hơn nhưng mức độ phổ biến của nó đã tăng lên cực kỳ nhanh. Điều này bao gồm sự phổ biến của NPM với tư cách là người quản lý gói cho các nhà phát triển web và mở rộng hơn nữa vào các khung công tác mạnh mẽ như Angular 2.
Lợi ích khác của Node là nó đi kèm với máy chủ web của riêng mình. JavaScript là gốc rễ của mọi thứ trên ngăn xếp MEAN, vì vậy nếu bạn yêu thích JS thì bạn sẽ thực sự thích xây dựng các ứng dụng web MEAN.
Nhiều nhà phát triển cảm thấy rằng PHP là một ngôn ngữ được thiết kế kém bởi vì người tạo, Rasmus Lerdorf không thực sự thiết kế nó như một ngôn ngữ. PHP bắt đầu như một giải pháp chung cho các trang web, và nhanh chóng phát triển thành một thư viện lớn các chức năng không liên quan.
Nhưng với PHP 7, cố gắng sửa nhiều lỗi ngôn ngữ và miễn phí OOP các khung công tác, chẳng hạn như Laravel, PHP là một ngôn ngữ tốt hơn nhiều so với trước đây.
Vì vậy, cuộc tranh luận về ngôn ngữ lựa chọn cá nhân của bạn. Bạn có thực sự thích viết JavaScript? Sau đó, Node với ngăn xếp MEAN có thể đáng xem xét.
Nếu bạn đã biết PHP và muốn gắn bó với những gì bạn biết, LAMP cũng là một lộ trình khả thi.
Ưu và nhược điểm chung:
Có nhiều lớp của từng ngăn xếp web để so sánh, bao gồm hệ điều hành, phần mềm máy chủ, cơ sở dữ liệu và ngôn ngữ phụ trợ.
(1) Các Chồng MEAN cũng thế bao gồm góc đó là một khung frontend. Không có bất kỳ khung yêu cầu nào trong ngăn xếp LAMP, nhưng bạn luôn có thể thêm khung riêng của mình vào bất kỳ ứng dụng nào bạn xây dựng.
(2) Liên quan đến HĐH, ngăn xếp LAMP tìm kiếm một sản phẩm phái sinh của Linux. Linux thường là sự lựa chọn tốt nhất đối với môi trường máy chủ bất kể ngăn xếp và điều đó cũng đúng với MEAN.
(3) Bây giờ HĐH của máy chủ chỉ là phần mềm máy tính, nhưng nó không phải là phần mềm máy chủ web. Để có được điều này, bạn cần một chương trình như Apache hoặc nginx. LAMP sử dụng Apache vì đây là một trong những lựa chọn ổn định nhất hiện có.
(4) MEAN sử dụng máy chủ Node.js một phần của gói Node. Nó vẫn còn khá mới và trong khi có rất nhiều hỗ trợ ngoài kia, Node không có nơi nào có cộng đồng kích thước tương tự như Apache.
(5) Ngoài ra một máy chủ Node yêu cầu một phụ trợ của JavaScript (không có phần mở rộng). Apache cho phép hầu hết các ngôn ngữ phụ trợ, và có nhiều phần mở rộng miễn phí để được hỗ trợ nhiều hơn. Nhưng hiện tại Apache không có gì để hỗ trợ Node.
(6) Quản lý cơ sở dữ liệu là nơi bạn sẽ tìm thấy sự khác biệt lớn nhất. LAMP sử dụng MySQL để lưu trữ dữ liệu quan hệ, trong khi MEAN sử dụng MongoDB là cơ sở dữ liệu không liên quan. DB không liên quan là nhanh hơn nhiều, và cung cấp một phương pháp mở rộng dễ dàng hơn với lưu lượng truy cập cao hơn.
(7) Hãy ghi nhớ rằng PHP không chỉ giới hạn ở MySQL. Nó có thể sử dụng MongoDB và các lựa chọn thay thế khác như PostgreSQL hoặc SQLite. Chỉ là hầu hết các nhà phát triển PHP đều biết MySQL, vì vậy đây là ứng cử viên chính cho ngăn xếp LAMP điển hình.
(số 8) MEAN ngăn xếp thường chạy nhanh hơn và quy mô lớn hơn, nhưng đòi hỏi nhiều thời gian và kiến thức máy chủ hơn để tìm hiểu hệ thống. Ngăn xếp LAMP là đã thử và đúng, và họ đến ngoài cái hộp với cơ sở hạ tầng an toàn nhất và sự hỗ trợ rộng nhất có thể tưởng tượng.
(9) Ngôn ngữ lập trình tạo ra sự khác biệt lớn giữa hai ngăn xếp. LAMP chủ yếu hoạt động trên PHP, bao gồm WordPress và khung công tác Laravel. MEAN hoạt động trên ExpressJS / NodeJS cho phần phụ trợ với AngularJS trên frontend.
(10) Nghĩa là JavaScript toàn ngăn xếp, và có rất nhiều bạn sẽ cần phải học để chạy nó. nó là một sự lựa chọn thường xuyên của các công ty mới khởi nghiệp sẵn sàng đẩy các ranh giới trong phát triển ứng dụng web. LAMP là truyền thống hơn với JS trên frontend, PHP trên phụ trợ. Nó được tạo ra cho những người chỉ muốn có được các trang web trực tuyến mà không phải lo lắng quá nhiều.
Vui lòng kiểm tra hướng dẫn so sánh này để tìm hiểu thêm một chút. Không có lựa chọn nào là đúng hay sai, chỉ khác nhau và được thực hiện cho các dự án khác nhau.
Kết thúc
Tôi muốn nói rằng hầu hết các trang web nghiêng về ngăn xếp LAMP vì nó đã được thử nghiệm và có rất nhiều chủ đề Hỏi & Đáp hữu ích được lập chỉ mục trong Google. MEAN vẫn đang phát triển và cũng có nhiều hỗ trợ, nhưng có thể mang tính kỹ thuật hơn hầu hết mọi người muốn giải quyết.
Hãy thử cả hai, và xem chúng cho chính mình. Có thể cài đặt cả hai thiết lập cục bộ trên máy tính của bạn và xây dựng trên chúng mà không cần máy chủ từ xa.
Và nếu bạn đang tìm kiếm thêm thông tin về một trong hai ngăn xếp, tôi đã thu thập một bộ các liên kết tiện dụng bên dưới.
- Tìm hiểu cách xây dựng các ứng dụng web hiện đại với MEAN (thinkster.io)
- Docker LAMP Stack Admin (jessesnet.com)
- Cách cài đặt Linux, Apache, MySQL, PHP (LAMP) Stack trên Debian 8 (kỹ thuật số.com)