“How do I handle a release and testing pipeline with zero downtime and on time?” Find out in this episode of Appfire Presents: The Best IT Service Management Show by Appfire.
Appfire’s own George Dinkov explains how to get from testing and staging to release with zero downtime. We talk about how setting up proper environments helps to ensure that everything is consistent, so you can build a process for continuous improvement. George also gets into how you can implement robust testing program.
About the guest
George Dinkov is Director of Product Engineering at Appfire.
About the show
The BEST ITSM Show by Appfire brings you expert insights for IT service delivery, so your employees and customers have what they need to succeed. Get the right tech and tips for the right job at hand. Look like you’ve come from the future with all your new ITSM smarts. Every episode is a brisk 10 minutes—less time than it takes to provision a laptop or troubleshoot a tech support issue.
For your convenience, here is the transcript of this episode:
How do I handle a release and testing pipeline with zero downtime and on time?
Kerry: Today we’re going to address the question how do I handle a release and testing pipeline with zero downtime and on time. To help us with that question is George Dinkov, director of product engineering at Appfire. Stick around because we have 10 really valuable minutes coming up.
George, thanks so much for being here. Help me out. What do we have to do right at the beginning to start off on the right foot if we handle a release and testing pipeline with zero time?
George: Right at the beginning, one of the key elements for having a successful ITSM process is the principle of continuous improvement. Basically, it is meant for regularly taking time to review an internal process against the existing services that you have for the sake of driving the organization forward and improving your process.
Implementing this in Jira Service Management, the very best thing to do first is to make sure, especially for large and legacy systems, is to make sure that all of your configuration is consistent and everything is working properly, because with time stuff accumulates and there can be some problems that can prevent you from wanting to make changes or even making changes because you uncover some errors. Usually, you can do that with using some tools provided in Jira, like the system intake checker, which is more focused on the data consistency and integrity. Also, you can use tools provided by, for example, Appfire.
Kerry: What? We make tools?
George: Yes. One of those is the Integrity Check for Jira, which is part of our Configuration Manager for Jira, which is a bundle of a few apps. With Integrity Check, you can check the whole configuration and make sure that there are no errors, no duplicate objects, all of the workflows and post functions are correct. This gives you the confidence that you can start applying changes on the system without hitting any existing issues.
Kerry: So, you don’t just start changing things right away. You need to look and see what’s in place now and how it’s working.
George: Yes. It’s a best practice to make sure that everything is working properly and is consistent.
Kerry: Once you’ve spotted the errors and fixed them if you have them, what’s the next step then?
George: The next step is, for the purpose of continuous improvement, it’s a good step to regularly do audits of the instance and the processes that you have implemented in workflows and the custom views that use in screens, etcetera. You can do a lot of this in Jira administration screens, or you can also make it a lot easier on yourself and use an app like Power Admin, which is also part of the Configuration Manager Suite.
It can provide you insight on exactly how, for example, customer views are used, and you can see if there are views that have similar schematics but you have multiple views doing the same thing. Right inside Power Admin you can, for example, merge them, which is something that you cannot do native in Jira, you have to write a bunch of database scripts and stuff like that. This is a very powerful feature that allows you to improve the performance and processes that you have.
Kerry: So, it doesn’t have to be a manual process that takes forever then. You actually can use apps and make it go a little faster.
George: Yes, exactly. That’s one of the angles for making continuous improvements. Another one is implementing changes requested by stakeholders, or if you have some kind of change management process, for example. In these cases, usually the best practice and what you would like to do is to implement them on a developer instance where you can basically be sure that you won’t break anything, or even if you break anything that you won’t affect the work of dozens of other people that are using this instance.
Kerry: Which is important because as much as they want the new feature, they want what they have to continue working.
George: Absolutely. Once you’re ready with implementation of your changes on a test instance, then you will need to apply those changes to an off-staging instance where it can be done where it can be approved by stakeholders so it can then go to production.
Traditionally, how this has been done is you implement the changes, make sure that they work, have a long list of everything that you changed on the system, which can be hundreds of things, or even thousands in some cases, and then implement those manually on the next system, and then the next, which is very time consuming and error prone.
Kerry: You could mess it up.
George: Yes, you could mess it up, and this is not what you want in a release and testing pipeline that you want to implement for a large organization, especially if you want to minimize the downtime.
How Appfire can help here is with Configuration Manager for Jira. Whenever you implement changes from the testing instance, you just grab a snapshot of your changes, and you can automatically deploy it on the staging instance where it can be acceptance tested. Configuration Manager will do the deployments very fast. We regularly do performance improvements of the app. Also, it’s done in a transactional manner, so if anything goes wrong, it can be automatically rolled back to the previous state of the system.
Kerry: That is very good to know.
George: Absolutely. We also have the resource of customizer lock which tracks every single change that is applied on the system, so after something has been deployed you have a trace of who did what when and exactly every single change that has been done. This lock feature was implemented a few years ago.
Kerry: So you know who to blame.
George: This is very important, this feature was implemented a few years ago in partnership with one very large US bank, and they basically since then are doing changes to production on the Configuration Manager just so they have the audit trail.
Kerry: Then the benefit to using apps like Configuration Manager for Jira are that you can do it more quickly, you have a record of who has made which changes, you can roll them back automatically, versus things that you can do without plugins. You could do it with the native functionality, it just takes longer and you might mess up. Is that about the size of it?
George: Yes. You can put it briefly like that, yes. Doing it without the help of an app is very tedious, very error prone. You can basically say goodbye to a few of your weekends every year when you have to push changes to production because you need to have a downtime window to implement everything.
Kerry: It sounds like the first phase of this is setting up your environment so that you’re able to enhance your productivity. It’s like first you have to look and see what’s there, fix any systemic problems, and then you can focus on one implementation, one launch at a time, with testing and staging. Does that sound right?
George: Test staging production is one of the best practices Atlassian have for many years when using Jira, especially in data center and server. They’re doing also improvements there for the Cloud as well. Also, Configuration Manager will do in the background these integrity checks for you if, for example, you don’t do it or you forget about it, it will make sure that what you’re bringing into the next instance to production, for example, is actually accurate and consistent. It will stop any deployments if there are any errors, and it will roll back to the previous state.
Kerry: That’s great. It’s like, “Hey, are you sure? This is going to mess up everything. Let’s not do this.”
George: Yes. A big focus in the app is to make sure that everything is applied correctly and the system is working properly and consistent.
Kerry: That makes me happy as somebody who has no idea what I’m doing in coding. I feel better about it knowing that you and people who know what they’re doing are working on it, but it’s good to have that extra layer of protection.
Any last tips for keeping things on time? Zero downtime for users is one thing. Keeping it on time for your scheduling perspective is another.
George: Yes. Keeping it on time, basically following the best practices with keeping your system, doing your regular integrity checks to make sure that there are no errors accumulating, and using Power Admin to have a nice overview of the system when you’re making changes will help you move quick, and using Configuration Manager will save you hours or even days of work when promoting changes to the release pipeline.
Kerry: George, thank you so much. To find out more about Configuration Manager for Jira, Power Admin, and other Appfire apps, go to Appfire.com. For more episodes of The Best ITSM Show, you can go to Hub.Appfire.com. We’ll see you next time.
Last updated: 2023-06-05