Di chuyển một website học trực tuyến chạy Moodle sang server khác

Submitted by superthin on 28/11/2019 - 20:21:50
Di cư sang server khác

Bài viết này trình bày quá trình thực hiện việc di chuyển một website chạy Moodle từ một server này qua một server khác. Moodle là một phần mềm e-learning (vận hành các khóa học trực tuyến) chạy trền nền web thuộc loại tốt nhất thế giới. Moodle được rất nhiều học viện, trường đại học trên khắp thế giới sử dụng. Thin thực hiện việc này bởi vì đây là quá trình "làm lab", một bài thực hành Thin bày ra để thực tập như một thú vui lúc rảnh rỗi.

Tại sao lại di chuyển Moodle sang một server khác?

Lý do chung có nhiều nhưng tựu chung lại là ở hai nhóm chính như sau:

Nhóm 1: Moodle đang vận hành trên một hạ tầng mạng, cụ thể là server đang dần trở nên quá tải, không còn đáp ứng được nhu cầu của người dùng nên cần phải chuyển sang một "ngôi nhà" mới xịn sò hơn.

Nhóm 2: Moodle đang được cài đặt trên một môi trường quá thừa tài nguyên kiểu như server có quá nhiều RAM, ổ cứng lớn, đang đặt ở một nơi tốn kém một cách không cần thiết, quá nhu cầu hiện đang nên cần chuyển xuống hạ tầng server, mạng hợp lý hơn để tối ưu hóa về mặt kinh tế.

Lý do của Thin nằm ở trong Nhóm 1 kể trên. Mặc dù Thin chỉ là làm thực hành vui chơi, nhưng không có nghĩa rằng Moodle của Thin quá tải bởi vì ngày ngày một mình Thin vào đó dạy/ học. Thin có một số lượng người sử dụng Moodle nằm trên server đó, đang trở nên đông đúc ngoài dự liệu của Thin. Thin sử dụng Moodle để hướng dẫn người học một số kỹ năng cần thiết dành cho những người muốn thay đổi công việc hoặc sinh viên ra trường chưa đủ kỹ năng để xin việc.

Thin đã làm điều đó như thế nào?

Không phải thần thánh gì mà tự Thin có thể nghĩ ra việc di chuyển Moodle sang một server khác mà không cần tham khảo tài liệu. Tất nhiên, Thin đã tích lũy được một số kiến thức, kỹ năng về làm việc với website, server, mạng máy tính,... đủ để hình dung được một website khi dời sang server mới cần phải chuẩn bị những gì, dự trù được những rủi ro, thách thức xảy ra trong quá trình di chuyển đó.

Tham khảo tài liệu: https://docs.moodle.org/38/en/Moodle_migration

Khi đọc qua tài liệu tham khảo sẽ thấy các bước:

  1. Chuyển website đang chạy Moodle sang chế độ bảo trì
  2. Sao lưu Moodle trên server cũ, tức server đang hiện tại cần mang sang server khác: 1) Sao lưu database; 2) Sao lưu mã nguồn. Hai thứ này được mang qua server mới bằng các công cụ chép file
  3. Kiểm tra xem Moodle ở server mới xem đã chạy chưa?
  4. Cập nhật lại domain nếu có sự thay đổi domain bằng cách sử dụng công cụ tại {wwwroot}/admin/tool/replace/index.php
  5. Khi mọi thứ đã ổn, thoát khỏi chế độ bảo trì để người dùng có thể sử dụng

Về cơ bản, các bước trên không có điều gì đặc biệt so với các phần mềm web mã nguồn mở viết bằng PHP và MySQL khác. Các bước sau đó là những thứ linh tinh, mẹo dành cho những người thích đi đường tắt, những thứ cần lưu ý về Moodle.

Giờ thì thực hiện thôi, cứ làm rồi ắt biết có di chuyển được hay không, liệu website có bị gián đoạn quá lâu vì thực hiện quá tệ hại, qua thực hành mới biết thế nào chứ Thin không cho rằng mình có thể làm một cách ngon lành, cũng không cho rằng mình bó tay.

Rõ ràng là trong trường hợp của Thin, Thin phải tìm hiểu để xem hai server có tương thích hay không, vì khả năng webserver và hoặc phiên bản MySQL không giống nhau, khi di chuyển sang cần phải chỉnh chọc gì đó hoặc nảy sinh ra những lỗi ngớ ngẩn. Cụ thể về server của Thin:

- Server cũ nằm ở Hồng Kông - Trung Quốc, đây là trung tâm dữ liệu của một công ty Trung Quốc. Server này RAM 1GB, ổ cứng SSD 20GB còn trống sau khi cài đặt hệ điều hành. Hệ điều hành: Ubuntu 16.04 server. Máy chủ web: OpenLitespeed, PHP 7.1.

- Server mới nằm ở trung tâm dữ liệu đặt tại Tokyo - Nhật Bản, đây là trung tâm dữ liệu của một công ty Mỹ, tổng hành dinh công ty này đặt ở bang Pennsylvania. Server này RAM 2GB, ổ cứng SSD 40GB còn trống sau khi cài đặt hệ điều hành. Hệ điều hành: Ubuntu 18.04 server. Máy chủ web: Nginx, PHP 7.3.

- Khoảng cách của hai server là gần ba ngàn kilomét. Cả hai không có cPanel hay trình quản lý GUI nào, cũng không có các script cài đặt "mì ăn liền", mọi thứ đều là gõ lệnh shell Bash thông qua SSH.

Việc di chuyển mất 30 phút cả thảy từ lúc chuyển site sang chế độ bảo trì. Như vậy, Thin thực hiện chậm gấp đôi so với trên tài liệu của Moodle "Takes about 15 minutes for a small site". Hy vọng, làm lab vài lần bài như này, Thin có thể đạt được thời gian tiệm cận 15 phút, như hiện tại mà đi làm sysadmin ở một doanh nghiệp nào đó sẽ sớm bị đuổi việc vì không đạt KPI.

Thin rất tiếc là ở bài viết này Thin đã không chia sẻ được những hình ảnh minh họa cụ thể các bước, cũng không chép lệnh vào đây vì trong quá trình thực hiện Thin cũng đang dùng một máy tính Ubuntu Server. Tất cả những thứ cần làm chỉ có gõ lệnh mà thôi, việc "chụp ảnh màn hình" trên một máy tính chỉ có gõ lệnh là việc Thin chưa từng làm, cũng không biết làm như thế nào. Hơn nữa, bài viết này tuy là của một người không chuyên về IT viết, nhưng lại không dành cho những người mới sử dụng hệ điều hành họ Linux, cho nên, nếu bạn đọc được đến lúc này, hẳn bạn có thể xử lý được vấn đề di chuyển Moodle nếu bạn phải làm./.