Devilbox – công cụ xây dựng môi trường phát triển PHP với Docker

Đây là phần thứ 1 trong tổng số 13 phần thuộc loạt bài nói về Devilbox

Hãy thử nhớ lại về cái lần đầu tiên bạn tiếp xúc với ngôn ngữ lập trình PHP đi, tôi dám cá là ít nhiều gì bạn cũng đã từng dành rất nhiều thời gian cho việc thiết lập môi trường để có thể chạy được đoạn mã Hello World đầu tiên. Chắc chắn đó là một kỷ niệm không thể nào quên!

Hay nếu bạn là một tay chơi PHP có thâm niên, chắc chắn bạn cũng ít lần cài localhost với XAMPP, rồi Wampserver, rồi MAMP, rồi AMPPS, rồi Laragon, mây mây và mây mây. Thậm chí là hardcore hơn một tý, tự tay cài web server rồi cấu hình PHP, MySQL,… blah blah các kiểu. Sau đó lại tiếp tục nghiền ngẫm xem cách nào mới là chân ái của đời mình. Tuy nhiên với Devilbox, tôi sẽ biến câu chuyện trên của bạn trở nên khác hẳn và thú vị hơn nhiều.

Devilbox là gì?

Devilbox là một công cụ hỗ trợ xây dựng môi trường phát triển cho các ứng dụng PHP dựa trên nền tảng Docker với tính linh hoạt và tùy biến cao. Mục tiêu chính của Devilbox là cung cấp môi trường phát triển có thể chuyển đổi qua lại giữa các nền tảng chính như Windows, MacOS và Linux cũng như có thể chuyển đổi và kết hợp bất kỳ phiên bản phần mềm nào mà bạn muốn.

Devilbox hỗ trợ các PHP stack phổ biến như LAMPLEMP. Ngoài ra, nó còn bổ sung thêm MEAN stack giúp nhà phát triển có thêm nhiều sự lựa chọn. Công cụ này được phát triển bởi một Devops Engineer có nickname là @cytopia đến từ Đức. Hiện tại repo cytopia/devilbox đã có hơn 4k ⭐. Đồng thời cũng có rất nhiều đóng góp và thảo luận từ các thành viên khác trên Github.

Stack hay software stack là một tập hợp các thành phần độc lập được thiết kế để hoạt động cùng nhau nhằm hỗ trợ thực thi một ứng dụng. Ở đây tạm hiểu là các công nghệ được dùng để phát triển một ứng dụng web hoàn chỉnh.

  • LAMP: Linux, Apache, MySQL và PHP
  • LEMP: Linux, Nginx, MySQL và PHP
  • MEAN: MongoDB, Express(.js), Angular, Node(.js)

Các tính năng chính

Devilbox cung cấp khá nhiều tính năng cho việc xây dựng môi trường phát triển ứng dụng PHP. Thế nhưng cá nhân tôi đặc biệt chú ý đến một số tính năng được cho là đáng giá đối với người mới tiếp cận:

  1. Virtual host domain: còn gọi là tên miền ảo. Tức là mỗi khi bạn tạo một dự án mới, Devilbox sẽ tự thiết lập một tên miền ảo cho dự án đó giúp bạn dễ dàng phân biệt và truy cập từ trình duyệt. Ví dụ như project1.localproject2.local thay vì phân biệt bằng tên thư mục như localhost/project1localhost/project2.
  2. Third-party tools: Devilbox đã tích hợp sẵn các công cụ của bên thứ ba nhằm giúp việc phát triển ứng web được dễ dàng dàng hơn. Điển hình nhất chính là hai ứng web GUI: phpMyAdmin – công cụ hỗ trợ xử lý các tác vụ quản trị MySQL và PHPRedMin – công cụ hỗ trợ quản lý và giám sát Redis. Ngoài ra, Devilbox còn đi kèm hàng tá các công cụ khác như Composer, Laravel Installer, WP-CLI, Node.js, Webpack,…
  3. Hỗ trợ cấu hình mỗi dự án là một phiên bản PHP: đối với các công cụ khác, việc làm này là tương đối phức tạp hoặc thậm chí không thể vì chúng chỉ hỗ trợ chuyển đổi qua lại các phiên bản PHP mà thôi. Nhưng với Devilbox, việc này dễ dàng đến đáng sợ.
  4. Email catch-all: tính năng này cho phép bạn gửi email đến bất kỳ địa chỉ nào mà không cần quan tâm là nó có tồn tại hay không. Nội dung của email đã gửi sẽ được lưu trữ vào hòm mail nội bộ của Devilbox. Bạn có thể xem nó bất cứ lúc nào. Rất hữu ích cho việc kiểm tra các tính năng có liên quan đến email đúng không nào?
  5. Log files: logging là một phần không thể thiếu khi phát triển ứng dụng. Nó giúp cung cấp thông tin về hành vi ứng dụng một cách chi tiết, giúp quá trình debug được nhanh chóng và dễ dàng hơn. Devilbox cũng không ngoại lệ, mặc định sẽ ghi log cho tất cả các dịch vụ. Phân loại chúng thành từng thư mục tương ứng. Việc của chúng ta là chỉ cần mở lên và xem thôi.
  6. MEAN stack: đây là một tính năng cộng thêm rất đáng giá. Nếu không nói đến việc sử dụng MEAN thì việc Devilbox tích hợp sẵn Node.js và MongoDB cũng đã là một điểm cộng rồi. Vì sao ư? Vì bạn có thể tận dụng môi trường Node.js để phát triển phần giao diện của ứng dụng dựa trên các thư viện JavaScript nổi tiếng như React, Vue hay Angular,… cũng như nghiên cứu thêm một chút về NoSQL với MongoDB.
  7. PostgreSQL: một hệ quản trị cơ sở dữ liệu tương tự MySQL với nhiều tính năng đáng giá. Hiện tại, PostgreSQL đang được rất nhiều công ty sử dụng trong đó có Microsoft, Apple, Netflix, Twitch,… do được đánh giá là có hiệu năng tốt hơn MySQL.

