Quay lại

2026/10/12

Hầu hết các dự án di chuyển đều bắt đầu bằng một quyết định: chuyển từ Oracle Java SE sang OpenJDK, thay thế một bản phân phối Linux đã hết vòng đời, hoặc hợp nhất máy chủ vào đám mây riêng. Trên giấy tờ, kế hoạch thường trông khá đơn giản. Rồi nhóm dự án phát hiện ra những môi trường chạy Java mà không ai biết đến, những máy chủ không có người phụ trách, và những ứng dụng âm thầm phụ thuộc vào một phiên bản cũ. Tiến độ bị chậm và ngân sách tăng lên.

Cách để tránh điều này là bắt đầu bằng khảo sát: một bản kiểm kê đầy đủ, dựa trên thực tế về những gì thực sự đang được cài đặt. Bài viết này giải thích cần thu thập những gì, cách thu thập trên Windows và Linux, những bất ngờ thường gặp, và cách biến kết quả thành kế hoạch di chuyển.

Những điểm chính

  • Hãy xây dựng bản kiểm kê đầy đủ về Java và Linux trước khi lập bất kỳ kế hoạch di chuyển nào.
  • Với mỗi môi trường chạy, hãy ghi lại phiên bản đầy đủ, nhà cung cấp, đường dẫn và người phụ trách.
  • Tìm kiếm trong hệ thống tệp chứ không chỉ trong danh sách gói: nhiều môi trường chạy được giải nén trực tiếp hoặc đi kèm ứng dụng.
  • Phân loại kết quả thành bốn nhóm (gỡ bỏ, thay thế, phối hợp, điều tra) và lập kế hoạch từ đó.

Vì sao khảo sát phải đi trước di chuyển

Một dự án di chuyển chỉ tốt khi thông tin làm nền tảng cho nó là chính xác. Nếu không có bản kiểm kê, bạn sẽ phải ước tính phạm vi dựa vào trí nhớ, các bảng tính cũ và hồ sơ giấy phép, mà không nguồn nào trong số đó phản ánh những gì thực sự đang chạy hiện nay.

Một bản kiểm kê tốt mang lại cho bạn ba điều:

  • Phạm vi: có bao nhiêu máy, môi trường chạy và ứng dụng bị ảnh hưởng, để bạn có thể ước tính công sức và chi phí một cách thực tế.
  • Rủi ro: hệ thống nào đang chạy phiên bản không còn được hỗ trợ hoặc chưa được vá, và hệ thống nào là quan trọng đối với hoạt động kinh doanh.
  • Trách nhiệm: ai chịu trách nhiệm cho từng hệ thống, để việc kiểm thử và phê duyệt có người phụ trách rõ ràng.

Bản kiểm kê còn giúp bảo vệ bạn trong các cuộc trao đổi về giấy phép. Nếu nhà cung cấp hỏi bạn có bao nhiêu bản cài đặt, một bản kiểm kê cập nhật cho phép bạn trả lời bằng dữ liệu thực tế thay vì phỏng đoán.

Cần thu thập gì: phiên bản, nhà cung cấp, đường dẫn và người phụ trách

Với mỗi bản cài đặt Java, hãy thu thập tối thiểu các thông tin sau:

  • Máy chủ: tên máy, địa chỉ IP, và đó là máy chủ, máy ảo hay máy tính để bàn.
  • Phiên bản: chuỗi phiên bản đầy đủ, ví dụ 1.8.0_202 hoặc 17.0.10, chứ không chỉ “Java 8” hay “Java 17”.
  • Nhà cung cấp: đơn vị đã build môi trường chạy, chẳng hạn Oracle hoặc một bản phân phối OpenJDK. Chỉ riêng số phiên bản không cho bạn biết điều này.
  • Loại và đường dẫn: đó là JDK đầy đủ hay chỉ là JRE, và thư mục nơi nó được cài đặt.
  • Mục đích sử dụng: những ứng dụng hoặc dịch vụ nào đang dùng nó, nếu bạn có thể xác định được.
  • Người phụ trách: nhóm hoặc cá nhân chịu trách nhiệm cho máy hoặc ứng dụng đó.

Với các máy chủ Linux, hãy thu thập thêm bản phân phối và phiên bản, phiên bản kernel, các gói chính đã cài đặt và các dịch vụ đang chạy. Thông tin này cho bạn biết máy chủ nào thuộc phạm vi di chuyển Linux bên cạnh di chuyển Java.

Windows, Linux và máy tính để bàn: những cách tiếp cận khác nhau

Mỗi môi trường cần một phương pháp hơi khác nhau. Các lệnh dưới đây chỉ là điểm khởi đầu; trên thực tế, các nhóm thường đưa chúng vào một script và chạy trên tất cả các máy bằng công cụ quản lý sẵn có.

Máy chủ Windows

Các môi trường chạy Java đã cài đặt thường tự đăng ký dưới khóa registry HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft của Windows, nhưng không phải tất cả đều như vậy. Tìm kiếm trong hệ thống tệp đáng tin cậy hơn:

