Kinh nghiệm triển khai và vận hành Odoo ERP trên Ubuntu Server – Từ VMware đến Cloud

Giới thiệu

Tôi bắt đầu làm việc với Odoo ERP từ tháng 6/2018, thời điểm Odoo đã là một trong những nền tảng ERP mã nguồn mở đáng chú ý dành cho doanh nghiệp.

Trong quá trình triển khai và vận hành thực tế, tôi đã làm việc với nhiều phiên bản như Odoo 8, 9, 10 và 12 Community, phục vụ hệ thống có hơn 100 người dùng thuộc nhiều phòng ban khác nhau.

Điểm đặc biệt trong quá trình này là tôi không chỉ quản trị Odoo ở cấp độ ứng dụng, mà trực tiếp xây dựng gần như toàn bộ nền tảng phía dưới:

VMware ESXi → Ubuntu Server → PostgreSQL → Odoo → Nginx → SSL/HTTPS → Firewall → Backup

Hệ thống ban đầu được triển khai trên hạ tầng VMware ESXi nội bộ, sau đó từng bước chuyển lên môi trường Cloud.

Qua nhiều năm vận hành, Odoo giúp tôi có một góc nhìn khá thực tế về ERP: cài đặt được một hệ thống ERP không phải là phần khó nhất; làm sao để hệ thống vận hành ổn định và phù hợp với quy trình của từng phòng ban mới thực sự là vấn đề quan trọng.


1. Vì sao tôi lựa chọn Odoo?

Một trong những lý do lớn nhất khiến tôi lựa chọn Odoo là:

Open Source – linh hoạt – chi phí triển khai hợp lý – có khả năng tùy biến theo nhu cầu doanh nghiệp.

Thay vì phải đầu tư ngay một khoản chi phí lớn cho bản quyền ERP, với Odoo Community, doanh nghiệp có thể bắt đầu từ những module thực sự cần thiết.

Chi phí chủ yếu tập trung vào:

  • Hạ tầng Server.
  • Nhân sự triển khai.
  • Customization.
  • Module bên thứ ba nếu cần.
  • Vận hành và bảo trì hệ thống.

Đây là hướng tiếp cận khá phù hợp đối với doanh nghiệp muốn từng bước số hóa và tự động hóa quy trình nhưng vẫn muốn kiểm soát chi phí.

Mục tiêu ban đầu của hệ thống tôi triển khai là quản lý tập trung các hoạt động như:

  • Quản lý công việc.
  • Quản lý dự án.
  • CRM cho Phòng Kinh doanh.
  • Quản lý kho.
  • Quản lý sản xuất.
  • Website.
  • Helpdesk/Ticket Support.

Trong đó, Project Management là module được sử dụng nhiều nhất.


2. Hạ tầng Odoo ban đầu: VMware + Ubuntu Server

Ở giai đoạn đầu, tôi triển khai Odoo dưới dạng máy ảo trên:

VMware ESXi 5.5 / ESXi 6.0

Kiến trúc cơ bản:

Physical Server

VMware ESXi

Ubuntu Server VM

PostgreSQL

Odoo Community

Nginx Reverse Proxy

HTTPS / Firewall / Internet

Tùy từng phiên bản Odoo, tôi sử dụng phiên bản Ubuntu Server, PostgreSQL và Python tương thích tương ứng.

Odoo được cài trực tiếp trên Ubuntu Server (native installation) thay vì Docker.

Sau này tôi có thử nghiệm Odoo chạy bằng Docker, kể cả triển khai thử trên NAS. Docker thuận tiện hơn khá nhiều trong việc đóng gói môi trường và hạn chế các vấn đề dependency, tuy nhiên khi triển khai production, người quản trị vẫn cần hiểu rõ các thành phần bên trong thay vì xem container như một “black box”.


3. Tự triển khai toàn bộ hệ thống

Trong quá trình xây dựng Odoo, tôi trực tiếp thực hiện hầu hết các công việc liên quan đến hạ tầng và hệ thống:

  • Tạo VM trên VMware.
  • Cài đặt Ubuntu Server.
  • Cấu hình Network, IP và DNS.
  • Cài đặt PostgreSQL.
  • Cài đặt Odoo Community.
  • Cấu hình Odoo.
  • Cấu hình Nginx Reverse Proxy.
  • Cài đặt SSL/HTTPS.
  • Cấu hình Firewall.
  • Quản lý Domain/DNS.
  • Cài đặt module.
  • Quản lý User và phân quyền.
  • Backup Database.
  • Backup Filestore.
  • Backup toàn bộ VM.
  • Restore hệ thống khi xảy ra sự cố.
  • Theo dõi log và xử lý lỗi dịch vụ.

Nhờ trực tiếp triển khai từ lớp hạ tầng đến ứng dụng nên khi hệ thống gặp vấn đề, tôi có thể kiểm tra xuyên suốt từ:

