logo

NJP

Overview of DevOps Config

Import · Apr 13, 2023 · video

hmm so um the usual slide that we have at the start of all our presentations is the Safe Harbor slide and this is to make sure that if we do talk about any future functionality that you don't base any buying decisions on what we say because things can always change uh this is as I mentioned before another in our series of live on servicenow webinars so we have a code there that you can scan on your phone camera or there's a link there I think my colleague G2 will share the link in the chat which has a list of all the other community events that are available so if there's anything else that you're interested in seeing please do sign up and register for the other events okay into some housekeeping so um we we have a q a button where you can that you can use to post any any questions so please use that um post your questions in as they come to you and um we are recording this uh session so it'll be shared on our community page and we've got a couple of polls that we'll ask you to to complete and also a survey at the end to get your feedback on how we can improve and do better all right so I uh I'm a senior outbound product manager my name is Mike Lampert I'm part of the itsn business unit in servicenow being with servicenow for about 10 months and um looking after the devops products amongst others okay so the first thing we'll do is um is the poll so the questions are there on the slide and I'm just going to launch the first poll now [Music] okay so please go ahead and fill in the poll and let us know about your awareness of devops config um just so we can get an idea about that okay I'll just give it a few more seconds for the last person to finish up okay great thank you very much so I'm going to end the poll share the results okay so everyone on the call answered um that they're not aware of their Devil's config but they'd like to know more okay so that's perfect because that's what this session is all about so we'll go through that all right so next slide and this this is just to talk about where devops config sits in terms of uh the rest of our devops products so if I was to highlight some of the key benefits or the key value that the devops products provide to customers um it it would cover some of these points so obviously this is not everything but this is some of the key points so if I wanted to identify improvements and be able to see my software delivery life cycle for for devops from end to end and identify any issues with that and look at some of the key metrics around my development life cycle I can do that with devops insights and devops insights is bundled with the devops change velocity product when you install that one devops change velocities key value is all about accelerating your devops changes so making sure that you can automate those changes automate the entire change process using the data that we have from the devops tools that you might have in your environment we integrate those tools with servicenow and we can fully automate those those changes and ensure that change governance and auditability is maintained by having that data on the change record and then finally devops config which is the focus of today is all about how do I identify and stop bad configuration changes before they get deployed to production so we'll go through that okay and just to give some context here about where this sits in the in the hole end-to-end value stream so there are different systems of record that are available in a typical customer environment so for example you know you might write your write your user stories your features your epics Etc in a tool like jira or Azure boards um which is what we refer to as a work item that's that's where your planning takes place and then your coding your coding would normally take place in git or another another tool like git uh where you would do your build and then you'd typically have a CI CD pipeline running in a tool like Jenkins or ado you do some testing on your code using tools like selenium and scanning tools like sonar Cube and then if all that passes you then deploy your code to an environment and within servicenow uh you know we obviously we manage the operational data incidents problems changes but the advantage of having the devops integration with servicenow is you get access to the other data from the devops tools because they're integrated so your commits your user stories your sonar Cube scan results your selenium test results Etc and also your config data which is going to come through from devops config all that data can be shown on the change record as a single source of Truth to enable the link between development and operations to be very solid So within servicenow you can see all the data that you need in order to manage those changes and and have a an increased change velocity okay so let's start talking about config data so what do we mean when we talk about config data so today a lot of customers have um you know very very complex Cloud environments where configuration is being set and and deployed and that config data can sit in various repositories it can be in your pipelines can be in git um and it can include app you know the application settings so things like API keys or database connection uh encryption settings Etc it can be in in middleware and it can also be obviously in Cloud resources and infrastructure as code so in cloud formation templates or enter a form or kubernetes or or Ado itself so those are some examples of what we mean when we talk about uh configuration data it's spread out all over the organization it can also be in different formats so it couldn't be in any files property files Json XML yaml Etc and often customers don't know how much config data they have and and where it is but at the end of the day it's all got to come together and run an application in a specific environment so typically you might have applications running in let's say development and test and pre-prod and then production and the settings the configuration settings for all those environments will obviously be different so how do we ensure that we've got the right settings for each environment and that is all validated and why is this important more importantly so it's important because often when these configuration changes go wrong it can have a kind of a have a drastic effect so you only have to do um some searching on social media and you're probably aware maybe in your own environment that configuration data or configuration changes have caused issues and you know they can often result in in outages and they're often very difficult to troubleshoot because the data is in all these different formats and in all these different locations spread out across the organization it's often not well understood and well controlled so we're and we're also seeing a lot of these config related outages and issues are growing in customers sites um even more than application related issues so this is something we wanted to address and some of the some of the pain points that we've seen are you know there's weak access controls so for example in in git Etc you don't really have great access controls to the config data some of the config changes can be uncontrolled um there's there's not good traceability or auditability of these changes and um when those issues do occur they're very difficult to troubleshoot so it's hard to find out what changed where and and what the impact was so what we do with devops config our solution is basically to say we will get all the data config data that exists out there so we just need to to we import it we we just have an endpoint and we import the data it doesn't matter where it lives it can live in a pipeline or it can live in these files on servers Etc so we we get that data we collect it um and we import it into servicenow in What's called the config data model so we normalize all that data into key value Pairs and then we're able to do things like apply role-based Access Control to that data and secure it so sometimes you have settings API tokens or user password settings which need to be secured that data can be secured at rest on the servicenow platform and you can give access only to the people that need access to it and if it's secured it will be obfuscated for everyone else we then can validate that data so we have a policy engine which allows us to run validation to ensure that that the data meets our governance requirements and I'll show you some examples of of what that is but we make sure that it's it meets our policies before the data actually gets deployed so we process it we apply a policy it gets validated and that happens continuously we were able to take snapshots of the data so the snapshots allow us to have a point in time view of the config data and that also allows us to compare one snapshot to another and I'll show you how that works once the data has been validated and we have a snapshot that can be published we can then consume the data so if you have in your organization deployment processes for um you know terraform or red hat or whatever infrastructure as code provisioning you use you can then take that data that snapshot and and make use of it in your provisioning process your provisioning tools that normalized data can then be used okay and this is this is a typical um flow of how consumption flow of how it could be used so the developer or the infrastructures code engineer will kick off their pipeline the the config data will be uploaded it will then be validated and if the passes validation will be published all that data will be associated with a change record which will be automatically approved and managed by devops change velocity and then it can be exported and made made use of okay so we'll now jump into demo and before we do that I'm just going to check whether we have any questions let me just have a look is this limited to the deployments uh no so we so what we're talking about it's not limited to service now um we're talking about application code and configuration code that would run in in a pipeline um for your own uh applications in your organization so so no it's not it's not talking about servicenow updates we're talking about updates that would uh typically you know build applications and infrastructures code for your organization um oh and G2 you answered that so um so it's not so the answer is that's not limited to service now okay hopefully that answers the question thank you for that question are there any other questions before I jump into the demo okay keep the questions coming just type them into the chat as we go all right let me share the next screen okay so I'll walk you through some typical use cases so I I'm in git here and um I'm I'm editing a cloud formation template which is in Json format here in git so you can see key value players uh defining all the different config settings port numbers host details Etc AWS region here um and that would updates to the to the to the git repo would then be committed and I might be running my pipeline in in a tool like Jenkins like like I've got here so this pipeline is just obviously an example but here what I'm doing is I'm retrieving all my sources I'm doing a build and then I'm I'm doing my code validation in this Branch up here where I'm doing my junit testing and my Sonar Cube analysis on my application code and then down here I'm I'm uploading my configuration data and validating it and then only once all both these branches pass do I then deploy to uat do some functional testing and then do a production deployment with a change now you can see in this particular example that my validate configs step failed and it's telling me here that my Snapshot failed because it did not pass validation and therefore can't be published so because we've got plugins for servicenow built into Jenkins and and Azure devops you know we can pause the pipeline and stop the pipeline at that point and that's what prevents us from deploying to prod if we have any issues and that's all about Shifting the governance left so you don't want to be publishing bad configuration data and using it in production then finding you've got an issue and obviously then you've got to first of all identify the issue and then do a back out so this is doing the validation up front shifting left and making sure that any issues are picked up before we deploy to production okay and what does that look like in service now so this is the Jenkins pipeline running in Jenkins and when we have devops change installed uh uh servicenow will build a view of the same pipeline so this is exactly the same pipeline but in the servicenow pipeline execution view so we can see the same steps there and I'll just jump to this one here that failed this is the history of all the pipeline executions that ran so you can see the same thing that we saw in Jenkins um that we had a failure at the same uh at the same step but I also have access to all the data that's been integrated so I can look at my config data in this case and I can see my Snapshot was running and I had some policies running against it some of them passed and this one failed so why did it why did it fail so if we go and have a look this is I'm now in devops config within my servicenow instance so I'm looking at that application where that pipeline was was running and I can see all the snapshots the history of the snapshots that were run every time the pipeline ran it created a new snapshot and I can see in this particular case it failed here so let's go and have a look open that's that snapshot and see why it failed so before we look at the results I just want to quickly show you the data so this is the same data that we saw in git but it's been normalized in the servicenow configuration data model so you can see here it's it's it's puts it into a hierarchy so I can clearly see all the different parts of the config data this is the these are the firewall rules this is the cloud formation template and it's going to break it down into all these different um parts of of the data so I can see each one so that that hierarchy is available to me so I can very clearly see what the data is and the key value pairs that make up the data getting to the results this is showing me that it failed on this policy because there was a region validate policy that checks to make sure that the data uh that the AWS region is only within the EU so in this example you might be deploying an application to the EU and you have to follow the gdpr rules where if it's a customer facing application the data has to reside within the EU you can't deploy outside the EU and that's what this that's what this policies is checking for now in in the previous um in the previous one it was deploying to a landing Zone which was in the US so that's why it failed in this case but we can also see some of the other policies that were run which actually passed so we made sure that our certificates were valid so the certificate validation policy was run this one is checking that there's no ft FTP URLs in the data this one is looking for any white space making sure that there's no white space in the in the configuration data multiple multiple availability zones and no HTTP so all our links have to be https Etc so what we can do is we we have a whole bunch of policies so out of the box um I'll just quickly show you going to the admin link here so out of the box we have I think there's about 40 over 40 maybe 42 different policies we provide a Content pack and those policies uh will will do all sorts of things so if you go to the servicenow store and you look at the devops config policy content pack that will show you the details of of what's there you can also look at the devops config documents site on docs and that gives you a lot of a lot of details as well so just jumping back here what we can do is we with all these policies even though we've got 40 43 here we we can we can activate and map the ones that we want to to a specific application so for this particular application we're only we've only got um uh we've only got five that were actually running that are mapped to this particular application so you you're able to pick and choose and and make sure that you're only you're only mapping the ones that you want to you might have different policies that you want to run for your non-prot environments versus your product environments for example so you're able to do that and just having a look again [Music] yeah so that that those are the validation policies that that run um and all these policies run in what's called a policy as code engine so just to show you so this in this example with this particular policy um they're all written in JavaScript so they uh customers can even write their own or they can take the ones that we provide in the content pack out of the box and you can modify those and basically do whatever you need to do with them so it's all just JavaScript um once you once the policy has passed so once the config data has passed so let's just jump to one just to show you I'll shove that one down oops okay so you can see the next one that ran past and this snapshot and again you've got access to the full details of the config data and you've got the hierarchy there that you can look at so this one did pass because we made sure that um the region was set back to the EU and that and that's what helped it to pass okay once it's passed then obviously we can make use of it and consume it so we have other other uh content pack which is the exporters so the exporters allow you to obviously export the data and consume it so let me just show you what that looks like this is a very simple exporter which will export everything export all the data but typically you wouldn't want to export all the data you just want to export specific nodes and there are other exporters which allow you to to do that again it's all written in JavaScript so if you want to update anything it's very flexible you you can do that so what what you would do obviously I'm showing this to you in the UI um so for example I can say I want to look at this what we call Deployable but this is essentially my production application service or that application and I can pick the specific Deployable that I want and I can look at my output format so I can output in in Json or any of these formats that I need to if I want if I'm importing Json but I want to export in yaml I can do that by choosing the format and I'll just evaluate that one and that's going to give me Json format with all that data which again it's been validated it's been it's past validation so I know it's good and I can then go and and consume it but typically you wouldn't be using the UI to do this you would be you would be using it via an API call or via an extension within your pipeline in Jenkins or Ado to then do the automated next step for your provisioning so we also provide sample API code so for example you can use cool cool or python or whatever you need to show you the curl example here so this is going to give you the the curl command that you need to go and get that data and then plug it into your script so that's how that works now some similar thing within within uh zero devops I'll just show you a quick example this is within Ado within my Ado environment so I can see when this pipeline ran here um again the validation for the config data failed now my config data is within my repo just quickly show you here I've got conflict data that's sitting in Json format in this case and similar stuff it's it's got It's got key value pairs for all the config data now just jumping back to the pipeline so I can see in this particular run that it it failed validation and if I jump into service now I'm able to see similar to what I I showed you before with with the other one if I just open the pipeline UI that's going to show me that this particular run again it failed and I can see that particular policy uh that ran is the one that failed so I'll just open that one this is taking me into devops config and if I have a look at my validation results I can see this policy here which makes sure that I don't have uh that all my links are https not HTTP that's why this one failed so it's doing that check for me and making sure that that passed so you can see that's that was the issue there so when I ran this one again and I fixed that data it passed testing and it deployed so as a developer I can see that in Ado and I can see the same thing Within servicenow where my config data is there and it passed that validation there and then obviously on the change record itself which is the source of Truth I can see the full change that was fully automated by devops change created and ran through the entire process automatically and I can see here that my config data is there I've got my commits I've got my test summaries Etc so all that data is available to me on on the change I didn't run sonar cube in in this particular run but if I had then that would be available to me on that tab there so that is essentially how that works now one other use case which is really useful is um we talked about how do we identify issues with config data when they occur how do we make sure we've got some smarts in place to do root cause analysis so I'm in service operations workspace here and we have integration between service operations workspace and devops config so I can see here I've got a whole lot of alerts that have been coming in from my event management system telling me that no payments have been processed but go and have a look at one of those alerts it'll say it'll give me the details of of what happened obviously um against this particular configuration item and it also identifies any changes that have run against that same configuration item as possible root causes for the issue so if we jump into that top change and just have a quick look at it you can see the config data on this particular change so it's got that same snapshot uh the snapshots are running every time the pipeline runs it's got the snapshot data here against the timeline so I can see here all the on my timeline every time that a change was run against this particular application and it allows me to compare these snapshots so for example if I wanted to go back in time let's say I wanted to go back to uh yeah that should be fine I can then select any of the snapshots that I want to see um I'll just select one here and I can compare that one against the current one that's that's there and I can run and compare and that compare is going to show me obviously this is all the configuration data but if I just want to see what changed show the differences only so that's showing me here that the difference between this snapshot and and and and and the latest one is this data here so I can see that I changed my port from 7647 to 7667 and I also changed the firewall rule here now it's probably the firewall rule that's causing the alert the performance degradation and causing the alerts so very powerful tool to help you do your root cause analysis with the linkages to service operations workspace so that's a that's a really cool additional benefit that you have with that integration okay okay um I think that is about everything that I wanted to share at this point so I'm just going to stop there and I'm going to run the next poll okay I'm going to launch the second poll so now that you've had a look and hopefully you've got a bit more knowledge about what devops config is and how it works uh let me know what you think and uh what you need to take the next steps and just while you're doing that just just want to make a note that the devops products uh the way the licensing works is if you are on itsm professional or itsm Enterprise subscription then you're entitled to though the devops products both devops change and devops config so if you if you are an itsm Pro or rtsm Enterprise customer you can already access those you just need to install them and configure them and make use of them and adopt and if you're not an itsm Pro customer then and you're interested in this functionality then please do have a chat to your account team to see what you need to do to to move to to that subscription okay um do we have any more responses edit okay I'm going to end the poll share the results okay so some people want to know a little bit more that's fine um and some people want to make a start yeah excellent okay that's fantastic all right so for those that want to know more um let's uh just just um I'm gonna ask you to unmute I'm happy for people to just talk so you can ask a question if you want to talk or you can type it into the Q a up to you um but it did it make sense did did that look like something that would be useful uh to you in your organization um if you have any other questions if you'd like to know more no worries hopefully you've found that useful and um like I said there's there's lots more there's obviously lots more to the product we only covered an overview um so if you need more details uh in in the slide deck that I that we will send out there are links to um let me just show you I'll share I'll share what I've got in the pack because um there's some really useful stuff in the pack let me just get that up for you okay sure so in the slide deck there's this page here which has got links to our customer success Center which is all about how do I get started what do I need to do if I want to deploy devops in my environment in the learning portal on now learning we've got some training that you can do these are just a couple of the courses but there's actually more than what's here but those will start you off with some of the fundamentals uh obviously in on community we've got some more information so there's links there about how to get started and some help and we've got a lot more videos available on the Community page on YouTube which will give you more of an idea of some of the different use cases for the devops products so the slide pack will be available to you we'll send this out so you'll be able to have a look at that and make use of that okay uh any thank you thank you for the feedback any final questions before we wrap up okay great no worries thanks very much for attending really appreciate it see you on the next one thanks everyone bye bye have a great day thank you

View original source

https://www.youtube.com/watch?v=uNBzPRrXgrw