(bright music)
- [Mohit] Thank you for joining me to learn more
about how Amazon DevOps Guru,
a new AIML-powered service can help you
with your containerized applications.
My name is Mohit Gadkari,
and I am a solutions architect here at AWS,
and a DevOps Guru ambassador.
My aim today is to tell you
about how DevOps Guru can improve containerized
application availability and increase productivity.
Let's dive in.
Why DevOps Guru?
First and foremost, it is a fully-managed service
that provides guidance about your application's boundaries.
It does not require setup, training,
or any machine learning models or hardware resources.
Once you provide the necessary application info,
it automatically starts monitoring the data and metrics
to understand your application's behavior.
DevOps Guru reduces noise and helps focus
on the highest severity issues
with detailed insights to provide a quicker MTTR
CloudWatch container insights can collect, aggregate
and summarize metrics and logs
from your containers, applications and microservices.
These container insights are available
for Amazon Elastic Container Service,
Amazon Elastic Kubernetes Service,
and Kubernetes platforms on Amazon E2.
Amazon ECS also includes support
for AWS Fargate container insights
or diagnostic information, such as restart failures,
which helps isolate issues and resolve them quickly.
CloudWatch alarms on metrics can be set
on container insights.
These helps interactively detect issues like memory leak
in your applications before they impact your users.
It also provides guidance
to the probable root cause and offer potential resolutions.
The insights support encryption with a customer master key
for the logs and metrics it collects.
Let me tell you how it works.
Insights are a collection of anomalies that are created
during the analysis of the AWS resources
to specify when you set up DevOps Guru.
Each insight contains observations,
recommendations, and analytical data,
which you can use to improve your operational performance.
There are two types of insights, proactive and reactive,
but for this demo, we are going to focus on proactive.
Proactive insights let you know
about issues that are predicted to affect the performance
of your application in the future.
Reactive insights, on the other hand,
lets you know about issues
and recommendations that can help improve the performance
of your application now.
Each insight contains a list of metrics
and events that were used to identify the unusual behavior.
The aggregated metrics view shows a summary timeline
for when the anomaly behavior was seen,
and gives you a detail timeline.
You can also click
and view each metric in CloudWatch as well.
DevOps Guru gives you recommendations.
Basically, these are the actions suggested,
due to observations and events from a specific insight.
But for this particular use case which I will be showing
in the demo, we will look at how high memory utilization
in a containerized ECS stack can get a proactive insight
with recommendations and information
about the state of the system.
With that, let's go to the demo of a fully-containerized
stack using ECS where DevOps Guru
monitors it and proactively tells us
if there is a high memory utilization.
We are going to focus mainly on the ECS cluster
and then see how those insights come into play.
Step one, set up your environment.
We use a service called Cloud9,
an interactive IDE on demand.
Find cloud nine here and then select it.
You can just create a new environment.
ECS DevOps Guru will be a good name for this.
Same description.
Click next step.
For this demo, I'm using t3.small.
Click next.
It's pretty straightforward.
Then create environment.
Behind the scenes, it is a CloudFormation stack.
Let's visit CloudFormation and go to stacks.
Then refresh this page.
And then you can see the stack is getting created.
It is just an EC2 instance.
We are creating an ECS infrastructure
and then DevOps Guru will monitor the application
so we are able to see container insights using
the CloudWatch console.
We will review those DevOps Guru insights
and see what findings we get from them.
Hit refresh, and you can see the instance is complete.
Now, go to your environments, open IDE right here.
There you go.
You have an IDE created for you right away
On this next step, create a new terminal.
And for this demo, we already have the kit repo
which will help create the stacks to deploy your
ECS infrastructure to and leverage DevOps Guru against.
As a prerequisite, you need to install Docker.
Once you have installed it, you can start it.
And then you can check the Docker version.
With that being said,
let's download the kit clone CloudFormation.
It's already in this kit repo.
So we are just seeding into it.
The next step is running a CloudFormation stack
to deploy your infrastructure.
I prefer to use CLI.
That's the goal we have.
Creating a stack called my ECS stack.
And there you go.
As you can see now, the stack is getting created.
And go back to CloudFormation and hit refresh.
And you can see, we are deploying a new ECS stack.
Stack has been created, so let's go to resources.
We have an ECS cluster here.
It has two desired task and two running task.
Let's deploy DevOps Guru to be in this infrastructure.
I'm going back to my Cloud9 environment
and I'm going to run the CLI command,
which will create a new stack to deploy DevOps Guru.
There you go.
Let's go back to the CloudFormation, hit refresh,
and the stack should get created.
There it is.
Here are a couple of quick things I can show you.
Open a new tab, search for DevOps Guru,
then go to the dashboard and it will show it's already
starting to monitor the ECS task.
Back in the AWS management console,
let's search for CloudWatch.
As we go into the CloudWatch console
I'm going to focus more on the container insights.
Inside the container insights,
let's go to the DevOps Guru ECS cluster we have here.
You can see the memory utilization
has been steadily increasing.
But just as a background,
let's navigate back to DevOps Guru.
As you can see, it determined the stack unhealthy.
These are full proactive insights.
Let's click on it.
It keeps seeing
that the ECS stack has a memory utilization issue
with the timestamp.
It also gives the severity.
If you want, you can drill down even more and look
at what timeframe the anomaly has been reported from.
We can see the time-specific details,
and taking it a step further,
we can find out how to address the issue.
In this case, you can just click on the recommendation.
It will take you to the documentation
about how you can recover from this issue.
As I conclude this demo, I want to thank you
for spending some time with me and learning
about how DevOps Guru offers proactive insights
to help determine the memory utilization
for your stacks and provide recommendations to fix issues.
Don't forget to watch the other DevOps Guru episodes,
which also do deep-dives into other use cases.
Thanks again for your time,
and I hope to see you all using Amazon DevOps Guru soon.
Thank you.
(bright music)