‫Now let's talk about Amazon CodeGuru.
‫And this is a machine learning-powered service
‫that will do two things.
‫Number one is automated code reviews,
‫and number two is application performance recommendations.
‫So when developers push our code,
‫there is usually another developer that does a code review.
‫And then when the code is deployed into production,
‫you need to be able to monitor the performance of your code,
‫and maybe you'll detect bugs by looking at the performance.
‫So CodeGuru does that in an automated fashion.
‫So CodeGuru Reviewer is here to do automated code reviews
‫with static code analysis.
‫So that means when you deploy your code onto a repository,
‫for example, CodeCommit or GitHub,
‫then the CodeGuru can have a look at all the lines of code
‫and then can give you actionable recommendations
‫in case it detects a bug or a memory leak
‫or something that it has seen before.
‫So, because of this machine learning capability,
‫it can detect bugs before even other reviewers detect them,
‫which is very helpful.
‫And then CodeGuru Profiler is going to be here
‫to give you visibility or recommendations
‫about your application performance
‫during runtimes or in production.
‫So when you build and test your application,
‫CodeGuru Profiler is already going to detect
‫and optimize the expensive lines of code pre-production.
‫And then when you deploy your application,
‫you're going to measure your application in real time,
‫and CodeGuru Profiler, yet again,
‫is going to identify performance
‫and cost improvements in production
‫and give you these recommendations directly in your code.
‫So this is the whole power CodeGuru.
‫So if we do a deep dive,
‫CodeGuru Reviewer really looks at your commits,
‫so whenever you push your code,
‫and tells you the lines of code that are probably wrong,
‫so it could be very, very handy,
‫so you can identify critical issues,
‫security vulnerabilities, and hard-to-find bugs.
‫So, for example, you can implement coding best practices,
‫you can find resource leaks, do security detections
‫in case you're creating a security hole,
‫or input validation.
‫The way it does it is using machine learning
‫and automated reasoning.
‫And how does it do it?
‫Well, there are code reviews that were analyzed by CodeGuru
‫across thousands of open source repositories out there,
‫and also on all the amazon.com repositories,
‫so this is how it learned to be a code reviewer
‫through machine learning.
‫It supports currently Java and Python,
‫and it has integration with GitHub,
‫Bitbucket, and CodeCommit.
‫Now, don't quote me on this.
‫Maybe things will evolve over time.
‫If it does evolve, don't worry:
‫you don't need to know that level of detail.
‫Just know about CodeGuru, CodeGuru Reviewer,
‫and then, lastly, CodeGuru Profiler.
‫So Profiler is when your application is in production
‫or in pre-prod,
‫and it helps understand the runtime behavior
‫of your application,
‫and to look at what consumes excessive CPU capacity,
‫for example, on the logging routine.
‫So it will allow you to identify
‫and remove code inefficiencies,
‫improve the application performance,
‫for example, reduce the CPU utilization,
‫decrease compute costs, provide heap summaries
‫so to identify which objects
‫are taking a lot of space in memory,
‫anomaly detection, as well,
‫in case your application behaves weirdly.
‫It also supports applications
‫that will be running on AWS Cloud or even on-premises.
‫And there's going to be
‫a minimal overhead on the application
‫to be monitored using CodeGuru Profiler.
‫So that's it for this lecture.
‫Just, again, remember the high level of CodeGuru,
‫CodeGuru Reviewer, and Profiler,
‫and you should be good to go.
‫And I will see you in the next lecture.