📜 ⬆️ ⬇️

How we adjusted the process from storage to software licensing: SupplyLab project



Positive Technologies is a grocery company. This means that we develop a large number of products , and it is important to understand that all of them are boxed. Accordingly, we need to somehow deliver the solutions we have developed to the infrastructure of the final customer. Moreover, our software often has a complex configuration - there are many different components in it that must be installed on different target machines, and these computers have different roles, etc.

That is, we need to be able to release and deliver products through the Internet, and then also deploy them on the final infrastructure. In addition, we must not forget that not all customers buy everything they can - each product has its own types of licenses, implying access to certain functionality. So, you need to somehow make sure that our software not only gets to the client, but he can use exactly what he paid for.
')
To solve all these problems, we decided to develop a common system for publishing and updating software. The project was named SupplyLab, and today we would like to talk about this tool in more detail.

What should be able to system


Before proceeding to the creation of the system, we conducted an analysis and identified several of its functional features. So, she should be able to:


All these tasks are performed by a huge number of programs and components, for example, storage can be performed using Yum and Nuget, licensing using Guardant and Gemalto Sentinel, and SaltStack or Ansible can be used for deployment. And how to combine all this diversity, and even make this solution cross-platform, running on any customer infrastructure (which we know nothing about in advance)?

SupplyLab: striving for the best combination.


As a result, we developed a system called SupplyLab, which combines a number of tools.




Let's talk about how the code "lives" in our system. After assembly, the package is stored in the Artifactory, then the release manager publishes it to the Global Update Server (this can be done automatically by selected criteria), and from there the code goes to Front Local Update servers that are deployed at specific sites. These servers are accessed by the SaltStack deployment tool - at the time of such a call, licensing is filtered (can the client get the update code).



One of the most important elements of the system is the licensing mechanism, which we get the name LicenseLab. Now we are developing this tool. At the moment, the ideology assumes the existence of a large number of licenses for one customer, and in each license there can be many soft keys.

In the end, the update deployment scheme using SupplyLab from the very beginning to the last stage looks like this:



We will be able to present the results of implementation and performance analysis of the system we are developing for SupplyLab next year.

Plans


We are not satisfied with what has been achieved, it is obvious that we still have a lot of work to do. In the future, we plan to refine the system and introduce new components into it. In particular, in the plans:


PS The story about our system SupplyLab was presented within the DevOps-mitap, which took place recently in Moscow.



The individual parts of the SupplyLab system will be uploaded to the repository of the open community DevOpsHQ as they are completed.

The link presents presentations of 16 reports presented during the event. All presentations and video presentations will be added to the table at the end of this topic-announcement .

Author : Alexander Pazdnikov

Source: https://habr.com/ru/post/314216/


All Articles