Build the right solution for your business by continuous DevOps monitoring and - BRK3346
![Build the right solution for your business by continuous DevOps monitoring and - BRK3346 Build the right solution for your business by continuous DevOps monitoring and - BRK3346](/pic/build_the_right_solution_for_your_business_by_continuous_devops_monitoring_and_-_brk3346/T1BhVmVLV20wbVU_.jpeg)
Yay. Technical, difficulties. All. Right while we're getting, the slide deck up here I'm Steve McCroskey I'm a cloud, apps advocate, at Microsoft. Focused. On DevOps. Scenarios, psyche, reliability engineering cloud, native all sorts of fun stuff and. My. Partner. In crime here hey, folks I'm Rahul Bogoria I am a product manager in Azure monitor, which is our end-to-end. Monitoring, solution, for applications, and infrastructure. Okay. Thank. You very much okay all, right. So. We're, gonna start out just a little quick level set and, cover. A little bit of what, is DevOps why. We're. Here talking about continuous. Monitoring, and that kind of thing so, just, to. Get us all on the same page. DevOps. Is a union. Of people, processing. Products to enable continuous delivery of, value to your end-users, in. Other words it's plain, ice and work, fast. That. That's. A little that's a little glib but it's, kind of true right it's be nice to each other work well together, and in. It if we do that we're. Gonna have good results, what kind of results. We're. Gonna see things like faster. Deployments. Way. Quicker time to realizing, and, going, from when, somebody comes up with an idea to being. Able to be published, out in front of folks and being, used. We. See that our changes are much more successful. Right. We have a lower change failure, rate so as we're, making smaller, changes, more frequently because. They're smaller we. Have a better idea of what's going on so there's less chances things are gonna go wrong and when, they do. Because. We can make changes, that much faster we. Can get the change to fix the problem. Which. Leads to a faster mean time to recovery. What. Are these things translate, to. Faster. Time-to-market and, increase revenue right. And for. Most most. Businesses most companies that, tends to be a good thing and it. Also tends to be the thing that helps you, know get. You bonuses, or promoted, or helps, improve your career and capabilities. So. What, technologies. Do we need to support DevOps, right or what capabilities. Well. We first usually see the. Inclusion of continuous, integration right. Who. Here, is more. Of a developer. Identify, self-identified, developer. All. Right IT. Operations. All. Right DBAs. Marketing. Mm-hmm. Hey. You never know right, DevOps, brings, in all people need. To be welcoming, of our marketing brethren our sales brethren. So. Continuous. Integration if, it's not something that you've used before it's, the concept of when we stick something in a source control. We. Have a tool, that pulls it out, does. Some stuff with it to make sure it's in a good state and then. Packages. Up and gets it ready to, do something with whether we deploy that into a production environment whether, we deploy it into a test environment, but. We get it ready to go somewhere. That's. Super simple there's, whole books on the topic and. I'm not gonna be able to sum it up in like two minutes, but, that's a short, version of continuous, integration continuous. Integration. We, can build on and go. For the concepts, of continuous, delivery. Continuous.
Delivery Kind. Of posits a handful of things but, one of them is that whatever, is living in our main or trunk or master, branch should. Be shippable, at any point in time. Now. That's different than continuous, deployment and, very. Often we'll hear continuous deployment containers deployment, kind of depends, on continuous, delivery, continuous. Deployments, things are always rolling out but. Continuous, delivery is we are always in a shippable state and. There's a handful of other things around it like you, have scriptable, environments. And you, and that you have a strong test suite and things like that but. This. The essence of it is whatever. Isn't master of shiftable and we have a high degree of confidence that, it's the good thing to have. They. Were introducing, another. Aspect, of continuous. Monitoring, right. If, you any one Phoenix, project has. Read Phoenix project all, right about half half the room, in. The Phoenix project gene Kim Gorge Spafford, and and. Kevin, bear introduced, the idea of the three ways, the. First way is. Systems. Thinking, that's. Our seat that's our CI process, that's, how do we go from idea and get, it into a state where we can deploy it somewhere that. We, extend into CD the second, way is, getting. Some feedback is, creating a feedback loop and that's. What we're gonna be talking about today is starting, with that continuous monitoring and then. The third way is just. Doing that third that that feedback, loop a lot, and, continual. Experimentation. And so. Having. Our CI process, integrated, with the continuous, monitoring, capabilities. Sets. Us up to, advance our way, down. Those three ways. Was. Continuous, monitoring look like. Well. We're. Gonna be focusing on Azure monitor, Azure. Monitor is the collection, of monitoring. Capabilities. And that Rahul will be introducing, us to, relatively. Shortly here, and. We're. Gonna tie it into our workflow and for, our purposes today we're gonna focus on visual studio and Azure, DevOps the. Daftar devops platform, and we're gonna look at as your boards, you. Know as. Your test plan as your pipelines, and just, kind of get a little sense of each of those things but. That's the collection of services that help us follow, the, right, pattern in practice, for. Creating, that CI CD workflow, and integrating. Our continuous, monitoring and. Down. Below we just kind of see how, the. Flow of work might, look right. We're, gonna plant we're gonna plan out our sprint or we're going to get, our Kanban, board with our backlog and get ready to rock and roll. Then. We start working on our development. Build. It ship. It, run. It right. You, know hey my IT ops folks right we got to run that software so we need to have some we need to have some metrics, and some monitoring around that so we know how its behaving, and. Then. Over time we're gonna take advantage both operations. And development, can take advantage. Of the metrics, and monitoring. That we have in place, to. Both operate, it better and. To. Develop better for it to find those parts that are unstable and, add, some stability to, find, the features that are being used and. Reinforce. And expand them and to. Find the things that aren't and maybe refactor, them change. Them or remove them. So. With. That I'm just gonna give us a little quick little overview of, at. The azure DevOps platform. The. Azure devops platform, is. Basically. VST. S if you're familiar with it if you're not. We. Have a certain, set of capabilities we. Have as your boards for workflow tracking, we. Have as your pipelines for your build and release as. Your repos for your source control. We. Have the test plans for building out a, structured. Structured. Methodology for, how you want to test and validate your environments, and and, the faster, you want to go the. More important, your testing, infrastructure, becomes. The. Tests, are what give you the confidence to move fast, and. Keep. Things stable and. Then. As your artifacts, is an, artifact repository so. The results of our builds can, go into Azure artifacts, now. What. Makes this a little bit different than what we've experienced. With VST s in the past visual studio team services, in the past is, that. Each of the these things can be used independently, you. Use what you need if, you already have some of these capabilities, and other tools. That's. Fine this, stuff all works well together if, you're doing source control, and work item tracking in github great. Use. Azure pipelines, and get. Some bill get build with build agents and Mac Windows and Linux. We. Want to be able to play well with, everybody, now. With. That I'm gonna hand over to my, partner, in crime here Rahul and a little, bit about, continuous, monitoring definitely, thanks David so I start, with continuous, monitoring but before that I had a couple of questions how.
Many Of you use the same monitoring, solution, between your development, and IT teams. Almost. Five to ten percent of the room and that's, exactly what we are trying to solve today with continuous, monitoring the, core idea, behind this concept, is, between. Your development and IT teams throughout, your DevOps process, you're, using the same platform, for, monitoring, you, are using the same metrics, and logs you are using the same telemetry, so if you have an issue that, your IT team surfaces. Your, development team can go into the same monitoring, solution, diagnose. The problem and fix, it give it back to the IT team redeploy, it and make. Your customers happy so. How many of you have used as your monitor in the past. Great. Application. Insights log analytics. Awesome. Almost, three-quarters. Of the room great, so let me introduce you to a short monitor which, is our new. Unified, full stack monitoring, solution, that we launched it or rebranded. At ignite if you, have used application. Insights or log analytics, in the past all of, them are now, combined. And unified, with as your monitor as your, monitor is now one single, unified solution for monitoring, your applications. And infrastructure. Layer be, it your VMs containers. Databases. Network, any, component. That you are monitoring either on Azure on-premises. Or any, third. Party cloud provider basically, in your hybrid, environment, you are using one. Single monitoring solution, as your monitor with. A standard. Consistent, set of metrics and logs so any data you are collecting from any number of your applications, or infrastructure, all reside, in the same place, then. We provide, data-driven. Insights, on top of all of this data that we are collecting so. Capabilities. Like application insights, or container. Monitoring, or VM monitoring, they, are capabilities. Of Ezard monitor so. From one single place you, can jump on to your application, layer or your VM layer or container layer whatever, you want to drill down into. Thirdly. We have workflow, integrations, which is the heart of how continuous, monitoring actually. Enables, your DevOps workflow, to be continuous. Right. So you have dev, tools like Visual Studio you have DevOps tools like as your dev ops you have maybe, ITSM, tools or CM tools that you are using to manage. Your issues and events, or incidents as. Your, monitor connects with all of these tools and workflows so you. Are open and you are flexible on whatever tools you want to use and use the same monitoring, solution, throughout, your processes. Now. How, does a show monitor work basically. As I said you are able to collect data from your applications, operating, systems, on ash or on-premises. Hybrid, anywhere and you, can send any custom. Metrics custom, logs any kind of custom data that you are collecting, previously. You were only able to do that from within application, insights if you, would have used it before you remember there is a track metric, API with, which you can send custom metrics now. That same capability is, available throughout as your monitor so for any resource, you can send custom metrics and custom, logs and collect, it into our centralized. Repository. Which. Could either be in a metrics format or a logs format. Once. Your data is available on. The right hand side there are a bunch of things you can do with that there. Are insights, like application, insights or solutions, for virtual machines containers. Or any, other, technology. Are using maybe sequel or storage and so on then. There are visualization. Aspects, so you can pin your charts or tables to, your dashboards, you can export your data to power bi maybe. You can create some workbooks. Which are troubleshooting. Guides or dynamic. Reports, that you can share between your development and operations teams. There. Are analytics, tools which are one, of the most powerful capabilities. Of our monitor, so, with metrics Explorer you, can create your own custom. Multi-dimensional. Charts filter, and segment across all of your resources and login. Analytics, those of you who have used it in the past it's, a state-of-the-art big, data analytics engine, and some. Of you might have heard it in Scotts keynote about as your data Explorer right. So, log analytics, is based, on as, your data exploded, in the backend so, you'll see lightning-fast. Queries, on top of billions. Of data points terabytes, of data and that's. Basically, what parts all of our insights, and analytics capabilities. Can. I ask you just a question here I know, this has come up in a couple of other sessions, but, a. Lot. Of the themes within as your folks who are running services on Azure have made reference to using, cousteau. Queries, and, and, a certain back-end that they'd search against, it, what's what's different, from what they're using to what is of publicly available so.
Gusto, Is an internal, code name for Azure, data Explorer that we had been using internally, in Microsoft, for, quite some time and that, is the same technology that we are surfacing, as log analytics, for application. Monitoring or infrastructure, monitoring so, whatever queries, you are writing in log analytics those are the same powerful cousteau, queries or Azure data Explorer queries that you'll be using for those purposes like what the azure devops team uses to run the, azure devops service, you, have those same capabilities. To build that same type of insights, and key and stuff. Many. Of these big. Products, within Microsoft, Azure DevOps or even. The whole azure as well office. 365 Xbox. Everybody. Uses the same cousteau. Queries or the log analytics queries to, run all of the business processes and business reviews, so if any of you have read any of the vs, GS team blogs or Azure DevOps team blogs they usually refer, to some, of the cousteau queries they ran to diagnose a particular, issue and fix the problem that's, the same experience, you are going to get when you using log analytics, and application, insights wonderful, great, thanks, for the question Stephen now. You, have analytics, tool and then you have remediation. Tools now it's great to figure out what's going on but what can you do about it the, first thing is you set up alerts now, it could be a, basic, threshold based alert you know your CPU should not be more than 80 person you can set up an alert on top of that you, could maybe. Set up some dynamic baselining so there is seasonality, in your data you, can use our machine learning capability, to automatically, detect those seasonality, and. Adjust. The thresholds, accordingly, then. There are remediation, options so there are automation, scripts or auto scaling that, you can enable on top of your alerts to, take actions, whenever something goes wrong and. At. The end there are integrations, available so, if you have all. Of your data collected, in Azure monitor you want to export, that to your cm, tool like, sumo logic or Splunk or whatever you are using you. Can route it through event, hubs there are REST API is available with which you can query your data and, you, can of course connect, it with as your functions or logic apps or ITSM.
Tools Like ServiceNow, chervil provence anything, that you are using, great. Now. Let's look at some of these concepts, that we recently launched. This week so, unified, monitoring, one, of the big things you'll notice about the new unified. Azure monitor, which now includes, app insights, and login analytics is the. One metrics one logs one, alerts platform, throughout, the, azure portal, so, you no longer have to go to separate. Places to do app insights alerts or ratio monitor alerts or create. Charts differently, one, single place you go and you, access, all of your data together. We. Are natively, integrated, into some. Of the biggest Azure services so if you go to your app service, directly, if you go to your VM blade if you go to your humanity service, monitoring. Or as your monitor is natively. Integrated, into, each of those resources you, don't have to go somewhere, specifically. To as your monitor blade or something different, you, can go to the resource that you are troubleshooting. Or diagnosing, and see, all your data contextually. Right there. This. Is another new capability, we launched, on Monday full-stack, visibility, for your resource groups now, this is a feature many of you have asked us in the past we. Are giving you insights for your individual, applications, or individual, VMs and containers, but, what about that mythical, single, piece single, pane of glass now. Many, of you use resource, groups to kind, of bucket eyes all of your resources relevant resources, into, manageable. Chunks so you could have applications, or VMs or containers, that attribute, to a particular, solution in one, particular resource group so, with this capability you, can get a resource group level view or insights, and figure, out what's, the health status how, many alerts are firing what, are the different components into your entire solution stack and from, there drill. Down deeper into that application map, for. The resource group level or the virtual machine map or just, the failures, or performance, experience that, you have used in application, insights in the past. Then. We come to application. Insights now, that's our primary, APM. Offering, or application, performance monitoring offering, from, a sure that you can use for, any app, any developer. Any platform, so, you are a.net developer Java, developer, no developer, we. Have all the open source SDKs, available, on github which, you can go, there use, it for your own purposes maybe, even, contribute, to the community, great. So, dotnet. Many of you might have used in the past that's, our hero solution, but lately we, have invested, heavily in our java capability, as well so, this week spring, one conference, is going on as well and we. Have launched, our support. For the spring boot starter, so, those of you who are Java developers, might be using the spring framework so, you can now use our spring boot starter pack there, are micro, metered metrics, there is local forwarded capability, so you can get your adapters and playing live metrics everything, that you used to get from dotnet, our. Java solution. Is now almost, at par with, a dotnet capabilities. Now. Application. Map I touched upon that that's your end-to-end, topology, view so, if. Some. Of you have started, to modernize your applications, you would have microservices deployed, on containers, multiple. Apps talking to each other API is and so on and so forth, application. Map gives, you that one single view across, your distributed, application, layer you, have multiple, things. Talking to each other you can see from the screenshot you, can get that full visualization. Along. With hotspots, where. There might be some problems from, which you can drill down into. Then. There is this end-to-end distributed. Tracing this, is basically. The. Concept of observability. Across your applications, so a typical, transaction might. Span. Across multiple hops, so you a customer, came to your website did, a button click that, generated, a server back-end request, you call some API is you call some databases a transaction. Could be fairly. Long now, if the button click fails where, is that problem now, distributed.
Tracing Helps, you find, that problem isolate, that root cause throughout, your entire transaction, and I'm, pleased to announce we are now providing that same capability for. Python and go apps as well. Now. For. Those, of you who are developers, or go deep into the code do code 11 analysis, we. Have Visual. Studio capabilities. Now, available, in Azure, portal for your production apps so, you, have. Used visual studio debugger or, profiler, any of you. Yeah. Definitely, everybody uses, visual studio debugger and profiler now, you have those same capabilities, available for, your production apps without, impacting. Your production performance that, you can access from Azure portal you, can do your, local variables, full court calls check code, level analysis, thread level analysis, everything, for, your operations. Requests, and failures and. What's. An APM solution, without usage, analytics so, we have a full suite of user, behavior, solutions. So, you can track your cohorts. Maybe. You are collecting data, like gender age or, any demographics. Data for your customers, you, can use that to create your own custom cohorts evaluate. If there, is some performance this, difference. Or some usage engagement, friends across, these different cohorts, what. Are your customers doing with your applications, are, there any roadblocks or experience, problems, that, you can use in your iteration. Cycle so, Stephen mentioned that plan and track phase, this. Is what helps, you prioritize your planning, for your next cycle because you know what your customers are using and then you can prioritize, accordingly, taking that feedback and applying it right yeah so now. It's for that for the application, map right that. Just happens, if you have a pin sights enabled, on your applications, and you've got the SDK right or is there something you have to do to. Get, that application mapped, to, create so, application, map is created, automatically, for you you don't have to write a single line of code to get your application map, lighted up you, just have to enable application, insights for your applications, and there, are multiple ways to do that if you have access to code you can just add the SDK to your application, redeploy, and you get everything that you are providing from, back-end, server side to client. Side JavaScript if. You have that enabled so, the, other, question I had like you were just talking about that that tracking, and things and I'm most familiar with like Google Analytics, or a couple of there's a couple of other tools in that space, where. You have to put a little client-side, JavaScript there. Is that the same case then with a pin sites as you just add a little snippet of JavaScript to. Your, application. So there is a JavaScript, snippet that you can copy from the application, insights resource, and paste into your JavaScript, let's say the master layout file or, if you are using as your app services there is an application setting.
Available Within, the app service blade that you can just click, the check box don't, have to do any manual copy/paste anymore, nice yeah. So, let's. Look at some continuous. Monitoring aspects so Stephen, started by saying that we have CI CD and we, want to talk about continuous monitoring, now what does that actually mean, so, I have split this into two parts in development. Phase and operations. Phase now, what does monitoring. Mean in development phase I talked. About any app any dev any platform, we, have native, IDE, integrations. So those of you who use Visual, Studio for dotnet or vs code for node we, are natively integrated, as part of these IDs, you. Can get your production telemetry. Surfaced, within the IDE itself. So as a developer you, need not go out of your vias experience. You need not go to the Azure portal to track your prediction telemetry if. You're. Doing local debug session f5. Anyone, you. Can get your local debug session telemetry, surfaced with an application insights within Visual Studio and you can compare that with, your production performance production. Exceptions, and see, whether the latest, bug fix you did did it really impact the performance if, you. Have used Visual Studio multi-step, web tests or the, new cloud. Load test from as your test plants all of that is integrated with application, insights so you can track your synthetic performance, monitoring, and of, course we integrate with Azure repose, for work item integration, so, you, found a bug you are not the developer you, are the IT person, you can just file it as a bug and your developer can come to the same solution the, same application, insights resource and start. The Diagnostics, from there wonderful. The. Next part is the operations. Phase now, once your application is, already, you have tested it you are deploying it throughout your pipelines, now, you can incorporate monitoring. Through, the release pipelines, a release, management framework, you, can incorporate it through Azure DevOps projects, so Stephan would be showing that in a moment and infrastructure. Is code yes, definitely, so as. Part of your deployment, you, have pre and post deployment quality, gates so you don't want to be manually. Deciding. Whether it's good enough to go from dev to canary to production you can set up automated, quality gates based, on application, insights or as your monitor metrics saying, that if. In canary my production performance is, less. Than say 80%, of my SLA hold. The deployment. To production let, me fix it and only then make, it give it a green signal, yeah. I love. Those opportunities to remove those manual, intervention, points right yeah and but, replacing, them with, something that can help ensure and, watch for the quality right it's. Kind of it's kind of what we want to do yeah and that is basically, the continuous monitoring aspect so whatever. Phase you are in development. We talked about release, management you're, using the same tools you're using the, continuous, suspect to automate all of your monitoring processes. I talked about code level analysis, I talked about actions @mb remediations. Which we'll see in a moment and all. Of this ties, back to that build. Measure learn concept. That many of you would have heard about in all of the literature on CI. Sirian DevOps so you can use the same build, measure learn framework, to, kind, of iterate upon your metrics, your user KPI, is your business, metrics, and use that to continuously, optimize continuously. Build, a right solution, for your business so. With that we'll, go to a demo we'll, do that in two parts so Stephen is going to show you some of the onboarding, experiences. Provisioning, experiences, how, do you enable all of these monitoring, solutions, for, your systems, and then, I'll touch base on. Looking. At a fully monitored application, and figuring, out some problems and diagnosing, some of these issues, sounds. Good, great. Duplication. Is not, happening. Oh. Yeah. I picked, you it, helps me press the right button see this, is one of those manual, things that, I keep talking about we want to eliminate from, the process. Right. And. Yeah. Okay. There we go okay. So. So. I'm in visual studio and, I. Have just a really basic sample, app like, something you get out of yo. Team which is a little, generator which will generate a project, for you and, see.
ICD Pipeline or DevOps. Projects. Just. A really or pretty. Much you know what you get from a basic. New web template, right, so. It's got a it's got an asp.net. MVC, application. With. A couple of a, couple, of control a couple, of routes, in the controller and. Yeah. This is not going well all, right. I. Just. To give, you a little heads-up that the. Fine gentlemen, from the AV, company mentioned, that. This. HDMI connector has not been going well. Let's. Let's. See if we can. Yeah. All, right let's see if let's see if we let's see if we can get through the visual studio part, of this here if I need to jump over the portal, I can, probably jump over onto Rahul's, machine here. So. We're gonna start out with. This. Application, has no no. Configuration into application, insights or anything yet and. Especially. How, we can start onboarding, our applications, that, we may have well, I can't show you if there's nothing, on the screen. I. Don't. Have I. Don't have that port, I only. Have HDMI. All. Right we're back. So. Thank. You for bearing with us with, the little, display challenge. All. Right so the first thing we're going to go do is just write off the project. We. Have. An. Application. Ad application. In the project menu that's where I need, to go ad application. In site telemetry oh. When. You touch the trackpad it, moves oh. And. It unloaded my project, I am. Doing tremendous. This morning. Y'all. Ever have a morning like that. Yeah. That's alright. Here we go, application. Insights ad, application. Insights telemetry. So. Now get. Started okay. So. It's gonna point me to, so I'm signed into Visual Studio so, it knows about my it knows about my account, and it, can point to the subscriptions. That I have, and. It's. Gonna ask me if I, want to create a new resource. New. A new, resource for for. App insights for this so, I'll just kind of go with that and. Register. And. It's gonna go out and talk to Asher and set up all the application, insights it's gonna add the references, I need to the project, it. Does, not change. My. Application, code at all. Right. This is just it's adding some additional it's, adding some additional stuff, to to. My to my references, so there are more more bits that are gonna get deployed with it it's adding some configuration. So. It then, comes back and reports to me and it says hey guess what I added your SDK, I. Registered. You with a pin sites we're. Gonna start collecting, exceptions. And. This. Publish. Annotation. Configured. That's. A pretty handy little feature because when you publish new versions of your application there, will be a, notation. In app insights so you can see, hey. Is this thing happening after I published a new version right, you don't have to kind of remember time windows you can use that as a filtering metric. So. Now that I have a pin sites configured, for my for my web app here I can. Fired, up f5 debugging, as rahul. Mentioned and now, it's telling me there's build errors no I don't want to I want to know my build errors. So. Build. Solution please. No. Build errors there are. You lying to me. Yeah. There. Are build errors you want to run last successful build no I don't I want, to run missed a successful, build. We'll. Give it one more try we'll try building it a little harder we'll do a clean and build. If. It doesn't build and. Run. You. Gotta clean. All. Right clean field clean, faded. I. Don't. Know. Maybe. Let's, uh I think. I'm gonna do what was suggested by the audience and restart Visual Studio. Will. Do it's. Awesome having developers, and apps folks in the audience because, you. Have just, this wealth of solutions, right at my fingertips and. We, are going to our solution. And. Preparing. There's. A reason I use Visual Studio code, a lot cuz it starts up super fast but, the capabilities. Inside Visual Studio are definitely worth waiting for sometimes. Alright, here, we go again. Yay. All, right, and. We didn't change anything so I not. Really sure what was going on there but we. Now, have our website spinning, up. And. The content of the website really, doesn't matter super, much it's just a little, standard, asp.net template. But. Let's. Navigate. Around just a little bit so.
We Can see that hey. We're. Getting we're, gonna connect to some some. End points and, let's, throw. An error - I threw, in a nice little route to generate. Errors. All. Right a exception. Cool let's continue on. But. You may see now, in. My, code view there's, a capability, in Visual Studio called. Code lens and lets you see stuff about the source, control commit you, know who did it when, references. That. Particular. Function or variable across, across, your projects. But. It it also shows us. Information. From. From. App, insights. So. I can see that I had an exception, here and. I. Can take a look and. Inside. Visual Studio we have an, app insights. Search. Panel and Explorer panel, where. We can go in. Dig. Into the exception. We. Can track, the operation, now in this case I'm my, my. Little throw is like right out front and so it's easy to find but, sometimes you have exceptions, that get buried down a couple layers maybe it's in your business logic maybe, it's in. Maybe. It's in your database access layer right and so. Inside. Of this track operation, we can find out where the source of that error was and. Go jump over to it. Now. This capability is all nice and available, from my local debugging. Experience I also. Can get at. Action data. Now. Let's, open up our solution. Now. I've got another app, that's. Running out in. Azure. And. I've. Thrown some traffic at it this morning. And. We. Should be able to see. Some. Of the live metrics, from app insights, in Visual, Studio. So. If I jump over here, to, my. Controller, and. I. Wait for a little moment for the for, it to. Kind. Of start catching up. Start. Seeing the code lens information, starting to come in. And. I'll. Scroll over here we. Can start seeing I. 236. Times. That somebody reached out and touched the contact, method in a particular, environment, I had. 350, times the, about method was called right, no exceptions, and those in those particular areas. Now. This. Is this, can be really, handy information, if I've deployed to a dev environment and, I'm trying to rapidly iterate and I want to see where the exceptions, are coming up that I wasn't seeing in my local environment because, now I know, something, is different from, how is testing locally, to. Where I'm testing in my, Devon, via a dev. Environment or, shared. QA environment right, we can repoint, this depending on where where. We want it to happen, here. Where I have exceptions, I can, get. All of that rich information and. Dive. Into. The. Exceptions, that have had have occurred in the live, environment. So. It's. A pretty easy way just. Kind of walking through. Setting. That all up inside of you. Know, just adding the SDK pointing. It to my a subscription. And letting, it go do some magic. There's. Another way. And I, can I can enable my. App insights. All. That screaming uh rigmarole. I, have. Bounced bounced, me out I can. Go in in my as your portal let's bump, that font size up a little bit. And. I can go into my app service. And. Find. Application, insights. Find, application, inside so should be a little on board. Oh. Gotcha. Yay. For changing, you eyes. Alright. Let, this thing load up again here. So. I can onboard my application, through, the azure. Portal. Which. We'll do here in just a moment it's going to end up with the same basic capabilities. I could, repoint, visual studio to point to point at this particular, instance, of Apple application, insights to pull data from it. But. This, gets tedious. And. You, all heard me talking about let's, get rid of that let's get rid of the manual let's get rid of the manual let's get rid of the manual.
So. I like, to include my application, insight set up in my infrastructure, as code I keep. An arm template, alongside my application, code and. In. The. Case of, in. The case of this simple web app here. I've. Added in addition to the details about the website I've. Just added an app, insights component, it's, just a little snippet of JSON you, get helpers inside, a visual studio you can grab this out of templates in the azure quickstarts. Or. You. Can go through and go through the DevOps project, which we'll take a quick look at. But. We have the app insights component, we, add that and then we had a reference, to that app insights component. To. Our website, and, I. Love. The little JSON Explorer here it it really helps make navigating. Around these armed templates easier. But. We. Can jump over and. Tie. It to our auto-scale settings, we. Can configure, different, alerts. Right. Within our template so. We can set these things and then any environment, that I roll this application, out to it's going to have the same configuration it's, going to have the same alerts it's, gonna have the same pattern. For application. Insights. And it, allows me to then. Kind. Of you, know if in kind of a phoenix style resurrect, environments, if things aren't going right I can blow one away spin, it back up and I don't have to go through the setup each and every time right, I've got it included, into my into. My arm template, which lives with the application, which. Then can go down my CI pipeline. So. We. Are a. The. Fun. Issues, with Visual Studio and, and. The thing here, took. A little bit more time than I wanted so I'm going, to just. Show you real quick, that. If you want to get started, with. A, pipeline. With. An application, and, with. App. Insights. DevOps. Projects, are a great way from, the portal just to start scaffolding, out all the things you need to get started, right. Yes. So. So. There, there's, some there's some and, maybe we're who wants to jump and this uh, how. You configure, the server I'll take that part and then he can cut talk about resolution how, you configure, that is, going to be slightly different because you're not gonna have the arm template so you're probably gonna have some other config management, orchestration. Happening and. Then as far as the resolution is so, once your data is collected, it. Doesn't matter where your application, is hosted even, if it's hosted on on-premises, you, are collecting the same level, of data and once. It's in application. Insights its agnostic, of the fact where it came from the only thing you'll lose is what you don't get from on-prem that's the azure health. Information so, as your health is only available for Azure resources, and that's, something that doesn't, make sense for on-premises, that's the only thing you won't get you, can, still get your performance, counters you can still get all your I asked related information, you, still get your framework level stuff right. Because, that stuff is all independent. Of. Running. An action all of your perf counters, your on-premises. Server health information your. Like. Full virtual. Machine insights whatever, you are collecting basically. For your on-premises, resources, you can continue to get that same experience. So. In the azure devops, project, which I just referred was it was kind of a great way to kind of step through you can find a lot of good walkthroughs, on it but. I just wanted to call out here. Before we go look at some, Azure DevOps pipelines. In. The DevOps projects, here you, can see it scaffolds, you out with source, control, it. Scaffolds, you out with, a, release. Pipeline and. And. Monitoring. Right, it's got our application, insights baked right into the platform and. This. Is a dotnet a dotnet core application, that's getting deployed into Azure, kubernetes, service, right.
So It doesn't have to go into app service it doesn't have to go into a VM it can go into containers, it can be Windows Linux. It. All it doesn't matter right and Steven, do you know you. Mentioned you get application, insights automatically. If you used oops projects, but, when you deploy to a Cuban IT service through, DevOps project you, get as your monitor for containers, out of the box as well so you can immediately, start monitoring, your container instances, clusters, nodes pods, everything, which I will show, yeah. I'll, let you show that cuz you got a better demo of that one. All. Right so. We've. Now got a. CI. CD pipeline, for, for. Our for our application, right we've got our application, deployed and I'm, gonna switch actually to a different. Project. Where. We've got. So. I'm in Asscher DevOps and let's. Make the. Screen. A little bigger there. And. I'm gonna go over, to my pipelines. And. My releases. And. Right now I have a, release. That. Has a couple of manual a couple, of manual intervention points, one. After it goes where my dev environment I, have, to prove it to go on to a QA environment and, then, from the QA environment I have. To prove it to go on to, on. To my into my production environment. So. I. Want. To remove some. Of that manual. Hurdle because in my QA environment I actually just have some. Load tests, running to make sure that that, things. Are responding, fine and. After. After, that after after, it's went through my dev environment and, it hits my load test and this. Site doesn't really have any business logic or anything I'm comfortable, with it going out to production. Let's. Try loading that release page again. There. We go much faster. Alright. So we've, I. Want. To go take. A look at my pipeline and I want to remove one, of these manual, gates. Now. As we're waiting for our. Screen. To load, what. We're gonna do is we're gonna take away one of the manual approvals and the push to production, and. We're going to add a quality, gate and the, quality gate can call out to. Zermatt. As. Your monitor and. Use. An alert evaluation. That we have to configure and actually we can go do that while we're waiting for this to show up. So. I'm going to go into my monitor, me QA environment. And. I'm. Going to dive. Into my app insights, or, actually. Yeah. Gonna happen sites. And. Let's, find our classic, alerts. Alerts. This. Could be the new alerts or classic I think okay, alright. So we're creating new alert rule. And. And. We're going to select our target. And add, some alert criteria. We. Went a particular. Let's. Look, at, these. Server errors, I think yeah, let's find. Exception. Server. Exceptions, that's, symmetric, I want to watch for. And. Do. Greater than zero so as long as there's no exceptions, over the last five minutes. We. Should be able to move on. I'm. Not a very good neighbor so. And. It's not liking my name up, can't have the question mark. And. It's Verity enable rule on creation sounds, good action. Group what's it going to do. And. We're saying email. And. We'll send it to me. Ooh. There. We go. All. Right so. Once we have our alert. And. It's. Going to create that. In. Our release pipeline. There. We go Wow. In. Our release pipeline here I would add a. Quality. Gate. In. Our in my deployment, into. Production. Let's. Pick our prod. In. My pipeline view Oh yep. Yeah. All. Right. Edit pipeline. Here. We go. That's. Where I need to be, and. I can turn on my quality, gates. And. I. Can add to my deployment, gate and I can add, different. Gates here what we're, going to query as your monitor alerts. That's. What we're gonna go through and set and set this stuff up I.
Though. Want, to. Give her a chance to show us what, it looks like after, we've deployed, into production after we've been running for a little while. What. Is what is an environment, that's been running for a little while look like yep so, let's get, to the other machine yes. And. This. Is where I am all of my applications are now in production and I. Am in the resource, group view now, I have multiple applications virtual. Machines I have storage. Accounts, network a fairly. Complex application, solution, that I have deployed, on this resource group and I, mentioned we have a new capability to, get end-to-end visibility for, my resource groups so, within the resource group I'll, go to this monitoring. Section and within. The monitoring section I have something, called insights, and alerts. And metrics and diagnostic settings so, you will see this same section monitoring, across, many of your major as your resources all natively. Integrated, so, we'll just click on insights, and it. Opens as your monitor for resource groups now. In one, single view so. I can come, to know what, are the different components I have deployed here so I have certain. Number of applications, app, services, there are three of them I have some compute, resources virtual. Machines app service plans I have, some storage and databases, sequel. Disk storage account and so on and. I can figure out what's. The alert status. What's, the health status how. Many components. Have app insights enabled, or as your monitor for VMs enabled so from this one, single place I. Can keep, track of my overall. Monitoring, for the resource group and if I see any problems, so in this case I'm seeing this. Particular app service canto so retail web that's, been having 11 active alerts at the, moment I want, to see what's going on so, I can just click, on it go to the application, insights resource, for that particular, application and. Look. At all the details so right, out-of-the-box I'm.
Getting, Failed request server response time availability. All of these metrics and, one. Of the best tools to start with is application, map so, that's the topology view, I talked to you about so. This. Particular application, is deployed on to multiple instances, there, is some VMs, some app services, so, in one single view I can figure out what's, my overall topology, level this, one particular instance that's connected, to some, API II as well so I can figure out interconnections. Across, some of these resources now. Zooming, it a bit I can, see this particular instance, has had 6%. Failures and it's, connected, to seek well as your table blob storage and bunch of things and some. Of these connections, are kind, of unhealthy so, if I click on an unhealthy connection, I can, see let's, say my sequel call is failing, 14 percent of the times and that's. Something I want to diagnose later right. Now I'm seeing six percent failures I can see my slowest. Request I can see my top failing requests, on the right-hand side now. You'll. Notice get, home index that's my home page it's, taking. 26. Seconds to load now. I'm not sure about you but if my home page takes 26, seconds to load it's probably I won't come back to this home page anytime, soon so, let's. Diagnose. This further what's causing it to load so slow I can just click on that particular slow, request and jump. On to the performance, view in application, insights now, it shows me all the instances. Of that particular, slow request over, a period. Graphs. Yeah and, I can see a histogram it's. Saying on an average it was taking around 3 seconds but in, extreme. Cases 99, percentile, cases it was even more than a minute load time let's. See what's going on we'll click on, samples to open a particular instance. Of this operation, and let's. Pick up a suggested, one that it tells me so. This is the one that took 20 seconds to load and, on. This. View, that's the end-to-end distributed. Tracing view I mentioned, so, you can figure out what was happening into, your entire, transaction, so. In this case it says a relatively, simple transaction. So there, was a home page call it called a bunch of tables, or databases in the backend and eventually. Succeeded, there, was no, failure, in this call the request was properly, successful. It, just, took 20 seconds to load now, why would that be, that's, where profiler, comes in so, I can open profiler, traces, which, is basically your visual, studio profiling, capability, available, from production apps and. Without. Impacting, my production at performance I can figure out what, was happening what, was the code level view what, was each of those threads doing, where was my operation, blogged and so on so, in this case if I can pick up any different example, let's say this one took 30, seconds to load I can see it. Even gives me that performance tip 90%. Of this request, was, spent, just waiting, maybe, I can do something different at that time or I can just download the trace file in Visual Studio and run, the full powerful, code level analysis, figure out what it was blocked on and maybe, go ahead and resolve the problem so. That's the performance view if I go back to application, insights there, is another, view there for failures, so, if I let's say click, on one of these failed, operations, so there is this get customer details that failed, 340. Times in the last 24 hours I'll. Click on that and same. As before just like performance, I have the failures experience, so, I can open, up a particular exception. Just. Like before look. At a suggested, instance and. In. This, case I, noticed. That there was a back-end code exception, there were some problems in the dependency. Calls as well but eventually there was a retry, logic everything, succeeded, but. There, was a actual. Code exception, if I click on that I can see a basic call stack what was the method. Method. Name and everything I can, file, it as a work item in as your boats if I, am NOT the developer diagnosing, it or if, I'm, coming here to diagnose I can just open the debug snapshot, now debug. Snapshot, is a kind of an analysis, of your exception. Dump file it, gives you all your local, variables, full, stack, trace and you can figure out what went wrong now.
If You noticed the failed method, that, was basically saying the, input, string was not in the correct format now, unless you know what that input string was it's, fairly, difficult to figure out what the problem is that's, where your local, variables come into the picture now, in this call stack I can. See I was trying to do some int past 32, and then calculating. Some zip code processing, if I go to the zip code it, tells me somebody entered an alphanumeric zip, code that's, a fairly common zip code in Canada, so maybe, one of our Canadian customers, came in entered their zip code and it. Obviously, didn't, go through in past 32 and failed now, I know what the problem is if I want to go, basically jump, on to the code I can download the snapshot file open. Up in Visual Studio and jump, directly to the line of code it's, a multi, hundred MB dumb file so I don't want to download it right now I already, had that downloaded I have. Opened it up in Visual Studio, clicking. Debug, with managed only and. It's running your typical debug, session with, that dump file takes, me to the line of code where the problem lies and I, can see that. Same local, variable alphanumeric. Zip code what the issue is at this stage I can fix it, redeploy. It through my CI CD pipeline and make my customers happy before a whole lot of them gets impacted. That's. Nice we were, just able to solve a problem now. Let, me show you some of the other things that are available as, part of application, insights so, we'll, go here and look. At some of the other capabilities available, so we, have smart, detection, now, many, times it happens you, do not know what your issues, are what your thresholds, are there, might be something, going, anomalously. Wrong in one of the geographies, maybe, your exceptions, in one particular area started, spiking now, unless you are a data mining expert or you sit in front of the data all day you. Might miss some of these things so. We have machine. Learning built into our experience which, can which can automatically, detect such, anomalies or out-of-the-ordinary. Behaviors. So. Here I can figure out something, that was. Not expected, so. It just takes a couple of seconds to load and it tells me some heuristic, based information, so, in this case it tells me some insecure, data transmission, was detected, in this case some slow, response, time for server requests was detected, so on an average it took, 18. Seconds, for this request where, it says 2.3, milliseconds, for others and if, you notice that's the same get, homepage request, so, if. I, didn't have an alert setup I could have come here and looked, at smart detection, telling. Me that something weird is going on that I need to investigate further. So. That's smart, detection, if I go back to application, insights I have more, capabilities, like availability, so, Stephen mentioned you could do multi-step, web tests or load. Tests from test, plans you. Can upload your multi-step, web tests in availability. Run. Synthetic, performance, monitoring, it could, be a, URL paying or multi-step tests it runs from 16, global locations, and same. As your performance, or failure experience, you, can click on one of these failed, availability, tests diagnose, further what, was going wrong I was actually running a multi-step availability. Test against nap earlier today and it, was succeeding, everywhere but north central and so, there was there was some Network issue, that. Was impacting, so it's, really cool to be able to see that and get alerts on that and I'm, really, excited you said network and as, part, of as your monitor, we have network, monitoring, built-in as well so, if you have service connectivity, issues Express, route issues you can use a network watcher network monitoring capability, to further drill down into what, caused that problem may be something you can resolve on your own right yeah so, coming. Back to application, insights I mentioned we have a full suite of usage. Analytic solutions, so, we have this section on, usage. Where you can track your user, behavior, metrics, your customer engagements. User flows funnels, and so on so, if I go on usage, I can. See how many people were coming to my application. In the last, 24 hours I can, maybe, split it by. Let's. Say country. Or region that's, exciting always and I can see a fairly. Interesting curve. Graph based. On country and if I expand it to more days I notice it's a more, regular. Graph where most, of my customers are coming from the United States so, during, that time zone it's pretty, high and once, folks. In United States sleep some. Of our peak usage goes down so this helps, me kind of, do. Some capacity, planning some scaling, or just figure out who, my customers are so I can better design. My products, or better design my experiences. Same. Thing I can do across sessions and events, I can create funnels, if, you have used any usage, analytics tool you.
Would Know about funnel, so you can create, charts. Saying 100%, of my people who came to homepage how. Many of them went. To let's, say in this case another. Page called customers, then another page called creating, a new customer so I can define my core. KPIs, or CTS, and figure, out how many people are flowing through that funnel if there is a bottleneck, I can. Of course make, it part of my next planning cycle and fix that. Similarly. I have user, flows so, we, saw funnels for one particular instance user. Flow is everything. In aggregate. So, in this case let me zoom out a bit, so. I can see the, entire. Like. Customer, flow through, my application, and in, this case let's. Zoom, back in so. My, center event is homepage so, what did people do after they came to the home page now, many of them went, to details, that's, explanatory. Ended, the session some, of them created a new experience. Entered, the session many. People went. From home page to home page to home page to home page to home page and so on now. Why. Is that we. Eventually did, some user studies and identified, that, people, were refreshing, the homepage and they, wanted an otter capability, so, sometimes, these, tools actually help you discover some latent, customer, needs and as a product manager or a program manager you can use this to figure, out how you can make your customers life much better. Great. So, we, have, usage. Capabilities, we have workbooks. That I mentioned and that's. One, of the best, tools, to, share information between, your development, and operations teams now. As a developer. Let's, say you, know when, there is a sequel, spike or when there is a CPU spike, you. Should run this script and everything would be fine but, probably your operations, team does not know that so. You can create a troubleshooting, guide for them saying, that this, is a chart if this. Spikes run. The script and everything would be fine you, can create these troubleshooting guides share, it with your CSS, Customer, Support Operations, teams, and all, of you could use the same solution, to help solve, your customer problems so. There are some out-of-the-box, reports, for. Example you have business hypothesis. Failure Diagnostics. Performance, analysis, so, if I just click on performance, analysis, there. Are a bunch of metrics and log queries available, out of the box and I can click on edit and add, my own custom, charts custom logic custom, markdown, guidance. That I want my like. Folks who are using this to basically take, advantage of so. These workbooks, are not. Just for application, insights it's, available for any of your as your monitor resources, so if you have storage accounts, sequel, you can create workbooks, to monitor, those things as well because as I, said it's, one, single metrics and logs platform, so, you are collecting data from anywhere, across Asia all of, that you can use to create your own custom workbooks. So. That's application. Insights let me show you a couple, of things so. We. Saw a simple, dotnet, based application, a single distributed, trace and I mentioned it's any app any dev any platform, this. Particular, application is a micro, services based application, dotnet. Core Java, spring boot node, on a Linux, app service, fairly.
Heterogeneous, Type connecting. To Redis cache Eve, Hubbs sequel, databases and so on I can. Get the full, visualization. Of what's, happening, in my application the full architecture, so, a front-end, calling to worker roles which, is calling another API to do some inventory management and so on and I. Used, the same experience, irrespective. Of my programming, language and, as. There was a question before does not matter whether it's a hosted, on Azure or on-premises. So. What's, cool about this stuff is when you go and you talk to an. Architect, or a dev, team or an ops team about, how they think the application, is out and behaves and then, we take a look at what it's actually doing and what it's actually connecting to and you, can learn some interesting, things yeah, we have had many developers, within. The team who are like joining, new and they. Want to they don't want to go through like. 10 pages 20 pages of architectural, doc on how the, service, behaves or how they like. Applications, are talking to each other this, is a great tool to come and look at everything working, dynamically. In real time what's, your entire, service experience, looking like it helps build their contacts more quickly definitely. Now, to. Give you that end-to-end visibility we talked about resource. Groups we talked about application, insights so if I just go to a short monitor which is the hub or the central. Product for all of these in, as your blade I can notice the same experience, so I have alerts metrics, and logs if you, click on logs that's, basically, the log analytics experience, where I can write queries. On top of the telemetry that I'm collecting run, statistics visualizations. Root, cause analysis, machine, learning algorithms, whatever. Questions I want to ask on top of my data then. I have same. As application, insights insights for, virtual machines or containers, so, if I click on containers, so, you had through, devops projects, your application, deployed on to communities if, you do that you'll automatically, get as your monitor for containers, and from, this view you can monitor, all of your kubernetes, clusters, now this one is easily, telling me this particular cluster has a warning so, if I click on that I'll, go to the monitoring experience, for the Kuban it is cluster, and. That's, a performance level view where I can monitor the. Node utilization. Memory node count productivity. I can, go to controllers, or containers, to see what's, the health looking like so, in this case if I jump on two controllers this. Particular, controller, minecraft. I love minecraft so I have that deployed, onto one of the containers I noticed, there it's been trending almost. At peak for, CPU, utilization and it has restarted. 276. Times in. The last like. 24, hours or so so, if I expand, this particular, controller. I can see the different ports. That were running and selecting. One of them if, I, go, to the right hand side I can see my container limits, I notice. I have set up ten milli course as the configuration, which, is way, too small, probably. Something misconfigured. I can just go to cube CTL reconfigure, it and be, happy play minecraft again if, that, does not help me I have all the queue manatees even clocks collected, in that same logs platform, I can run log and analytics queries on top of that and do. Root cause analysis, as I want, so. With, that probably. Hop back with, that let's go to our slides, and do, a bit of recap. So. We, talked about continuous, monitoring for DevOps, how as your monitor as the continuous. Monitoring solution, integrates, with your visual. Studio and DevOps pipelines. Providing. You that end-to-end, experience, throughout your develops lifecycle, now. There are certain, practices. Best. Practices or better, practices, and likes, to say that you can use in your own like. Processes. Or workflows, today to ensure that you, are meeting, that continuous, monitoring ideal so. You. Can go through this we have a learn, mode link as, your monitor overview where you can go through certain tutorials, and documentation on, how, you can enable some of these things the idea being don't. Use monitoring, and isolation. Unable. It in your release pipelines, enable, it in your dev workflows, and get. That end-to-end, view across your app and infra if you, only have an app view or only have an infra view there, are times you will miss out on certain things you, won't get that certain.
Route Cause I have, heard some cases where. My application, was failing and there, was no problem in the application, now, when, I went to the VM layer I realized, there was a noisy, neighbor running, on the VM and that, was eating up all the CPU so, unless I have that view I couldn't, have found that problem I was just having this conversation at, breakfast actually how, when, when. There, was a production issue how, often, you'll see the ops folks go look in one direction and, you'll see the devs go look in a completely different direction for. Where the potential problem is and it comes down to scope of control right it when. I'm an ops guy I've got I've got control of the, virtual, machine and the hardware underneath and network, layer and so, that's where I'm gonna look for problems to make sure it's not my problem right and. And. The dev side I'm gonna look in the application, code and make sure it's not make sure it's not there so cuz I need to cover my backside. Right. When it when we want to talk and work, more on a dev ops capability, we want to surface. All of this information for operators, and developers, so. We can work together more, effectively. To. Run our software better, definitely. So, here, are some resources, and related sessions that you can go, through in more detail so, you want to learn more about as your monitor or, as your dev ops or just, go through our end-to-end monitoring, documentation, these are the links there, are certain breakout sessions we are doing diving into some of these in more detail so, we had a few sessions already on full, stack monitoring, and ITSM, we, have one tomorrow if you are interested, in infrastructure, monitoring for your VMs and containers, we have one tomorrow that, you can definitely, attend, there, is a session Stephan is doing on sre practices, actually David, hanging, out over here. So. You. Want to drill down into your SRU practices, SLA, SLO, s-- so that's the session that, would be good to attend and we, are available at the expo, in booth. 177. As your monitor so you can come there ask us any questions, across, anything. On monitoring, so. With that we. Would love if you could evaluate, this session give us feedback and. We. Are almost over, on time but could take a few quick questions we, would be here for a few minutes after the session as well thank, you folks.
2018-10-27 23:36