Network → Linux → PostgreSQL → Odoo Service → Module → Nginx → Client

Điều này đặc biệt hữu ích đối với ERP vì một lỗi người dùng nhìn thấy trên giao diện chưa chắc nguyên nhân nằm ở Odoo.


4. Bảo mật truy cập Odoo

Đối với hệ thống ERP, tôi không muốn đưa toàn bộ dịch vụ ra Internet mà không có kiểm soát.

Nguyên tắc tôi áp dụng là:

Trong LAN: người dùng nội bộ có thể truy cập đầy đủ theo quyền được cấp.

Ngoài Internet: chỉ những IP được cho phép mới có thể truy cập hệ thống.

Ngoài ra hệ thống sử dụng:

  • Nginx Reverse Proxy.
  • HTTPS.
  • Cloudflare.
  • Firewall.
  • DNS.
  • Kiểm soát quyền truy cập người dùng.

Việc xác thực người dùng cũng có thể được tích hợp với LDAP/Active Directory, giúp doanh nghiệp quản lý tài khoản tập trung thay vì phải duy trì nhiều bộ username/password riêng biệt.


5. Những module Odoo tôi đã vận hành

Trong thực tế, tôi đã làm việc với nhiều module khác nhau, bao gồm:

Project

Đây là module được sử dụng nhiều nhất trong hệ thống.

Project giúp quản lý:

  • Dự án.
  • Công việc.
  • Task.
  • Người phụ trách.
  • Tiến độ.
  • Phối hợp giữa các bộ phận.

CRM

CRM được sử dụng phục vụ Phòng Kinh doanh, quản lý tập trung các thông tin và hoạt động liên quan đến khách hàng.

Inventory

Quản lý kho là một trong những thành phần quan trọng khi ERP được mở rộng sang hoạt động sản xuất.

Manufacturing / MRP

Odoo có khả năng kết nối quy trình kho với sản xuất, giúp dữ liệu không còn nằm riêng lẻ ở từng bộ phận.

Website

Website cũng có thể được tích hợp trực tiếp vào hệ sinh thái Odoo.

Helpdesk / Ticket Support

Hệ thống Ticket giúp tiếp nhận và theo dõi các yêu cầu hỗ trợ thay cho việc xử lý rời rạc qua email hoặc trao đổi trực tiếp.

Ngoài module chuẩn, trong quá trình sử dụng tôi cũng triển khai module bên thứ ba và các module được customize riêng theo yêu cầu thực tế.


6. Công việc của người quản trị Odoo

Sau khi ERP đi vào hoạt động, công việc không dừng lại ở việc “Server đang chạy”.

Người quản trị cần thường xuyên thực hiện:

  • Quản lý user.
  • Phân quyền.
  • Quản lý PostgreSQL.
  • Theo dõi dung lượng.
  • Kiểm tra log.
  • Theo dõi Odoo Service.
  • Restart service khi cần.
  • Update hệ thống.
  • Quản lý module.
  • Backup.
  • Kiểm tra khả năng restore.
  • Xử lý lỗi cho người dùng.
  • Hướng dẫn IT Support hỗ trợ người dùng.

Theo kinh nghiệm của tôi, một ERP có thể hoạt động tốt về mặt kỹ thuật nhưng vẫn thất bại nếu quy trình vận hành giữa các phòng ban không được quản lý chặt chẽ.


7. Backup Odoo: Database thôi chưa đủ

Đây là một trong những kinh nghiệm tôi đánh giá rất quan trọng.

Tôi thực hiện backup Odoo theo nhiều lớp:

Odoo Backup

PostgreSQL Database

Odoo Filestore

Backup toàn bộ VM

Dữ liệu backup được đưa sang hệ thống lưu trữ khác như:

  • NAS.
  • Google Workspace/Cloud Storage phù hợp với chính sách lưu trữ của doanh nghiệp.

Backup được thực hiện hằng ngày.

Tôi cũng đã thực hiện restore Odoo trong thực tế. Khi phiên bản Odoo và cấu trúc dữ liệu tương thích, việc phục hồi nhìn chung có thể kiểm soát được.

Một nguyên tắc tôi luôn chú ý:

Không nên lưu bản backup duy nhất trên chính Server đang chạy Odoo.

Nếu Server hoặc Storage gặp sự cố thì production và backup có thể mất cùng lúc.


8. Những lỗi Odoo tôi từng gặp trong thực tế

Qua nhiều năm vận hành, tôi gặp khá nhiều vấn đề khác nhau.

Odoo Service không khởi động

Nguyên nhân có thể liên quan đến:

  • Cấu hình Odoo.
  • Python.
  • Dependency.
  • Module.
  • PostgreSQL.
  • Permission.

