This page is READ-ONLY. It is generated from the old site.
All timestamps are relative to 2013 (when this page is generated).
If you are looking for TeX support, please go to VietTUG.org

capistrano: phần 2

phần 1 đâu? phần cuối đâu?
Added by almost 3 years ago

Bắt đầu với capistrano bằng phần 2 thì cũng hơi kỳ. Nhưng bạn sẽ biết lý do tại sao sau khi đọc hết bài này :)

Sau khi đọc qua một mớ tài liệu của nó tại http://www.capify.org/, thì mình có thể tóm tắt thế này: capistrano là cách thay thế các lệnh nix trên máy localremote bằng các dòng mã Ruby. Có thể tóm tắt ý tưởng của nó bằng hình vẽ ở bênh phải.

Bài toán xuất phát của capistrano như sau: có một hệ thống được phát triển với mã nguồn được quản lý bởi git chẳng hạn, và ta cần triển khai hệ thống đó trên n máy chủ khác nhau. Sau khi được triển khai, hệ thống sẽ được bảo trì, theo dõi, nâng cấp đều đặn. Như vậy, có rất nhiều công việc (các lệnh) sẽ lặp đi lặp lại trên nhiều máy chủ và tại nhiều thời điểm khác nhau. Capistrano là một cách để tự động hóachuẩn hóa công việc.

Theo hình vẽ, capistrano là một kịch bản ruby, thay thế các tập lệnh khó hiểu của hệ thống nix bằng các biến và phương thức thân thiện. Một số (thực ra là chủ yếu) các lệnh nguyên thủy sẽ được capistrano chuyển qua ssh tunnel để thi hành trên máy chủ (ví dụ, sao lưu dữ liệu); kết quả của việc thi hành đó có thể lấy về để theo dõi trên local.

Về lý thuyết, capistrano có thể làm mọi thứ giống như bạn đang ở trong một shell thật sự. Tuy nhiên, trong phiên bản hiện tại nó không thể làm một số việc như tạo database (xem ở Faq). Nó biến một số việc đơn giản lại trở nên phức tạp (ví dụ cấu hình cho ssh). Và capistrano chắc chắn sẽ gặp khó khăn khi sử dụng trong hệ thống có nhiều lớp gateway (tức là máy chủ cần triển khai nằm sau hai hay nhiều máy trạm khác cần đăng nhập độc lập), hoặc các máy chủ không hỗ trợ SCP.

Ngó qua, ngó lại, thấy rằng việc biết thêm capistrano có cái hay, nhưng nó chẳng khác gì ... công cụ như GNU make hay BSD make. Với một tay chuyên lập trình kịch bản tự động với shell script thì việc dùng Capistrano là một trải nghiệm khó ưa:)) Nó càng khó ưa hơn vì một số việc nó không thể làm tốt như đã kể ở trên.

Vậy capistrano cần cho ai? Vì sao nó tồn tại?

  1. Vì nó là ruby way, dễ hiểu và dễ dùng với lập trình viên ruby, trong môi trường ruby;
  2. Vì nó thích hợp với người không thạo lập trình shell hay giao diện dòng lệnh của hệ thống nix;
  3. Vì nó thích hợp với người chưa hoặc không rành Makefile;
  4. Vì nó được chuẩn hóa và có vẻ khá thân thiện;
  5. Vì có thể một số IDE tích hợp capistrano;
  6. Vì nó có thể mở rộng dễ dàng, nhờ khả năng của ruby
  7. Vì nó có sức mạnh tổng hợp của ruby, shell.

Trừ khi ông chủ bắt dùng, mình sẽ lựa chọn GNU/BSD make thay vì capistrano hay các công cụ tương tự. (Và vì thế) Bài viết này đáng lẽ nằm trong một chuỗi giới thiệu và hướng dẫn dùng capistrano thì chỉ có vỏn vẹn phần 2. Đó cũng là phần cuối. Còn phần 1, bạn hãy tự viết lấy đi :P


Comments