Install OpenRose in Azure Cloud


Cloud Installation of  OpenRose - Requirements Management - An Open Source and FREE Requirements Management Application / Tool.

This guide helps users to install all required software and components to run OpenRose on a Azure Cloud. It guides users to install 

OpenRose WebUI front-end 
OpenRose API back-end 
Azure SQL Server Database 


Direct Link to YouTube Video : 

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


Video Transcript :

Hi! In this video, we're going to talk about deploying OpenRose in the Azure Cloud.

Here I am on 

https://GitHub.com/OpenRose


This is where you can get the source code and packages for OpenRose, which you can download and deploy. The main purpose of today's video is to show you that there's a possibility, and that the package we deliver can be easily deployed using web deployment technologies into the Azure Cloud, or perhaps other cloud platforms where you can host SQL Server and web applications.

As you can see in the releases section, you'll be able to see all the available releases. In this section, we have two separate zip files which comprise the web UI as well as the API. You can download these and install them directly into the Azure Cloud.

Let me show you by going into the Azure Cloud. This is my subscription in which I've created an OpenRose Resource Group. The Resource Group shows all the resources that are deployed within that particular environment. Here, we can see that I have an App Service Plan, based on which I've deployed my App Service for the web UI. Then, I also have another App Service Plan. We could also deploy it in the same App Service Plan, but I've just created two separate App Service Plans, and this one is for the API application. It is used by the OpenRose API web app, or App Service. I also have an SQL Server, which is named OpenRose. In this SQL Server, I've deployed the SQL database, which is OpenRoseDB.

In one of my App Services, I've also enabled Application Insights for logging purposes, and we can see some information about the action group for Application Insights, and Application Insights itself. Now, I'm not going to use Application Insights so much today, but the point I'm trying to make here is that you could use all the different techniques and services that are available within the Azure Cloud to enhance how you architect the deployment of these web applications.

My implementation is very simple. My SQL Server, which you can see here as OpenRose and OpenRoseDB, is accessible to the OpenRose API App Service. The OpenRose API is accessible to the WebUI, and ultimately, the WebUI is accessible over a public internet endpoint.

Now, before I jump into the WebUI, let me just go over to OpenRoseDB. Here, I just wanted to show you that the schema for the tables and the stored procedures is all automatically created. If I simply go to 'SELECT * FROM dbo.projects', this is nothing but the projects table. Let me just run this query, and we can see there is nothing found. No projects are available at this stage in the SQL Server.

Now, let me jump over to OpenRose. This is nothing but the WebUI part. As you can see in the URL, I'm connected to azurewebsites.net, which is nothing but an application running in the Azure Cloud, which has this long subdomain, but the main domain is azurewebsites.net, hosted mainly in the cloud.

Here, I can simply go to 'Project.' Because there are no projects available, as we saw in the SQL query, we don't see any project listing here. Let's just create a dummy project for the demo purpose. I'm just going to call this 'New' and then say 'Dummy project for demo.' Let me create that project.

Now, I should be able to see the project in the tree here. I can go ahead and create a new item type as well. After creating the item type, as we know, the item type contains this unique number, or some random number, but let me just go and say this is, let's say, 'Business Requirements,' just as an example, 'Sample Business Requirements.' Then, within the Business Requirements, let me create a few child items. 'This is the first child,' 'This is the child of a child,' 'This is the child of a child of a child,' perhaps one more child item, and perhaps one more child item. By creating this structure, I've just created some requirements, for example.

Then, I can go back to the project. In the Baseline, I can create the Baseline. I just want to do the entire project Baseline, so this is 'Demo Baseline One,' no need to provide the description, let's just create that Baseline, which has also been created. We can now go and look at the Baseline in the tree view form. All those requirement structures that we created are available. All this is working over the web version of OpenRose deployed in the Azure Cloud.

So now, let me just go ahead and go back to my SQL query and run the same query again, and you should be able to see the same project created here. If I say I want to see the Baseline, then I should be able to see, oh sorry, my mistake, let me just remove this unnecessary extra bracket as well. So, the 'Demo Baseline One' that we created is also available here. If I say show me all the items that we created, oops, I'm just making this mistake, sorry for that, and you can see those items available here. The same information is available in the hierarchy table as well. This is where we have the repository items, oh there's no 's' here, item hierarchy, so we can see the information about all the data here. For the repository, so I can actually order by, here it is, item hierarchy, let's do 'ORDER BY ItemsHierarchy.ID', by default it's going to ascending order, so we should now be able to see all the information here in the hierarchical structure. We have the repository, which has got one project, which has got two item types, some requirements, and that's the whole information about the item hierarchy. The same we should be able to see in the Baseline item hierarchy as well.

Again, the purpose of this demo was to show that it is possible to deploy the OpenRose application in the cloud. At this stage, the version that I have deployed is the very early version, which is 0.1.0 version, and it still doesn't have the entire authentication capabilities at the moment, because we feel that the first thing is to get the product out with the necessary features, and then we'll keep adding new features in the application. But, because in the cloud you can set up certain endpoints and secure certain endpoints, and expect users to do the authentication before they are allowed access to certain endpoints, it is possible to then implement those security measures in the cloud itself to make sure that either third-party authentication is enabled before anybody can get to your OpenRose application URL.

The one that I'm showing you today is just available on the internet, and anybody can actually connect to this URL and can add and work with the projects and requirements in this particular environment. But the main point is that the same package that is available on GitHub to download on your local computer, or if you have IIS deployed in your network in your infrastructure, then you could host the same package in IIS as well, and the same package can be used to host it in cloud platforms which support SQL Server and .NET, because our application is built using .NET 9. The version that I'm showing here, which is 0.1.0, is using version 9 of .NET.

So, that's a quick overview of how one could deploy and use OpenRose in a cloud environment. Thank you so much for your time!



Comments

Popular posts from this blog

Introduction to OpenRose - Requirements Management

What is Requirement?

Details View - OpenRose - Requirements Management