Log của Odoo và Linux Service là nơi đầu tiên cần kiểm tra.

Python không tương thích

Các phiên bản Odoo cũ phụ thuộc khá chặt vào phiên bản Python và các thư viện đi kèm.

Nếu cài sai phiên bản dependency, Odoo có thể không khởi động hoặc module không hoạt động.

PostgreSQL

Một số vấn đề tôi từng gặp:

  • Odoo không kết nối được Database.
  • Sai quyền PostgreSQL.
  • Database restore không thành công.
  • Không tương thích khi migration.

Module không tương thích

Đây là vấn đề khá phổ biến khi hệ thống có nhiều customization.

Một module có thể hoạt động tốt ở phiên bản Odoo hiện tại nhưng không còn chạy được khi chuyển sang phiên bản mới.

Nghiêm trọng hơn là:

Custom Module → lỗi dependency → Odoo Service crash → toàn bộ hệ thống không hoạt động.

Khi đó phải kiểm tra log, xác định module gây lỗi và xử lý ở mức source code/database nếu cần.


9. Customization – sức mạnh nhưng cũng là rủi ro

Customization là một trong những ưu điểm lớn nhất của Odoo.

Doanh nghiệp có thể thay đổi hệ thống để phù hợp với quy trình thực tế thay vì ép doanh nghiệp phải thay đổi hoàn toàn theo phần mềm.

Nhưng customization cũng tạo ra một vấn đề:

Customize càng sâu thì việc nâng cấp phiên bản càng khó.

Tôi từng gặp các tình huống:

  • Custom module không chạy trên Odoo mới.
  • Xung đột giữa module custom và module core.
  • Field thay đổi sau update.
  • Permission bị thay đổi.
  • API custom thiếu kiểm soát quyền.
  • Module làm Odoo không thể khởi động.

Vì vậy nếu triển khai lại, tôi sẽ hạn chế can thiệp trực tiếp vào core và yêu cầu các customization phải được thiết kế theo chuẩn module của Odoo.


10. Khó khăn lớn nhất: Upgrade và Migration

Đây là điểm tôi gặp khó khăn nhất trong quá trình vận hành Odoo Community.

Việc nâng cấp từ một phiên bản Odoo cũ đã customize nhiều sang phiên bản mới không đơn giản như update một ứng dụng thông thường.

Không thể chỉ:

Cài Odoo mới → Restore Database cũ → chạy tiếp.

Schema database, module, Python dependency, PostgreSQL và đặc biệt là custom code có thể đã thay đổi.

Tôi từng gặp tình huống database phiên bản cũ không thể đơn giản import vào môi trường Odoo mới, đặc biệt khi hệ thống đã được customize.

Vì vậy, theo kinh nghiệm của tôi:

Migration Odoo cần được xem như một dự án riêng, không nên xem là một thao tác update Server.

Đây cũng là lý do tôi ưu tiên tính ổn định của hệ thống đang hoạt động hơn việc chạy theo phiên bản mới nhất.


11. Từ VMware lên Cloud

Hạ tầng Odoo ban đầu của tôi được xây dựng trên VMware ESXi 5.5/6.0.

Sau này hệ thống được chuyển dần sang môi trường Cloud, bao gồm:

  • Google Cloud.
  • Amazon Web Services (AWS).

Việc chuyển lên Cloud giúp giảm sự phụ thuộc vào Server vật lý tại chỗ, nhưng nguyên tắc quản trị Odoo cơ bản vẫn không thay đổi:

Hạ tầng ổn định + Database an toàn + Backup tốt + Security + kiểm soát customization.

Cloud không tự động giải quyết các vấn đề về ERP nếu quy trình ứng dụng và dữ liệu không được quản trị tốt.


12. Nếu xây dựng Odoo ERP lại từ đầu hiện nay

Nếu doanh nghiệp có nhu cầu xây dựng một hệ thống ERP mới, tôi hoàn toàn có thể lựa chọn Odoo một lần nữa.

Và thực tế, tôi rất thích việc xây dựng một hệ thống mới từ đầu vì có thể chủ động thiết kế kiến trúc, bảo mật, backup và quy trình vận hành ngay từ ban đầu.

Nền tảng

Tôi sẽ ưu tiên:

Odoo Community phiên bản phù hợp và còn được duy trì

Ubuntu Server LTS

PostgreSQL

Docker

Nginx Reverse Proxy

HTTPS

Hạ tầng có thể chạy trên:

  • VMware ESXi.
  • Proxmox VE.
  • Cloud.

Docker là lựa chọn tôi muốn sử dụng nhiều hơn so với trước đây vì giúp quản lý dependency và triển khai môi trường thuận tiện hơn.

Tuy nhiên tôi vẫn muốn control được toàn bộ Odoo, PostgreSQL, volume, log và backup, thay vì chỉ biết cách start/stop container.