Get-ChildItem -Path C:\ -Filter java.exe -Recurse -ErrorAction SilentlyContinue |
  Select-Object FullName, @{n='Version'; e={$_.VersionInfo.ProductVersion}}

Hãy kiểm tra mọi ổ đĩa, không chỉ ổ C:, vì máy chủ ứng dụng thường được cài trên một ổ dữ liệu riêng.

Máy chủ Linux

Trên Linux, hãy kết hợp trình quản lý gói với việc tìm kiếm tệp, vì nhiều môi trường chạy Java được giải nén từ tệp lưu trữ thay vì cài đặt dưới dạng gói:

cat /etc/os-release
rpm -qa | grep -i -E 'jdk|jre|java'
find / -xdev -type f -name java -perm -u+x 2>/dev/null

Trên Debian hoặc Ubuntu, hãy dùng dpkg -l | grep -i -E 'jdk|jre' thay cho rpm. Với mỗi tệp thực thi java tìm thấy, chạy nó với tham số -version sẽ hiển thị phiên bản và thường cả nhà cung cấp. Hầu hết các thư mục JDK cũng chứa một tệp release ghi tên đơn vị triển khai (implementor).

Máy tính để bàn

Máy tính để bàn là phần thường bị bỏ sót nhất trong bản kiểm kê. Lập trình viên tự cài JDK của riêng mình, và đôi khi các ứng dụng nghiệp vụ âm thầm cài đặt một môi trường chạy Java. Vì số lượng máy tính để bàn lớn, hãy tận dụng chức năng kiểm kê phần mềm của công cụ quản lý thiết bị đầu cuối nếu có thể, và chỉ chạy một script gọn nhẹ ở những nơi còn thiếu thông tin.

Những bất ngờ thường gặp (JRE đi kèm, máy chủ bị lãng quên)

Hầu như dự án khảo sát nào cũng phát hiện ra những điều không ai ngờ tới. Phổ biến nhất là:

  • Môi trường chạy đi kèm: nhiều ứng dụng thương mại tích hợp sẵn môi trường chạy Java riêng trong thư mục cài đặt của chúng. Môi trường này có thể không xuất hiện trong registry hay trong bất kỳ danh sách gói nào.
  • Nhiều phiên bản trên một máy: các môi trường chạy cũ hiếm khi được gỡ bỏ khi cài phiên bản mới, nên một máy chủ có thể có tới ba hoặc bốn phiên bản.
  • Máy chủ bị lãng quên: máy thử nghiệm, máy chủ xử lý batch cũ và máy ảo chưa bao giờ được ngừng sử dụng, thường chạy các phiên bản lỗi thời và chưa được vá.
  • Không rõ người phụ trách: những máy không ai nhận trách nhiệm. Cần có quyết định cho các máy này trước khi bắt đầu di chuyển, kể cả khi quyết định đó là tắt chúng đi.

Mẹo: Môi trường chạy đi kèm ứng dụng thường phải được xử lý thông qua nhà cung cấp ứng dụng chứ không thể thay thế trực tiếp, vì vậy hãy ghi nhận chúng tách biệt với các môi trường chạy do bạn tự quản lý.

Từ bản kiểm kê đến kế hoạch di chuyển

Khi đã thu thập xong dữ liệu, hãy tập hợp tất cả vào một nơi và rà soát cùng những người phụ trách hệ thống. Sau đó, phân các bản cài đặt thành các nhóm:

NhómBao gồmCần làm gì
Gỡ bỏCác môi trường chạy không còn được sử dụngGỡ cài đặt ngay để giảm rủi ro và nguy cơ liên quan đến giấy phép
Thay thếCác môi trường chạy do bạn tự quản lýChuyển sang một bản build OpenJDK được hỗ trợ sau khi kiểm thử
Phối hợpCác môi trường chạy đi kèm ứng dụng của bên thứ baTrước tiên, lấy tuyên bố hỗ trợ từ nhà cung cấp ứng dụng
Điều traMọi thứ không có người phụ trách hoặc không rõ mục đíchTìm người phụ trách, hoặc quyết định tắt đi

Từ các nhóm này, bạn có thể xây dựng một lịch trình thực tế: bắt đầu với các hệ thống ít rủi ro để kiểm chứng quy trình, sau đó chuyển sang các hệ thống quan trọng với phương án khôi phục (rollback) đã được kiểm thử.

Mẹo: Hãy chạy lại quét khảo sát ngay trước khi chuyển đổi chính thức. Môi trường thay đổi trong suốt một dự án dài, và các bản cài đặt mới sẽ xuất hiện.

LOGIQ có thể hỗ trợ như thế nào

LOGIQ thực hiện các dự án khảo sát và di chuyển cho môi trường Java và Linux, sử dụng các script và quy trình đã được hoàn thiện qua các dự án thực tế của khách hàng trên máy chủ Windows, máy chủ Linux và máy tính để bàn. Nếu bạn cần hỗ trợ xây dựng bản kiểm kê hoặc biến nó thành kế hoạch di chuyển, hãy liên hệ LOGIQ.