Một ứng dụng có thể có vẻ hoạt động bình thường trong khi tiềm ẩn những rủi ro vô hình: các phụ thuộc bị bỏ rơi, các bản sao lưu chưa từng được khôi phục, các quy tắc nghiệp vụ bị chôn sâu trong mã, thiếu các bài kiểm tra, quyền truy cập quá rộng hoặc việc triển khai chỉ được biết bởi một người duy nhất. Ngược lại, mã cũ không nhất thiết là mã tồi. Nó có thể ổn định, được hiểu rõ, được giám sát đúng cách và hoàn toàn phù hợp với nghiệp vụ.
Mục tiêu của một cuộc kiểm toán kỹ thuật vì vậy không phải là để phân phát điểm tốt hay điểm xấu. Nó bao gồm việc xác lập các sự kiện có thể kiểm chứng, đo lường tác động của chúng và cung cấp cho các nhà quyết định một lộ trình thực tế. Trước khi tiến hành bảo trì trở lại, tái cấu trúc, mua lại hoặc đầu tư lớn, bức ảnh chụp này giúp tránh việc quyết định chỉ dựa trên ấn tượng để lại từ giao diện hoặc từ một vài sự cố gần đây.
Những gì một cuộc kiểm toán kỹ thuật phải cho phép quyết định
Một cuộc kiểm toán hữu ích sẽ trả lời những câu hỏi cụ thể. Ứng dụng có thể tiếp tục được vận hành mà không gặp rủi ro lớn không? Những sự cố nào là có khả năng xảy ra và hậu quả của chúng sẽ ra sao? Nhóm có thể triển khai các thay đổi mà không gây ra lỗi hồi quy không? Có thể nâng cấp dần được không hay cần phải thay thế một số thành phần? Cần ngân sách bao nhiêu cho việc bảo mật, rồi đến việc phát triển?
Anh ấy cũng phải phân biệt ba khái niệm thường bị nhầm lẫn:
- sự lỗi thời, mô tả tuổi thọ hoặc mức độ hỗ trợ của một công nghệ;
- nợ kỹ thuật, đại diện cho chi phí trong tương lai do các quyết định trong quá khứ gây ra;
- rủi ro vận hành, kết hợp giữa khả năng xảy ra sự cố và tác động của nó đến nghiệp vụ.
Một phụ thuộc cũ nhưng cô lập, đã được kiểm tra và không có sự tiếp xúc công khai có thể ít cấp bách hơn so với một tính năng mới được triển khai mà không có ghi nhật ký hoặc kiểm soát truy cập. Việc kiểm toán chính xác nhằm thiết lập thứ tự ưu tiên này.
Trong những tình huống nào nên tiến hành kiểm toán?
Kiểm toán đặc biệt có liên quan trước khi thay đổi nhà cung cấp dịch vụ, nâng cấp phiên bản chính, mở cửa cho người dùng mới, kết nối với một hệ thống quan trọng, huy động vốn hoặc mua lại một tài sản phần mềm. Nó cũng hữu ích khi thời hạn giao hàng kéo dài, các sự cố lặp lại hoặc mỗi lần cải tiến đều cần sự can thiệp của một người cụ thể.
Tuy nhiên, không nên chờ đến khi xảy ra khủng hoảng. Một cuộc kiểm toán phòng ngừa, được thực hiện khi ứng dụng đang ổn định, mang lại nhiều tự do hơn: các đội ngũ có thể sửa chữa dần dần, chọn lịch trình phù hợp và thử nghiệm các kế hoạch phục hồi mà không chịu áp lực thương mại.
Chín khía cạnh của một cuộc kiểm toán toàn diện
1. Kiến trúc và phân tách ứng dụng
Người kiểm toán tái cấu trúc các thành phần, trách nhiệm và các phụ thuộc của chúng. Họ kiểm tra xem ranh giới giữa trình bày, nghiệp vụ, dữ liệu và tích hợp có đủ rõ ràng để cho phép một sự phát triển được kiểm soát hay không. Họ không tìm cách áp đặt một mô hình lý thuyết: một kiến trúc đơn khối được cấu trúc tốt có thể đáng tin cậy hơn một tập hợp các microservices bị phân mảnh quá mức.
Các điểm được quan sát bao gồm các luồng đồng bộ và không đồng bộ, các nhiệm vụ đã lên lịch, các hàng đợi tin nhắn, các dịch vụ bên ngoài, các điểm lỗi duy nhất và các cơ chế khôi phục. Kết quả phải là một sơ đồ có thể hiểu được cả đối với các nhà phát triển lẫn người quản lý nền tảng.
2. Chất lượng và khả năng duy trì mã
Bài đánh giá tập trung vào khả năng đọc, phân chia trách nhiệm, sự trùng lặp, độ phức tạp, các quy ước, quản lý lỗi và sự hiện diện của các quy tắc nghiệp vụ ẩn. Các công cụ phân tích tĩnh có thể báo cáo các xu hướng, nhưng chúng không thể thay thế việc đọc có bối cảnh.
Một chỉ số chỉ có giá trị nếu nó dẫn đến một quyết định. Ví dụ, độ phức tạp cao trong một mô-đun hiếm khi được sửa đổi không có cùng mức ưu tiên với một mã đơn giản hơn nhưng quan trọng, được sửa đổi mỗi tuần và không có các bài kiểm tra.
3. Phụ thuộc và chu trình hỗ trợ
Cần lập danh mục các ngôn ngữ, framework, thư viện, hình ảnh container, dịch vụ được quản lý và các thành phần front-end. Đối với từng cái, kiểm toán sẽ kiểm tra phiên bản, mức độ hỗ trợ, các lỗ hổng đã biết, khả năng cập nhật và chi phí thay thế.
Sản phẩm phải tách biệt các bản cập nhật thường xuyên, các di chuyển đòi hỏi sự thích nghi và các thành phần không có lộ trình khả thi. Một danh sách thô các phiên bản là không đủ: rủi ro phụ thuộc vào mức độ tiếp xúc, mức độ quan trọng và các biện pháp bù đắp đã được thực hiện.
4. An ninh và quản lý truy cập
Phân tích bao quát xác thực, quyền hạn, quản lý bí mật, phiên làm việc, kiểm tra dữ liệu đầu vào, các phụ thuộc, nhật ký, các giao diện quản trị và các trao đổi với bên thứ ba. Các môi trường phát triển, thử nghiệm và sản xuất cần được xem xét riêng biệt.
Mục tiêu không phải là biến một cuộc kiểm toán tổng quát thành bài kiểm tra xâm nhập. Tuy nhiên, mọi lỗi nghiêm trọng quan sát được phải được báo cáo ngay lập tức, không chờ báo cáo cuối cùng. Các kiểm tra mang tính xâm nhập hơn cần có phạm vi và sự cho phép cụ thể.
5. Dữ liệu và tính toàn vẹn
Một ứng dụng nghiệp vụ thường có giá trị hơn nhờ dữ liệu và quy tắc của nó so với giao diện. Cuộc kiểm toán xem xét sơ đồ, các bản di chuyển, các ràng buộc tính toàn vẹn, khối lượng, chỉ mục, việc lưu trữ, khả năng truy xuất, nhập khẩu, xuất khẩu và các cơ chế xóa bỏ.
Anh ấy chủ yếu kiểm tra xem các bản sao lưu có tồn tại hay không, chúng có được bảo vệ và việc khôi phục đã được thử nghiệm chưa. Một bản sao lưu mà không ai biết thời gian khôi phục không phải là một kế hoạch phục hồi thực sự.
6. Hiệu suất và khả năng mở rộng
Cần phân biệt giữa những độ trễ cảm nhận, những cổ chai đã được đo lường và các giả định về tăng trưởng. Thời gian phản hồi, các truy vấn tốn kém, bộ nhớ đệm, xử lý nền, hàng đợi, trọng lượng trang và các lời gọi bên ngoài được phân tích dựa trên các phép đo có thể tái lập.
Một cuộc kiểm toán nghiêm túc tránh các tối ưu hóa sớm. Nó xác định các lộ trình quan trọng, đặt ra các mục tiêu có thể đo lường và ước lượng biên độ trước khi bão hòa.
7. Kiểm tra và kiểm soát các hồi quy
Số lượng bài kiểm tra là không đủ. Kiểm toán viên kiểm tra những gì chúng thực sự bảo vệ: các quy tắc nghiệp vụ nhạy cảm, quyền truy cập, thanh toán, nhập khẩu, di chuyển dữ liệu, API và trải nghiệm người dùng. Họ cũng quan sát sự ổn định, thời lượng và việc thực thi của chúng trong tích hợp liên tục.
Việc không có các bài kiểm tra không nhất thiết phải ngừng các tiến trình phát triển. Ngược lại, nó đòi hỏi một chiến lược bảo đảm an toàn dần dần, bắt đầu từ các chức năng có tác động lớn và các khu vực thường xuyên bị thay đổi.
8. Triển khai, lưu trữ và vận hành
Kích thước này bao gồm khả năng tái lập môi trường, triển khai, quản lý cấu hình, chứng chỉ, sao lưu, giám sát, cảnh báo, nhật ký, trực ca và khả năng phục hồi lùi lại.
Điểm mấu chốt là sự phụ thuộc vào con người. Một quy trình chỉ hoạt động vì một quản trị viên nhớ một lệnh không được tài liệu hóa tạo ra rủi ro, ngay cả khi chưa có sự cố nào xảy ra.
9. Tài liệu và khả năng chuyển giao
Tài liệu phải cho phép hiểu nghề nghiệp, bắt đầu dự án, triển khai, chẩn đoán và tiếp quản hoạt động. Nó không cần phải mô tả từng dòng mã. Nó phải bao quát những quyết định khó tái tạo và các hoạt động mà nếu quên sẽ gây ảnh hưởng.
Cuộc kiểm toán cũng xác minh quyền sở hữu mã, quyền truy cập vào kho lưu trữ, tài khoản đám mây, tên miền, chứng chỉ, công cụ theo dõi và hợp đồng dịch vụ bên thứ ba.
Chuyển các kết luận thành mức độ nghiêm trọng
Một khuyến nghị trở nên khả thi khi nó bao gồm ít nhất năm thông tin: sự việc quan sát được, bằng chứng, kịch bản rủi ro, mức độ ưu tiên và nỗ lực ước tính. Một bảng đơn giản có thể kết hợp xác suất, tác động kinh doanh, mức độ phơi nhiễm và độ khó của việc phát hiện.
Việc phân loại các hành động thành bốn tầm nhìn là hữu ích:
| Chân trời | Mục tiêu | Ví dụ |
|---|---|---|
| Ngay lập tức | Giảm thiểu rủi ro nghiêm trọng | luân chuyển các bí mật bị lộ, sao lưu, sửa lỗi kiểm soát truy cập |
| 30 ngày | Ổn định hoạt động | giám sát, tài liệu triển khai, bản vá bảo mật |
| 90 ngày | Khôi phục khả năng phát triển | kiểm tra ưu tiên, nâng cấp các phụ thuộc, tách nhỏ tập trung |
| 6 đến 18 tháng | Hiện đại hóa bền vững | thay thế một phần, di chuyển dần dần, thiết kế lại một module |
Dòng thời gian này tránh hai sai lầm: bắt đầu viết lại toàn bộ trong khi có thể thực hiện các biện pháp bảo đảm nhanh chóng, hoặc nhân nhiều sửa đổi nhỏ mà không xử lý nguyên nhân cơ cấu.
Các sản phẩm giao nộp dự kiến
Báo cáo đầy đủ phải có thể được đọc ở nhiều cấp độ. Một bản tóm tắt điều hành trình bày các rủi ro chính, các quyết định cần thực hiện và các quy mô ước lượng. Một sổ ghi chi tiết ghi lại bằng chứng và các khuyến nghị. Các phụ lục kỹ thuật chứa các phiên bản, sơ đồ, kết quả công cụ và các lệnh có thể tái tạo.
Sản phẩm cao cấp thường bao gồm:
- một bản đồ kiến trúc và luồng dữ liệu;
- một bảng kiểm kê các thành phần và nền tảng của chúng;
- một sổ đăng ký các rủi ro được ưu tiên;
- một đánh giá nợ theo từng lĩnh vực;
- các kịch bản duy trì, hiện đại hóa hoặc thay thế;
- một lộ trình với các phụ thuộc và ước lượng;
- danh sách các quyền truy cập và tài liệu còn thiếu;
- các biện pháp khẩn cấp đã được thông báo trong quá trình kiểm toán.
Làm thế nào để chuẩn bị kiểm toán mà không làm lệch nó
Trước khi bắt đầu, hãy tập hợp mã, các quy trình, tài liệu, quyền truy cập đọc, sơ đồ dữ liệu, các sự cố gần đây, khối lượng và các mục tiêu kinh doanh. Tổ chức các buổi phỏng vấn ngắn với bộ phận sản phẩm, phát triển, vận hành và, nếu có thể, một người dùng chủ chốt.
Điều quan trọng là không biến cuộc kiểm toán thành một phiên tòa xét xử đội ngũ trước. Các lựa chọn kỹ thuật thường được đưa ra dưới những hạn chế về thời gian, ngân sách hoặc năng lực. Hiểu những hạn chế này giúp đề xuất một lộ trình thực tế và thúc đẩy việc truyền đạt thông tin.
Những dấu hiệu của một cuộc kiểm toán quá hời hợt
Hãy cẩn thận với một báo cáo chỉ bao gồm các ảnh chụp công cụ, một điểm tổng thể mà không có bằng chứng hoặc một khuyến nghị về việc viết lại được quyết định trước khi phân tích. Một cuộc kiểm toán tốt sẽ làm rõ các giới hạn của nó: các phần không thể truy cập, thiếu dữ liệu thực tế, các bài kiểm tra không thể thực hiện hoặc các phụ thuộc theo hợp đồng chưa được kiểm tra.
Anh ta cũng phải phân biệt những gì chắc chắn, có khả năng hay chỉ cần xác nhận. Sự minh bạch này cho phép người ra quyết định tài trợ cho việc giảm bớt những điều chưa biết trước khi đưa ra một cam kết không thể đảo ngược.
Từ kiểm toán đến quyết định
Kiểm toán không phải là một mục đích cuối cùng. Giá trị của nó xuất hiện khi các phát hiện được chuyển hóa thành các quyết định có thể hiểu được và khi một nhóm có thể thực hiện lộ trình mà không phải khám phá lại toàn bộ lý luận. Kết quả tốt nhất không phải lúc nào cũng là tái thiết kế: nó có thể là ổn định hóa, nâng cấp phiên bản, phân tách từng bước hoặc thay thế một thành phần duy nhất.
Partitech can thiệp vào các nền tảng kỹ thuật số và ứng dụng phức tạp, kể cả khi chúng được phát triển bởi bên thứ ba. Cách tiếp cận của chúng tôi nhằm bảo đảm an toàn cho hệ thống hiện có, giữ gìn giá trị kinh doanh và đề xuất một lộ trình phù hợp với các rủi ro thực tế.
Để kéo dài bước này, hãy khám phá phương pháp tiếp cận của chúng tôi về kiểm toán kỹ thuật và tư vấn, các điểm cần xác định để tiếp quản việc bảo trì một ứng dụng hiện có, một lộ trình để hiện đại hóa một ứng dụng kế thừa mà không viết lại toàn bộ và tham chiếu của chúng tôi về nền tảng nghiệp vụ tài chính.
Tài liệu tham khảo chính thức
Các tham chiếu đã được xác minh vào ngày 17 tháng 8 năm 2026 :