13. Backup nếu triển khai mới

Tôi vẫn giữ nguyên nguyên tắc backup nhiều lớp:

Database + Filestore + Application/Configuration + VM/Container + Off-site Backup

Backup có thể được đưa về:

  • NAS.
  • Google Workspace/Cloud Storage.
  • OneDrive.
  • Một vị trí off-site khác.

Điều quan trọng không phải chỉ là:

“Backup Successful”

mà phải trả lời được câu hỏi:

“Khi Server chết hoàn toàn, có restore được ERP hay không?”


14. Odoo + QR Code + truy xuất nguồn gốc

Nếu triển khai ERP cho doanh nghiệp sản xuất hiện nay, một hướng tôi đặc biệt quan tâm là kết hợp:

Odoo ERP + Inventory + Manufacturing + QR/Barcode + API

Dữ liệu từ ERP có thể liên kết với hệ thống truy xuất nguồn gốc thông qua API.

Ví dụ một kiến trúc có thể phát triển:

Nguyên liệu

Kho

Sản xuất

Thành phẩm

Odoo ERP

QR Code / Barcode

API

Hệ thống truy xuất nguồn gốc

Trong trường hợp phù hợp, có thể nghiên cứu tích hợp với VeriGoods hoặc các nền tảng truy xuất nguồn gốc khác thông qua API.

Đây là hướng tôi đánh giá có giá trị đối với doanh nghiệp sản xuất khi ERP không chỉ dùng để nhập liệu mà trở thành nguồn dữ liệu trung tâm của quá trình chuyển đổi số.


15. Odoo có phù hợp với doanh nghiệp Việt Nam?

Theo trải nghiệm của tôi, .

Một số điểm tôi đánh giá cao:

  • Open Source.
  • Có Community Edition.
  • Khả năng Việt hóa tốt.
  • Nhiều module.
  • Có cộng đồng phát triển lớn.
  • Có thể customize.
  • Có thể tích hợp API.
  • Có khả năng mở rộng từ Project/CRM đến Kho và Sản xuất.
  • Không bắt buộc doanh nghiệp phải đầu tư lớn ngay từ đầu.

Điểm tôi chưa thực sự thích là giao diện ở các phiên bản tôi từng sử dụng chưa phải lúc nào cũng đẹp và trực quan, đặc biệt với người dùng mới.

Khó khăn lớn hơn là upgrade khi hệ thống đã customize nhiều.

Vì vậy, Odoo Community có thể tiết kiệm đáng kể chi phí license, nhưng điều đó không có nghĩa ERP sẽ hoàn toàn “miễn phí”.

Doanh nghiệp vẫn cần đầu tư vào:

Hạ tầng + triển khai + customization + đào tạo + vận hành + backup + bảo mật.


16. Kinh nghiệm quan trọng nhất sau nhiều năm vận hành Odoo

Sau thời gian dài làm việc với Odoo, điều tôi quan tâm nhất không còn là câu hỏi:

“Cài Odoo như thế nào?”

Mà là:

“Làm sao để Odoo thực sự trở thành một phần trong quy trình vận hành của doanh nghiệp?”

Mỗi phòng ban có quy trình khác nhau.

Project khác CRM.

CRM khác Inventory.

Inventory lại liên quan Manufacturing.

Vì vậy người quản trị cần giám sát chặt chẽ cách vận hành của từng module dựa trên quy trình thực tế của từng phòng ban.

Nếu dữ liệu đầu vào không chính xác hoặc người dùng không tuân thủ quy trình, ERP dù tốt đến đâu cũng không thể tạo ra dữ liệu quản trị đáng tin cậy.


Kết luận

Tôi bắt đầu với Odoo từ năm 2018, trải qua nhiều phiên bản Community và trực tiếp xây dựng hệ thống từ VMware, Ubuntu Server, PostgreSQL đến Odoo, Nginx, SSL, Firewall và Backup.

Quá trình đó giúp tôi nhận ra rằng giá trị lớn nhất của ERP không nằm ở việc có bao nhiêu module.

Giá trị thực sự nằm ở khả năng:

Tập trung dữ liệu → Chuẩn hóa quy trình → Kết nối các phòng ban → Tự động hóa → Tạo dữ liệu phục vụ quản trị.

Nếu có một dự án ERP mới, Odoo Community vẫn là một trong những nền tảng tôi sẵn sàng lựa chọn.

Đặc biệt trong giai đoạn hiện nay, tôi cho rằng ERP có thể tiến thêm một bước nữa:

ERP + API + QR/Traceability + Cloud + AI

Khi đó ERP không còn đơn thuần là phần mềm quản lý nội bộ, mà có thể trở thành nền tảng dữ liệu trung tâm phục vụ quá trình chuyển đổi số của doanh nghiệp.

Zalo