AWS Mines its Developer Expertise for CodeGuru Service. Now Live
CodeGuru, an Amazon Web Services (AWS) machine learning-based developer tool, has been available in preview since December. It was made generally available this week.
CodeGuru is a tool that helps developers improve the quality and usability of their code and applications. It provides recommendations based on models and algorithms derived from the millions of code reviews AWS has performed over the past two decades.
Swami Sivasubramanian (Vice President, Amazon Machine Learning Group at AWS) stated that today’s methods for identifying code quality problems are slow, manual, and often error-prone at scale. “CodeGuru combines Amazon’s decades of experience in developing and deploying applications at large with significant machine learning expertise to provide customers a service that improves the software quality, delights customers with better application performance, eliminates their most costly lines of code, and increases their customer satisfaction.”
Machine learning is used to automate code reviews in both application development and production profiling. It consists of two components: the Code Reviewer and the Application Profiler. The Reviewer component analyzes code pull requests on code repositories. The Profiler analyzes application performance as they run.
Reviewer allows developers to flag issues that are not in accordance with best practices and receive specific recommendations. This includes code examples and links to relevant documentation. The company states that code reviews are performed by developers who commit their code to their preferred repository (GitHub Enterprise, Bitbucket Cloud or AWS CodeCommit). They then add CodeGuru reviewer to the code reviewers. This will ensure that there are no changes to the normal development process. Reviewer reviews the code base and makes intelligent suggestions about how to fix them.
Profiler is used by developers to identify the most costly lines of code. It helps them understand the runtime behavior and performance of their applications, including serverless ones running via AWS Lambda and AWS Fargate. Profiler is used by developers to install a low-profile agent within an application. This agent monitors the app’s runtime and profiles it to identify code quality issues. It also provides details about latency and CPU usage. Profiler then uses machine-learning to identify code patterns and abnormal behaviors that have the greatest impact on latency and CPU use.
Although the CodeGuru tools are brand new to the public they have been used internally by AWS for many years. Andy Jassy, AWS CEO, stated that 80,000 applications use the Profiler part of CodeGuru and it has resulted in tens of million of dollars of savings.
Amazon CodeGuru is now available in the 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 additional regions to follow in the future, the company stated.