Giới thiệu Varying Vagrant-Vagrants

9 Tháng Ba, 2016

Bài này thuộc phần 1 của 5 phần trong serie Vagrant và VVV toàn tập

Nếu bạn đã từng đi tìm hiểu nhiều giải pháp về việc thiết lập một môi trường development cho lập trình viên WordPress thì có thể đã từng nghe đến Varying Vagrant-Vagrants (xin gọi vắn tắt là VVV). Còn nếu bạn chưa biết nó là gì thì bạn có thể xem qua vì biết đâu nó chính là thứ bạn cần?

Varying Vagrant-Vagrants là gì?

vvv-vagrant

Vagrant mình đã từng giới thiệu qua về nó như là một công cụ hỗ trợ quản lý máy ảo ở VirtualBox/VMWare tốt hơn, dễ sử dụng hơn và có khả năng tái sử dụng rất tốt. Vagrant hiện tại đã quá nổi tiếng như là một giải pháp tạo máy ảo để phát triển ứng dụng, hoặc đơn giản hơn thì phục vụ nhu cầu học tập Linux cho nhiều người.

Còn VVV mà mình đang nói ở trong bài này là một bộ công cụ (nói đúng hơn là một box trong Vagrant) hỗ trợ lập trình viên xây dựng một môi trường ảo hóa phục vụ riêng cho việc lập trình với WordPress. Cụ thể là nó sẽ giúp bạn xây dựng một webserver chuẩn sử dụng NGINX (hoặc Apache) và tích hợp sẵn nhiều công cụ hỗ trợ việc lập trình nhanh chóng hơn. Không cần phải cài đặt gì nhiều, chỉ việc download bộ cài của VVV vào thư mục Vagrant rồi gõ lệnh “vagrant up” và tận hưởng đi.

Ngoài ra, nó còn giúp bạn quản lý và thêm nhiều website nhanh chóng vào máy ảo, có thể tự viết thêm bash script để thiết lập auto site setup của VVV để rút ngắn thời gian tối đa việc thao tác trên máy ảo, tập trung vào việc viết code.

Thế tại sao không dùng Ampps/XAMPP cho dễ hơn?

Đây là câu hỏi mà mình tiên lượng được sẽ có người hỏi khi mình giới thiệu VVV. Và dĩ nhiên phải có lý do riêng của nó mà các lập trình viên thích chọn VVV hơn là một ứng dụng tạo localhost thông thường.

Thứ nhất. Tùy biến mọi thứ

Như bạn biết các chương trình hỗ trợ tạo localhost đều áp dụng mô hình webserver LAMP (Linux, Apache, MySQL và PHP). Điều này thật thiệt thòi nếu như bạn cần một localhost chạy LEMP (Linux, NGINX, MySQL/MariaDB và PHP-FPM). Và ở VVV và Vagrant, do nó là một máy ảo Linux độc lập nên bạn có thể tinh chỉnh lại phần mềm nào được cài lên đây, không phụ thuộc vào bất cứ giới hạn nào ở các chương trình localhost khác.

Thứ hai. Có sẵn ứng dụng hỗ trợ lập trình

Trong VVV, nó đã cài sẵn cho bạn những phần mềm mà các lập trình viên WordPress thường rất cần như WP-CLI, Composer, Memcached, PHP XDebug, Git, Subversion, Mailcatcher,…nên hầu như nếu bạn đang làm việc lập trình WordPress thì không cần tinh chỉnh cài đặt gì thêm khi sử dụng VVV.

Còn nếu bạn dùng localhost thông thường, trường hợp bạn sử dụng Linux thì không sao nhưng nếu bạn sử dụng Windows thì đôi lúc có một số ứng dụng mà bạn muốn cài đặt cũng rườm rà phết đấy.

Thứ ba. Độc lập với thiết lập máy tính cá nhân

Nói cách khác là do VVV chạy trên một máy ảo độc lập nên bạn có tinh chỉnh phần mềm hỗ trợ gì trên đó cũng không lo nó ảnh hưởng đến các thiết lập khác trên máy của bạn.

Thứ tư. Tự động hóa mọi thứ

Tính năng Auto Site Setup là một sức mạnh tiềm tàng của nó, bạn có thể tự thiết lập một script tự cài đặt một website mới của mình như tạo database, cài WordPress, thêm các dữ liệu mẫu, cài sẵn plugin, bla bla,….Bằng việc ứng dụng sự linh hoạt của bash script và sự mềm dẻo của WP-CLI thì bạn có thể tạo ra một website ở localhost với các thiết lập mong muốn trong tít tắt mà không cần chạm vào bảng điều khiển của WordPress.

Thứ năm. Push to Live (Deployment)

Một tính năng tuyệt vời của Vagrant là bạn có thể push cái máy ảo của mình lên các dịch vụ máy chủ ảo thông dụng như Amacon EC2, Microsoft Azure, Google Cloud Machine,….mà không cần cài đặt thêm gì trên máy chủ của bạn. Hoặc nếu bạn không chuyên nghiệp tới mức dùng các dịch vụ xa xỉ đó thì bạn có thể push nó lên host của bạn thông qua FTP hoặc dịch vụ miễn phí HashiCorp’s Atlas.

“vagrant push” và bùm, bạn đã có một liên kết vào website của bạn và gửi nó cho khách hàng/bạn bè ở phương xa xem.

Và với VVV bạn cũng có thể làm được như thế theo cách riêng của nó, cách gì mình sẽ có nói sau.

VVV có dành cho tất cả mọi người ?

Mình không quen khi nói rằng chỉ có những người chuyên nghiệp mới dùng VVV, mà chỉ là nó không phải thích hợp cho nhiều người. Về chắc chắn thì nó dĩ nhiên là khó hơn việc bạn làm việc trên localhost thông thường rồi, nhưng bù lại bạn sẽ làm nhanh hơn nếu biết sử dụng nó.

Nếu bạn cảm thấy quá xa lạ với Linux, với các thiết lập webserver, không thoải mái khi thao tác với các dòng lệnh thì VVV có thể làm bạn bực mình thêm và hãy thứ lỗi cho mình về điều đó. Do vậy, lúc này bạn có thể tiếp tục với workflow dùng localhost thông thường.

Nhưng nếu bạn vẫn muốn tìm hiểu thêm một cái gì đó mới mẻ, có vẻ “thời đại” một xíu thì cứ thử xem bài viết và video của serie này xem, dẫu sao biết thêm nhiều thứ cũng không có gì gọi là vô ích.

VVV được cài đặt những gì trong đó?

Ứng dụng VVV cho Vagrant là một box đã có sẵn các phần mềm sau:

  1. Ubuntu 14.04 LTS (Trusty Tahr)
  2. WordPress Develop
  3. WordPress Stable
  4. WordPress Trunk
  5. WP-CLI (master branch)
  6. nginx (mainline version)
  7. mysql 5.5.x
  8. php-fpm 5.5.x
  9. memcached
  10. PHP memcache extension
  11. PHP xdebug extension
  12. PHP imagick extension
  13. PHPUnit
  14. ack-grep
  15. git
  16. subversion
  17. ngrep
  18. dos2unix
  19. Composer
  20. phpMemcachedAdmin
  21. phpMyAdmin
  22. Opcache Status
  23. Webgrind
  24. NodeJs
  25. grunt-cli
  26. Mailcatcher

Bạn đã sẵn sàng?

Nếu bạn cảm thấy tò mò về VVV và muốn thử trải nghiệm nó thì hãy ấn qua xem bài kế tiếp trong serie này nhé, ở đó mình sẽ có hướng dẫn chi tiết cách cài Vagrant và VVV trên Mac.