I already wrote above that after it was decided to make the product publicly available, and not just for my own use, I had to work hard and look for replacements for some modules that were not allowed to be included in our product. But after the release, a very unpleasant thing happened by chance. As part of the Veliam Server, which was on the client side, there was a MariaDB DBMS. And it’s GPL licensed. The GPL license assumes that the software must be open source, and if MariaDB is included in our product that has this license, then our product must be under this license. But fortunately, the purpose of this license is open source, and not punishment in court of those who accidentally made a mistake. If the copyright holder has a claim, he notifies the violator in writing and he must eliminate the violation within 30 days. We discovered our mistake ourselves and did not receive any letters, and immediately began to consider options for how to solve the problem. The way out was obvious — switching to SQLite. This database has no licensing restrictions. Most modern browsers use SQLite, and a bunch of other programs. I found information on the Internet that SQLite is considered the most common DBMS in the world, just because of browsers, but I didn’t look for proofs, so this is inaccurate information. I began to study what the transition to SQLite threatens.
This becomes a non-trivial task when there are several hundred servers installed at clients with MariaDB and data in it. Some MariaDB chips are not available in SQLite. Well, for example, the code used queries like
Select * FROM `table` WHERE `id`>1000 FOR UPDATE
This construction not only makes a selection from the table, but also blocks the row data. And a few more designs also had to be rewritten. But besides the fact that I had to rewrite a lot of requests, I also had to come up with a mechanism that, when updating the Veliam Server, the client will port all the data to the new DBMS and delete the old one. Also, transactions in SQLite did not work and this was a real problem. But after reading the expanses of the world Wide Web, I found without any problems that transactions in SQLite can be enabled by passing a simple command when connecting
As a result, the task was completed and now the server part of the clients is running on SQLite. We didn’t notice any changes in the system operation.
From the internal version to the SaaS version, it was necessary to port the HelpDesk system, but with some changes. The first thing I wanted to do was to integrate with the client’s domain in terms of transparent user authorization in the system. Now, in order to log in to HelpDesk and leave a request in the system, the user simply clicks on the shortcut on the desktop and the browser opens. The user does not enter any credentials. The Apache SSPI module, which is part of Veliam Server, automatically authorizes the user under a domain account. To leave a request in the system, when the user is outside the corporate network, he clicks on the button, and a link comes to his email, according to which he logs in to the HelpDesk system without passwords. If the user is disabled or deleted in the domain, then the HelpDesk account will also stop working. Thus, the system administrator does not need to monitor the accounts in the domain and in HelpDesk himself. An employee quit — disabled the account in the domain and that’s it, he will not log in not from the corporate network, not by link. For this integration to work, the system administrator needs to make one GPO that adds an internal site to the intranet zone and throws a shortcut to all users on the desktop.
The second thing that we consider extremely necessary for HelpDesk systems, at least for ourselves, is to connect to the applicant directly from the application in one click. Moreover, connections should take place if the system administrator is on another network. For outsourcing, this is mandatory, for full-time system administrators, it is also often very necessary. There are already several products that perfectly cope with the task of remote connections. And we decided to make integrations for them. Now we have done integration for VNC, and in the future we plan to add Radmin and TeamViewer. Using our network transport for remote connections to the infrastructure, we have made it so that VNC connects to remote workstations behind NAT. The same will happen with Radmin. Now, in order to connect to the user, you just need to click the “connect to the applicant” button in the application itself. The VNC client opens and connects to the applicant regardless of whether you are on the same network with him or sitting at home in slippers. Previously, the system administrator, by means of the GPO, must install VNC Server for everyone on workstations.
Now we ourselves are switching to the new HelpDesk and using integration with the domain and VNC. This is very convenient for us. Now we can not pay for TeamViewer, which we have used for more than three years for our support service.
What are we planning to do next
When we released the product, we did not make any paid tariffs, but simply limited the free tariff to 50 monitoring objects. Five dozen network devices and servers should be enough for everyone, we thought. And then requests for an increase in the limit began to arrive. To say that we were a little shocked is to say nothing. Are companies that have such a large number of servers interested in our software? We expanded the limit for free for those who made such requests. In response to their request, we asked some of them why they need so much, do they really have such a large number of servers and network equipment. And it turned out that system administrators started using the system in a way we hadn’t planned at all. Everything turned out to be simple — not only servers, but also workstations began to monitor our software. Hence a lot of requests to expand the limits. Now we have already introduced paid tariffs and the limits can be expanded independently.