Giới thiệu chung về Amazon CodeGuru #reinvent2019

code-review

Qua bài này mình xin giới thiệu sơ qua về Amazon CodeGuru một service rất thú vị và mới được công bố vào 4/12/2019. Dưới đây là trang web chính thức về CodeGuru của AWS, các bạn có thể cập nhật thông tin mới nhất tại đây.
https://aws.amazon.com/codeguru/?nc1=h_ls

Amazon CodeGuru là gì?

Amazon CodeGuru có thể nói nôm na là một service để review code tự động dựa vào học máy (machine learning). Và service này mới ở dạng preview chưa có bản chính thức. Hiện tại service này chỉ support ngôn ngữ Java và các repository được hỗ trợ là GitHub và CodeCommit.

Amazon CodeGuru giúp chúng ta giải quyết bài toán gì?

Bài toán ở đây là: việc review code tốn rất nhiều công sức cũng như là khá rắc rối !!!

Cụ thể như là:
     – Yêu cầu phải có kỹ sư để làm (nhân lực)
     – Cần tay nghề cao hay những kỹ năng bậc cao (high-level skill)
     – Ngay cả khi đã chỉ định người có kinh nghiệm và tay nghề cao, thì vẫn có khả năng là bị sót lại một vài bug nghiêm trọng
     – Nếu một bug bị bỏ qua trong khi review, thì sẽ phải xử lý nó ở các quy trình sau nên dẫn đến chi phí sẽ tăng (nếu để xảy ra lỗi trong môi trường product thì các bạn cũng biết rồi đấy … ?)

CodeGuru sẽ giải quyết những rắc rối ở trên thông qua 2 chức năng sau:

1) CodeGuru Reviewer
2) CodeGuru Profiler

CodeGuru Reviewer có thể làm được gì?

Chức năng review code tự động. Có thể review giúp chúng ta những việc sau đây:
     + Toàn bộ source-code có đều đáp ứng thread-safe không?
     + Có input nào chưa được check hay điều chỉnh cho phù hợp không?
     + Dữ liệu nhạy cảm, dữ liệu quan trọng có được xử lý đúng cách không?
     + Việc rò rỉ hay lãng phí tài nguyên (resource leak) có xảy ra không?
     + Các API và SDK của AWS có được sử dụng theo best practices không?

Sau đây là một ví dụ về khả năng review của CodeGuru Reviewer. CodeGuru Reviewer đã review rất chi tiết nào là đưa ra các vấn đề, cách khắc phục, thông tin bổ sung cũng như sample code. (Ngay cả bản thân mình cũng chưa bao giờ review tỉ mỉ đến như vậy)

CodeGuru Profiler có những chức năng gì?

Chức năng tự động đo hiệu suất (performance) của program. Bằng cách cài Agent vào trong môi trường chạy program, thì Agent đấy sẽ chỉ cho chúng ta biết dòng code nào hoặc xử lý là ngốn nhiều CPU nhất.

CodeGuru Profiler có thể chỉ ra các xử lý có vấn đề và gợi ý luôn các cách để cải thiện chúng. Hiện tại, nó support cho các ứng dụng Java chạy trên EC2, ECS, EKS và Fargate.

Thêm nữa Profiler đang được sử dụng trong nội bộ Amazon. Và Có vẻ như là nhờ vào việc dùng Profiler mà hiệu xuất sử dụng CPU đã được cải thiện tới 325% cũng như chi phí đã giảm 39% tại Prime Day so với năm trước. Chưa biết thế nào nhưng Profiler đã mang lại những con số rất khả quan, đáng để các bạn test thử!!!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です