Thế nào, bạn đã cảm thấy Devilbox “đáng để thử một lần” hay chưa? Nếu vẫn chưa thì hãy để tôi luyên thuyên thêm một chút nữa.

Devilbox poster

Tại sao nên dùng Devilbox?

  1. Zero configuration: Devilbox sẽ giúp bạn sao chép môi trường phát triển từ nền tảng này sang nền tảng khác. Ví dụ như từ Windows sang MacOS hoặc Linux mà không cần phải cấu hình phức tạp nhưng lại đảm bảo chúng giống hệt nhau. Nói không cần phải cấu hình gì thì có vẻ là “chém gió” quá nhưng ít nhất bạn không phải “bứng” nguyên ổ cứng chứa môi trường mà bạn cho là ổn trước đó.
  2. Tự động hóa: Devilbox cho phép bạn thêm các “custom script” nhằm tự động thực hiện các công việc chỉ định khi khởi động. Nhưng đó không phải là vấn đề “tự động” mà tôi muốn nhắc tới. Cái mà tôi muốn nói chính là Devilbox đã tự trang bị cho mình một công cụ để tự mình tự động cập nhật, kiểm thử và phát hành các thành phần tích hợp bên trong như PHP, MySQL, PostgreSQL,… mỗi khi các thành phần này có phiên bản mới nhằm đảm bảo mọi thứ lúc nào cũng up-to-date. Đúng là tính năng rất đáng tiền phải không?
  3. Dockerized: Devilbox được xây dựng dựa trên Docker nhưng theo một cách đơn giản nhất và dễ tiếp cận nhất. Do đó nó kế thừa được tính di động của Docker giúp dễ dàng đóng gói và phân phối ứng dụng. Tức là bạn không cần phải “bứng” ổ cứng như tôi đã đề cập trước đó. Ngoài ra, do đây là nền tảng Docker nên bạn sẽ dễ dàng thêm thắt hay chỉnh sửa các thành phần theo ý muốn. Còn nếu bạn chưa biết gì về Docker thì cũng đừng ngần ngại. Tôi tin tưởng đây cũng là một công cụ hay để giúp bạn bổ sung kiến thức. Tin tôi đi, nó dễ làm quen lắm!

Kết luận

Qua vài lời giới thiệu trên, tôi cũng hy vọng rằng bạn đã có chút động lòng với Devilbox! Còn nếu chưa thì cũng không sao. Tôi sẽ từ từ chứng minh cho bạn thấy. Bây giờ hãy cùng nhau qua bước qua phần tiếp theo để xem cách cài đặt Devilbox như thế nào. Có phải nó đơn giản như tôi đã “chém gió” hay không? Let’s go!

© 2024 - 2025
Khuyên Nguyễn
Made with in CT