AWS Mines Its Developer Expertise for CodeGuru Service, Now Live
- By John K. Waters
In preview since December, CodeGuru, a machine learning-based developer tool from Amazon Web Services (AWS), became generally available this week.
CodeGuru aims to help developers improve the quality of their code and applications by providing recommendations using models and algorithms built on the millions of code reviews that AWS has done in-house over the past 20 years.
"Today, the methods for identifying code quality issues are time-consuming, manual, and error-prone, especially at scale," said Swami Sivasubramanian, vice president of the Amazon Machine Learning group at AWS. "CodeGuru combines Amazon's decades of experience developing and deploying applications at scale with considerable machine learning expertise to give customers a service that improves software quality, delights their customers with better application performance, and eliminates their most expensive lines of code."
The managed service uses machine learning to automate code reviews during both application development and the profiling of applications in production. It comprises two components: Code Reviewer and Application Profiler. The Reviewer component analyzes code-pull requests on code repositories, while the Profiler analyzes the performance of applications as they run.
Developers use Reviewer to flag common issues that deviate from best practices automatically, and get specific recommendations on how to fix them, including example code and links to relevant documentation. For code reviews, devs commit their code to their preferred repository (GitHub, GitHub Enterprise, Bitbucket Cloud, AWS CodeCommit) and add CodeGuru Reviewer as one of the code reviewers, with no other changes to the normal development process, the company says. Reviewer analyzes existing code bases in the repository, identifies hard to find bugs and critical issues with high accuracy, provides intelligent suggestions on how to remediate them, and creates a baseline for successive code reviews.
Developers use Profiler to identify the most expensive lines of code (literally) by helping them understand the runtime behavior of their applications, including serverless apps running via AWS Lambda or AWS Fargate, and to identify and remove code inefficiencies, improve performance, which reduces compute costs. To use Profiler, developers install a small, low-profile agent in an application, which observes the app run time and profiles it to detect code quality issues, along with details on latency and CPU usage. The Profiler then uses machine learning to identify code methods and anomalous behaviors that are most impacting latency and CPU usage.
The CodeGuru tools are new to the public, but AWS has been using them internally for years. "We have 80,000 applications internally that are using the profiler part of CodeGuru, and it has led to tens of millions of dollars of savings for us," said AWS CEO Andy Jassy when he announced the preview last year.
Amazon CodeGuru is available today in US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (London), EU (Frankfurt), EU (Stockholm), Asia Pacific (Singapore), Asia Pacific (Sydney), and Asia Pacific (Tokyo) with availability in additional regions in the coming months, the company said.
John K. Waters is the editor in chief of a number of Converge360.com sites, with a focus on high-end development, AI and future tech. He's been writing about cutting-edge technologies and culture of Silicon Valley for more than two decades, and he's written more than a dozen books. He also co-scripted the documentary film Silicon Valley: A 100 Year Renaissance, which aired on PBS. He can be reached at firstname.lastname@example.org.