12/08/2018, 14:17

Giới thiệu về vagrant

Nếu bạn đang là một Web developer hay database developer mà chưa ứng dụng ảo hóa (môi trường ảo) vào công việc của bạn thì bạn nên đọc bài viết này vì nó có thế đem lại cho bạn một chút gì đó. Bạn đã bao giờ gặp phải những vấn đề như: các freelancer join vào project của bạn, đồng nghiệp phàn nàn ...

Nếu bạn đang là một Web developer hay database developer mà chưa ứng dụng ảo hóa (môi trường ảo) vào công việc của bạn thì bạn nên đọc bài viết này vì nó có thế đem lại cho bạn một chút gì đó.

Bạn đã bao giờ gặp phải những vấn đề như: các freelancer join vào project của bạn, đồng nghiệp phàn nàn việc việc phải cài đặt lại môi trường phát triển vì hệ thống update, khách hàng của bạn thuyết phục bạn giúp họ khi deploy chạy trên trong môi trường thực tế. Hoặc thậm chí là cả khi những backend developer cũng phải giật mình khi code chạy sai hoặc không chạy trên môi trường production.Và hầu như câu trả lời cho những vấn đề đó đều là do sự không đồng nhất giữa các môi trường với nhau.

Có rất nhiều lí do nghe qua cũng khá hợp lí để gạt bỏ việc này như: tại sao lại phải thay đổi môi trường làm j và dù với lí do gì thì mọi quyết định cũng sẽ duy về tránh làm thay đổi. Đồng ý là có rất nhiều công nghệ mới ra đời mỗi ngày và tôi cũng chẳng hề quan tâm đến chúng, đơn giản là vì các công cụ tôi đang sử dụng vẫn hoạt động thừa đủ tốt. Nhưng Vagrant thật sự đáng quan tâm. Tôi vẫn nhớ cảm giác khi nghe về vagrant. Nó như một điều mới mẻ lóe sáng trong đầu tôi rằng: "wow, tốt nhất nên sử dụng nó ngay bây h, mình sẽ public project cho mọi người". Nó thật sự rất đơn giản để chuyển đổi qua lại giữa các môi trường. Và trong bài viết này chúng ta sẽ cùng tìm hiểu qua một chút về vagrant.

WHAT?

Có phải bạn đang xây dựng một hệ thống trên môi trường A để rồi sau đó nó run trên môi trường B. Liệu những công cụ máy ảo như Parallels hay VM ware đang tạo ra môi trương ảo giống hệt như môi trường server side mà được vận hành bằng điện toán đám mây. Vagrat biến việc copy môi trường server hoặc thậm chí một cụm server trở thành một việc hết sức dễ dàng. Theo như vagrant doc:

 If you’re a designer, Vagrant will automatically set everything up that is required for that web app in order for you to focus on doing what you do best: design. Once a developer configures Vagrant, you don’t need to worry about how to get that app running ever again. No more bothering other developers to help you fix your environment so you can test designs. Just check out the code, vagrant up, and start designing.

Đúng thế một designer thì chẳng cần quan tâm đến việc config server làm j cả, tốt nhật là họ nên tập trung vào việc họ giỏi nhất. Bạn đã bao h join một dự án và phải ngồi cài đặt từng thứ một cho dự án đó chưa. Có khi phải mất đến hàng nửa ngày. Với vagrant bạn chỉ việc copy 1 folder ghi sẵn thông tin cần thiết cho server(trong vagrant được gọi là box) và đem nó đi đến mọi máy tính và run nó trên máy ảo( Vagrant sẽ tự động đồng bộ folder code app của bạn với máy ảo để nó có thể run real time).

WHY?

một điểm sang nữa của vagrant là làm việc với nó cực kì dễ dàng.Hơn nữa, bạn có nhớ những j mà chúng ta đã thảo luận ở phần trên về các vấn đề gặp phải khi phát triển dự án không. Khi bạn làm freelancer việc chạy nhiều project một lúc không phải là một chuyện quá xa lạ, việc cài tất cả các môi trường vào trong máy là việc lúc thì apache, lúc thì nginx, lúc thì php lúc thì ruby, và nhìn chung môi trường làm việc của bạn sẽ rất hỗn tạp. Tư tưởng mà vagrant đề ra là sẽ sử dụng những file box để lưu trữ về mootjmooi trường nào đó.khi bạn làm việc với project A chạy nginx chỉ việc up box đã setup cho project A, làm việc với project B chạy apache chỉ việc up box đã setup cho project B. Và quan trọng nhất là bạn không phải cài đặt bất cứ j vào máy tính của mình. Đôi khi khách hàng phàn nàn và muốn bạn giúp họ khi đưa lên môi trường project bị lỗi, nguyện nhân chủ yếu của việc này là do sự không đồng nhất giữa các môi trường. Vagrant sinh ra để giải quyết vấn đề này. Bạn đã từng tham gia vào các dự án đóng góp cho cộng đồng chưa? việc thống nhất môi trường là một cách cực kì hữu hiệu để tránh những lỗi đại khái như trên máy người này chạy đúng máy người kia chạy sai....

Cảm nghĩ cá nhân về Vagrant

Rõ ràng chúng ta thấy được những điểm mạnh rất lớn của Vagrant, và nếu tiếp tục tìm hiểu thì chúng ta sẽ còn thấy được nhiều hơn. Tuy nhiên dưới góc độ của 1 developer, tôi cho rằng có 1 vấn đề khá lớn đối với Vagrant.

Thường thì trong team, leader sẽ đảm nhiệm việc config vagrant từ đầu đến cuối, điều này giúp ích rất nhiều cho members. Tuy nhiên, nếu trong team có nhiều người mới làm quen với công việc, và tiếp tục sử dụng Vagrant, họ sẽ không thể có cơ hội thực hành config server thực tế. Điều này có thể cản trở việc cải thiện khả năng của họ. Do vậy, chúng ta cần sử dụng Vagrant 1 cách linh hoạt kết hợp với nâng cao khả năng của các members trong team.

source
https://24ways.org/2014/what-is-vagrant-and-why-should-i-care/
0