PurpleCloud Brain AI tận dụng tối ưu hóa AI cho các vấn đề hiệu suất Odoo, cung cấp tối ưu hóa cơ sở dữ liệu theo chương trình và tối ưu hóa hệ thống để nâng cao hiệu suất tùy chỉnh Odoo và hiệu suất các mô-đun Odoo trên Nền tảng Lưu trữ PurpleCloud.
Trong khi Odoo tiếp tục chinh phục thêm nhiều thị phần mỗi năm, số lượng triển khai và khối lượng dữ liệu hàng ngày mà nó quản lý vẫn tiếp tục tăng với tốc độ đáng kinh ngạc. Trong khi đó, nhiều người dùng, nhà phát triển và đối tác Odoo đang phải đối mặt với nhiều vấn đề về hiệu suất hơn, với các trường hợp từ sự không thoải mái hoặc độ chậm đến các hành vi không thể chấp nhận được, ngăn cản việc triển khai phục vụ mục đích ban đầu của chúng.
Kết quả luôn giống nhau: Sự frustration của người dùng, áp lực lên các đội ngũ CNTT để tìm giải pháp trong tình huống khẩn cấp, và các lần tái cấu trúc mã tốn kém.
Tại Portcities, chúng tôi đã nhận thức được một vài năm trước rằng các công nghệ AI mới đã đạt đến cấp độ trưởng thành cần thiết để giải quyết những vấn đề hiệu suất này một cách lập trình. Do đó, dự án Run-Odoo Brain đã ra đời.
Đây là câu chuyện của nó.
VẤN ĐỀ HIỆU SUẤT ODOO
Các phẩm chất chính của Odoo cũng góp phần vào sự sụp đổ của nó khi chuẩn hóa các cải tiến hiệu suất và khả năng bảo trì chung trong dài hạn:
Lợi ích | Thách thức | |
Tính mô-đun: Các ứng dụng và mô-đun Odoo rất phong phú | Bạn có thể xây dựng và triển khai một cơ sở dữ liệu Odoo cho hầu hết mọi trường hợp kinh doanh | Việc triển khai các ứng dụng khác nhau và các mô-đun tùy chỉnh có nghĩa là hệ thống của bạn là duy nhất và sẽ cần một cách tiếp cận cá nhân hóa khi nói đến phân tích hiệu suất và khắc phục sự cố |
Khả năng thích ứng: Nhiều cài đặt có sẵn cho mỗi ứng dụng và mô-đun như một tiêu chuẩn | Điều này cho phép tùy chỉnh trải nghiệm người dùng, SOP, quy trình và sản lượng còn nhiều hơn nữa | Việc triển khai và cấu trúc/dữ liệu của nó sẽ được tùy chỉnh nhiều hơn, điều này đòi hỏi một cách tiếp cận hoàn toàn chuyên dụng và tùy chỉnh cho các vấn đề về hiệu suất |
Tốc độ phát hành: Odoo SA phát hành một phiên bản Odoo mới mỗi năm cho cả Odoo Community và Enterprise | Sản phẩm phát triển rất nhanh và cung cấp ngày càng nhiều tính năng hoàn chỉnh ngay từ khi khởi động | Mỗi phiên bản có một logic khác nhau, một cấu trúc cơ sở dữ liệu khác nhau, do đó yêu cầu phân tích và khắc phục sự cố cụ thể cho từng phiên bản |
Tại thời điểm này, chúng tôi thậm chí chưa đề cập đến các hậu quả trực tiếp của những thách thức đã liệt kê ở trên, trong số đó bạn có thể dễ dàng lập danh sách ngắn gọn như sau:
- Các bảng nhận phần lớn tải Odoo ERP về mặt khối lượng dữ liệu sẽ hoàn toàn phụ thuộc vào các mô-đun được cài đặt và loại hình kinh doanh mà khách hàng đang vận hành.
- Odoo không cho phép xóa dữ liệu. Điều này có nghĩa là người dùng tiếp tục thêm dữ liệu và các cơ sở dữ liệu cũng như lưu trữ tập tin tiếp tục phát triển theo từng tháng và năm trôi qua.
- Càng nhiều mô-đun, càng nhiều mối quan hệ giữa các mô-đun và càng nhiều ràng buộc giữa các bảng và việc truy cập bị hạn chế bởi python làm phức tạp hóa các cuộc gọi và gia tăng áp lực lên cả các Worker Python và cơ sở dữ liệu PostgreSQL.
- Càng nhiều người dùng, càng nhiều áp lực, vì nhiều người hơn cần sử dụng nhiều dữ liệu đồng thời.
- Các API và tự động hóa sẽ góp phần làm giảm hiệu suất vì tỷ lệ truy cập và khối lượng dữ liệu cần xử lý mỗi cuộc gọi có thể rất thách thức.
Để nói một cách lịch sự, và sau hơn một thập kỷ khắc phục các vấn đề hiệu suất ở tất cả các phiên bản Odoo kể từ "Open-ERP 7.0", tôi sẽ nói rằng bất kỳ triển khai Odoo nào đi vào hoạt động cũng sẽ sớm hay muộn yêu cầu tối ưu hóa hiệu suất. Mặc dù đúng là những triển khai rất nhỏ với khối lượng dữ liệu thấp sẽ khó bị ảnh hưởng sau một thập kỷ sử dụng, nhưng tôi đã chứng kiến những triển khai lớn mà gần như không sử dụng được chưa đầy 6 tháng sau khi Go-live.
THÁCH THỨC ĐÃ ĐƯỢC ĐẶT RA
Và vẫn chưa…. Vì Odoo là một mớ ráp nối của các công nghệ mã nguồn mở của bên thứ ba, khắc phục các vấn đề hiệu suất chung của nó đòi hỏi kiến thức sâu rộng bao gồm các chuyên ngành sau:
- Hạ tầng: Tất cả các hệ thống, các triển khai chuyên dụng, các nền tảng đám mây, các phiên bản và dịch vụ cư xử theo một cách rất khác nhau và tôi đã thấy các công ty tiêu tốn nhiều tiền cho máy chủ bare metal từ các hóa đơn lưu trữ hàng tháng trong khi không có điều nào trong số đó có ý nghĩa khi so sánh với số lượng người dùng và các hoạt động liên quan.
- DevOps: Cách mà CPU, bộ nhớ và I/O lưu trữ được tiêu thụ là điều quan trọng và thường bị bỏ qua hoặc đơn giản bị phớt lờ trong khi một số nguyên nhân gốc rễ của hiệu suất đôi khi phát sinh từ chế độ ảo hóa không đúng, hoặc thiết lập kernel không đúng hoặc phân bổ CPU hoặc sử dụng bộ nhớ v.v...v.v...
- Lập trình Python Odoo: Hầu hết các mã có sẵn trên cửa hàng ứng dụng Odoo hoặc được viết bởi các nhà phát triển Odoo tiêu chuẩn đều tập trung vào các khía cạnh chức năng. Rất ít được kiểm tra chịu tải hoặc thậm chí được đánh giá một cách đúng đắn khi nói đến việc đo lường các tác động tiềm ẩn của chúng trên một hệ thống sản xuất từ trung bình đến lớn. Khi không có lỗi nào trong nhật ký và người dùng cuối đã xác nhận rằng bản demo / kiểm tra / UAT đã vượt qua, các module được đưa vào sản xuất. Các vấn đề về hiệu suất sẽ phát sinh sau đó. Sự thật là: việc viết cùng một module theo cách tiếp cận tập trung vào hiệu suất đòi hỏi nhiều chuyên môn hơn vì nó yêu cầu một hiểu biết đầy đủ về những gì mà Odoo ORM thực sự làm bất đồng bộ với cơ sở dữ liệu và kho tệp mà nó hoạt động và cách mà các worker Python đang tiêu thụ mã.
- Kiến thức PostgreSQL: PostgreSQL là một động vật thực sự ấn tượng với khả năng đi đôi với độ phức tạp của nó. Có hàng trăm cách để thiết lập nó và hàng trăm cài đặt yêu cầu sự chú ý cụ thể; nhưng hầu hết các hệ thống sản xuất mà tôi gặp phải được triển khai trên các cài đặt chung của gói cộng đồng hoặc sử dụng các dịch vụ chuẩn của AWS hoặc GCP và Azure mà hoạt động kém vì chúng được triển khai với các cài đặt chung tiêu chuẩn của chúng.
Vậy, chúng ta ở đây, cần phân tích hệ thống chuyên sâu kết hợp với cơ sở hạ tầng đầy đủ và chuyên môn full-stack: Thử thách đã được đặt ra. Nhưng thay vì để con người nhặt lên và tiêu tốn hàng trăm giờ làm việc có thể tính phí để sửa chữa từng triển khai một, tại Portcities, chúng tôi đã quyết định tận dụng AI bằng cách dạy cho nó mọi thứ mà nó cần biết để nó có thể làm trong vài phút những gì các kỹ sư giỏi nhất trong đội ngũ của chúng tôi thậm chí không dám tưởng tượng làm trong vài tuần.
CHAT GPT: THÁCH THỨC XÂY DỰNG TRÍ TUỆ
Khi chúng tôi lần đầu tiên bắt đầu chơi với ChatGPT, chúng tôi nhanh chóng nhận ra rằng mặc dù AI có khả năng kỳ diệu trong việc giải thích và giải quyết các chủ đề tiêu chuẩn, nhưng nó lại rất thiếu sót khi chúng tôi bắt đầu giao cho nó những nhiệm vụ phức tạp hơn.
Mặc dù kết quả không hề thoải mái, nhưng những nỗ lực liên tiếp đã phải trả giá cao: nhiều lý luận hơn, nhiều câu trả lời kém hơn, nhiều lý do hơn, nhiều vòng lặp lại hơn, v.v.
Chúng tôi trở nên ngớ ngẩn và làm theo vòng tròn.
Chúng tôi nhanh chóng học hỏi từ những sai lầm của mình và nhận ra rằng cách duy nhất để tận dụng hiệu quả AI là áp dụng các quy tắc sau:
- Xây dựng các mô hình AI mạnh mẽ bao gồm các dòng định tuyến đã được xác định trước để cung cấp 'cấu trúc lý luận' phù hợp ngay từ đầu và kiểm soát bất kỳ sự lạc hướng vô ích nào.
- Cải thiện việc ra lệnh cho AI với một cú pháp nhất quán để tránh những "hiểu lầm" điển hình dẫn đến việc hiểu sai và các khuyến nghị vô nghĩa.
- Tăng cường kiến thức của AI bằng cách chỉ ra mã liên quan, ví dụ và ấn phẩm nâng cao thực tiễn tốt nhất.
- Cung cấp cho AI các trường hợp sử dụng gặp phải trong mỗi phiên phân tích và khắc phục sự cố. Mỗi cơ sở dữ liệu đi kèm với các trường hợp và thách thức không mong đợi mới. Tận dụng những điều này là một cơ hội tuyệt vời để học hỏi và cải thiện một phương pháp phát hiện mẫu mà sự liên quan của nó sẽ liên tục đạt được mục tiêu khi đưa ra các khuyến nghị tốt nhất.
Chúng tôi đã thử nghiệm với nhiều AI khác nhau trước khi đi đến kết luận rằng tất cả đều yêu cầu cùng một phương pháp được tinh giản theo những nguyên tắc cơ bản giống nhau. Cuối cùng, không phải là con chó, mà là cách bạn dạy con chó.
THU THẬP CÁC PHẦN THƯỞNG
Cuối cùng, sau nhiều tháng nghiên cứu và thử nghiệm kỹ lưỡng, đây là điều đã xảy ra: BRAIN 0.1 ra đời.
Chúng tôi quyết định chạy nó trên một triển khai lớn Odoo 16 bị ảnh hưởng bởi các vấn đề hiệu suất từ trung bình đến nghiêm trọng trên một cơ sở dữ liệu chứa khoảng 2 năm dữ liệu hoạt động. Dưới đây là kết quả một cách tóm tắt:
Lợi ích hiệu suất tổng quát
BRAIN AI đã so sánh thời gian phản hồi trung bình của backend Odoo trước và sau khi tối ưu hóa và đo lường rằng thời gian thực thi trung bình đã giảm từ 1184 ms xuống 293 ms sau khi xác nhận điều đó với các nhật ký. Điều này có nghĩa là tốc độ đã tăng với tỷ lệ X4.
Đánh giá cải tiến hiệu suất theo chức năng / mô-đun
📒 Kế toán & Tài chính
Mô-đun: tài khoản, báo cáo tài khoản, kế toán viên, l10n_*
Cải tiến: Danh sách hóa đơn, đối chiếu, báo cáo tài chính, hiệu suất bảng điều khiển.
👥 HR & Payroll
Các mô-đun: hr, hr_expense, hr_payroll, hr_holidays, hr_attendance
Cải tiến: Truy cập hồ sơ nhân viên nhanh hơn, theo dõi chi phí và tạo bảng lương.
🛒 Bán hàng & CRM
Các mô-đun: sale, crm, contacts
Cải tiến: Tìm kiếm khách hàng, bảng báo giá và danh sách đơn hàng linh hoạt.
📦 Tồn kho & Mua sắm
Các mô-đun: tồn kho, mua sắm, sản phẩm
Cải tiến: Tìm kiếm sản phẩm, các thao tác chuyển giao, điều hướng đơn đặt hàng.
🌐 Trang web, Cổng thông tin & Tiếp thị
Các mô-đun: trang web, cổng thông tin, email
Cải tiến: Tìm kiếm cổng thông tin, tải trang web, hiệu suất trò chuyện/thông điệp.
🔐 Kiểm soát truy cập & Hệ thống
Các mô-đun: cơ sở, web, cài đặt
Cải tiến: Tải giao diện người dùng nhanh hơn, kiểm tra quyền, đánh giá quy tắc truy cập.
🛠️ Công việc Kỹ thuật / Nền tảng
Các mô-đun: base_automation, queue_job, bus
Cải tiến: Công việc Cron, hàng đợi bất đồng bộ, truy cập nhật ký/sự kiện.
Tóm tắt cải tiến hiệu suất
Các hành động và sản phẩm
Tóm lại:
- Một chu trình thực hiện kéo dài 22 phút.
- 12 hành động được thực hiện ở cấp hạ tầng
- 680 hành động được thực hiện ở cấp cơ sở dữ liệu
- 23 cài đặt cơ sở dữ liệu đã được sửa đổi
- 3 cài đặt cấu hình odoo đã thay đổi
- 16 khuyến nghị về lập trình và hạ tầng để cải thiện hơn nữa
- Sản xuất một báo cáo chi tiết toàn diện 460 trang tóm tắt các thay đổi.
Đây là một ví dụ tốt mặc dù chúng tôi vừa có như tôi viết bài báo này một chiến thắng khác trong một triển khai lớn với sự gia tăng tốc độ đáng kể 17,5 lần, chuyển đổi câu chuyện Odoo từ "Chúng tôi sắp từ bỏ" sang "Chúng tôi sẽ mở rộng triển khai này và sử dụng nó như xương sống mới của chúng tôi".
Và tuy nhiên, với tư cách là CTO nhóm và người khởi xướng Brain, tôi vẫn chưa hài lòng với trí thông minh "chủ động" của nó. Nó cần học hỏi nhiều hơn và "trải nghiệm" nhiều dữ liệu hơn. Một đánh giá trung thực vào thời điểm này sẽ là nói rằng nó hoạt động và sửa chữa khoảng 30 đến 40% những gì chúng tôi muốn nó thành thạo trong dài hạn. Thật vậy, "thực hành tạo nên sự hoàn hảo," như họ nói.
THÊM VỀ LỘ TRÌNH SẢN PHẨM
Với những kết quả hàng ngày mà chúng tôi đang đạt được với Brain, chúng tôi hoàn toàn tin tưởng rằng việc tích hợp AI vào quy trình tối ưu hóa là một quyết định đúng đắn. BRAIN AI sẽ sớm được triển khai cho tất cả các ứng dụng được lưu trữ trên nền tảng hosting PurpleCloud của chúng tôi và sẽ trở thành tài sản quan trọng cho các khách hàng vừa và lớn cần đảm bảo SLA hoàn hảo và trải nghiệm người dùng chất lượng.
Trong khi đó, vì các vấn đề hiệu suất là một vấn đề phát triển trong suốt chu kỳ sống của việc triển khai Odoo và các bản nâng cấp, chúng tôi hiện đang chuyển hướng không chỉ cho phép sử dụng "một lần" của brain trên bất kỳ triển khai nào, mà còn tích hợp AI BRAIN như một dịch vụ thường xuyên hoạt động rất giống như một đại lý có chức năng là "phiên bản nâng cao" của một kiểm tra sức khỏe mà:
- Giám sát, phát hiện vấn đề và độ chậm trong thời gian thực.
- Thực hiện các biện pháp đối phó một cách linh hoạt.
- Tự động báo cáo về hành vi người dùng, vấn đề và giải pháp.
- Đưa ra các khuyến nghị
Khám phá hiệu suất Odoo vượt trội – liên hệ với chúng tôi để tìm hiểu về Nền tảng Điện toán Đám mây PurpleCloud được vận hành bởi Brain AI ngay hôm nay!